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

; File Name   :	u:\work\ae9b8cab067339db8f21632ac5d57a9d_orig.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00008F24 (  36644.)
; Section size in file		: 00009000 (  36864.)
; Offset to raw	data for section: 00000400
; Flags	60000020: Text Executable Readable
; Alignment	: default
; OS type	  :  MS	Windows
; Application type:  Executable	DLL 32bit

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

		.686p
		.mmx
		.model flat

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

; Segment type:	Pure code
; Segment permissions: Read/Execute
CODE		segment	para public 'CODE' use32
		assume cs:CODE
		;org 401000h
		assume es:nothing, ss:nothing, ds:CODE,	fs:nothing, gs:nothing
off_401000	dd offset byte_401004	; DATA XREF: CODE:004043E6o
					; CODE:004043EEo ...
byte_401004	db 0Ah			; DATA XREF: CODE:off_401000o
					; LString
		db 6,'String'
off_40100C	dd offset aTobject	; DATA XREF: CODE:004043B8o
					; CODE:00404E64o
					; "TObject"
		dd 7 dup(0)
		dd offset aTobject	; "TObject"
unknown_libname_1 dd 4,	0		; BDS 2005-2006	and Delphi6-7 Visual Component Library
		dd offset @System@TObject@SafeCallException$qqrp14System@TObjectpv ; System::TObject::SafeCallException(System::TObject	*,void *)
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40149C
		dd offset nullsub_4
		dd offset sub_401388
		dd offset sub_40139C
		dd offset @System@TObject@$bdtr$qqrv ; System::TObject::~TObject(void)
aTobject	db 7,'TObject'          ; DATA XREF: CODE:off_40100Co
					; CODE:0040102Co
; [00000006 BYTES: COLLAPSED FUNCTION FreeLibrary. PRESS KEYPAD	"+" TO EXPAND]
		align 4
; [00000006 BYTES: COLLAPSED FUNCTION LocalAlloc. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000006 BYTES: COLLAPSED FUNCTION LocalFree. PRESS KEYPAD "+" TO EXPAND]
		align 4
; [00000006 BYTES: COLLAPSED FUNCTION TlsAlloc.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000006 BYTES: COLLAPSED FUNCTION TlsFree. PRESS KEYPAD "+"	TO EXPAND]
		align 4
; [00000006 BYTES: COLLAPSED FUNCTION TlsGetValue. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000006 BYTES: COLLAPSED FUNCTION TlsSetValue. PRESS KEYPAD	"+" TO EXPAND]
		align 4
; [00000006 BYTES: COLLAPSED FUNCTION RaiseException. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000006 BYTES: COLLAPSED FUNCTION RtlUnwind. PRESS KEYPAD "+" TO EXPAND]
		align 4
; [00000006 BYTES: COLLAPSED FUNCTION UnhandledExceptionFilter.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000006 BYTES: COLLAPSED FUNCTION ExitProcess. PRESS KEYPAD	"+" TO EXPAND]
		align 4
; [00000006 BYTES: COLLAPSED FUNCTION MultiByteToWideChar. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000006 BYTES: COLLAPSED FUNCTION WideCharToMultiByte. PRESS KEYPAD	"+" TO EXPAND]
		align 4
; [00000006 BYTES: COLLAPSED FUNCTION SysAllocStringLen. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000006 BYTES: COLLAPSED FUNCTION SysFreeString. PRESS KEYPAD "+" TO EXPAND]
		align 4
; [00000006 BYTES: COLLAPSED FUNCTION LocalReAlloc. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000006 BYTES: COLLAPSED FUNCTION LocalSize. PRESS KEYPAD "+" TO EXPAND]
		align 4

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


; int __fastcall sub_4010E8(SIZE_T uBytes)

sub_4010E8	proc near		; CODE XREF: sub_40114C+4p
					; System::__linkproc__ ReallocMem(void *&,int)+3Fp ...
		push	ebx
		mov	ebx, eax
		push	ebx		; uBytes
		push	0		; uFlags
		call	LocalAlloc	; LocalAlloc
		pop	ebx
		retn
sub_4010E8	endp

; ---------------------------------------------------------------------------
		align 4

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


; int __fastcall sub_4010F8(HLOCAL hMem)

sub_4010F8	proc near		; CODE XREF: sub_401164+4p
					; System::__linkproc__ ReallocMem(void *&,int)+26p
					; DATA XREF: ...
		push	ebx
		mov	ebx, eax
		push	ebx		; hMem
		call	LocalFree	; LocalFree
		pop	ebx
		retn
sub_4010F8	endp

; ---------------------------------------------------------------------------
		align 4

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


; int __fastcall sub_401104(HLOCAL hMem, SIZE_T	uBytes)

sub_401104	proc near		; CODE XREF: System::__linkproc__ ReallocMem(void *&,int)+Dp
					; DATA XREF: DATA:off_40A03Co
		push	ebx
		push	esi
		push	edi
		mov	esi, edx
		mov	edi, eax
		push	0		; uFlags
		push	esi		; uBytes
		push	edi		; hMem
		call	LocalReAlloc	; LocalReAlloc
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_401144
		push	esi		; uBytes
		push	0		; uFlags
		call	LocalAlloc	; LocalAlloc
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_401144
		push	edi		; hMem
		call	LocalSize	; LocalSize
		cmp	esi, eax
		jge	short loc_401134
		mov	eax, esi


loc_401134:				; CODE XREF: sub_401104+2Cj
		mov	edx, ebx
		mov	ecx, edi
		xchg	eax, ecx
		call	sub_401210
		push	edi		; hMem
		call	LocalFree	; LocalFree


loc_401144:				; CODE XREF: sub_401104+14j
					; sub_401104+22j
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_401104	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_40114C	proc near		; CODE XREF: sub_401388+4p
					; sub_401CC0+8p ...
		test	eax, eax
		jz	short locret_40115A
		call	ds:off_40A034
		or	eax, eax
		jz	short loc_40115B

locret_40115A:				; CODE XREF: sub_40114C+2j
		retn
; ---------------------------------------------------------------------------


loc_40115B:				; CODE XREF: sub_40114C+Cj
		mov	al, 1
		jmp	loc_4011CC
sub_40114C	endp

; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4

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



sub_401164	proc near		; CODE XREF: sub_40139C+1Dp
					; sub_401C00+1Bp ...
		test	eax, eax
		jz	short locret_401172
		call	ds:off_40A038
		or	eax, eax
		jnz	short loc_401173

locret_401172:				; CODE XREF: sub_401164+2j
		retn
; ---------------------------------------------------------------------------


loc_401173:				; CODE XREF: sub_401164+Cj
		mov	al, 2
		jmp	loc_4011CC
sub_401164	endp

; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4
; [00000079 BYTES: COLLAPSED FUNCTION System::__linkproc__ ReallocMem(void *&,int). PRESS KEYPAD "+" TO	EXPAND]
byte_4011F5	db 0CBh			; DATA XREF: System::__linkproc__ ReallocMem(void *&,int)+61r
aRsu		db 'ÌÈÉ×ÏÈÍÎÛØÊÙÚÜÝÞßàáã',0
		db 0E4h
		dd 0C08BC3E5h

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



sub_401210	proc near		; CODE XREF: sub_401104+35p
					; sub_401C54+1Bp ...
		cmp	ecx, 4
		jge	short loc_401231
		jcxz	locret_40126F
		cmp	eax, edx
		jz	short locret_40126F
		push	esi
		push	edi
		mov	esi, eax
		mov	edi, edx
		ja	short loc_40122D
		lea	esi, [esi+ecx-1]
		lea	edi, [edi+ecx-1]
		std


loc_40122D:				; CODE XREF: sub_401210+12j
		rep movsb
		jmp	short loc_40125D
; ---------------------------------------------------------------------------


loc_401231:				; CODE XREF: sub_401210+3j
		cmp	eax, edx
		jz	short locret_40126F
		push	esi
		push	edi
		mov	esi, eax
		mov	edi, edx
		mov	eax, ecx
		ja	short loc_40125F
		and	ecx, 3
		lea	esi, [esi+eax-1]
		lea	edi, [edi+eax-1]
		std
		rep movsb
		sar	eax, 2
		mov	ecx, eax
		mov	eax, 3
		sub	esi, eax
		sub	edi, eax
		rep movsd


loc_40125D:				; CODE XREF: sub_401210+1Fj
		cld
		dec	ecx


loc_40125F:				; CODE XREF: sub_401210+2Dj
		sar	ecx, 2
		js	short loc_40126D
		rep movsd
		and	eax, 3
		mov	ecx, eax
		rep movsb


loc_40126D:				; CODE XREF: sub_401210+52j
		pop	edi
		pop	esi

locret_40126F:				; CODE XREF: sub_401210+5j
					; sub_401210+Aj ...
		retn
sub_401210	endp

; [0000000A BYTES: COLLAPSED FUNCTION System::__linkproc__ ROUND(void).	PRESS KEYPAD "+" TO EXPAND]
		align 4

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



sub_40127C	proc near		; CODE XREF: sub_402EC0+Bp
					; sub_402EE8+Cp ...

var_C		= word ptr -0Ch
var_8		= qword	ptr -8

		sub	esp, 0Ch
		fstcw	[esp+0Ch+var_C]
		wait
		fldcw	ds:word_40A040
		fistp	[esp+0Ch+var_8]
		wait
		fldcw	[esp+0Ch+var_C]
		pop	ecx
		pop	eax
		pop	edx
		retn
sub_40127C	endp

; ---------------------------------------------------------------------------
		align 4
; [0000002F BYTES: COLLAPSED FUNCTION System::__linkproc__ PStrNCat(void). PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn

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



sub_4012C8	proc near		; CODE XREF: sub_403C64+DAp
					; sub_403C64+13Fp ...
		xor	ecx, ecx
		push	esi
		push	edi
		mov	cl, [edx]
		mov	edi, eax
		inc	ecx
		mov	esi, edx
		mov	eax, ecx
		shr	ecx, 2
		and	eax, 3
		rep movsd
		mov	ecx, eax
		rep movsb
		pop	edi
		pop	esi
		retn
sub_4012C8	endp

; [0000001F BYTES: COLLAPSED FUNCTION System::__linkproc__ FillChar(void *,int,char). PRESS KEYPAD "+" TO EXPAND]
		align 4

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



sub_401304	proc near		; CODE XREF: sub_4052F8+1Bp
					; sub_405AC8+90p ...
		imul	edx, ds:dword_40B024, 8088405h
		inc	edx
		mov	ds:dword_40B024, edx
		mul	edx
		mov	eax, edx
		retn
sub_401304	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_40131C	proc near		; CODE XREF: sub_4030E8p
		cmp	edx, 1
		jnb	short loc_401322
		retn
; ---------------------------------------------------------------------------


loc_401322:				; CODE XREF: sub_40131C+3j
		push	ecx
		test	eax, eax
		jnz	short loc_40136B
		mov	eax, [edx-8]	; uBytes
		test	eax, eax
		jz	short loc_401364
		push	edx
		call	ds:off_40A034
		pop	edx
		test	eax, eax
		jz	short loc_401360
		push	edi
		mov	ecx, [edx-8]
		mov	edi, eax
		push	eax
		xor	eax, eax
		shr	ecx, 2
		rep stosd
		mov	ecx, [edx-8]
		and	ecx, 3
		rep stosb
		pop	eax
		pop	edi
		mov	ecx, [edx-4]
		test	ecx, ecx
		jl	short loc_40135C
		mov	[eax+ecx], edx


loc_40135C:				; CODE XREF: sub_40131C+3Bj
		test	eax, eax
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_401360:				; CODE XREF: sub_40131C+1Cj
		xor	edx, edx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_401364:				; CODE XREF: sub_40131C+10j
		xor	edx, edx
		cmp	eax, 1
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_40136B:				; CODE XREF: sub_40131C+9j
		mov	ecx, [edx-4]
		test	ecx, ecx
		jl	short loc_401375
		mov	[eax+ecx], edx


loc_401375:				; CODE XREF: sub_40131C+54j
		xor	edx, edx
		test	eax, eax
		pop	ecx
		retn
sub_40131C	endp

; ---------------------------------------------------------------------------
		align 4
; [0000000A BYTES: COLLAPSED FUNCTION unknown_libname_2. PRESS KEYPAD "+" TO EXPAND]
		align 4

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



sub_401388	proc near		; DATA XREF: CODE:0040104Co
					; CODE:004043D0o ...
		push	eax
		mov	eax, [eax-28h]
		call	sub_40114C
		mov	edx, eax
		pop	eax
		jmp	sub_401400
sub_401388	endp

; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4

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



sub_40139C	proc near		; DATA XREF: CODE:00401050o
					; CODE:004043D4o ...
		push	ebx
		push	esi
		mov	ebx, eax
		mov	esi, eax


loc_4013A2:				; CODE XREF: sub_40139C+1Bj
		mov	esi, [esi]
		mov	edx, [esi-40h]
		mov	esi, [esi-24h]
		test	edx, edx
		jz	short loc_4013B5
		call	sub_4022F0
		mov	eax, ebx


loc_4013B5:				; CODE XREF: sub_40139C+10j
		test	esi, esi
		jnz	short loc_4013A2
		call	sub_401164
		pop	esi
		pop	ebx
		retn
sub_40139C	endp

; ---------------------------------------------------------------------------
		align 4
; [00000020 BYTES: COLLAPSED FUNCTION unknown_libname_3. PRESS KEYPAD "+" TO EXPAND]
; [0000000F BYTES: COLLAPSED FUNCTION System::TObject::~TObject(void). PRESS KEYPAD "+"	TO EXPAND]
		align 4

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



sub_4013F4	proc near		; CODE XREF: sub_40161C+11Ej
					; System::__linkproc__ RaiseAgain(void)+30p ...
		test	eax, eax
		jz	short locret_4013FF
		mov	ecx, [eax]
		mov	dl, 1
		call	dword ptr [ecx-4]

locret_4013FF:				; CODE XREF: sub_4013F4+2j
		retn
sub_4013F4	endp


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



sub_401400	proc near		; CODE XREF: sub_401388+Cj
		push	ebx
		push	esi
		push	edi
		mov	ebx, eax
		mov	edi, edx
		stosd
		mov	ecx, [ebx-28h]
		xor	eax, eax
		push	ecx
		shr	ecx, 2
		dec	ecx
		rep stosd
		pop	ecx
		and	ecx, 3
		rep stosb
		mov	eax, edx
		mov	edx, esp


loc_40141E:				; CODE XREF: sub_401400+2Fj
		mov	ecx, [ebx-48h]
		test	ecx, ecx
		jz	short loc_401426
		push	ecx


loc_401426:				; CODE XREF: sub_401400+23j
		mov	ebx, [ebx-24h]
		test	ebx, ebx
		jz	short loc_401431
		mov	ebx, [ebx]
		jmp	short loc_40141E
; ---------------------------------------------------------------------------


loc_401431:				; CODE XREF: sub_401400+2Bj
		cmp	esp, edx
		jz	short loc_401452


loc_401435:				; CODE XREF: sub_401400+50j
		pop	ebx
		mov	ecx, [ebx]
		add	ebx, 4


loc_40143B:				; CODE XREF: sub_401400+4Cj
		mov	esi, [ebx+10h]
		test	esi, esi
		jz	short loc_401448
		mov	edi, [ebx+14h]
		mov	[eax+edi], esi


loc_401448:				; CODE XREF: sub_401400+40j
		add	ebx, 1Ch
		dec	ecx
		jnz	short loc_40143B
		cmp	esp, edx
		jnz	short loc_401435


loc_401452:				; CODE XREF: sub_401400+33j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_401400	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4

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



sub_401458	proc near		; CODE XREF: sub_40149C+13p
		push	edi
		xchg	eax, ebx
		jmp	short loc_40145E
; ---------------------------------------------------------------------------


loc_40145C:				; CODE XREF: sub_401458+1Fj
		mov	ebx, [ebx]


loc_40145E:				; CODE XREF: sub_401458+2j
		mov	edi, [ebx-30h]
		test	edi, edi
		jz	short loc_401472
		movzx	ecx, word ptr [edi]
		push	ecx
		add	edi, 2
		repne scasw
		jz	short loc_40147B
		pop	ecx


loc_401472:				; CODE XREF: sub_401458+Bj
		mov	ebx, [ebx-24h]
		test	ebx, ebx
		jnz	short loc_40145C
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_40147B:				; CODE XREF: sub_401458+17j
		pop	eax
		add	eax, eax
		sub	eax, ecx
		mov	ebx, [edi+eax*2-4]
		pop	edi
		retn
sub_401458	endp

; ---------------------------------------------------------------------------
		align 4
; [00000006 BYTES: COLLAPSED FUNCTION System::TObject::SafeCallException(System::TObject *,void	*). PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_4. PRESS KEYPAD "+" TO EXPAND]
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND]
		align 4

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



sub_40149C	proc near		; DATA XREF: CODE:00401044o
					; CODE:004043C8o ...
		push	ebx
		mov	bx, [edx]
		or	bx, bx
		jz	short loc_4014BC
		cmp	bx, 0C000h
		jnb	short loc_4014BC
		push	eax
		mov	eax, [eax]
		call	sub_401458
		pop	eax
		jz	short loc_4014BC
		mov	ecx, ebx
		pop	ebx
		jmp	ecx
; ---------------------------------------------------------------------------


loc_4014BC:				; CODE XREF: sub_40149C+7j
					; sub_40149C+Ej ...
		pop	ebx
		mov	ecx, [eax]
		jmp	dword ptr [ecx-10h]
sub_40149C	endp

; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4
; [00000029 BYTES: COLLAPSED FUNCTION System::__linkproc__ ClassCreate(System::TMetaClass *,bool). PRESS KEYPAD	"+" TO EXPAND]
; [00000005 BYTES: COLLAPSED FUNCTION sub_4014ED. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		mov	eax, [esp+2Ch]
		mov	eax, [eax+0Ch]
		test	eax, eax
		jz	short loc_40150B
		mov	ecx, [eax]
		mov	dl, 81h
		push	eax
		call	dword ptr [ecx-4]
		pop	eax
		call	@System@@ClassDestroy$qqrp14System@TObject ; System::__linkproc__ ClassDestroy(System::TObject *)


loc_40150B:				; CODE XREF: CODE:004014FBj
		call	@System@@RaiseAgain$qqrv ; System::__linkproc__	RaiseAgain(void)
		retn
; ---------------------------------------------------------------------------
		align 4
; [00000006 BYTES: COLLAPSED FUNCTION System::__linkproc__ ClassDestroy(System::TObject	*). PRESS KEYPAD "+" TO	EXPAND]
		align 4

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



sub_40151C	proc near		; CODE XREF: unknown_libname_3+10p
					; sub_404404+80p
		push	eax
		mov	edx, [eax]
		call	dword ptr [edx-1Ch]
		pop	eax
		retn
sub_40151C	endp

; [0000000F BYTES: COLLAPSED FUNCTION System::__linkproc__ BeforeDestruction(System::TObject *,signed char). PRESS KEYPAD "+" TO EXPAND]
		align 4

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



sub_401534	proc near		; CODE XREF: System::__linkproc__ RaiseAgain(void)+35p
		cmp	ds:byte_40A01C,	1
		jbe	short locret_40154D
		push	0		; lpArguments
		push	0		; nNumberOfArguments
		push	0		; dwExceptionFlags
		push	0EEDFADFh	; dwExceptionCode
		call	RaiseException	; RaiseException

locret_40154D:				; CODE XREF: sub_401534+7j
		retn
sub_401534	endp

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

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



sub_401550	proc near		; CODE XREF: sub_40161C+4Dp
		cmp	ds:byte_40A01C,	0
		jz	short locret_40156F
		push	eax
		push	eax
		push	edx
		push	esp		; lpArguments
		push	2		; nNumberOfArguments
		push	0		; dwExceptionFlags
		push	0EEDFAE4h	; dwExceptionCode
		call	RaiseException	; RaiseException
		add	esp, 8
		pop	eax

locret_40156F:				; CODE XREF: sub_401550+7j
		retn
sub_401550	endp

; ---------------------------------------------------------------------------
; [00000014 BYTES: COLLAPSED CHUNK OF FUNCTION unknown_libname_4. PRESS	KEYPAD "+" TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION unknown_libname_4. PRESS KEYPAD "+" TO EXPAND]
		align 4
; [0000001E BYTES: COLLAPSED FUNCTION unknown_libname_5. PRESS KEYPAD "+" TO EXPAND]
		align 4

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



sub_4015B8	proc near		; CODE XREF: sub_40161C+151p
		cmp	ds:byte_40A01C,	1
		jbe	short locret_4015DD
		push	eax
		push	edx
		push	ecx
		call	unknown_libname_5 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		push	ecx
		push	esp		; lpArguments
		push	1		; nNumberOfArguments
		push	0		; dwExceptionFlags
		push	0EEDFAE1h	; dwExceptionCode
		call	RaiseException	; RaiseException
		pop	ecx
		pop	ecx
		pop	edx
		pop	eax

locret_4015DD:				; CODE XREF: sub_4015B8+7j
		retn
sub_4015B8	endp

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

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



sub_4015E0	proc near		; CODE XREF: System::__linkproc__ DoneExcept(void)+28p
		cmp	ds:byte_40A01C,	1
		jbe	short locret_4015FA
		push	edx
		push	esp		; lpArguments
		push	1		; nNumberOfArguments
		push	0		; dwExceptionFlags
		push	0EEDFAE2h	; dwExceptionCode
		call	RaiseException	; RaiseException
		pop	edx

locret_4015FA:				; CODE XREF: sub_4015E0+7j
		retn
sub_4015E0	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_4015FC	proc near		; CODE XREF: CODE:loc_40193Cp
		push	eax
		push	edx
		cmp	ds:byte_40A01C,	1
		jbe	short loc_401616
		push	esp		; lpArguments
		push	2		; nNumberOfArguments
		push	0		; dwExceptionFlags
		push	0EEDFAE3h	; dwExceptionCode
		call	RaiseException	; RaiseException


loc_401616:				; CODE XREF: sub_4015FC+9j
		pop	edx
		pop	eax
		retn
sub_4015FC	endp

; ---------------------------------------------------------------------------
		align 4

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


; int __cdecl sub_40161C(struct	_EXCEPTION_POINTERS ExceptionInfo, int,	int, int, int, int, int, int, int)

sub_40161C	proc near		; CODE XREF: sub_4014EDj
					; sub_4044CC:loc_4045B1j ...

ExceptionInfo	= _EXCEPTION_POINTERS ptr  4
arg_8		= dword	ptr  0Ch
arg_24		= dword	ptr  28h

; FUNCTION CHUNK AT 00401748 SIZE 00000036 BYTES

		mov	eax, [esp+ExceptionInfo.ExceptionRecord]
		test	dword ptr [eax+4], 6
		jnz	loc_40173F
		cmp	dword ptr [eax], 0EEDFADEh
		mov	edx, [eax+18h]
		mov	ecx, [eax+14h]
		jz	short loc_4016A9
		cld
		call	unknown_libname_2 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, ds:dword_40B008
		test	edx, edx
		jz	loc_40173F
		call	edx ; dword_40B008
		test	eax, eax
		jz	loc_40173F
		mov	edx, [esp+arg_8]
		mov	ecx, [esp+ExceptionInfo.ExceptionRecord]
		cmp	dword ptr [ecx], 0EEFFACEh
		jz	short loc_4016A0
		call	sub_401550
		cmp	ds:byte_40A020,	0
		jbe	short loc_4016A0
		cmp	ds:byte_40A01C,	0
		ja	short loc_4016A0
		lea	ecx, [esp+ExceptionInfo]
		push	eax
		push	ecx		; ExceptionInfo
		call	UnhandledExceptionFilter	; UnhandledExceptionFilter
		cmp	eax, 0
		pop	eax
		jz	loc_40173F
		mov	edx, eax
		mov	eax, [esp+ExceptionInfo.ExceptionRecord]
		mov	ecx, [eax+0Ch]
		jmp	short loc_4016D0
; ---------------------------------------------------------------------------


loc_4016A0:				; CODE XREF: sub_40161C+4Bj
					; sub_40161C+59j ...
		mov	edx, eax
		mov	eax, [esp+ExceptionInfo.ExceptionRecord]
		mov	ecx, [eax+0Ch]


loc_4016A9:				; CODE XREF: sub_40161C+1Dj
		cmp	ds:byte_40A020,	1
		jbe	short loc_4016D0
		cmp	ds:byte_40A01C,	0
		ja	short loc_4016D0
		push	eax
		lea	eax, [esp+4+ExceptionInfo]
		push	edx
		push	ecx
		push	eax		; ExceptionInfo
		call	UnhandledExceptionFilter	; UnhandledExceptionFilter
		cmp	eax, 0
		pop	ecx
		pop	edx
		pop	eax
		jz	short loc_40173F


loc_4016D0:				; CODE XREF: sub_40161C+82j
					; sub_40161C+94j ...
		or	dword ptr [eax+4], 2
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		push	ebp
		mov	ebx, fs:[ebx]
		push	ebx
		push	eax
		push	edx
		push	ecx
		mov	edx, [esp+20h+ExceptionInfo.ContextRecord]
		push	0
		push	eax
		push	offset loc_4016F3
		push	edx
		call	RtlUnwind	; RtlUnwind


loc_4016F3:				; DATA XREF: sub_40161C+CCo
		mov	edi, [esp+arg_24]
		call	sub_40284C
		push	dword ptr [eax+0]
		mov	[eax+0], esp
		mov	ebp, [edi+8]
		mov	ebx, [edi+4]
		mov	dword ptr [edi+4], offset loc_40171F
		add	ebx, 5
		call	unknown_libname_4 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		jmp	ebx
; ---------------------------------------------------------------------------


loc_40171F:				; DATA XREF: sub_40161C+F2o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		call	sub_40284C
		mov	ecx, [eax+0]
		mov	edx, [ecx]
		mov	[eax+0], edx
		mov	eax, [ecx+8]
		jmp	sub_4013F4
; ---------------------------------------------------------------------------


loc_40173F:				; CODE XREF: sub_40161C+Bj
					; sub_40161C+2Dj ...
		mov	eax, 1
		retn
sub_40161C	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_40161C

unknown_libname_6:			; CODE XREF: sub_40161C:loc_40171Fj
					; sub_40272C:loc_402768j ...
		mov	eax, [esp+ExceptionInfo.ExceptionRecord] ; BDS 2005-2006 and Delphi6-7 Visual Component	Library
		mov	edx, [esp+ExceptionInfo.ContextRecord]
		test	dword ptr [eax+4], 6
		jz	short loc_401778
		mov	ecx, [edx+4]
		mov	dword ptr [edx+4], offset loc_401778
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebp, [edx+8]
		add	ecx, 5
		call	sub_4015B8
		call	ecx
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx


loc_401778:				; CODE XREF: sub_40161C+13Bj
					; DATA XREF: sub_40161C+140o
		mov	eax, 1
		retn
; END OF FUNCTION CHUNK	FOR sub_40161C
; ---------------------------------------------------------------------------
		align 10h
; [00000051 BYTES: COLLAPSED FUNCTION System::__linkproc__ RaiseAgain(void). PRESS KEYPAD "+" TO EXPAND]
		align 4
; [0000002F BYTES: COLLAPSED FUNCTION System::__linkproc__ DoneExcept(void). PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn
; [00000015 BYTES: COLLAPSED FUNCTION System::__linkproc__ TryFinallyExit(void). PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4

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



sub_40181C	proc near		; CODE XREF: unknown_libname_7+97p
		mov	[esp+0], edx
		jmp	sub_401BF4
sub_40181C	endp

; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4
; [000000A0 BYTES: COLLAPSED FUNCTION unknown_libname_7. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_4018C8:				; DATA XREF: sub_401964+12o
		mov	eax, [esp+4]
		test	dword ptr [eax+4], 6
		jnz	loc_401961
		cmp	ds:byte_40A01C,	0
		ja	short loc_4018F1
		lea	eax, [esp+4]
		push	eax
		call	UnhandledExceptionFilter	; UnhandledExceptionFilter
		cmp	eax, 0
		jz	short loc_401961


loc_4018F1:				; CODE XREF: CODE:004018E0j
		mov	eax, [esp+4]
		cld
		call	unknown_libname_2 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [esp+8]
		push	0
		push	eax
		push	offset loc_40190D
		push	edx
		call	RtlUnwind	; RtlUnwind


loc_40190D:				; DATA XREF: CODE:00401902o
		mov	ebx, [esp+4]
		cmp	dword ptr [ebx], 0EEDFADEh
		mov	edx, [ebx+14h]
		mov	eax, [ebx+18h]
		jz	short loc_40193C
		mov	edx, ds:dword_40B008
		test	edx, edx
		jz	unknown_libname_7 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	eax, ebx
		call	edx ; dword_40B008
		test	eax, eax
		jz	unknown_libname_7 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebx+0Ch]


loc_40193C:				; CODE XREF: CODE:0040191Dj
		call	sub_4015FC
		mov	ecx, ds:dword_40B000
		test	ecx, ecx
		jz	short loc_40194D
		call	ecx ; dword_40B000


loc_40194D:				; CODE XREF: CODE:00401949j
		mov	ecx, [esp+4]
		mov	eax, 0D9h
		mov	edx, [ecx+14h]
		mov	[esp], edx
		jmp	sub_401BF4
; ---------------------------------------------------------------------------


loc_401961:				; CODE XREF: CODE:004018D3j
					; CODE:004018EFj
		xor	eax, eax
		retn

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

; Attributes: bp-based frame fpd=0FFFFFFA0h


sub_401964	proc near		; CODE XREF: System::__linkproc__ StartLib(void)+4Fp

arg_4C		= byte ptr  54h

		xor	edx, edx
		push	ebp
		lea	ebp, [esp+60h]
		lea	eax, [ebp-60h+arg_4C]
		mov	ecx, fs:[edx]
		mov	fs:[edx], eax
		mov	[eax], ecx
		mov	dword ptr [eax+4], offset loc_4018C8
		mov	[eax+8], ebp
		mov	ds:dword_40B030, eax
		pop	ebp
		retn
sub_401964	endp


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



sub_401988	proc near		; CODE XREF: sub_401B04:loc_401B52p
					; DATA XREF: DATA:off_40A010o
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	edi, offset dword_40B02C
		mov	eax, [edi+8]
		test	eax, eax
		jz	short loc_4019B6
		mov	ebx, [edi+0Ch]
		mov	esi, [eax+4]
		test	ebx, ebx
		jle	short loc_4019B6


loc_4019A2:				; CODE XREF: sub_401988+2Cj
		dec	ebx
		mov	[edi+0Ch], ebx
		mov	eax, [esi+ebx*8+4]
		test	eax, eax
		jz	short loc_4019B2
		mov	ebp, eax
		call	ebp


loc_4019B2:				; CODE XREF: sub_401988+24j
		test	ebx, ebx
		jg	short loc_4019A2


loc_4019B6:				; CODE XREF: sub_401988+Ej
					; sub_401988+18j
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_401988	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_4019BC	proc near		; CODE XREF: sub_4019BC+43p
					; sub_401A10+12p
					; DATA XREF: ...
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	edi, ecx
		mov	ebp, edx
		mov	esi, eax
		mov	eax, offset sub_4019BC
		cmp	eax, ds:off_40A00C
		setz	bl
		cmp	edi, ebp
		jle	short loc_401A0B


loc_4019D8:				; CODE XREF: sub_4019BC+4Dj
		mov	eax, [esi+ebp*8]
		inc	ebp
		mov	ds:dword_40B038, ebp
		test	eax, eax
		jz	short loc_4019E8
		call	eax


loc_4019E8:				; CODE XREF: sub_4019BC+28j
		test	bl, bl
		jz	short loc_401A07
		mov	eax, offset sub_4019BC
		cmp	eax, ds:off_40A00C
		jz	short loc_401A07
		mov	ecx, edi
		mov	edx, ebp
		mov	eax, esi
		call	ds:off_40A00C
		jmp	short loc_401A0B
; ---------------------------------------------------------------------------


loc_401A07:				; CODE XREF: sub_4019BC+2Ej
					; sub_4019BC+3Bj
		cmp	edi, ebp
		jg	short loc_4019D8


loc_401A0B:				; CODE XREF: sub_4019BC+1Aj
					; sub_4019BC+49j
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4019BC	endp


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



sub_401A10	proc near		; CODE XREF: System::__linkproc__ StartLib(void)+99p
		mov	eax, ds:dword_40B034
		test	eax, eax
		jz	short locret_401A28
		mov	edx, [eax]
		xor	ecx, ecx
		mov	eax, [eax+4]
		xchg	ecx, edx
		call	ds:off_40A00C

locret_401A28:				; CODE XREF: sub_401A10+7j
		retn
sub_401A10	endp

; ---------------------------------------------------------------------------
		align 4
; [000000A1 BYTES: COLLAPSED FUNCTION System::__linkproc__ StartLib(void). PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 10h
; [00000033 BYTES: COLLAPSED FUNCTION sub_401AD0. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn

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

; Attributes: noreturn


sub_401B04	proc near		; CODE XREF: System::__linkproc__ StartLib(void)+93j
					; sub_401BF4-6j ...
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebx, offset dword_40B02C
		mov	esi, offset dword_40B018
		mov	edi, offset dword_40B01C
		cmp	byte ptr [ebx+24h], 0
		jnz	short loc_401B33
		cmp	dword ptr [edi], 0
		jz	short loc_401B33


loc_401B22:				; CODE XREF: sub_401B04+2Dj
		mov	edx, [edi]
		mov	eax, edx
		xor	edx, edx
		mov	[edi], edx
		mov	ebp, eax
		call	ebp
		cmp	dword ptr [edi], 0
		jnz	short loc_401B22


loc_401B33:				; CODE XREF: sub_401B04+17j
					; sub_401B04+1Cj
		cmp	ds:dword_40B020, 0
		jz	short loc_401B42
		call	ds:off_40A044


loc_401B42:				; CODE XREF: sub_401B04+36j
					; sub_401B04+B3j
		cmp	byte ptr [ebx+24h], 2
		jnz	short loc_401B52
		cmp	dword ptr [esi], 0
		jnz	short loc_401B52
		xor	eax, eax
		mov	[ebx+0Ch], eax


loc_401B52:				; CODE XREF: sub_401B04+42j
					; sub_401B04+47j
		call	ds:off_40A010
		cmp	byte ptr [ebx+24h], 1
		jbe	short loc_401B63
		cmp	dword ptr [esi], 0
		jz	short loc_401B81


loc_401B63:				; CODE XREF: sub_401B04+58j
		mov	eax, [ebx+10h]
		test	eax, eax
		jz	short loc_401B81
		call	ds:off_40A02C
		mov	eax, [ebx+10h]
		mov	edx, [eax+10h]
		cmp	edx, [eax+4]
		jz	short loc_401B81
		push	edx		; hLibModule
		call	FreeLibrary	; FreeLibrary


loc_401B81:				; CODE XREF: sub_401B04+5Dj
					; sub_401B04+64j ...
		call	ds:off_40A014
		cmp	byte ptr [ebx+24h], 1
		jnz	short loc_401B90
		call	dword ptr [ebx+28h]


loc_401B90:				; CODE XREF: sub_401B04+87j
		cmp	byte ptr [ebx+24h], 0
		jz	short loc_401B9B
		call	sub_401AD0


loc_401B9B:				; CODE XREF: sub_401B04+90j
		cmp	dword ptr [ebx], 0
		jnz	short loc_401BA8
		mov	eax, [esi]
		push	eax		; uExitCode
		call	ExitProcess	; ExitProcess
; ---------------------------------------------------------------------------


loc_401BA8:				; CODE XREF: sub_401B04+9Aj
		mov	eax, [ebx]
		push	esi
		mov	esi, eax
		mov	edi, ebx
		mov	ecx, 0Bh
		rep movsd
		pop	esi
		jmp	short loc_401B42
sub_401B04	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
aPortionsCopyri	db 'Portions Copyright (c) 1983,99 Borland',0
; ---------------------------------------------------------------------------
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_401BF4


loc_401BE8:				; CODE XREF: sub_401BF4+6j
		mov	ds:dword_40B018, eax
		jmp	sub_401B04
; END OF FUNCTION CHUNK	FOR sub_401BF4
; ---------------------------------------------------------------------------
		retn

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



sub_401BF4	proc near		; CODE XREF: System::__linkproc__ ReallocMem(void *&,int):loc_4011F0j
					; sub_40181C+3j ...

; FUNCTION CHUNK AT 00401BE8 SIZE 0000000B BYTES

		pop	ds:dword_40B020
		jmp	loc_401BE8
sub_401BF4	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		retn

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



sub_401C00	proc near		; CODE XREF: System::__linkproc__ LStrFromPCharLen(System::AnsiString &,char *,int)+23p
					; sub_401D14+16p ...
		mov	edx, [eax]
		test	edx, edx
		jz	short locret_401C21
		mov	dword ptr [eax], 0
		mov	ecx, [edx-8]
		dec	ecx
		jl	short locret_401C21
		dec	dword ptr [edx-8]
		jnz	short locret_401C21
		push	eax
		lea	eax, [edx-8]
		call	sub_401164
		pop	eax

locret_401C21:				; CODE XREF: sub_401C00+4j
					; sub_401C00+10j ...
		retn
sub_401C00	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_401C24	proc near		; CODE XREF: sub_40231C+63p
					; sub_402B8C+A2p ...
		push	ebx
		push	esi
		mov	ebx, eax
		mov	esi, edx


loc_401C2A:				; CODE XREF: sub_401C24+29j
		mov	edx, [ebx]
		test	edx, edx
		jz	short loc_401C49
		mov	dword ptr [ebx], 0
		mov	ecx, [edx-8]
		dec	ecx
		jl	short loc_401C49
		dec	dword ptr [edx-8]
		jnz	short loc_401C49
		lea	eax, [edx-8]
		call	sub_401164


loc_401C49:				; CODE XREF: sub_401C24+Aj
					; sub_401C24+16j ...
		add	ebx, 4
		dec	esi
		jnz	short loc_401C2A
		pop	esi
		pop	ebx
		retn
sub_401C24	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_401C54	proc near		; CODE XREF: System::__linkproc__ LStrCat(void)+8j
					; System::__linkproc__ LStrCat3(void)+6j ...
		test	edx, edx
		jz	short loc_401C7B
		mov	ecx, [edx-8]
		inc	ecx
		jg	short loc_401C78
		push	eax
		push	edx
		mov	eax, [edx-4]
		call	sub_401CC0
		mov	edx, eax
		pop	eax
		push	edx
		mov	ecx, [eax-4]
		call	sub_401210
		pop	edx
		pop	eax
		jmp	short loc_401C7B
; ---------------------------------------------------------------------------


loc_401C78:				; CODE XREF: sub_401C54+8j
		inc	dword ptr [edx-8]


loc_401C7B:				; CODE XREF: sub_401C54+2j
					; sub_401C54+22j
		xchg	edx, [eax]
		test	edx, edx
		jz	short locret_401C94
		mov	ecx, [edx-8]
		dec	ecx
		jl	short locret_401C94
		dec	dword ptr [edx-8]
		jnz	short locret_401C94
		lea	eax, [edx-8]
		call	sub_401164

locret_401C94:				; CODE XREF: sub_401C54+2Bj
					; sub_401C54+31j ...
		retn
sub_401C54	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_401C98	proc near		; CODE XREF: sub_403A58+24p
					; sub_403EF8+2Bp ...
		test	edx, edx
		jz	short loc_401CA5
		mov	ecx, [edx-8]
		inc	ecx
		jle	short loc_401CA5
		inc	dword ptr [edx-8]


loc_401CA5:				; CODE XREF: sub_401C98+2j
					; sub_401C98+8j
		xchg	edx, [eax]
		test	edx, edx
		jz	short locret_401CBE
		mov	ecx, [edx-8]
		dec	ecx
		jl	short locret_401CBE
		dec	dword ptr [edx-8]
		jnz	short locret_401CBE
		lea	eax, [edx-8]
		call	sub_401164

locret_401CBE:				; CODE XREF: sub_401C98+11j
					; sub_401C98+17j ...
		retn
sub_401C98	endp

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

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



sub_401CC0	proc near		; CODE XREF: sub_401C54+Fp
					; System::__linkproc__ LStrFromPCharLen(System::AnsiString &,char *,int)+Bp ...
		test	eax, eax
		jle	short loc_401CE0
		push	eax
		add	eax, 9
		call	sub_40114C
		add	eax, 8
		pop	edx
		mov	[eax-4], edx
		mov	dword ptr [eax-8], 1
		mov	byte ptr [eax+edx], 0
		retn
; ---------------------------------------------------------------------------


loc_401CE0:				; CODE XREF: sub_401CC0+2j
		xor	eax, eax
		retn
sub_401CC0	endp

; ---------------------------------------------------------------------------
		align 4
; [0000002E BYTES: COLLAPSED FUNCTION System::__linkproc__ LStrFromPCharLen(System::AnsiString &,char *,int). PRESS KEYPAD "+" TO EXPAND]
		align 4

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



sub_401D14	proc near		; CODE XREF: System::__linkproc__ LStrFromWStr(System::AnsiString &,System::WideString):loc_401DEBj

MultiByteStr	= byte ptr -810h

		push	ebx
		push	esi
		push	edi
		push	ebp
		add	esp, 0FFFFF800h
		mov	ebx, ecx
		mov	ebp, edx
		mov	edi, eax
		test	ebx, ebx
		jg	short loc_401D31
		mov	eax, edi
		call	sub_401C00
		jmp	short loc_401D98
; ---------------------------------------------------------------------------


loc_401D31:				; CODE XREF: sub_401D14+12j
		cmp	ebx, 400h
		jge	short loc_401D65
		push	0		; lpUsedDefaultChar
		push	0		; lpDefaultChar
		push	800h		; cbMultiByte
		lea	eax, [esp+81Ch+MultiByteStr]
		push	eax		; lpMultiByteStr
		push	ebx		; cchWideChar
		push	ebp		; lpWideCharStr
		push	0		; dwFlags
		push	0		; CodePage
		call	WideCharToMultiByte	; WideCharToMultiByte
		mov	esi, eax
		test	esi, esi
		jle	short loc_401D65
		mov	edx, esp
		mov	eax, edi
		mov	ecx, esi
		call	@System@@LStrFromPCharLen$qqrr17System@AnsiStringpci ; System::__linkproc__ LStrFromPCharLen(System::AnsiString	&,char *,int)
		jmp	short loc_401D98
; ---------------------------------------------------------------------------


loc_401D65:				; CODE XREF: sub_401D14+23j
					; sub_401D14+42j
		push	0		; lpUsedDefaultChar
		push	0		; lpDefaultChar
		push	0		; cbMultiByte
		push	0		; lpMultiByteStr
		push	ebx		; cchWideChar
		push	ebp		; lpWideCharStr
		push	0		; dwFlags
		push	0		; CodePage
		call	WideCharToMultiByte	; WideCharToMultiByte
		mov	esi, eax
		mov	eax, edi
		mov	ecx, esi
		xor	edx, edx
		call	@System@@LStrFromPCharLen$qqrr17System@AnsiStringpci ; System::__linkproc__ LStrFromPCharLen(System::AnsiString	&,char *,int)
		push	0		; lpUsedDefaultChar
		push	0		; lpDefaultChar
		push	esi		; cbMultiByte
		mov	eax, [edi]
		push	eax		; lpMultiByteStr
		push	ebx		; cchWideChar
		push	ebp		; lpWideCharStr
		push	0		; dwFlags
		push	0		; CodePage
		call	WideCharToMultiByte	; WideCharToMultiByte


loc_401D98:				; CODE XREF: sub_401D14+1Bj
					; sub_401D14+4Fj
		add	esp, 800h
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_401D14	endp

; ---------------------------------------------------------------------------
		align 4
; [0000002C BYTES: COLLAPSED FUNCTION unknown_libname_8. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4
; [0000000A BYTES: COLLAPSED FUNCTION unknown_libname_9. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 10h
; [00000010 BYTES: COLLAPSED FUNCTION System::__linkproc__ LStrFromWStr(System::AnsiString &,System::WideString). PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4

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



sub_401DF4	proc near		; CODE XREF: sub_402B8C+5Cp
					; sub_40327C+3p ...
		test	eax, eax
		jz	short locret_401DFB
		mov	eax, [eax-4]

locret_401DFB:				; CODE XREF: sub_401DF4+2j
		retn
sub_401DF4	endp

; [00000044 BYTES: COLLAPSED FUNCTION System::__linkproc__ LStrCat(void). PRESS	KEYPAD "+" TO EXPAND]
; [00000073 BYTES: COLLAPSED FUNCTION System::__linkproc__ LStrCat3(void). PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn

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



sub_401EB4	proc near		; CODE XREF: sub_402B8C+7Ep
					; sub_404650+72p ...
		push	ebx
		push	esi
		push	edx
		push	eax
		mov	ebx, edx
		xor	eax, eax


loc_401EBC:				; CODE XREF: sub_401EB4+14j
		mov	ecx, [esp+edx*4+10h]
		test	ecx, ecx
		jz	short loc_401EC7
		add	eax, [ecx-4]


loc_401EC7:				; CODE XREF: sub_401EB4+Ej
		dec	edx
		jnz	short loc_401EBC
		call	sub_401CC0
		push	eax
		mov	esi, eax


loc_401ED2:				; CODE XREF: sub_401EB4+33j
		mov	eax, [esp+ebx*4+14h]
		mov	edx, esi
		test	eax, eax
		jz	short loc_401EE6
		mov	ecx, [eax-4]
		add	esi, ecx
		call	sub_401210


loc_401EE6:				; CODE XREF: sub_401EB4+26j
		dec	ebx
		jnz	short loc_401ED2
		pop	edx
		pop	eax
		test	edx, edx
		jz	short loc_401EF2
		dec	dword ptr [edx-8]


loc_401EF2:				; CODE XREF: sub_401EB4+39j
		call	sub_401C54
		pop	edx
		pop	esi
		pop	ebx
		pop	eax
		lea	esp, [esp+edx*4]
		jmp	eax
sub_401EB4	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4
; [000000A2 BYTES: COLLAPSED FUNCTION System::__linkproc__ LStrCmp(void). PRESS	KEYPAD "+" TO EXPAND]
		align 4

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



sub_401FA8	proc near		; CODE XREF: sub_404404+1Ep
					; sub_4050E4+Fp ...
		test	eax, eax
		jz	short locret_401FB5
		mov	edx, [eax-8]
		inc	edx
		jle	short locret_401FB5
		inc	dword ptr [eax-8]

locret_401FB5:				; CODE XREF: sub_401FA8+2j
					; sub_401FA8+8j
		retn
sub_401FA8	endp

; ---------------------------------------------------------------------------
		align 4
; [0000000C BYTES: COLLAPSED FUNCTION System::__linkproc__ LStrToPChar(System::AnsiString). PRESS KEYPAD "+" TO	EXPAND]

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



sub_401FC4	proc near		; CODE XREF: sub_402038+9p
					; sub_403AF8+76p ...
		mov	edx, [eax]
		test	edx, edx
		jz	short loc_401FF5
		mov	ecx, [edx-8]
		dec	ecx
		jz	short loc_401FF5
		push	ebx
		mov	ebx, eax
		mov	eax, [edx-4]
		call	sub_401CC0
		mov	edx, eax
		mov	eax, [ebx]
		mov	[ebx], edx
		mov	ecx, [eax-8]
		dec	ecx
		jl	short loc_401FEA
		dec	dword ptr [eax-8]


loc_401FEA:				; CODE XREF: sub_401FC4+21j
		mov	ecx, [eax-4]
		call	sub_401210
		mov	edx, [ebx]
		pop	ebx


loc_401FF5:				; CODE XREF: sub_401FC4+4j
					; sub_401FC4+Aj
		mov	eax, edx
		retn
sub_401FC4	endp

; [0000003F BYTES: COLLAPSED FUNCTION System::__linkproc__ LStrCopy(void). PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn

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



sub_402038	proc near		; CODE XREF: sub_403A58+6Fp
					; sub_403EF8+76p
		push	ebx
		push	esi
		push	edi
		mov	ebx, eax
		mov	esi, edx
		mov	edi, ecx
		call	sub_401FC4
		mov	edx, [ebx]
		test	edx, edx
		jz	short loc_40207C
		mov	ecx, [edx-4]
		dec	esi
		jl	short loc_40207C
		cmp	esi, ecx
		jge	short loc_40207C
		test	edi, edi
		jle	short loc_40207C
		sub	ecx, esi
		cmp	edi, ecx
		jle	short loc_402062
		mov	edi, ecx


loc_402062:				; CODE XREF: sub_402038+26j
		sub	ecx, edi
		add	edx, esi
		lea	eax, [edx+edi]
		call	sub_401210
		mov	edx, [ebx]
		mov	eax, ebx
		mov	edx, [edx-4]
		sub	edx, edi
		call	sub_4020C8


loc_40207C:				; CODE XREF: sub_402038+12j
					; sub_402038+18j ...
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_402038	endp

; [00000045 BYTES: COLLAPSED FUNCTION unknown_libname_10. PRESS	KEYPAD "+" TO EXPAND]
		align 4

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



sub_4020C8	proc near		; CODE XREF: System::__linkproc__ LStrCat(void)+21p
					; System::__linkproc__ LStrCat(void):loc_401E34p ...
		push	ebx
		push	esi
		push	edi
		mov	ebx, eax
		mov	esi, edx
		xor	edi, edi
		test	edx, edx
		jz	short loc_40211D
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_4020FE
		cmp	dword ptr [eax-8], 1
		jnz	short loc_4020FE
		sub	eax, 8
		add	edx, 9
		push	eax
		mov	eax, esp
		call	@System@@ReallocMem$qqrrpvi ; System::__linkproc__ ReallocMem(void *&,int)
		pop	eax
		add	eax, 8
		mov	[ebx], eax
		mov	[eax-4], esi
		mov	byte ptr [eax+esi], 0
		jmp	short loc_402126
; ---------------------------------------------------------------------------


loc_4020FE:				; CODE XREF: sub_4020C8+11j
					; sub_4020C8+17j
		mov	eax, edx
		call	sub_401CC0
		mov	edi, eax
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_40211D
		mov	edx, edi
		mov	ecx, [eax-4]
		cmp	ecx, esi
		jl	short loc_402118
		mov	ecx, esi


loc_402118:				; CODE XREF: sub_4020C8+4Cj
		call	sub_401210


loc_40211D:				; CODE XREF: sub_4020C8+Bj
					; sub_4020C8+43j
		mov	eax, ebx
		call	sub_401C00
		mov	[ebx], edi


loc_402126:				; CODE XREF: sub_4020C8+34j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4020C8	endp

; ---------------------------------------------------------------------------
		align 4
; [00000007 BYTES: COLLAPSED CHUNK OF FUNCTION System::__linkproc__ WStrFromPWCharLen(System::WideString &,wchar_t *,int). PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn
; [00000015 BYTES: COLLAPSED FUNCTION System::__linkproc__ WStrClr(void	*). PRESS KEYPAD "+" TO	EXPAND]
		align 4

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



sub_40214C	proc near		; CODE XREF: System::__linkproc__ WStrFromLStr(System::WideString &,System::AnsiString):loc_4021FDj

WideCharStr	= word ptr -810h

		push	ebx
		push	esi
		push	edi
		push	ebp
		add	esp, 0FFFFF800h
		mov	ebx, ecx
		mov	ebp, edx
		mov	edi, eax
		test	ebx, ebx
		jg	short loc_402169
		mov	eax, edi
		call	@System@@WStrClr$qqrpv ; System::__linkproc__ WStrClr(void *)
		jmp	short loc_4021C4
; ---------------------------------------------------------------------------


loc_402169:				; CODE XREF: sub_40214C+12j
		cmp	ebx, 400h
		jge	short loc_402199
		push	400h		; cchWideChar
		lea	eax, [esp+814h+WideCharStr]
		push	eax		; lpWideCharStr
		push	ebx		; cbMultiByte
		push	ebp		; lpMultiByteStr
		push	0		; dwFlags
		push	0		; CodePage
		call	MultiByteToWideChar	; MultiByteToWideChar
		mov	esi, eax
		test	esi, esi
		jle	short loc_402199
		mov	edx, esp
		mov	eax, edi
		mov	ecx, esi
		call	@System@@WStrFromPWCharLen$qqrr17System@WideStringpbi ;	System::__linkproc__ WStrFromPWCharLen(System::WideString &,wchar_t *,int)
		jmp	short loc_4021C4
; ---------------------------------------------------------------------------


loc_402199:				; CODE XREF: sub_40214C+23j
					; sub_40214C+3Ej
		push	0		; cchWideChar
		push	0		; lpWideCharStr
		push	ebx		; cbMultiByte
		push	ebp		; lpMultiByteStr
		push	0		; dwFlags
		push	0		; CodePage
		call	MultiByteToWideChar	; MultiByteToWideChar
		mov	esi, eax
		mov	eax, edi
		mov	ecx, esi
		xor	edx, edx
		call	@System@@WStrFromPWCharLen$qqrr17System@WideStringpbi ;	System::__linkproc__ WStrFromPWCharLen(System::WideString &,wchar_t *,int)
		push	esi		; cchWideChar
		mov	eax, [edi]
		push	eax		; lpWideCharStr
		push	ebx		; cbMultiByte
		push	ebp		; lpMultiByteStr
		push	0		; dwFlags
		push	0		; CodePage
		call	MultiByteToWideChar	; MultiByteToWideChar


loc_4021C4:				; CODE XREF: sub_40214C+1Bj
					; sub_40214C+4Bj
		add	esp, 800h
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40214C	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000023 BYTES: COLLAPSED FUNCTION System::__linkproc__ WStrFromPWCharLen(System::WideString	&,wchar_t *,int). PRESS	KEYPAD "+" TO EXPAND]
		align 4
; [0000000E BYTES: COLLAPSED FUNCTION System::__linkproc__ WStrFromLStr(System::WideString &,System::AnsiString). PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4
; [0000001F BYTES: COLLAPSED FUNCTION System::__linkproc__ WStrAddRef(System::WideString &). PRESS KEYPAD "+" TO EXPAND]
		align 4

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



sub_402224	proc near		; CODE XREF: sub_402250+85p
		xor	ecx, ecx
		push	ebx
		mov	cl, [edx+1]
		push	esi
		push	edi
		mov	ebx, eax
		lea	esi, [edx+ecx+0Ah]
		mov	edi, [edx+ecx+6]


loc_402236:				; CODE XREF: sub_402224+24j
		mov	edx, [esi]
		mov	eax, [esi+4]
		add	eax, ebx
		mov	edx, [edx]
		call	unknown_libname_11 ; BDS 2005-2006 and Delphi6-7 Visual	Component Library
		add	esi, 8
		dec	edi
		jg	short loc_402236
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_402224	endp

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

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



sub_402250	proc near		; CODE XREF: sub_402250+6Fp
					; unknown_libname_11+5j ...
		push	ebx
		push	esi
		push	edi
		mov	ebx, eax
		mov	esi, edx
		mov	edi, ecx
		xor	edx, edx
		mov	al, [esi]
		mov	dl, [esi+1]
		xor	ecx, ecx
		cmp	al, 0Ah
		jz	short loc_40228F
		cmp	al, 0Bh
		jz	short loc_40228F
		cmp	al, 0Ch
		jz	short loc_402299
		cmp	al, 0Dh
		jz	short loc_4022AC
		cmp	al, 0Eh
		jz	short loc_4022CA
		cmp	al, 0Fh
		jz	short loc_40228F
		cmp	al, 11h
		jz	short loc_40228F
		mov	al, 2
		pop	edi
		pop	esi
		pop	ebx
		jmp	loc_4011CC
; ---------------------------------------------------------------------------


loc_40228F:				; CODE XREF: sub_402250+15j
					; sub_402250+1Aj ...
		mov	[ebx], ecx
		add	ebx, 4
		dec	edi
		jg	short loc_40228F
		jmp	short loc_4022DE
; ---------------------------------------------------------------------------


loc_402299:				; CODE XREF: sub_402250+1Fj
					; sub_402250+58j
		mov	[ebx], ecx
		mov	[ebx+4], ecx
		mov	[ebx+8], ecx
		mov	[ebx+0Ch], ecx
		add	ebx, 10h
		dec	edi
		jg	short loc_402299
		jmp	short loc_4022DE
; ---------------------------------------------------------------------------


loc_4022AC:				; CODE XREF: sub_402250+24j
		push	ebp
		mov	ebp, edx


loc_4022AF:				; CODE XREF: sub_402250+75j
		mov	edx, [esi+ebp+0Ah]
		mov	eax, ebx
		add	ebx, [esi+ebp+2]
		mov	ecx, [esi+ebp+6]
		mov	edx, [edx]
		call	sub_402250
		dec	edi
		jg	short loc_4022AF
		pop	ebp
		jmp	short loc_4022DE
; ---------------------------------------------------------------------------


loc_4022CA:				; CODE XREF: sub_402250+29j
		push	ebp
		mov	ebp, edx


loc_4022CD:				; CODE XREF: sub_402250+8Bj
		mov	eax, ebx
		add	ebx, [esi+ebp+2]
		mov	edx, esi
		call	sub_402224
		dec	edi
		jg	short loc_4022CD
		pop	ebp


loc_4022DE:				; CODE XREF: sub_402250+47j
					; sub_402250+5Aj ...
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_402250	endp

; ---------------------------------------------------------------------------
		align 4
; [0000000A BYTES: COLLAPSED FUNCTION unknown_libname_11. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 10h

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



sub_4022F0	proc near		; CODE XREF: sub_40139C+12p
					; sub_40231C+BCp
		xor	ecx, ecx
		push	ebx
		mov	cl, [edx+1]
		push	esi
		push	edi
		mov	ebx, eax
		lea	esi, [edx+ecx+0Ah]
		mov	edi, [edx+ecx+6]


loc_402302:				; CODE XREF: sub_4022F0+24j
		mov	edx, [esi]
		mov	eax, [esi+4]
		add	eax, ebx
		mov	edx, [edx]
		call	unknown_libname_12 ; BDS 2005-2006 and Delphi6-7 Visual	Component Library
		add	esi, 8
		dec	edi
		jg	short loc_402302
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4022F0	endp


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



sub_40231C	proc near		; CODE XREF: sub_40231C+A6p
					; unknown_libname_12+5j ...
		cmp	ecx, 0
		jz	locret_402405
		push	eax
		push	ebx
		push	esi
		push	edi
		mov	ebx, eax
		mov	esi, edx
		mov	edi, ecx
		xor	edx, edx
		mov	al, [esi]
		mov	dl, [esi+1]
		cmp	al, 0Ah
		jz	short loc_40236C
		cmp	al, 0Bh
		jz	short loc_402386
		cmp	al, 0Ch
		jz	short loc_40239F
		cmp	al, 0Dh
		jz	short loc_4023AF
		cmp	al, 0Eh
		jz	short loc_4023CD
		cmp	al, 0Fh
		jz	loc_4023E3
		cmp	al, 11h
		jz	loc_4023F2
		pop	edi
		pop	esi
		pop	ebx
		pop	eax
		mov	al, 2
		jmp	loc_4011CC
; ---------------------------------------------------------------------------


loc_40236C:				; CODE XREF: sub_40231C+1Dj
		cmp	ecx, 1
		mov	eax, ebx
		jg	short loc_40237D
		call	sub_401C00
		jmp	loc_402401
; ---------------------------------------------------------------------------


loc_40237D:				; CODE XREF: sub_40231C+55j
		mov	edx, ecx
		call	sub_401C24
		jmp	short loc_402401
; ---------------------------------------------------------------------------


loc_402386:				; CODE XREF: sub_40231C+22j
		cmp	ecx, 1
		mov	eax, ebx
		jg	short loc_402395
		call	ds:off_40A004
		jmp	short loc_402401
; ---------------------------------------------------------------------------


loc_402395:				; CODE XREF: sub_40231C+6Fj
		mov	edx, ecx
		call	ds:off_40A008
		jmp	short loc_402401
; ---------------------------------------------------------------------------


loc_40239F:				; CODE XREF: sub_40231C+27j
					; sub_40231C+8Fj
		mov	eax, ebx
		add	ebx, 10h
		call	ds:off_40A000
		dec	edi
		jg	short loc_40239F
		jmp	short loc_402401
; ---------------------------------------------------------------------------


loc_4023AF:				; CODE XREF: sub_40231C+2Cj
		push	ebp
		mov	ebp, edx


loc_4023B2:				; CODE XREF: sub_40231C+ACj
		mov	edx, [esi+ebp+0Ah]
		mov	eax, ebx
		add	ebx, [esi+ebp+2]
		mov	ecx, [esi+ebp+6]
		mov	edx, [edx]
		call	sub_40231C
		dec	edi
		jg	short loc_4023B2
		pop	ebp
		jmp	short loc_402401
; ---------------------------------------------------------------------------


loc_4023CD:				; CODE XREF: sub_40231C+31j
		push	ebp
		mov	ebp, edx


loc_4023D0:				; CODE XREF: sub_40231C+C2j
		mov	eax, ebx
		add	ebx, [esi+ebp+2]
		mov	edx, esi
		call	sub_4022F0
		dec	edi
		jg	short loc_4023D0
		pop	ebp
		jmp	short loc_402401
; ---------------------------------------------------------------------------


loc_4023E3:				; CODE XREF: sub_40231C+36j
					; sub_40231C+D2j
		mov	eax, ebx
		add	ebx, 4
		call	@System@@IntfClear$qqrr45System@_DelphiInterface$t17System@IInterface_ ; System::__linkproc__ IntfClear(System::DelphiInterface<System::IInterface> &)
		dec	edi
		jg	short loc_4023E3
		jmp	short loc_402401
; ---------------------------------------------------------------------------


loc_4023F2:				; CODE XREF: sub_40231C+3Fj
					; sub_40231C+E3j
		mov	eax, ebx
		mov	edx, esi
		add	ebx, 4
		call	sub_402418
		dec	edi
		jg	short loc_4023F2


loc_402401:				; CODE XREF: sub_40231C+5Cj
					; sub_40231C+68j ...
		pop	edi
		pop	esi
		pop	ebx
		pop	eax

locret_402405:				; CODE XREF: sub_40231C+3j
		retn
sub_40231C	endp

; ---------------------------------------------------------------------------
		align 4
; [0000000A BYTES: COLLAPSED FUNCTION unknown_libname_12. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
		align 4

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



sub_402418	proc near		; CODE XREF: sub_40231C+DDp
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short locret_402450
		mov	dword ptr [eax], 0
		dec	dword ptr [ecx-8]
		jnz	short locret_402450
		push	eax
		mov	eax, ecx
		xor	ecx, ecx
		mov	cl, [edx+1]
		mov	edx, [edx+ecx+6]
		test	edx, edx
		jz	short loc_402447
		mov	ecx, [eax-4]
		test	ecx, ecx
		jz	short loc_402447
		mov	edx, [edx]
		call	sub_40231C


loc_402447:				; CODE XREF: sub_402418+1Fj
					; sub_402418+26j
		sub	eax, 8
		call	sub_401164
		pop	eax

locret_402450:				; CODE XREF: sub_402418+4j
					; sub_402418+Fj
		retn
sub_402418	endp

; ---------------------------------------------------------------------------
		align 4
; [0000000E BYTES: COLLAPSED FUNCTION System::RegisterModule(System::TLibModule	*). PRESS KEYPAD "+" TO	EXPAND]
		align 4

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



sub_402464	proc near		; CODE XREF: sub_401B04+66p
					; DATA XREF: DATA:off_40A02Co
		push	ebx
		push	esi
		mov	esi, eax
		mov	ebx, ds:dword_40A028
		test	ebx, ebx
		jz	short loc_40247E


loc_402472:				; CODE XREF: sub_402464+18j
		mov	eax, [esi+4]
		call	dword ptr [ebx+4]
		mov	ebx, [ebx]
		test	ebx, ebx
		jnz	short loc_402472


loc_40247E:				; CODE XREF: sub_402464+Cj
		pop	esi
		pop	ebx
		retn
sub_402464	endp

; ---------------------------------------------------------------------------
		align 4
; [00000015 BYTES: COLLAPSED FUNCTION System::__linkproc__ IntfClear(System::DelphiInterface<System::IInterface> &). PRESS KEYPAD "+" TO EXPAND]
		align 4
; [00000006 BYTES: COLLAPSED FUNCTION GetCurrentThreadId. PRESS	KEYPAD "+" TO EXPAND]
		align 4
		push	edx
		push	eax
		mov	eax, [esp+10h]
		mul	dword ptr [esp]
		mov	ecx, eax
		mov	eax, [esp+4]
		mul	dword ptr [esp+0Ch]
		add	ecx, eax
		mov	eax, [esp]
		mul	dword ptr [esp+0Ch]
		add	edx, ecx
		pop	ecx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		push	edx
		push	eax
		mov	eax, [esp+10h]
		mul	dword ptr [esp]
		mov	ecx, eax
		mov	eax, [esp+4]
		mul	dword ptr [esp+0Ch]
		add	ecx, eax
		mov	eax, [esp]
		mul	dword ptr [esp+0Ch]
		add	edx, ecx
		pop	ecx
		pop	ecx
		retn	8

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



sub_4024EA	proc near		; CODE XREF: CODE:0040258Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebp
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		mov	ebx, [esp+10h+arg_0]
		mov	ecx, [esp+10h+arg_4]
		or	ecx, ecx
		jnz	short loc_402504
		or	edx, edx
		jz	short loc_40255C
		or	ebx, ebx
		jz	short loc_40255C


loc_402504:				; CODE XREF: sub_4024EA+10j
		or	edx, edx
		jns	short loc_402512
		neg	edx
		neg	eax
		sbb	edx, 0
		or	edi, 1


loc_402512:				; CODE XREF: sub_4024EA+1Cj
		or	ecx, ecx
		jns	short loc_402520
		neg	ecx
		neg	ebx
		sbb	ecx, 0
		xor	edi, 1


loc_402520:				; CODE XREF: sub_4024EA+2Aj
		mov	ebp, ecx
		mov	ecx, 40h
		push	edi
		xor	edi, edi
		xor	esi, esi


loc_40252C:				; CODE XREF: sub_4024EA:loc_402543j
		shl	eax, 1
		rcl	edx, 1
		rcl	esi, 1
		rcl	edi, 1
		cmp	edi, ebp
		jb	short loc_402543
		ja	short loc_40253E
		cmp	esi, ebx
		jb	short loc_402543


loc_40253E:				; CODE XREF: sub_4024EA+4Ej
		sub	esi, ebx
		sbb	edi, ebp
		inc	eax


loc_402543:				; CODE XREF: sub_4024EA+4Cj
					; sub_4024EA+52j
		loop	loc_40252C
		pop	ebx
		test	ebx, 1
		jz	short loc_402555
		neg	edx
		neg	eax
		sbb	edx, 0


loc_402555:				; CODE XREF: sub_4024EA+62j
					; sub_4024EA+76j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------


loc_40255C:				; CODE XREF: sub_4024EA+14j
					; sub_4024EA+18j
		div	ebx
		xor	edx, edx
		jmp	short loc_402555
sub_4024EA	endp

; ---------------------------------------------------------------------------
		push	esi
		mov	esi, [esp+0Ch]
		and	esi, [esp+8]
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_402581
		mov	esi, eax
		or	esi, edx
		cmp	esi, 80000000h
		jnz	short loc_402581
		mov	eax, esi
		pop	esi
		dec	eax
		retn
; ---------------------------------------------------------------------------


loc_402581:				; CODE XREF: CODE:0040256Ej
					; CODE:0040257Aj
		pop	esi
		push	dword ptr [esp+8]
		push	dword ptr [esp+8]
		call	sub_4024EA
		and	eax, eax
		retn	8
; ---------------------------------------------------------------------------
		push	ebp
		push	ebx
		push	esi
		push	edi
		mov	ebx, [esp+14h]
		mov	ecx, [esp+18h]
		or	ecx, ecx
		jnz	short loc_4025AC
		or	edx, edx
		jz	short loc_4025D7
		or	ebx, ebx
		jz	short loc_4025D7


loc_4025AC:				; CODE XREF: CODE:004025A2j
		mov	ebp, ecx
		mov	ecx, 40h
		xor	edi, edi
		xor	esi, esi


loc_4025B7:				; CODE XREF: CODE:loc_4025CEj
		shl	eax, 1
		rcl	edx, 1
		rcl	esi, 1
		rcl	edi, 1
		cmp	edi, ebp
		jb	short loc_4025CE
		ja	short loc_4025C9
		cmp	esi, ebx
		jb	short loc_4025CE


loc_4025C9:				; CODE XREF: CODE:004025C3j
		sub	esi, ebx
		sbb	edi, ebp
		inc	eax


loc_4025CE:				; CODE XREF: CODE:004025C1j
					; CODE:004025C7j
		loop	loc_4025B7


loc_4025D0:				; CODE XREF: CODE:004025DBj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------


loc_4025D7:				; CODE XREF: CODE:004025A6j
					; CODE:004025AAj
		div	ebx
		xor	edx, edx
		jmp	short loc_4025D0

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



sub_4025DD	proc near		; CODE XREF: CODE:0040267Fp
					; sub_402EC0+16p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebp
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		mov	ebx, [esp+10h+arg_0]
		mov	ecx, [esp+10h+arg_4]
		or	ecx, ecx
		jnz	short loc_4025F7
		or	edx, edx
		jz	short loc_402650
		or	ebx, ebx
		jz	short loc_402650


loc_4025F7:				; CODE XREF: sub_4025DD+10j
		or	edx, edx
		jns	short loc_402605
		neg	edx
		neg	eax
		sbb	edx, 0
		or	edi, 1


loc_402605:				; CODE XREF: sub_4025DD+1Cj
		or	ecx, ecx
		jns	short loc_402610
		neg	ecx
		neg	ebx
		sbb	ecx, 0


loc_402610:				; CODE XREF: sub_4025DD+2Aj
		mov	ebp, ecx
		mov	ecx, 40h
		push	edi
		xor	edi, edi
		xor	esi, esi


loc_40261C:				; CODE XREF: sub_4025DD:loc_402633j
		shl	eax, 1
		rcl	edx, 1
		rcl	esi, 1
		rcl	edi, 1
		cmp	edi, ebp
		jb	short loc_402633
		ja	short loc_40262E
		cmp	esi, ebx
		jb	short loc_402633


loc_40262E:				; CODE XREF: sub_4025DD+4Bj
		sub	esi, ebx
		sbb	edi, ebp
		inc	eax


loc_402633:				; CODE XREF: sub_4025DD+49j
					; sub_4025DD+4Fj
		loop	loc_40261C
		mov	eax, esi
		mov	edx, edi
		pop	ebx
		test	ebx, 1
		jz	short loc_402649
		neg	edx
		neg	eax
		sbb	edx, 0


loc_402649:				; CODE XREF: sub_4025DD+63j
					; sub_4025DD+78j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------


loc_402650:				; CODE XREF: sub_4025DD+14j
					; sub_4025DD+18j
		div	ebx
		xchg	eax, edx
		xor	edx, edx
		jmp	short loc_402649
sub_4025DD	endp

; ---------------------------------------------------------------------------
		push	esi
		mov	esi, [esp+0Ch]
		and	esi, [esp+8]
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_402676
		mov	esi, eax
		or	esi, edx
		cmp	esi, 80000000h
		jnz	short loc_402676
		mov	eax, esi
		pop	esi
		dec	eax
		retn
; ---------------------------------------------------------------------------


loc_402676:				; CODE XREF: CODE:00402663j
					; CODE:0040266Fj
		pop	esi
		push	dword ptr [esp+8]
		push	dword ptr [esp+8]
		call	sub_4025DD
		and	eax, eax
		retn	8
; ---------------------------------------------------------------------------
		push	ebp
		push	ebx
		push	esi
		push	edi
		mov	ebx, [esp+14h]
		mov	ecx, [esp+18h]
		or	ecx, ecx
		jnz	short loc_4026A1
		or	edx, edx
		jz	short loc_4026D0
		or	ebx, ebx
		jz	short loc_4026D0


loc_4026A1:				; CODE XREF: CODE:00402697j
		mov	ebp, ecx
		mov	ecx, 40h
		xor	edi, edi
		xor	esi, esi


loc_4026AC:				; CODE XREF: CODE:loc_4026C3j
		shl	eax, 1
		rcl	edx, 1
		rcl	esi, 1
		rcl	edi, 1
		cmp	edi, ebp
		jb	short loc_4026C3
		ja	short loc_4026BE
		cmp	esi, ebx
		jb	short loc_4026C3


loc_4026BE:				; CODE XREF: CODE:004026B8j
		sub	esi, ebx
		sbb	edi, ebp
		inc	eax


loc_4026C3:				; CODE XREF: CODE:004026B6j
					; CODE:004026BCj
		loop	loc_4026AC
		mov	eax, esi
		mov	edx, edi


loc_4026C9:				; CODE XREF: CODE:004026D5j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------


loc_4026D0:				; CODE XREF: CODE:0040269Bj
					; CODE:0040269Fj
		div	ebx
		xchg	eax, edx
		xor	edx, edx
		jmp	short loc_4026C9
; ---------------------------------------------------------------------------
		cmp	cl, 20h
		jl	short loc_4026ED
		cmp	cl, 40h
		jl	short loc_4026E6
		xor	edx, edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4026E6:				; CODE XREF: CODE:004026DFj
		mov	edx, eax
		shl	edx, cl
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4026ED:				; CODE XREF: CODE:004026DAj
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------
		cmp	cl, 20h
		jl	short loc_402709
		cmp	cl, 40h
		jl	short loc_402703
		sar	edx, 1Fh
		mov	eax, edx
		retn
; ---------------------------------------------------------------------------


loc_402703:				; CODE XREF: CODE:004026FBj
		mov	eax, edx
		cdq
		sar	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_402709:				; CODE XREF: CODE:004026F6j
		shrd	eax, edx, cl
		sar	edx, cl
		retn
; ---------------------------------------------------------------------------
		cmp	cl, 20h
		jl	short loc_402725
		cmp	cl, 40h
		jl	short loc_40271E
		xor	edx, edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_40271E:				; CODE XREF: CODE:00402717j
		mov	eax, edx
		xor	edx, edx
		shr	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_402725:				; CODE XREF: CODE:00402712j
		shrd	eax, edx, cl
		shr	edx, cl
		retn
; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_40272C	proc near		; DATA XREF: CODE:00409E80o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_402768
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B028
		jnz	short loc_40275A
		cmp	ds:dword_40B058, 0
		jz	short loc_402754
		call	ds:dword_40B058


loc_402754:				; CODE XREF: sub_40272C+20j
		call	ds:off_40A030


loc_40275A:				; CODE XREF: sub_40272C+17j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40276F


loc_402767:				; CODE XREF: sub_40272C+41j
		retn
; ---------------------------------------------------------------------------


loc_402768:				; DATA XREF: sub_40272C+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_402767
; ---------------------------------------------------------------------------


loc_40276F:				; CODE XREF: sub_40272C:loc_402767j
					; DATA XREF: sub_40272C+36o
		pop	ebp
		retn
sub_40272C	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_402774	proc near		; DATA XREF: CODE:00409E7Co
		sub	ds:dword_40B028, 1
		jnb	short locret_402787
		call	GetCurrentThreadId	; GetCurrentThreadId
		mov	ds:dword_40B010, eax

locret_402787:				; CODE XREF: sub_402774+7j
		retn
sub_402774	endp


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



sub_402788	proc near		; CODE XREF: sub_4027D8:loc_4027F9p
					; sub_40284C:loc_402867p
					; DATA XREF: ...
		push	ebx
		mov	eax, 8
		test	eax, eax
		jz	short loc_4027D5
		cmp	ds:dwTlsIndex, 0
		jge	short loc_4027A5
		mov	eax, 0E2h
		call	sub_401BF4


loc_4027A5:				; CODE XREF: sub_402788+11j
		push	8		; uBytes
		push	40h		; uFlags
		call	LocalAlloc	; LocalAlloc
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_4027C3
		mov	eax, 0E2h
		call	sub_401BF4
		jmp	short loc_4027CF
; ---------------------------------------------------------------------------


loc_4027C3:				; CODE XREF: sub_402788+2Dj
		push	ebx		; lpTlsValue
		mov	eax, ds:dwTlsIndex
		push	eax		; dwTlsIndex
		call	TlsSetValue	; TlsSetValue


loc_4027CF:				; CODE XREF: sub_402788+39j
		mov	ds:dword_40B074, ebx


loc_4027D5:				; CODE XREF: sub_402788+8j
		pop	ebx
		retn
sub_402788	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_4027D8	proc near		; DATA XREF: DATA:0040A064o
		mov	eax, 8
		test	eax, eax
		jz	short locret_4027FE
		call	TlsAlloc	; TlsAlloc
		mov	ds:dwTlsIndex, eax
		test	eax, eax
		jge	short loc_4027F9
		mov	eax, 0E2h
		call	sub_401BF4


loc_4027F9:				; CODE XREF: sub_4027D8+15j
		call	sub_402788

locret_4027FE:				; CODE XREF: sub_4027D8+7j
		retn
sub_4027D8	endp

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

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



sub_402800	proc near		; CODE XREF: sub_402828+9p
					; DATA XREF: DATA:0040A06Co
		mov	eax, 8
		test	eax, eax
		jz	short locret_402827
		cmp	ds:dwTlsIndex, 0
		jl	short locret_402827
		mov	eax, ds:dwTlsIndex
		push	eax		; dwTlsIndex
		call	TlsGetValue	; TlsGetValue
		test	eax, eax
		jz	short locret_402827
		push	eax		; hMem
		call	LocalFree	; LocalFree

locret_402827:				; CODE XREF: sub_402800+7j
					; sub_402800+10j ...
		retn
sub_402800	endp


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



sub_402828	proc near		; DATA XREF: DATA:off_40A060o
		mov	eax, 8
		test	eax, eax
		jz	short locret_40284A
		call	sub_402800
		cmp	ds:dwTlsIndex, 0
		jl	short locret_40284A
		mov	eax, ds:dwTlsIndex
		push	eax		; dwTlsIndex
		call	TlsFree	; TlsFree

locret_40284A:				; CODE XREF: sub_402828+7j
					; sub_402828+15j
		retn
sub_402828	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_40284C	proc near		; CODE XREF: System::__linkproc__ ReallocMem(void *&,int)+69p
					; sub_40161C+DBp ...
		mov	cl, ds:byte_40B05C
		mov	eax, ds:dwTlsIndex
		test	cl, cl
		jnz	short loc_402884
		mov	edx, large fs:2Ch
		mov	eax, [edx+eax*4]
		retn
; ---------------------------------------------------------------------------


loc_402867:				; CODE XREF: sub_40284C+40j
		call	sub_402788
		mov	eax, ds:dwTlsIndex
		push	eax		; dwTlsIndex
		call	TlsGetValue	; TlsGetValue
		test	eax, eax
		jz	short loc_40287D
		retn
; ---------------------------------------------------------------------------


loc_40287D:				; CODE XREF: sub_40284C+2Ej
		mov	eax, ds:dword_40B074
		retn
; ---------------------------------------------------------------------------


loc_402884:				; CODE XREF: sub_40284C+Ej
		push	eax		; dwTlsIndex
		call	TlsGetValue	; TlsGetValue
		test	eax, eax
		jz	short loc_402867
		retn
sub_40284C	endp

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

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



sub_402890	proc near		; CODE XREF: Sysinit::__linkproc__ InitLib(void)+2Ep
		mov	eax, ds:dword_40A04C
		mov	ds:dword_40A058, eax
		mov	eax, offset dword_40A048
		call	@System@RegisterModule$qqrp17System@TLibModule ; System::RegisterModule(System::TLibModule *)
		retn
sub_402890	endp

; ---------------------------------------------------------------------------
		align 4
; [00000046 BYTES: COLLAPSED FUNCTION Sysinit::__linkproc__ InitLib(void). PRESS KEYPAD	"+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_4028F0	proc near		; DATA XREF: CODE:00409E78o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_402915
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B070
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40291C


loc_402914:				; CODE XREF: sub_4028F0+2Aj
		retn
; ---------------------------------------------------------------------------


loc_402915:				; DATA XREF: sub_4028F0+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_402914
; ---------------------------------------------------------------------------


loc_40291C:				; CODE XREF: sub_4028F0:loc_402914j
					; DATA XREF: sub_4028F0+1Fo
		pop	ebp
		retn
sub_4028F0	endp

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


loc_402920:				; DATA XREF: CODE:off_409E74o
		sub	ds:dword_40B070, 1
		retn
; [00000006 BYTES: COLLAPSED FUNCTION FreeLibrary_0. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000006 BYTES: COLLAPSED FUNCTION GetProcAddress. PRESS KEYPAD "+" TO EXPAND]
		align 4
; [00000012 BYTES: COLLAPSED FUNCTION Windows::MakeWord(uchar,uchar). PRESS KEYPAD "+" TO EXPAND]
		align 4

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



sub_40294C	proc near		; CODE XREF: sub_404650+39p
		shr	eax, 10h
		retn
sub_40294C	endp

; [00000008 BYTES: COLLAPSED FUNCTION Windows::ZeroMemory(void *,uint).	PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame


sub_402958	proc near		; DATA XREF: CODE:00409E88o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_40297D
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B078
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_402984


loc_40297C:				; CODE XREF: sub_402958+2Aj
		retn
; ---------------------------------------------------------------------------


loc_40297D:				; DATA XREF: sub_402958+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40297C
; ---------------------------------------------------------------------------


loc_402984:				; CODE XREF: sub_402958:loc_40297Cj
					; DATA XREF: sub_402958+1Fo
		pop	ebp
		retn
sub_402958	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_402988	proc near		; DATA XREF: CODE:00409E84o
		sub	ds:dword_40B078, 1
		retn
sub_402988	endp


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

; Attributes: bp-based frame


sub_402990	proc near		; DATA XREF: CODE:00409E90o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_4029B5
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B07C
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4029BC


loc_4029B4:				; CODE XREF: sub_402990+2Aj
		retn
; ---------------------------------------------------------------------------


loc_4029B5:				; DATA XREF: sub_402990+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4029B4
; ---------------------------------------------------------------------------


loc_4029BC:				; CODE XREF: sub_402990:loc_4029B4j
					; DATA XREF: sub_402990+1Fo
		pop	ebp
		retn
sub_402990	endp

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

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



sub_4029C0	proc near		; DATA XREF: CODE:00409E8Co
		sub	ds:dword_40B07C, 1
		retn
sub_4029C0	endp


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

; Attributes: bp-based frame


sub_4029C8	proc near		; DATA XREF: CODE:00409E98o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_4029ED
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B080
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4029F4


loc_4029EC:				; CODE XREF: sub_4029C8+2Aj
		retn
; ---------------------------------------------------------------------------


loc_4029ED:				; DATA XREF: sub_4029C8+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4029EC
; ---------------------------------------------------------------------------


loc_4029F4:				; CODE XREF: sub_4029C8:loc_4029ECj
					; DATA XREF: sub_4029C8+1Fo
		pop	ebp
		retn
sub_4029C8	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_4029F8	proc near		; DATA XREF: CODE:00409E94o
		sub	ds:dword_40B080, 1
		retn
sub_4029F8	endp

; ---------------------------------------------------------------------------
off_402A00	dd offset off_402A0C	; DATA XREF: sub_402B0C+4r
		dd 28h,	0
off_402A0C	dd offset sub_402A58	; DATA XREF: CODE:off_402A00o
		dd offset @System@@Dispose$qqrpvt1 ; System::__linkproc__ Dispose(void *,void *)
off_402A14	dd offset off_402A20	; DATA XREF: sub_403094+4r
		dd 2Ah,	0
off_402A20	dd offset sub_4030B0	; DATA XREF: CODE:off_402A14o
		dd offset @System@@Dispose$qqrpvt1_0 ; System::__linkproc__ Dispose(void *,void	*)
; [00000006 BYTES: COLLAPSED FUNCTION GetFileAttributesA. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000006 BYTES: COLLAPSED FUNCTION GetModuleFileNameA. PRESS	KEYPAD "+" TO EXPAND]
		align 4
; [00000006 BYTES: COLLAPSED FUNCTION LoadLibraryA. PRESS KEYPAD "+" TO	EXPAND]
		align 10h

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



sub_402A40	proc near		; CODE XREF: sub_403258p sub_40327C+Bp ...
		test	eax, eax
		jnz	short locret_402A49
		mov	eax, offset dword_40A0A4

locret_402A49:				; CODE XREF: sub_402A40+2j
		retn
sub_402A40	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_402A4C	proc near		; CODE XREF: sub_403264+1p
					; sub_403474:loc_40347Fp
		test	edx, edx
		jnz	short locret_402A55
		mov	edx, offset dword_40A0A4

locret_402A55:				; CODE XREF: sub_402A4C+2j
		retn
sub_402A4C	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_402A58	proc near		; DATA XREF: CODE:off_402A0Co

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], eax
		pop	ecx
		pop	ebp
		retn
sub_402A58	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_402A64	proc near		; CODE XREF: sub_403108+1p

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
		add	esp, 0FFFFFFF0h
		push	ebx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		cmp	word ptr [eax+0Ah], 0
		jz	short loc_402ADC
		mov	ebx, [ebp+var_C]
		mov	edx, [ebp+var_C]
		mov	eax, [ebx+0Ch]
		call	dword ptr [ebx+8]
		mov	eax, [ebp+var_C]
		xor	edx, edx
		mov	[eax+8], edx
		mov	[eax+0Ch], edx
		jmp	short loc_402ADC
; ---------------------------------------------------------------------------


loc_402A91:				; CODE XREF: sub_402A64+8Bj
		mov	eax, [ebp+var_C]
		mov	eax, [eax+10h]
		mov	eax, [eax+1Ch]
		sub	eax, 2
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_C]
		mov	eax, [eax+10h]
		mov	edx, [ebp+var_10]
		call	sub_402B50
		mov	[ebp+var_8], eax
		mov	edx, [ebp+var_10]
		inc	edx
		mov	eax, [ebp+var_C]
		mov	eax, [eax+10h]
		call	sub_402B50
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		mov	eax, [eax+10h]
		mov	ecx, 2
		mov	edx, [ebp+var_10]
		call	sub_40318C
		mov	eax, [ebp+var_4]
		call	[ebp+var_8]


loc_402ADC:				; CODE XREF: sub_402A64+12j
					; sub_402A64+2Bj
		mov	eax, [ebp+var_C]
		cmp	dword ptr [eax+10h], 0
		jz	short loc_402AF1
		mov	eax, [ebp+var_C]
		mov	eax, [eax+10h]
		cmp	dword ptr [eax+1Ch], 0
		jg	short loc_402A91


loc_402AF1:				; CODE XREF: sub_402A64+7Fj
		mov	eax, [ebp+var_C]
		mov	eax, [eax+10h]
		call	sub_4030F8
		mov	eax, [ebp+var_C]
		xor	edx, edx
		mov	[eax+10h], edx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_402A64	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_402B0C	proc near		; CODE XREF: sub_403434+Bp
					; sub_403474+79p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, off_402A00
		xor	eax, eax
		call	sub_4030E8
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax+24h], 4
		mov	eax, [ebp+var_4]
		pop	ecx
		pop	ebp
		retn
sub_402B0C	endp


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

; Attributes: bp-based frame


sub_402B30	proc near		; CODE XREF: sub_40339C+Dp

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	ecx, 1
		mov	edx, [ebp+var_8]
		call	sub_40318C
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_402B30	endp


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



sub_402B50	proc near		; CODE XREF: sub_402A64+45p
					; sub_402A64+57p ...
		test	edx, edx
		jl	short loc_402B60
		cmp	edx, [eax+1Ch]
		jge	short loc_402B60
		mov	eax, [eax+18h]
		mov	eax, [eax+edx*4]
		retn
; ---------------------------------------------------------------------------


loc_402B60:				; CODE XREF: sub_402B50+2j
					; sub_402B50+7j
		xor	eax, eax
		retn
sub_402B50	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_402B64	proc near		; CODE XREF: sub_4032DC+2Fp
		push	edi
		xchg	eax, edi
		xchg	eax, edx
		repne scasb
		xchg	eax, edi
		pop	edi
		retn
sub_402B64	endp

; [0000001F BYTES: COLLAPSED FUNCTION Sysutils::CompareMem(void	*,void *,int). PRESS KEYPAD "+"	TO EXPAND]
		align 4

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

; Attributes: bp-based frame


sub_402B8C	proc near		; CODE XREF: sub_409718+4Dp r+249p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE4h
		push	ebx
		xor	ebx, ebx
		mov	[ebp+var_18], ebx
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_402C34
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, [ebp+var_4]
		mov	edx, [edx]
		mov	eax, [ebp+var_8]
		call	unknown_libname_10 ; BDS 2005-2006 and Delphi6-7 Visual	Component Library
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jle	short loc_402C15
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+var_14]
		dec	ecx
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		mov	edx, 1
		call	@System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void)
		push	[ebp+var_18]
		push	[ebp+var_C]
		mov	eax, [ebp+var_8]
		call	sub_401DF4
		mov	edx, eax
		add	edx, [ebp+var_14]
		lea	ecx, [ebp+var_1C]
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		call	sub_4032B4
		push	[ebp+var_1C]
		mov	eax, [ebp+var_4]
		mov	edx, 3
		call	sub_401EB4
		mov	[ebp+var_D], 1
		jmp	short loc_402C19
; ---------------------------------------------------------------------------


loc_402C15:				; CODE XREF: sub_402B8C+3Aj
		mov	[ebp+var_D], 0


loc_402C19:				; CODE XREF: sub_402B8C+87j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_402C3B


loc_402C26:				; CODE XREF: sub_402B8C+ADj
		lea	eax, [ebp+var_1C]
		mov	edx, 2
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_402C34:				; DATA XREF: sub_402B8C+1Bo
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_402C26
; ---------------------------------------------------------------------------


loc_402C3B:				; CODE XREF: sub_402B8C+A7j
					; DATA XREF: sub_402B8C+95o
		mov	al, [ebp+var_D]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_402B8C	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_402C44	proc near		; CODE XREF: sub_4033E0+18p
					; sub_4033E0+38p
		xchg	eax, edi
		xchg	eax, edx
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		cmp	eax, edi
		jz	short loc_402C55
		repne scasb
		dec	eax
		dec	eax
		sub	eax, ecx


loc_402C55:				; CODE XREF: sub_402C44+9j
		mov	edi, edx
		retn
sub_402C44	endp

; [0000001C BYTES: COLLAPSED FUNCTION unknown_libname_13. PRESS	KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame

; int __stdcall	sub_402C74(int,	double)

sub_402C74	proc near		; CODE XREF: sub_402CC0+22p

var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= word ptr -18h
var_16		= word ptr -16h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= qword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE4h
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		push	dword ptr [ebp+arg_4+4]
		push	dword ptr [ebp+arg_4] ;	double
		lea	eax, [ebp+var_1C]
		call	sub_402EE8
		mov	eax, [ebp+var_4]
		mov	dx, [ebp+var_1C]
		mov	[eax], dx
		mov	eax, [ebp+var_8]
		mov	dx, [ebp+var_1A]
		mov	[eax], dx
		mov	eax, [ebp+var_C]
		mov	dx, [ebp+var_16]
		mov	[eax], dx
		mov	eax, [ebp+arg_0]
		mov	dx, [ebp+var_18]
		mov	[eax], dx
		mov	esp, ebp
		pop	ebp
		retn	0Ch
sub_402C74	endp

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

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

; Attributes: bp-based frame

; int __stdcall	sub_402CC0(double)

sub_402CC0	proc near		; CODE XREF: Dateutils::DayOf(System::TDateTime)+15p

var_E		= dword	ptr -0Eh
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF0h
		mov	[ebp+var_E+2], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		push	dword ptr [ebp+arg_0+4]
		push	dword ptr [ebp+arg_0] ;	double
		lea	eax, [ebp+var_E]
		push	eax		; int
		mov	ecx, [ebp+var_E+2]
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_402C74
		mov	esp, ebp
		pop	ebp
		retn	8
sub_402CC0	endp

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

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

; Attributes: bp-based frame


sub_402CF0	proc near		; CODE XREF: sub_402D3C+21p
					; sub_402EE8+DBp

var_5		= byte ptr -5
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		and	eax, 80000003h
		jns	short loc_402D08
		dec	eax
		or	eax, 0FFFFFFFCh
		inc	eax


loc_402D08:				; CODE XREF: sub_402CF0+11j
		test	eax, eax
		jnz	short loc_402D2A
		mov	eax, [ebp+var_4]
		mov	ecx, 64h
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_402D2E
		mov	eax, [ebp+var_4]
		mov	ecx, 190h
		cdq
		idiv	ecx
		test	edx, edx
		jz	short loc_402D2E


loc_402D2A:				; CODE XREF: sub_402CF0+1Aj
		xor	eax, eax
		jmp	short loc_402D30
; ---------------------------------------------------------------------------


loc_402D2E:				; CODE XREF: sub_402CF0+29j
					; sub_402CF0+38j
		mov	al, 1


loc_402D30:				; CODE XREF: sub_402CF0+3Cj
		mov	[ebp+var_5], al
		mov	al, [ebp+var_5]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_402CF0	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_402D3C	proc near		; CODE XREF: sub_4055AC+19p

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_9		= byte ptr -9
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFDCh
		push	ebx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	[ebp+var_9], 0
		mov	eax, [ebp+var_8]
		xor	edx, edx
		mov	[eax], edx
		mov	[eax+4], edx
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		call	sub_402CF0
		and	eax, 7Fh
		lea	eax, [eax+eax*2]
		lea	eax, dword_40A074[eax*8]
		mov	[ebp+var_18], eax
		mov	eax, [ebp+var_4]
		cmp	word ptr [eax],	270Fh
		ja	loc_402EB3
		mov	eax, [ebp+var_4]
		cmp	word ptr [eax+2], 0Ch
		ja	loc_402EB3
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax+2]
		mov	edx, [ebp+var_18]
		mov	ax, [edx+eax*2-2]
		mov	edx, [ebp+var_4]
		cmp	ax, [edx+6]
		jb	loc_402EB3
		mov	eax, [ebp+var_4]
		cmp	word ptr [eax+8], 18h
		jnb	loc_402EB3
		mov	eax, [ebp+var_4]
		cmp	word ptr [eax+0Ah], 3Ch
		jnb	loc_402EB3
		mov	eax, [ebp+var_4]
		cmp	word ptr [eax+0Ch], 3Ch
		jnb	loc_402EB3
		mov	eax, [ebp+var_4]
		cmp	word ptr [eax+0Eh], 3E8h
		jnb	loc_402EB3
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax+6]
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax+2]
		dec	eax
		test	eax, eax
		jle	short loc_402E19
		mov	[ebp+var_1C], eax
		mov	[ebp+var_10], 1


loc_402E03:				; CODE XREF: sub_402D3C+DBj
		mov	eax, [ebp+var_18]
		mov	edx, [ebp+var_10]
		movzx	eax, word ptr [eax+edx*2-2]
		add	[ebp+var_14], eax
		inc	[ebp+var_10]
		dec	[ebp+var_1C]
		jnz	short loc_402E03


loc_402E19:				; CODE XREF: sub_402D3C+BBj
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		dec	eax
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jge	short loc_402E2E
		xor	eax, eax
		mov	[ebp+var_10], eax


loc_402E2E:				; CODE XREF: sub_402D3C+EBj
		mov	eax, [ebp+var_10]
		mov	ecx, 64h
		cdq
		idiv	ecx
		imul	ecx, [ebp+var_10], 16Dh
		mov	edx, [ebp+var_10]
		test	edx, edx
		jns	short loc_402E4A
		add	edx, 3


loc_402E4A:				; CODE XREF: sub_402D3C+109j
		sar	edx, 2
		add	ecx, edx
		sub	ecx, eax
		mov	eax, [ebp+var_10]
		mov	ebx, 190h
		cdq
		idiv	ebx
		add	ecx, eax
		add	ecx, [ebp+var_14]
		mov	[ebp+var_20], ecx
		fild	[ebp+var_20]
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax+8]
		imul	eax, 36EE80h
		mov	edx, [ebp+var_4]
		movzx	edx, word ptr [edx+0Ah]
		imul	edx, 0EA60h
		add	eax, edx
		mov	edx, [ebp+var_4]
		movzx	edx, word ptr [edx+0Ch]
		imul	edx, 3E8h
		add	eax, edx
		mov	edx, [ebp+var_4]
		movzx	edx, word ptr [edx+0Eh]
		add	eax, edx
		mov	[ebp+var_24], eax
		fild	[ebp+var_24]
		fdiv	flt_402EBC
		faddp	st(1), st
		mov	eax, [ebp+var_8]
		fstp	qword ptr [eax]
		wait
		mov	[ebp+var_9], 1


loc_402EB3:				; CODE XREF: sub_402D3C+3Ej
					; sub_402D3C+4Cj ...
		mov	al, [ebp+var_9]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_402D3C	endp

; ---------------------------------------------------------------------------
		align 4
flt_402EBC	dd 8.64e7		; DATA XREF: sub_402D3C+165r

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

; Attributes: bp-based frame

; int __stdcall	sub_402EC0(double)

sub_402EC0	proc near		; CODE XREF: sub_402EE8+145p

var_4		= dword	ptr -4
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	0
		push	7
		fld	[ebp+arg_0]
		call	sub_40127C
		add	eax, 6
		adc	edx, 0
		call	sub_4025DD
		inc	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		pop	ecx
		pop	ebp
		retn	8
sub_402EC0	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame

; int __stdcall	sub_402EE8(double)

sub_402EE8	proc near		; CODE XREF: sub_402C74+18p

var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE0h
		mov	[ebp+var_4], eax
		fld	[ebp+arg_0]
		call	sub_40127C
		mov	[ebp+var_C], eax
		fild	[ebp+var_C]
		fsubr	[ebp+arg_0]
		fmul	flt_403090
		call	@System@@ROUND$qqrv ; System::__linkproc__ ROUND(void)
		mov	[ebp+var_18], eax
		mov	[ebp+var_5], 0
		cmp	[ebp+var_C], 0
		jle	loc_403084
		dec	[ebp+var_C]
		mov	[ebp+var_E], 1
		cmp	[ebp+var_C], 23AB1h
		jl	short loc_402F46


loc_402F30:				; CODE XREF: sub_402EE8+5Cj
		sub	[ebp+var_C], 23AB1h
		add	[ebp+var_E], 190h
		cmp	[ebp+var_C], 23AB1h
		jge	short loc_402F30


loc_402F46:				; CODE XREF: sub_402EE8+46j
		lea	eax, [ebp+var_12]
		push	eax
		lea	ecx, [ebp+var_14]
		mov	dx, 8EACh
		mov	eax, [ebp+var_C]
		call	unknown_libname_13 ; BDS 2005-2006 and Delphi6-7 Visual	Component Library
		cmp	[ebp+var_14], 4
		jnz	short loc_402F6A
		dec	[ebp+var_14]
		add	[ebp+var_12], 8EACh


loc_402F6A:				; CODE XREF: sub_402EE8+76j
		imul	ax, [ebp+var_14], 64h
		add	[ebp+var_E], ax
		lea	eax, [ebp+var_12]
		push	eax
		lea	ecx, [ebp+var_14]
		movzx	eax, [ebp+var_12]
		mov	dx, 5B5h
		call	unknown_libname_13 ; BDS 2005-2006 and Delphi6-7 Visual	Component Library
		mov	ax, [ebp+var_14]
		shl	eax, 2
		add	[ebp+var_E], ax
		lea	eax, [ebp+var_12]
		push	eax
		lea	ecx, [ebp+var_14]
		movzx	eax, [ebp+var_12]
		mov	dx, 16Dh
		call	unknown_libname_13 ; BDS 2005-2006 and Delphi6-7 Visual	Component Library
		cmp	[ebp+var_14], 4
		jnz	short loc_402FB7
		dec	[ebp+var_14]
		add	[ebp+var_12], 16Dh


loc_402FB7:				; CODE XREF: sub_402EE8+C3j
		mov	ax, [ebp+var_14]
		add	[ebp+var_E], ax
		movzx	eax, [ebp+var_E]
		call	sub_402CF0
		and	eax, 7Fh
		lea	eax, [eax+eax*2]
		lea	eax, dword_40A074[eax*8]
		mov	[ebp+var_1C], eax
		mov	[ebp+var_10], 1


loc_402FDE:				; CODE XREF: sub_402EE8+11Cj
		movzx	eax, [ebp+var_10]
		mov	edx, [ebp+var_1C]
		mov	ax, [edx+eax*2-2]
		mov	[ebp+var_14], ax
		mov	ax, [ebp+var_12]
		cmp	ax, [ebp+var_14]
		jb	short loc_403006
		mov	ax, [ebp+var_14]
		sub	[ebp+var_12], ax
		inc	[ebp+var_10]
		jmp	short loc_402FDE
; ---------------------------------------------------------------------------


loc_403006:				; CODE XREF: sub_402EE8+10Ej
		mov	eax, [ebp+var_4]
		mov	dx, [ebp+var_E]
		mov	[eax], dx
		mov	eax, [ebp+var_4]
		mov	dx, [ebp+var_10]
		mov	[eax+2], dx
		mov	ax, [ebp+var_12]
		inc	eax
		mov	edx, [ebp+var_4]
		mov	[edx+6], ax
		push	dword ptr [ebp+arg_0+4]
		push	dword ptr [ebp+arg_0] ;	double
		call	sub_402EC0
		mov	edx, [ebp+var_4]
		mov	[edx+4], ax
		lea	eax, [ebp+var_20]
		push	eax
		lea	ecx, [ebp+var_1E]
		mov	dx, 0EA60h
		mov	eax, [ebp+var_18]
		call	unknown_libname_13 ; BDS 2005-2006 and Delphi6-7 Visual	Component Library
		mov	eax, [ebp+var_4]
		add	eax, 0Ah
		push	eax
		mov	ecx, [ebp+var_4]
		add	ecx, 8
		movzx	eax, [ebp+var_1E]
		mov	dx, 3Ch
		call	unknown_libname_13 ; BDS 2005-2006 and Delphi6-7 Visual	Component Library
		mov	eax, [ebp+var_4]
		add	eax, 0Eh
		push	eax
		mov	ecx, [ebp+var_4]
		add	ecx, 0Ch
		movzx	eax, [ebp+var_20]
		mov	dx, 3E8h
		call	unknown_libname_13 ; BDS 2005-2006 and Delphi6-7 Visual	Component Library
		mov	[ebp+var_5], 1


loc_403084:				; CODE XREF: sub_402EE8+30j
		mov	al, [ebp+var_5]
		mov	esp, ebp
		pop	ebp
		retn	8
sub_402EE8	endp

; ---------------------------------------------------------------------------
		align 10h
flt_403090	dd 8.64e7		; DATA XREF: sub_402EE8+1Ar

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

; Attributes: bp-based frame


sub_403094	proc near		; CODE XREF: sub_403A10+1Ap
					; sub_403A10+24p ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, off_402A14
		xor	eax, eax
		call	sub_4030E8
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		pop	ecx
		pop	ebp
		retn
sub_403094	endp

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

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

; Attributes: bp-based frame


sub_4030B0	proc near		; DATA XREF: CODE:off_402A20o

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	dl, ds:byte_40A070
		mov	[eax+29h], dl
		pop	ecx
		pop	ebp
		retn
sub_4030B0	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_4030C8	proc near		; CODE XREF: sub_405E48+50p
					; sub_4063E8+1D4p

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	edx, [ebp+var_8]
		call	sub_403474
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_4030C8	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_4030E8	proc near		; CODE XREF: sub_402B0C+Cp
					; sub_403094+Cp
		call	sub_40131C
		jz	short locret_4030F5
		push	eax
		mov	edx, [eax]
		call	dword ptr [edx]
		pop	eax

locret_4030F5:				; CODE XREF: sub_4030E8+5j
		retn
sub_4030E8	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_4030F8	proc near		; CODE XREF: sub_402A64+93p
					; sub_40336C+29p ...
		test	eax, eax
		jz	short locret_403107
		sub	dword ptr [eax+4], 2
		jge	short locret_403107
		mov	edx, [eax]
		push	dword ptr [edx+4]

locret_403107:				; CODE XREF: sub_4030F8+2j
					; sub_4030F8+8j
		retn
sub_4030F8	endp ; sp-analysis failed


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



sub_403108	proc near		; CODE XREF: System::__linkproc__ Dispose(void *,void *)+7p
					; System::__linkproc__ Dispose(void *,void *)+7p
		push	eax
		call	sub_402A64
		pop	eax
		xor	edx, edx
		call	sub_401164
		retn
sub_403108	endp

; ---------------------------------------------------------------------------
		align 4
; [0000000D BYTES: COLLAPSED FUNCTION System::__linkproc__ Dispose(void	*,void *). PRESS KEYPAD	"+" TO EXPAND]
		align 4

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



sub_403128	proc near		; CODE XREF: sub_40315C+1Ep
					; sub_403474+A8p
		cmp	edx, [eax+1Ch]
		jge	short loc_403130
		mov	edx, [eax+1Ch]


loc_403130:				; CODE XREF: sub_403128+3j
		cmp	edx, [eax+20h]
		jz	short locret_403143
		mov	[eax+20h], edx
		shl	edx, 2
		lea	eax, [eax+18h]
		call	@System@@ReallocMem$qqrrpvi ; System::__linkproc__ ReallocMem(void *&,int)

locret_403143:				; CODE XREF: sub_403128+Bj
		retn
sub_403128	endp


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



sub_403144	proc near		; CODE XREF: System::__linkproc__ Dispose(void *,void *)+1p
		push	dword ptr [eax+18h]
		xor	edx, edx
		mov	[eax+18h], edx
		mov	[eax+1Ch], edx
		mov	[eax+20h], edx
		pop	eax
		call	sub_401164
		retn
sub_403144	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_40315C	proc near		; CODE XREF: sub_4031C4+6p
		push	edx
		lea	ecx, [eax+1Ch]
		mov	edx, [ecx]
		inc	dword ptr [ecx]
		push	edx
		cmp	edx, [eax+20h]
		push	eax
		jl	short loc_40317F
		mov	ecx, [eax+24h]
		test	ecx, ecx
		jnz	short loc_403178
		mov	ecx, edx
		shr	ecx, 2
		inc	ecx


loc_403178:				; CODE XREF: sub_40315C+14j
		add	edx, ecx
		call	sub_403128


loc_40317F:				; CODE XREF: sub_40315C+Dj
		pop	ecx
		pop	eax
		pop	edx
		mov	ecx, [ecx+18h]
		mov	[ecx+eax*4], edx
		retn
sub_40315C	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_40318C	proc near		; CODE XREF: sub_402A64+6Dp
					; sub_402B30+17p
		test	ecx, ecx
		jle	short locret_4031C3
		cmp	edx, [eax+1Ch]
		jge	short locret_4031C3
		push	ebx
		xchg	eax, ebx
		lea	eax, [edx+ecx]
		cmp	eax, [ebx+1Ch]
		jbe	short loc_4031A4
		mov	ecx, [ebx+1Ch]
		sub	ecx, edx


loc_4031A4:				; CODE XREF: sub_40318C+11j
		mov	eax, [ebx+18h]
		push	dword ptr [ebx+1Ch]
		sub	[ebx+1Ch], ecx
		mov	ebx, edx
		lea	edx, [eax+edx*4]
		lea	eax, [edx+ecx*4]
		add	ebx, ecx
		pop	ecx
		sub	ecx, ebx
		shl	ecx, 2
		call	sub_401210
		pop	ebx

locret_4031C3:				; CODE XREF: sub_40318C+2j
					; sub_40318C+7j
		retn
sub_40318C	endp


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



sub_4031C4	proc near		; CODE XREF: sub_403434+36p
		push	ecx
		push	eax
		push	dword ptr [eax+1Ch]
		push	edx
		call	sub_40315C
		pop	edx
		pop	eax
		sub	eax, edx
		shl	eax, 2
		mov	ecx, eax
		pop	eax
		mov	eax, [eax+18h]
		lea	eax, [eax+edx*4]
		jl	short loc_4031EB
		push	eax
		lea	edx, [eax+4]
		call	sub_401210
		pop	eax


loc_4031EB:				; CODE XREF: sub_4031C4+1Bj
		pop	ecx
		mov	[eax], ecx
		retn
sub_4031C4	endp

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

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



sub_4031F0	proc near		; CODE XREF: sub_404650+44p
					; sub_404650+50p ...

var_2		= byte ptr -2

		xor	ecx, ecx
		push	ecx
		add	esp, 0FFFFFFF4h
		push	ebx
		lea	ebx, [esp+13h]
		push	edx
		cmp	eax, ecx
		pushf
		jge	short loc_403203
		neg	eax


loc_403203:				; CODE XREF: sub_4031F0+Fj
		mov	cl, 0Ah


loc_403205:				; CODE XREF: sub_4031F0+21j
		dec	ebx
		xor	edx, edx
		div	ecx
		add	dl, 30h
		mov	[ebx], dl
		test	eax, eax
		jnz	short loc_403205
		popf
		jge	short loc_40321A
		dec	ebx
		mov	byte ptr [ebx],	2Dh


loc_40321A:				; CODE XREF: sub_4031F0+24j
		pop	eax
		mov	edx, ebx
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		pop	ebx
		add	esp, 10h
		retn
sub_4031F0	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_403228	proc near		; CODE XREF: sub_403258+5p
		xchg	eax, edx
		xor	eax, eax
		test	edx, edx
		jz	short locret_403257
		xor	ecx, ecx
		mov	cl, [edx]
		inc	edx
		cmp	cl, 2Dh
		pushf
		jz	short loc_40323F
		cmp	cl, 2Bh
		jnz	short loc_403242


loc_40323F:				; CODE XREF: sub_403228+10j
					; sub_403228+28j
		mov	cl, [edx]
		inc	edx


loc_403242:				; CODE XREF: sub_403228+15j
		sub	cl, 30h
		cmp	cl, 9
		ja	short loc_403252
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2]
		jmp	short loc_40323F
; ---------------------------------------------------------------------------


loc_403252:				; CODE XREF: sub_403228+20j
		popf
		jnz	short locret_403257
		neg	eax

locret_403257:				; CODE XREF: sub_403228+5j
					; sub_403228+2Bj
		retn
sub_403228	endp


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



sub_403258	proc near		; CODE XREF: sub_407128+3Fp
					; sub_407128+64p
		call	sub_402A40
		call	sub_403228
		retn
sub_403258	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_403264	proc near		; CODE XREF: sub_4032A4+9p
		xchg	eax, edx
		call	sub_402A4C
		dec	edx


loc_40326B:				; CODE XREF: sub_403264+10j
		inc	edx
		movzx	ecx, byte ptr [edx]
		jecxz	short loc_403276
		cmp	cl, 20h
		jbe	short loc_40326B


loc_403276:				; CODE XREF: sub_403264+Bj
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		retn
sub_403264	endp


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



sub_40327C	proc near		; CODE XREF: sub_4032A4+1p

var_C		= dword	ptr -0Ch

		push	edx
		push	eax
		push	eax
		call	sub_401DF4
		xchg	eax, [esp+0Ch+var_C]
		call	sub_402A40
		pop	ecx
		inc	ecx


loc_40328E:				; CODE XREF: sub_40327C+1Bj
		dec	ecx
		mov	dl, [eax+ecx]
		jl	short loc_403299
		cmp	dl, 20h
		jbe	short loc_40328E


loc_403299:				; CODE XREF: sub_40327C+16j
		inc	ecx
		pop	eax
		xor	edx, edx
		inc	edx
		call	@System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void)
		retn
sub_40327C	endp


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



sub_4032A4	proc near		; CODE XREF: sub_406C40+14Ap
		push	edx
		call	sub_40327C
		pop	edx
		mov	eax, [edx]
		call	sub_403264
		retn
sub_4032A4	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_4032B4	proc near		; CODE XREF: sub_402B8C+6Ep
		push	ecx
		push	eax
		push	edx
		call	sub_401DF4
		pop	edx
		test	edx, edx
		jg	short loc_4032C4
		xor	edx, edx
		inc	edx


loc_4032C4:				; CODE XREF: sub_4032B4+Bj
		sub	eax, edx
		mov	ecx, eax
		pop	eax
		jge	short loc_4032D2
		pop	eax
		jl	sub_401C00


loc_4032D2:				; CODE XREF: sub_4032B4+15j
		inc	ecx
		call	@System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void)
		retn
sub_4032B4	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4

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



sub_4032DC	proc near		; CODE XREF: sub_409718+37p r+6Bp

var_10		= dword	ptr -10h

		push	ebx
		push	esi
		push	edi
		push	eax
		mov	eax, edx
		push	edx
		call	sub_401DF4
		mov	edi, eax
		pop	eax
		call	sub_402A40
		mov	bl, [eax]
		xchg	eax, [esp+10h+var_10]
		call	sub_402A40
		mov	esi, eax
		dec	eax


loc_4032FD:				; CODE XREF: sub_4032DC+46j
		inc	eax
		mov	dl, bl
		mov	ecx, [esi-4]
		sub	ecx, eax
		add	ecx, esi
		cmp	ecx, edi
		jl	short loc_403329
		call	sub_402B64
		test	eax, eax
		jz	short loc_40332B
		dec	eax
		pop	edx
		push	edx
		mov	ecx, edi
		push	eax
		call	@Sysutils@CompareMem$qqrpvt1i ;	Sysutils::CompareMem(void *,void *,int)
		test	al, al
		pop	eax
		jz	short loc_4032FD
		sub	eax, esi
		inc	eax
		jmp	short loc_40332C
; ---------------------------------------------------------------------------


loc_403329:				; CODE XREF: sub_4032DC+2Dj
		xor	eax, eax


loc_40332B:				; CODE XREF: sub_4032DC+36j
		dec	eax


loc_40332C:				; CODE XREF: sub_4032DC+4Bj
		pop	edx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4032DC	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_403334	proc near		; CODE XREF: sub_406018+168p
					; sub_406018+218p ...
		call	sub_402A40
		push	eax		; lpFileName
		call	GetFileAttributesA	; GetFileAttributesA
		inc	eax
		jz	short locret_403348
		dec	eax
		and	al, 10h
		setz	al

locret_403348:				; CODE XREF: sub_403334+Cj
		retn
sub_403334	endp

; ---------------------------------------------------------------------------
		align 4
; [0000000D BYTES: COLLAPSED FUNCTION System::__linkproc__ Dispose(void	*,void *). PRESS KEYPAD	"+" TO EXPAND]
		align 4

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



sub_40335C	proc near		; CODE XREF: sub_405964+F0p
					; sub_405964+10Dp
		mov	ecx, edx
		mov	edx, [eax+1Ch]
		push	edx
		call	sub_403434
		pop	eax
		retn
sub_40335C	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_40336C	proc near		; CODE XREF: System::__linkproc__ Dispose(void *,void *)+1p
					; sub_403474+5p ...
		push	ebx
		xchg	eax, ebx
		mov	edx, [ebx+1Ch]


loc_403371:				; CODE XREF: sub_40336C+11j
		dec	edx
		jl	short loc_40337F
		push	edx
		mov	eax, ebx
		call	sub_40339C
		pop	edx
		jmp	short loc_403371
; ---------------------------------------------------------------------------


loc_40337F:				; CODE XREF: sub_40336C+6j
		xor	eax, eax
		mov	[ebx+25h], eax
		xchg	eax, [ebx+21h]
		test	eax, eax
		jz	short loc_403392
		call	sub_401164
		xor	eax, eax


loc_403392:				; CODE XREF: sub_40336C+1Dj
		xchg	eax, [ebx+18h]
		call	sub_4030F8
		pop	ebx
		retn
sub_40336C	endp


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



sub_40339C	proc near		; CODE XREF: sub_40336C+Bp
		dec	dword ptr [eax+1Ch]
		push	eax
		mov	eax, [eax+18h]
		mov	ecx, [eax+18h]
		push	dword ptr [ecx+edx*4]
		call	sub_402B30
		pop	eax
		pop	edx
		mov	ecx, [edx+25h]
		jecxz	short loc_4033C1
		cmp	eax, [edx+21h]
		jb	short loc_4033C1
		add	ecx, [edx+21h]
		cmp	eax, ecx
		jb	short locret_4033C6


loc_4033C1:				; CODE XREF: sub_40339C+17j
					; sub_40339C+1Cj
		call	sub_401164

locret_4033C6:				; CODE XREF: sub_40339C+23j
		retn
sub_40339C	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_4033C8	proc near		; CODE XREF: sub_4052F8+45p
					; sub_405E48+74p ...
		push	ecx
		mov	eax, [eax+18h]
		test	eax, eax
		jz	short loc_4033D5
		call	sub_402B50


loc_4033D5:				; CODE XREF: sub_4033C8+6j
		xchg	eax, edx
		pop	eax
		jmp	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
sub_4033C8	endp

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

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



sub_4033E0	proc near		; CODE XREF: sub_4063E8+1E6p
		push	esi
		push	edi
		mov	ecx, [eax+1Ch]
		mov	eax, [eax+18h]
		push	ecx
		jecxz	short loc_4033EE
		mov	esi, [eax+18h]


loc_4033EE:				; CODE XREF: sub_4033E0+9j
		push	esi
		xchg	eax, edx
		xor	edx, edx
		jecxz	short loc_40340A
		push	eax


loc_4033F5:				; CODE XREF: sub_4033E0+23j
		push	ecx
		push	edx
		lodsd
		call	sub_402C44
		pop	edx
		lea	edx, [edx+eax+2]
		pop	ecx
		loop	loc_4033F5
		pop	eax
		pop	esi
		xchg	edx, ecx
		push	eax


loc_40340A:				; CODE XREF: sub_4033E0+12j
		call	@System@@LStrFromPCharLen$qqrr17System@AnsiStringpci ; System::__linkproc__ LStrFromPCharLen(System::AnsiString	&,char *,int)
		pop	edi
		pop	ecx
		jecxz	short loc_40342E
		mov	edi, [edi]


loc_403415:				; CODE XREF: sub_4033E0+4Aj
		push	ecx
		lodsd
		push	eax
		call	sub_402C44
		xchg	eax, ecx
		pop	eax
		xchg	eax, esi
		rep movsb
		xchg	eax, esi
		mov	ax, 0A0Dh
		stosw
		pop	ecx
		loop	loc_403415
		xchg	eax, ecx
		stosb


loc_40342E:				; CODE XREF: sub_4033E0+31j
		pop	edi
		pop	esi
		retn
sub_4033E0	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_403434	proc near		; CODE XREF: sub_40335C+6p
		push	ebx
		push	edx
		push	ecx
		xchg	eax, ebx
		mov	eax, [ebx+18h]
		test	eax, eax
		jnz	short loc_403447
		call	sub_402B0C
		mov	[ebx+18h], eax


loc_403447:				; CODE XREF: sub_403434+9j
		pop	eax
		push	eax
		call	sub_401DF4
		inc	eax
		push	eax
		call	sub_40114C
		mov	byte ptr [eax],	0
		xchg	eax, edx
		pop	ecx
		pop	eax
		push	edx
		test	eax, eax
		jz	short loc_403465
		call	sub_401210


loc_403465:				; CODE XREF: sub_403434+2Aj
		pop	ecx
		pop	edx
		mov	eax, [ebx+18h]
		call	sub_4031C4
		inc	dword ptr [ebx+1Ch]
		pop	ebx
		retn
sub_403434	endp


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



sub_403474	proc near		; CODE XREF: sub_4030C8+14p
		dec	cl
		jz	short loc_40347F
		pusha
		call	sub_40336C
		popa


loc_40347F:				; CODE XREF: sub_403474+2j
		call	sub_402A4C
		jz	locret_40354D
		push	ebx
		push	edi
		mov	ebx, eax
		mov	edi, [ebx+25h]
		mov	eax, [edx-4]
		inc	eax
		push	eax
		push	edx
		push	dword ptr [ebx+21h]
		add	eax, [ebx+25h]
		call	sub_40114C
		mov	[ebx+21h], eax
		mov	ecx, edi
		xchg	eax, edx
		pop	eax
		jecxz	short loc_4034D4
		push	eax
		call	sub_401210
		pop	edx
		push	edx
		push	esi
		mov	esi, [ebx+18h]
		mov	esi, [esi+18h]
		mov	ecx, [ebx+1Ch]


loc_4034BD:				; CODE XREF: sub_403474:loc_4034CBj
		lodsd
		sub	eax, edx
		cmp	eax, [ebx+25h]
		jnb	short loc_4034CB
		add	eax, [ebx+21h]
		mov	[esi-4], eax


loc_4034CB:				; CODE XREF: sub_403474+4Fj
		loop	loc_4034BD
		pop	esi
		pop	eax
		call	sub_401164


loc_4034D4:				; CODE XREF: sub_403474+35j
		pop	eax
		mov	edx, edi
		add	edx, [ebx+21h]
		pop	ecx
		push	ecx
		add	[ebx+25h], ecx
		call	sub_401210
		add	edi, [ebx+21h]
		mov	ecx, [ebx+18h]
		inc	ecx
		loop	loc_4034F5
		call	sub_402B0C
		mov	[ebx+18h], eax


loc_4034F5:				; CODE XREF: sub_403474+77j
		pop	ecx
		mov	edx, [ebx+1Ch]
		push	edi
		push	ecx
		mov	al, 0Dh


loc_4034FD:				; CODE XREF: sub_403474+96j
					; sub_403474+99j
		cmp	byte ptr [edi],	0
		jz	short loc_40350F
		inc	edx
		repne scasb
		jnz	short loc_40350F
		cmp	byte ptr [edi],	0Ah
		jnz	short loc_4034FD
		inc	edi
		loop	loc_4034FD


loc_40350F:				; CODE XREF: sub_403474+8Cj
					; sub_403474+91j
		mov	[ebx+1Ch], edx
		mov	eax, [ebx+18h]
		push	edx
		push	eax
		cmp	edx, [eax+20h]
		jle	short loc_403521
		call	sub_403128


loc_403521:				; CODE XREF: sub_403474+A6j
		pop	eax
		pop	ecx
		xchg	ecx, [eax+1Ch]
		mov	edx, [eax+18h]
		lea	edx, [edx+ecx*4]
		pop	ecx
		pop	edi
		mov	eax, 0Dh


loc_403533:				; CODE XREF: sub_403474+D2j
					; sub_403474+D5j
		cmp	[edi], ah
		jz	short loc_40354B
		mov	[edx], edi
		add	edx, 4
		repne scasb
		jnz	short loc_40354B
		mov	[edi-1], ah
		cmp	byte ptr [edi],	0Ah
		jnz	short loc_403533
		inc	edi
		loop	loc_403533


loc_40354B:				; CODE XREF: sub_403474+C1j
					; sub_403474+CAj
		pop	edi
		pop	ebx

locret_40354D:				; CODE XREF: sub_403474+10j
		retn
sub_403474	endp

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

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

; Attributes: bp-based frame


sub_403550	proc near		; DATA XREF: CODE:00409EA0o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_40359F
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B088
		jnz	short loc_403591
		cmp	ds:hLibModule, 0
		jz	short loc_40357D
		mov	eax, ds:hLibModule
		push	eax		; hLibModule
		call	FreeLibrary_0


loc_40357D:				; CODE XREF: sub_403550+20j
		mov	eax, offset dword_40B08C
		call	sub_401C00
		mov	eax, offset dword_40A0A4
		call	sub_401C00


loc_403591:				; CODE XREF: sub_403550+17j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4035A6


loc_40359E:				; CODE XREF: sub_403550+54j
		retn
; ---------------------------------------------------------------------------


loc_40359F:				; DATA XREF: sub_403550+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40359E
; ---------------------------------------------------------------------------


loc_4035A6:				; CODE XREF: sub_403550:loc_40359Ej
					; DATA XREF: sub_403550+49o
		pop	ebp
		retn
sub_403550	endp

; [0000002F BYTES: COLLAPSED FUNCTION unknown_libname_14. PRESS	KEYPAD "+" TO EXPAND]
		align 4

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

; Attributes: bp-based frame


sub_4035D8	proc near		; DATA XREF: CODE:00409EA8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_4035FD
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B090
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_403604


loc_4035FC:				; CODE XREF: sub_4035D8+2Aj
		retn
; ---------------------------------------------------------------------------


loc_4035FD:				; DATA XREF: sub_4035D8+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4035FC
; ---------------------------------------------------------------------------


loc_403604:				; CODE XREF: sub_4035D8:loc_4035FCj
					; DATA XREF: sub_4035D8+1Fo
		pop	ebp
		retn
sub_4035D8	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_403608	proc near		; DATA XREF: CODE:00409EA4o
		sub	ds:dword_40B090, 1
		retn
sub_403608	endp


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

; Attributes: bp-based frame


sub_403610	proc near		; DATA XREF: CODE:00409EB0o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_403A05
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B224
		jnz	loc_4039F7
		mov	eax, ds:dword_40B1B4
		call	sub_4030F8
		mov	eax, ds:dword_40B16C
		call	sub_4030F8
		mov	eax, offset dword_40B220
		call	sub_401C00
		mov	eax, offset dword_40B21C
		call	sub_401C00
		mov	eax, offset dword_40B218
		call	sub_401C00
		mov	eax, offset dword_40B214
		call	sub_401C00
		mov	eax, offset dword_40B210
		call	sub_401C00
		mov	eax, offset dword_40B20C
		call	sub_401C00
		mov	eax, offset dword_40B208
		call	sub_401C00
		mov	eax, offset dword_40B204
		call	sub_401C00
		mov	eax, offset dword_40B200
		call	sub_401C00
		mov	eax, offset dword_40B1FC
		call	sub_401C00
		mov	eax, offset dword_40B1F8
		call	sub_401C00
		mov	eax, offset dword_40B1F4
		call	sub_401C00
		mov	eax, offset dword_40B1F0
		call	sub_401C00
		mov	eax, offset dword_40B1EC
		call	sub_401C00
		mov	eax, offset dword_40B1E8
		call	sub_401C00
		mov	eax, offset dword_40B1E4
		call	sub_401C00
		mov	eax, offset dword_40B1E0
		call	sub_401C00
		mov	eax, offset dword_40B1DC
		call	sub_401C00
		mov	eax, offset dword_40B1D8
		call	sub_401C00
		mov	eax, offset dword_40B1D4
		call	sub_401C00
		mov	eax, offset dword_40B1D0
		call	sub_401C00
		mov	eax, offset dword_40B1CC
		call	sub_401C00
		mov	eax, offset dword_40B1C8
		call	sub_401C00
		mov	eax, offset dword_40B1C4
		call	sub_401C00
		mov	eax, offset dword_40B1C0
		call	sub_401C00
		mov	eax, offset dword_40B1BC
		call	sub_401C00
		mov	eax, offset dword_40B1B8
		call	sub_401C00
		mov	eax, offset dword_40B1B0
		call	sub_401C00
		mov	eax, offset dword_40B1AC
		call	sub_401C00
		mov	eax, offset dword_40B1A8
		call	sub_401C00
		mov	eax, offset dword_40B1A4
		call	sub_401C00
		mov	eax, offset dword_40B1A0
		call	sub_401C00
		mov	eax, offset dword_40B19C
		call	sub_401C00
		mov	eax, offset dword_40B198
		call	sub_401C00
		mov	eax, offset dword_40B194
		call	sub_401C00
		mov	eax, offset dword_40B190
		call	sub_401C00
		mov	eax, offset dword_40B18C
		call	sub_401C00
		mov	eax, offset dword_40B188
		call	sub_401C00
		mov	eax, offset dword_40B184
		call	sub_401C00
		mov	eax, offset dword_40B180
		call	sub_401C00
		mov	eax, offset dword_40B17C
		call	sub_401C00
		mov	eax, offset dword_40B178
		call	sub_401C00
		mov	eax, offset dword_40B170
		call	sub_401C00
		mov	eax, offset dword_40B168
		call	sub_401C00
		mov	eax, offset dword_40B164
		call	sub_401C00
		mov	eax, offset dword_40B160
		call	sub_401C00
		mov	eax, offset dword_40B15C
		call	sub_401C00
		mov	eax, offset dword_40B158
		call	sub_401C00
		mov	eax, offset dword_40B154
		call	sub_401C00
		mov	eax, offset dword_40B150
		call	sub_401C00
		mov	eax, offset dword_40B14C
		call	sub_401C00
		mov	eax, offset dword_40B148
		call	sub_401C00
		mov	eax, offset dword_40B144
		call	sub_401C00
		mov	eax, offset dword_40B140
		call	sub_401C00
		mov	eax, offset dword_40B13C
		call	sub_401C00
		mov	eax, offset dword_40B138
		call	sub_401C00
		mov	eax, offset dword_40B134
		call	sub_401C00
		mov	eax, offset dword_40B130
		call	sub_401C00
		mov	eax, offset dword_40B12C
		call	sub_401C00
		mov	eax, offset dword_40B128
		call	sub_401C00
		mov	eax, offset dword_40B124
		call	sub_401C00
		mov	eax, offset dword_40B120
		call	sub_401C00
		mov	eax, offset dword_40B11C
		call	sub_401C00
		mov	eax, offset dword_40B118
		call	sub_401C00
		mov	eax, offset dword_40B114
		call	sub_401C00
		mov	eax, offset dword_40B110
		call	sub_401C00
		mov	eax, offset dword_40B10C
		call	sub_401C00
		mov	eax, offset dword_40B108
		call	sub_401C00
		mov	eax, offset dword_40B104
		call	sub_401C00
		mov	eax, offset dword_40B100
		call	sub_401C00
		mov	eax, offset dword_40B0FC
		call	sub_401C00
		mov	eax, offset dword_40B0F8
		call	sub_401C00
		mov	eax, offset dword_40B0F4
		call	sub_401C00
		mov	eax, offset dword_40B0F0
		call	sub_401C00
		mov	eax, offset dword_40B0EC
		call	sub_401C00
		mov	eax, offset dword_40B0E8
		call	sub_401C00
		mov	eax, offset dword_40B0E4
		call	sub_401C00
		mov	eax, offset dword_40B0E0
		call	sub_401C00
		mov	eax, offset dword_40B0D4
		call	sub_401C00
		mov	eax, offset dword_40B0D0
		call	sub_401C00
		mov	eax, offset dword_40B0CC
		call	sub_401C00
		mov	eax, offset dword_40B0C8
		call	sub_401C00
		mov	eax, offset dword_40B0C4
		call	sub_401C00
		mov	eax, offset dword_40B0C0
		call	sub_401C00
		mov	eax, offset dword_40B0BC
		call	sub_401C00
		mov	eax, offset dword_40B0B8
		call	sub_401C00
		mov	eax, offset dword_40B0B4
		call	sub_401C00
		mov	eax, offset dword_40B0B0
		call	sub_401C00
		mov	eax, offset dword_40B0AC
		call	sub_401C00
		mov	eax, offset dword_40B0A8
		call	sub_401C00
		mov	eax, offset dword_40B0A4
		call	sub_401C00
		mov	eax, offset dword_40B0A0
		call	sub_401C00
		mov	eax, offset dword_40B09C
		call	sub_401C00
		mov	eax, offset dword_40B098
		call	sub_401C00
		mov	eax, offset dword_40B094
		call	sub_401C00


loc_4039F7:				; CODE XREF: sub_403610+17j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_403A0C


loc_403A04:				; CODE XREF: sub_403610+3FAj
		retn
; ---------------------------------------------------------------------------


loc_403A05:				; DATA XREF: sub_403610+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_403A04
; ---------------------------------------------------------------------------


loc_403A0C:				; CODE XREF: sub_403610:loc_403A04j
					; DATA XREF: sub_403610+3EFo
		pop	ebp
		retn
sub_403610	endp

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

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

; Attributes: bp-based frame


sub_403A10	proc near		; DATA XREF: CODE:00409EACo
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_403A4C
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		sub	ds:dword_40B224, 1
		jnb	short loc_403A3E
		call	sub_403094
		mov	ds:dword_40B1B4, eax
		call	sub_403094
		mov	ds:dword_40B16C, eax


loc_403A3E:				; CODE XREF: sub_403A10+18j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_403A53


loc_403A4B:				; CODE XREF: sub_403A10+41j
		retn
; ---------------------------------------------------------------------------


loc_403A4C:				; DATA XREF: sub_403A10+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_403A4B
; ---------------------------------------------------------------------------


loc_403A53:				; CODE XREF: sub_403A10:loc_403A4Bj
					; DATA XREF: sub_403A10+36o
		pop	ebp
		retn
sub_403A10	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_403A58	proc near		; CODE XREF: sub_403BE0+3Cp

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
		xor	ecx, ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_403AED
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_C]
		mov	edx, [ebp+var_4]
		call	sub_401C98
		mov	eax, [ebp+var_8]
		call	sub_401C00
		jmp	short loc_403ACC
; ---------------------------------------------------------------------------


loc_403A8B:				; CODE XREF: sub_403A58+78j
		lea	eax, [ebp+var_14]
		push	eax
		mov	ecx, 4
		mov	edx, 1
		mov	eax, [ebp+var_C]
		call	@System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void)
		mov	eax, [ebp+var_14]
		lea	edx, [ebp+var_10]
		call	sub_4040EC
		mov	edx, [ebp+var_10]
		mov	eax, [ebp+var_8]
		call	@System@@LStrCat$qqrv ;	System::__linkproc__ LStrCat(void)
		mov	eax, [ebp+var_8]
		lea	eax, [ebp+var_C]
		mov	ecx, 4
		mov	edx, 1
		call	sub_402038


loc_403ACC:				; CODE XREF: sub_403A58+31j
		cmp	[ebp+var_C], 0
		jnz	short loc_403A8B
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_403AF4


loc_403ADF:				; CODE XREF: sub_403A58+9Aj
		lea	eax, [ebp+var_14]
		mov	edx, 3
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_403AED:				; DATA XREF: sub_403A58+13o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_403ADF
; ---------------------------------------------------------------------------


loc_403AF4:				; CODE XREF: sub_403A58+94j
					; DATA XREF: sub_403A58+82o
		mov	esp, ebp
		pop	ebp
		retn
sub_403A58	endp


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

; Attributes: bp-based frame


sub_403AF8	proc near		; CODE XREF: sub_403BE0+57p

var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE0h
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		dec	[ebp+var_14]
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_4]
		call	sub_401C54
		mov	[ebp+var_14], 88h
		mov	ax, word ptr [ebp+var_8]
		mov	[ebp+var_10], ax
		sub	[ebp+var_14], 42h
		mov	eax, [ebp+var_C]
		mov	eax, [eax]
		call	sub_401DF4
		test	ax, ax
		jbe	loc_403BD8
		mov	[ebp+var_1E], ax
		mov	[ebp+var_E], 1


loc_403B45:				; CODE XREF: sub_403AF8+DAj
		inc	[ebp+var_14]
		movzx	eax, [ebp+var_E]
		mov	edx, [ebp+var_C]
		mov	edx, [edx]
		movzx	eax, byte ptr [edx+eax-1]
		mov	[ebp+var_18], eax
		sub	[ebp+var_14], 13h
		movzx	eax, [ebp+var_10]
		shr	eax, 8
		mov	[ebp+var_1C], eax
		sub	[ebp+var_14], 54h
		mov	eax, [ebp+var_C]
		call	sub_401FC4
		movzx	edx, [ebp+var_E]
		mov	cl, byte ptr [ebp+var_18]
		xor	cl, byte ptr [ebp+var_1C]
		mov	[eax+edx-1], cl
		mov	[ebp+var_14], 3C5h
		dec	[ebp+var_14]
		movzx	eax, [ebp+var_E]
		mov	edx, [ebp+var_4]
		movzx	eax, byte ptr [edx+eax-1]
		movzx	edx, [ebp+var_10]
		add	eax, edx
		mov	[ebp+var_18], eax
		mov	[ebp+var_14], 312h
		imul	eax, [ebp+var_18], 0CE6Dh
		mov	[ebp+var_1C], eax
		inc	[ebp+var_14]
		mov	ax, word ptr [ebp+var_1C]
		mov	[ebp+var_10], ax
		sub	[ebp+var_14], 41h
		add	[ebp+var_10], 58BFh
		sub	[ebp+var_14], 2Ch
		inc	[ebp+var_E]
		dec	[ebp+var_1E]
		jnz	loc_403B45


loc_403BD8:				; CODE XREF: sub_403AF8+3Dj
		add	[ebp+var_14], 1Bh
		mov	esp, ebp
		pop	ebp
		retn
sub_403AF8	endp


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

; Attributes: bp-based frame


sub_403BE0	proc near		; CODE XREF: sub_4042E8+3Fp

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
		add	esp, 0FFFFFFE8h
		push	ebx
		xor	ebx, ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+var_18], ebx
		mov	[ebp+var_10], ebx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_403C57
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_18]
		xor	ecx, ecx
		mov	edx, [ebp+var_4]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_18]
		lea	edx, [ebp+var_14]
		call	sub_403A58
		mov	edx, [ebp+var_14]
		lea	eax, [ebp+var_10]
		xor	ecx, ecx
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_10]
		call	sub_403AF8
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_403C5E


loc_403C49:				; CODE XREF: sub_403BE0+7Cj
		lea	eax, [ebp+var_18]
		mov	edx, 3
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_403C57:				; DATA XREF: sub_403BE0+1Eo
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_403C49
; ---------------------------------------------------------------------------


loc_403C5E:				; CODE XREF: sub_403BE0+76j
					; DATA XREF: sub_403BE0+64o
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_403BE0	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_403C64	proc near		; CODE XREF: sub_403EF8+56p

var_6C		= byte ptr -6Ch
var_64		= byte ptr -64h
var_60		= byte ptr -60h
var_5C		= byte ptr -5Ch
var_58		= byte ptr -58h
var_54		= byte ptr -54h
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
		add	esp, 0FFFFFF94h
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], 41h


loc_403C7C:				; CODE XREF: sub_403C64+2Cj
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_10]
		mov	[ebp+edx+var_54], al
		inc	[ebp+var_10]
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 5Bh
		jnz	short loc_403C7C
		mov	[ebp+var_C], 61h


loc_403C99:				; CODE XREF: sub_403C64+49j
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_10]
		mov	[ebp+edx+var_54], al
		inc	[ebp+var_10]
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 7Bh
		jnz	short loc_403C99
		mov	[ebp+var_C], 30h


loc_403CB6:				; CODE XREF: sub_403C64+66j
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_10]
		mov	[ebp+edx+var_54], al
		inc	[ebp+var_10]
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 3Ah
		jnz	short loc_403CB6
		mov	eax, [ebp+var_10]
		mov	[ebp+eax+var_54], 2Bh
		inc	[ebp+var_10]
		mov	eax, [ebp+var_10]
		mov	[ebp+eax+var_54], 2Fh
		xor	eax, eax
		mov	[ebp+var_C], eax
		dec	[ebp+var_14]
		mov	eax, [ebp+var_4]
		call	sub_401DF4
		push	eax
		mov	eax, [ebp+var_4]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		lea	edx, [ebp+var_C]
		pop	ecx
		call	sub_401210
		mov	eax, [ebp+var_4]
		call	sub_401DF4
		dec	eax
		jz	short loc_403D1B
		dec	eax
		jz	short loc_403D80
		dec	eax
		jz	loc_403E1D
		jmp	loc_403EED
; ---------------------------------------------------------------------------


loc_403D1B:				; CODE XREF: sub_403C64+A6j
		lea	eax, [ebp+var_58]
		mov	edx, [ebp+var_C]
		and	edx, 8000003Fh
		jns	short loc_403D2E
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403D2E:				; CODE XREF: sub_403C64+C3j
		mov	dl, [ebp+edx+var_54]
		mov	[eax+1], dl
		mov	byte ptr [eax],	1
		lea	edx, [ebp+var_58]
		lea	eax, [ebp+var_5C]
		call	sub_4012C8
		lea	eax, [ebp+var_60]
		mov	edx, [ebp+var_C]
		shr	edx, 6
		and	edx, 8000003Fh
		jns	short loc_403D59
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403D59:				; CODE XREF: sub_403C64+EEj
		mov	dl, [ebp+edx+var_54]
		mov	[eax+1], dl
		mov	byte ptr [eax],	1
		lea	edx, [ebp+var_60]
		lea	eax, [ebp+var_5C]
		mov	cl, 2
		call	@System@@PStrNCat$qqrv ; System::__linkproc__ PStrNCat(void)
		lea	edx, [ebp+var_5C]
		mov	eax, [ebp+var_8]
		call	unknown_libname_9 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		jmp	loc_403EED
; ---------------------------------------------------------------------------


loc_403D80:				; CODE XREF: sub_403C64+A9j
		lea	eax, [ebp+var_58]
		mov	edx, [ebp+var_C]
		and	edx, 8000003Fh
		jns	short loc_403D93
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403D93:				; CODE XREF: sub_403C64+128j
		mov	dl, [ebp+edx+var_54]
		mov	[eax+1], dl
		mov	byte ptr [eax],	1
		lea	edx, [ebp+var_58]
		lea	eax, [ebp+var_5C]
		call	sub_4012C8
		lea	eax, [ebp+var_60]
		mov	edx, [ebp+var_C]
		shr	edx, 6
		and	edx, 8000003Fh
		jns	short loc_403DBE
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403DBE:				; CODE XREF: sub_403C64+153j
		mov	dl, [ebp+edx+var_54]
		mov	[eax+1], dl
		mov	byte ptr [eax],	1
		lea	edx, [ebp+var_60]
		lea	eax, [ebp+var_5C]
		mov	cl, 2
		call	@System@@PStrNCat$qqrv ; System::__linkproc__ PStrNCat(void)
		lea	edx, [ebp+var_5C]
		lea	eax, [ebp+var_64]
		call	sub_4012C8
		lea	eax, [ebp+var_60]
		mov	edx, [ebp+var_C]
		shr	edx, 0Ch
		and	edx, 8000003Fh
		jns	short loc_403DF6
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403DF6:				; CODE XREF: sub_403C64+18Bj
		mov	dl, [ebp+edx+var_54]
		mov	[eax+1], dl
		mov	byte ptr [eax],	1
		lea	edx, [ebp+var_60]
		lea	eax, [ebp+var_64]
		mov	cl, 3
		call	@System@@PStrNCat$qqrv ; System::__linkproc__ PStrNCat(void)
		lea	edx, [ebp+var_64]
		mov	eax, [ebp+var_8]
		call	unknown_libname_9 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		jmp	loc_403EED
; ---------------------------------------------------------------------------


loc_403E1D:				; CODE XREF: sub_403C64+ACj
		lea	eax, [ebp+var_58]
		mov	edx, [ebp+var_C]
		and	edx, 8000003Fh
		jns	short loc_403E30
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403E30:				; CODE XREF: sub_403C64+1C5j
		mov	dl, [ebp+edx+var_54]
		mov	[eax+1], dl
		mov	byte ptr [eax],	1
		lea	edx, [ebp+var_58]
		lea	eax, [ebp+var_5C]
		call	sub_4012C8
		lea	eax, [ebp+var_60]
		mov	edx, [ebp+var_C]
		shr	edx, 6
		and	edx, 8000003Fh
		jns	short loc_403E5B
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403E5B:				; CODE XREF: sub_403C64+1F0j
		mov	dl, [ebp+edx+var_54]
		mov	[eax+1], dl
		mov	byte ptr [eax],	1
		lea	edx, [ebp+var_60]
		lea	eax, [ebp+var_5C]
		mov	cl, 2
		call	@System@@PStrNCat$qqrv ; System::__linkproc__ PStrNCat(void)
		lea	edx, [ebp+var_5C]
		lea	eax, [ebp+var_64]
		call	sub_4012C8
		lea	eax, [ebp+var_60]
		mov	edx, [ebp+var_C]
		shr	edx, 0Ch
		and	edx, 8000003Fh
		jns	short loc_403E93
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403E93:				; CODE XREF: sub_403C64+228j
		mov	dl, [ebp+edx+var_54]
		mov	[eax+1], dl
		mov	byte ptr [eax],	1
		lea	edx, [ebp+var_60]
		lea	eax, [ebp+var_64]
		mov	cl, 3
		call	@System@@PStrNCat$qqrv ; System::__linkproc__ PStrNCat(void)
		lea	edx, [ebp+var_64]
		lea	eax, [ebp+var_6C]
		call	sub_4012C8
		lea	eax, [ebp+var_60]
		mov	edx, [ebp+var_C]
		shr	edx, 12h
		and	edx, 8000003Fh
		jns	short loc_403ECB
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403ECB:				; CODE XREF: sub_403C64+260j
		mov	dl, [ebp+edx+var_54]
		mov	[eax+1], dl
		mov	byte ptr [eax],	1
		lea	edx, [ebp+var_60]
		lea	eax, [ebp+var_6C]
		mov	cl, 4
		call	@System@@PStrNCat$qqrv ; System::__linkproc__ PStrNCat(void)
		lea	edx, [ebp+var_6C]
		mov	eax, [ebp+var_8]
		call	unknown_libname_9 ; BDS	2005-2006 and Delphi6-7	Visual Component Library


loc_403EED:				; CODE XREF: sub_403C64+B2j
					; sub_403C64+117j ...
		add	[ebp+var_14], 14h
		mov	esp, ebp
		pop	ebp
		retn
sub_403C64	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_403EF8	proc near		; CODE XREF: sub_40408C+39p

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE8h
		xor	ecx, ecx
		mov	[ebp+var_14], ecx
		mov	[ebp+var_18], ecx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_403F9C
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_C]
		mov	edx, [ebp+var_4]
		call	sub_401C98
		mov	eax, [ebp+var_8]
		call	sub_401C00
		jmp	short loc_403F73
; ---------------------------------------------------------------------------


loc_403F32:				; CODE XREF: sub_403EF8+7Fj
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, 3
		mov	edx, 1
		mov	eax, [ebp+var_C]
		call	@System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void)
		mov	eax, [ebp+var_18]
		lea	edx, [ebp+var_14]
		call	sub_403C64
		mov	edx, [ebp+var_14]
		mov	eax, [ebp+var_8]
		call	@System@@LStrCat$qqrv ;	System::__linkproc__ LStrCat(void)
		mov	eax, [ebp+var_8]
		lea	eax, [ebp+var_C]
		mov	ecx, 3
		mov	edx, 1
		call	sub_402038


loc_403F73:				; CODE XREF: sub_403EF8+38j
		cmp	[ebp+var_C], 0
		jnz	short loc_403F32
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_403FA3


loc_403F86:				; CODE XREF: sub_403EF8+A9j
		lea	eax, [ebp+var_18]
		mov	edx, 2
		call	sub_401C24
		lea	eax, [ebp+var_C]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_403F9C:				; DATA XREF: sub_403EF8+1Ao
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_403F86
; ---------------------------------------------------------------------------


loc_403FA3:				; CODE XREF: sub_403EF8+A3j
					; DATA XREF: sub_403EF8+89o
		mov	esp, ebp
		pop	ebp
		retn
sub_403EF8	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_403FA8	proc near		; CODE XREF: sub_40408C+2Ep

var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_6		= word ptr -6
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE0h
		mov	[ebp+var_C], ecx
		mov	[ebp+var_6], dx
		mov	[ebp+var_4], eax
		mov	[ebp+var_10], 275h
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_4]
		call	sub_401C54
		add	[ebp+var_10], 38h
		mov	ax, [ebp+var_6]
		mov	[ebp+var_14], ax
		dec	[ebp+var_10]
		mov	eax, [ebp+var_C]
		mov	eax, [eax]
		call	sub_401DF4
		test	ax, ax
		jbe	loc_404080
		mov	[ebp+var_1E], ax
		mov	[ebp+var_12], 1


loc_403FF6:				; CODE XREF: sub_403FA8+D2j
		mov	[ebp+var_10], 3BFh
		movzx	eax, [ebp+var_12]
		mov	edx, [ebp+var_C]
		mov	edx, [edx]
		movzx	eax, byte ptr [edx+eax-1]
		mov	[ebp+var_18], eax
		sub	[ebp+var_10], 60h
		movzx	eax, [ebp+var_14]
		shr	eax, 8
		mov	[ebp+var_1C], eax
		dec	[ebp+var_10]
		mov	eax, [ebp+var_C]
		call	sub_401FC4
		movzx	edx, [ebp+var_12]
		mov	cl, byte ptr [ebp+var_18]
		xor	cl, byte ptr [ebp+var_1C]
		mov	[eax+edx-1], cl
		sub	[ebp+var_10], 24h
		movzx	eax, [ebp+var_12]
		mov	edx, [ebp+var_C]
		mov	edx, [edx]
		movzx	eax, byte ptr [edx+eax-1]
		movzx	edx, [ebp+var_14]
		add	eax, edx
		mov	[ebp+var_18], eax
		add	[ebp+var_10], 4Ch
		mov	[ebp+var_1C], 0CE6Dh
		sub	[ebp+var_10], 0Fh
		mov	ax, word ptr [ebp+var_18]
		imul	word ptr [ebp+var_1C]
		add	ax, 58BFh
		mov	[ebp+var_14], ax
		dec	[ebp+var_10]
		inc	[ebp+var_12]
		dec	[ebp+var_1E]
		jnz	loc_403FF6


loc_404080:				; CODE XREF: sub_403FA8+3Ej
		mov	[ebp+var_10], 21Bh
		mov	esp, ebp
		pop	ebp
		retn
sub_403FA8	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_40408C	proc near		; CODE XREF: sub_4063E8+ACp
					; sub_4063E8+37Fp ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_6		= word ptr -6
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		xor	ebx, ebx
		mov	[ebp+var_10], ebx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_6], dx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_4040E0
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	ecx, [ebp+var_10]
		mov	dx, [ebp+var_6]
		mov	eax, [ebp+var_4]
		call	sub_403FA8
		mov	eax, [ebp+var_10]
		mov	edx, [ebp+var_C]
		call	sub_403EF8
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4040E7


loc_4040D7:				; CODE XREF: sub_40408C+59j
		lea	eax, [ebp+var_10]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_4040E0:				; DATA XREF: sub_40408C+19o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4040D7
; ---------------------------------------------------------------------------


loc_4040E7:				; CODE XREF: sub_40408C+53j
					; DATA XREF: sub_40408C+46o
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40408C	endp


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

; Attributes: bp-based frame


sub_4040EC	proc near		; CODE XREF: sub_403A58+4Fp

var_111		= byte ptr -111h
var_E6		= byte ptr -0E6h
var_E2		= byte ptr -0E2h
var_11		= byte ptr -11h
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
		add	esp, 0FFFFFEECh
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	[ebp+var_11], 0


loc_4040FF:				; CODE XREF: sub_4040EC+27j
		xor	eax, eax
		mov	al, [ebp+var_11]
		mov	[ebp+eax+var_111], 0
		inc	[ebp+var_11]
		cmp	[ebp+var_11], 0
		jnz	short loc_4040FF
		mov	[ebp+var_E6], 3Eh
		mov	[ebp+var_E2], 3Fh
		mov	[ebp+var_10], 30h


loc_40412A:				; CODE XREF: sub_4040EC+5Aj
		mov	al, byte ptr [ebp+var_10]
		add	al, 4
		mov	edx, [ebp+var_10]
		and	edx, 0FFh
		mov	[ebp+edx+var_111], al
		inc	[ebp+var_10]
		cmp	[ebp+var_10], 3Ah
		jnz	short loc_40412A
		mov	[ebp+var_10], 42h


loc_40414F:				; CODE XREF: sub_4040EC+7Fj
		mov	al, byte ptr [ebp+var_10]
		sub	al, 41h
		mov	edx, [ebp+var_10]
		and	edx, 0FFh
		mov	[ebp+edx+var_111], al
		inc	[ebp+var_10]
		cmp	[ebp+var_10], 5Bh
		jnz	short loc_40414F
		mov	[ebp+var_10], 61h


loc_404174:				; CODE XREF: sub_4040EC+A4j
		mov	al, byte ptr [ebp+var_10]
		sub	al, 47h
		mov	edx, [ebp+var_10]
		and	edx, 0FFh
		mov	[ebp+edx+var_111], al
		inc	[ebp+var_10]
		cmp	[ebp+var_10], 7Bh
		jnz	short loc_404174
		mov	eax, [ebp+var_4]
		call	sub_401DF4
		sub	eax, 2
		jz	short loc_4041AE
		dec	eax
		jz	short loc_404203
		dec	eax
		jz	loc_404269
		jmp	loc_4042E1
; ---------------------------------------------------------------------------


loc_4041AE:				; CODE XREF: sub_4040EC+B1j
		mov	eax, [ebp+var_4]
		movzx	eax, byte ptr [eax]
		movzx	eax, [ebp+eax+var_111]
		mov	edx, [ebp+var_4]
		movzx	edx, byte ptr [edx+1]
		movzx	edx, [ebp+edx+var_111]
		shl	edx, 6
		add	eax, edx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_8]
		mov	edx, 1
		call	sub_4020C8
		mov	eax, [ebp+var_8]
		mov	eax, [eax]
		call	sub_401DF4
		push	eax
		mov	eax, [ebp+var_8]
		call	sub_401FC4
		mov	edx, eax
		lea	eax, [ebp+var_C]
		pop	ecx
		call	sub_401210
		jmp	loc_4042E1
; ---------------------------------------------------------------------------


loc_404203:				; CODE XREF: sub_4040EC+B4j
		mov	eax, [ebp+var_4]
		movzx	eax, byte ptr [eax]
		movzx	eax, [ebp+eax+var_111]
		mov	edx, [ebp+var_4]
		movzx	edx, byte ptr [edx+1]
		movzx	edx, [ebp+edx+var_111]
		shl	edx, 6
		add	eax, edx
		mov	edx, [ebp+var_4]
		movzx	edx, byte ptr [edx+2]
		movzx	edx, [ebp+edx+var_111]
		shl	edx, 0Ch
		add	eax, edx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_8]
		mov	edx, 2
		call	sub_4020C8
		mov	eax, [ebp+var_8]
		mov	eax, [eax]
		call	sub_401DF4
		push	eax
		mov	eax, [ebp+var_8]
		call	sub_401FC4
		mov	edx, eax
		lea	eax, [ebp+var_C]
		pop	ecx
		call	sub_401210
		jmp	short loc_4042E1
; ---------------------------------------------------------------------------


loc_404269:				; CODE XREF: sub_4040EC+B7j
		mov	eax, [ebp+var_4]
		movzx	eax, byte ptr [eax]
		movzx	eax, [ebp+eax+var_111]
		mov	edx, [ebp+var_4]
		movzx	edx, byte ptr [edx+1]
		movzx	edx, [ebp+edx+var_111]
		shl	edx, 6
		add	eax, edx
		mov	edx, [ebp+var_4]
		movzx	edx, byte ptr [edx+2]
		movzx	edx, [ebp+edx+var_111]
		shl	edx, 0Ch
		add	eax, edx
		mov	edx, [ebp+var_4]
		movzx	edx, byte ptr [edx+3]
		movzx	edx, [ebp+edx+var_111]
		shl	edx, 12h
		add	eax, edx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_8]
		mov	edx, 3
		call	sub_4020C8
		mov	eax, [ebp+var_8]
		mov	eax, [eax]
		call	sub_401DF4
		push	eax
		mov	eax, [ebp+var_8]
		call	sub_401FC4
		mov	edx, eax
		lea	eax, [ebp+var_C]
		pop	ecx
		call	sub_401210


loc_4042E1:				; CODE XREF: sub_4040EC+BDj
					; sub_4040EC+112j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4040EC	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_4042E8	proc near		; CODE XREF: sub_405BE8+8Bp
					; sub_407128+37p ...

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
		add	esp, 0FFFFFFF0h
		push	ebx
		xor	ebx, ebx
		mov	[ebp+var_10], ebx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_C]
		call	@System@@WStrAddRef$qqrr17System@WideString ; System::__linkproc__ WStrAddRef(System::WideString &)
		xor	eax, eax
		push	ebp
		push	offset loc_40434A
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_10]
		mov	edx, [ebp+var_4]
		call	@System@@LStrFromWStr$qqrr17System@AnsiStringx17System@WideString ; System::__linkproc__ LStrFromWStr(System::AnsiString &,System::WideString)
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		call	sub_403BE0
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_404351


loc_404339:				; CODE XREF: sub_4042E8+67j
		lea	eax, [ebp+var_10]
		call	sub_401C00
		lea	eax, [ebp+var_C]
		call	@System@@WStrClr$qqrpv ; System::__linkproc__ WStrClr(void *)
		retn
; ---------------------------------------------------------------------------


loc_40434A:				; DATA XREF: sub_4042E8+20o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404339
; ---------------------------------------------------------------------------


loc_404351:				; CODE XREF: sub_4042E8+61j
					; DATA XREF: sub_4042E8+4Co
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4042E8	endp


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

; Attributes: bp-based frame


sub_404358	proc near		; DATA XREF: CODE:00409EB8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_40437D
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B228
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_404384


loc_40437C:				; CODE XREF: sub_404358+2Aj
		retn
; ---------------------------------------------------------------------------


loc_40437D:				; DATA XREF: sub_404358+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40437C
; ---------------------------------------------------------------------------


loc_404384:				; CODE XREF: sub_404358:loc_40437Cj
					; DATA XREF: sub_404358+1Fo
		pop	ebp
		retn
sub_404358	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_404388	proc near		; DATA XREF: CODE:00409EB4o
		sub	ds:dword_40B228, 1
		retn
sub_404388	endp

; ---------------------------------------------------------------------------
off_404390	dd offset dword_4043DC	; DATA XREF: sub_406968+6Er
		dd 2 dup(0)
		dd offset dword_4043DC
		dd 4 dup(0)
		dd offset aKnbbpgxhtslh	; "knbbpgxhtslh"
		dd 20h
		dd offset off_40100C
		dd offset @System@TObject@SafeCallException$qqrp14System@TObjectpv ; System::TObject::SafeCallException(System::TObject	*,void *)
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40149C
		dd offset nullsub_4
		dd offset sub_401388
		dd offset sub_40139C
		dd offset sub_40449C
dword_4043DC	dd 0Eh,	20000h						; CODE:0040439Co
		db 2 dup(0)
		dd offset off_401000
unknown_libname_15 dw 0Ch
		db 2 dup(0)
		dd offset off_401000
		dw 1Ch
		db 2 dup(0)
aKnbbpgxhtslh	db 12,'knbbpgxhtslh'    ; DATA XREF: CODE:004043B0o
		align 4
; [00000096 BYTES: COLLAPSED FUNCTION sub_404404. PRESS	KEYPAD "+" TO EXPAND]
		align 4

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

; Attributes: bp-based frame


sub_40449C	proc near		; DATA XREF: CODE:004043D8o

var_5		= byte ptr -5
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		call	@System@@BeforeDestruction$qqrp14System@TObjectzc ; System::__linkproc__ BeforeDestruction(System::TObject *,signed char)
		mov	[ebp+var_5], dl
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+18h]
		call	sub_4030F8
		cmp	[ebp+var_5], 0
		jle	short loc_4044C6
		mov	eax, [ebp+var_4]
		call	@System@@ClassDestroy$qqrp14System@TObject ; System::__linkproc__ ClassDestroy(System::TObject *)


loc_4044C6:				; CODE XREF: sub_40449C+20j
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_40449C	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_4044CC	proc near		; CODE XREF: sub_404404+4Dp

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_4045B1
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+1Ch]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, ds:off_40A2F0
		mov	eax, [eax]
		call	eax
		mov	edx, [ebp+var_4]
		mov	[edx+8], eax
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+8], 0
		jg	short loc_40451E
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	loc_4045BB
; ---------------------------------------------------------------------------


loc_40451E:				; CODE XREF: sub_4044CC+43j
		mov	eax, [ebp+var_4]
		mov	edx, [eax+8]
		mov	eax, [ebp+var_4]
		add	eax, 0Ch
		call	sub_4020C8
		mov	eax, [ebp+var_4]
		mov	eax, [eax+0Ch]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+8]
		push	eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		push	eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+1Ch]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, ds:off_40A0CC
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	short loc_40456C
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4045BB
; ---------------------------------------------------------------------------


loc_40456C:				; CODE XREF: sub_4044CC+94j
		lea	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+var_4]
		add	eax, 10h
		push	eax
		mov	eax, ds:off_40A27C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+0Ch]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, ds:off_40A240
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	short loc_4045A7
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4045BB
; ---------------------------------------------------------------------------


loc_4045A7:				; CODE XREF: sub_4044CC+CFj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4045BB
; ---------------------------------------------------------------------------


loc_4045B1:				; DATA XREF: sub_4044CC+Fo
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_4045BB:				; CODE XREF: sub_4044CC+4Dj
					; sub_4044CC+9Ej ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_4044CC	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_4045C4	proc near		; CODE XREF: sub_404404+55p

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_40463A
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		mov	eax, [eax+0Ch]
		call	sub_401DF4
		test	eax, eax
		jnz	short loc_4045F7
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_404644
; ---------------------------------------------------------------------------


loc_4045F7:				; CODE XREF: sub_4045C4+27j
		lea	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+var_4]
		add	eax, 14h
		push	eax
		push	offset dword_40464C
		mov	eax, [ebp+var_4]
		mov	eax, [eax+0Ch]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, ds:off_40A240
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jz	short loc_404630
		cmp	[ebp+var_8], 34h
		jnb	short loc_404630
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_404644
; ---------------------------------------------------------------------------


loc_404630:				; CODE XREF: sub_4045C4+5Aj
					; sub_4045C4+60j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_404644
; ---------------------------------------------------------------------------


loc_40463A:				; DATA XREF: sub_4045C4+Fo
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_404644:				; CODE XREF: sub_4045C4+31j
					; sub_4045C4+6Aj ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_4045C4	endp

; ---------------------------------------------------------------------------
		align 4
dword_40464C	dd 5Ch		
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_404650	proc near		; CODE XREF: sub_4046FC+2Ap

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
		add	esp, 0FFFFFFE8h
		push	ebx
		xor	ebx, ebx
		mov	[ebp+var_10], ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+var_18], ebx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_4046E2
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_10]
		mov	edx, offset _str__.Text	; BDS 2005-2006	and Delphi6-7 Visual Component Library
		call	sub_401C98
		mov	eax, [ebp+var_4]
		call	sub_40294C
		movzx	eax, ax
		lea	edx, [ebp+var_18]
		call	sub_4031F0
		lea	edx, [ebp+var_14]
		movzx	eax, word ptr [ebp+var_8]
		call	sub_4031F0
		push	[ebp+var_18]
		push	[ebp+var_10]
		push	[ebp+var_14]
		push	[ebp+var_10]
		push	[ebp+var_18]
		push	[ebp+var_10]
		push	[ebp+var_14]
		mov	eax, [ebp+var_C]
		mov	edx, 7
		call	sub_401EB4
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4046E9


loc_4046D4:				; CODE XREF: sub_404650+97j
		lea	eax, [ebp+var_18]
		mov	edx, 3
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_4046E2:				; DATA XREF: sub_404650+1Eo
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4046D4
; ---------------------------------------------------------------------------


loc_4046E9:				; CODE XREF: sub_404650+91j
					; DATA XREF: sub_404650+7Fo
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_404650	endp

; ---------------------------------------------------------------------------
		align 10h
_str__		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_404650+2Co
		dd 1			; Len ;	BDS 2005-2006 and Delphi6-7 Visual Component Library
		db '.',0                ; Text
		align 4

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

; Attributes: bp-based frame


sub_4046FC	proc near		; CODE XREF: sub_406968+81p

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+14h], 0
		jz	short loc_40472B
		mov	ecx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		mov	eax, [eax+14h]
		mov	edx, [eax+0Ch]
		mov	eax, [ebp+var_4]
		mov	eax, [eax+14h]
		mov	eax, [eax+8]
		call	sub_404650


loc_40472B:				; CODE XREF: sub_4046FC+13j
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_4046FC	endp

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

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

; Attributes: bp-based frame


sub_404730	proc near		; DATA XREF: CODE:00409EC0o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_404755
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B22C
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40475C


loc_404754:				; CODE XREF: sub_404730+2Aj
		retn
; ---------------------------------------------------------------------------


loc_404755:				; DATA XREF: sub_404730+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404754
; ---------------------------------------------------------------------------


loc_40475C:				; CODE XREF: sub_404730:loc_404754j
					; DATA XREF: sub_404730+1Fo
		pop	ebp
		retn
sub_404730	endp

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

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



sub_404760	proc near		; DATA XREF: CODE:00409EBCo
		sub	ds:dword_40B22C, 1
		retn
sub_404760	endp


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

; Attributes: bp-based frame


sub_404768	proc near		; DATA XREF: CODE:00409EC8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_40478D
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B230
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_404794


loc_40478C:				; CODE XREF: sub_404768+2Aj
		retn
; ---------------------------------------------------------------------------


loc_40478D:				; DATA XREF: sub_404768+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40478C
; ---------------------------------------------------------------------------


loc_404794:				; CODE XREF: sub_404768:loc_40478Cj
					; DATA XREF: sub_404768+1Fo
		pop	ebp
		retn
sub_404768	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_404798	proc near		; DATA XREF: CODE:00409EC4o
		sub	ds:dword_40B230, 1
		retn
sub_404798	endp


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

; Attributes: bp-based frame


sub_4047A0	proc near		; DATA XREF: CODE:00409ED0o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_4047C5
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B234
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4047CC


loc_4047C4:				; CODE XREF: sub_4047A0+2Aj
		retn
; ---------------------------------------------------------------------------


loc_4047C5:				; DATA XREF: sub_4047A0+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4047C4
; ---------------------------------------------------------------------------


loc_4047CC:				; CODE XREF: sub_4047A0:loc_4047C4j
					; DATA XREF: sub_4047A0+1Fo
		pop	ebp
		retn
sub_4047A0	endp

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

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



sub_4047D0	proc near		; DATA XREF: CODE:00409ECCo
		sub	ds:dword_40B234, 1
		retn
sub_4047D0	endp


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

; Attributes: bp-based frame


sub_4047D8	proc near		; DATA XREF: CODE:00409ED8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_4047FD
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B238
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_404804


loc_4047FC:				; CODE XREF: sub_4047D8+2Aj
		retn
; ---------------------------------------------------------------------------


loc_4047FD:				; DATA XREF: sub_4047D8+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4047FC
; ---------------------------------------------------------------------------


loc_404804:				; CODE XREF: sub_4047D8:loc_4047FCj
					; DATA XREF: sub_4047D8+1Fo
		pop	ebp
		retn
sub_4047D8	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_404808	proc near		; DATA XREF: CODE:00409ED4o
		sub	ds:dword_40B238, 1
		retn
sub_404808	endp


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

; Attributes: bp-based frame


sub_404810	proc near		; CODE XREF: sub_40484C+2Cp
					; sub_404974+2Cp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		mov	[ebp+var_8], edx
		mov	[ebp+var_1], al
		mov	eax, [ebp+var_8]
		call	sub_401DF4
		cmp	eax, 1
		jl	short loc_404844
		mov	[ebp+var_C], eax


loc_40482C:				; CODE XREF: sub_404810+32j
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_8]
		mov	al, [edx+eax-1]
		cmp	al, [ebp+var_1]
		jz	short loc_404844
		dec	[ebp+var_C]
		cmp	[ebp+var_C], 0
		jnz	short loc_40482C


loc_404844:				; CODE XREF: sub_404810+17j
					; sub_404810+29j
		mov	eax, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
sub_404810	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_40484C	proc near		; CODE XREF: sub_404AD8+51p
					; sub_404B64+53p ...

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_D		= byte ptr -0Dh
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
		add	esp, 0FFFFFFE0h
		push	ebx
		xor	ebx, ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_404963
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	[ebp+var_D], 0
		mov	edx, [ebp+var_8]
		mov	al, 5Ch
		call	sub_404810
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jle	loc_40494D
		lea	eax, [ebp+var_14]
		push	eax
		mov	ecx, [ebp+var_18]
		dec	ecx
		mov	edx, 1
		mov	eax, [ebp+var_8]
		call	@System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void)
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		push	20006h
		push	0
		push	0
		push	0
		mov	eax, [ebp+var_14]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, ds:off_40A2A8
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	short loc_40494D
		lea	eax, [ebp+var_14]
		push	eax
		mov	eax, [ebp+var_8]
		call	sub_401DF4
		mov	ecx, eax
		sub	ecx, [ebp+var_18]
		mov	edx, [ebp+var_18]
		inc	edx
		mov	eax, [ebp+var_8]
		call	@System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void)
		cmp	[ebp+var_14], 0
		jnz	short loc_404916
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, [ebp+arg_4]
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		push	0
		push	0
		mov	eax, [ebp+var_20]
		push	eax
		mov	eax, ds:off_40A198
		mov	eax, [eax]
		call	eax
		test	eax, eax
		setz	[ebp+var_D]
		jmp	short loc_404940
; ---------------------------------------------------------------------------


loc_404916:				; CODE XREF: sub_40484C+A3j
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, [ebp+arg_4]
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		push	0
		mov	eax, [ebp+var_14]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_20]
		push	eax
		mov	eax, ds:off_40A198
		mov	eax, [eax]
		call	eax
		test	eax, eax
		setz	[ebp+var_D]


loc_404940:				; CODE XREF: sub_40484C+C8j
		mov	eax, [ebp+var_20]
		push	eax
		mov	eax, ds:off_40A2C8
		mov	eax, [eax]
		call	eax


loc_40494D:				; CODE XREF: sub_40484C+38j
					; sub_40484C+80j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40496A


loc_40495A:				; CODE XREF: sub_40484C+11Cj
		lea	eax, [ebp+var_14]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_404963:				; DATA XREF: sub_40484C+18o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40495A
; ---------------------------------------------------------------------------


loc_40496A:				; CODE XREF: sub_40484C+116j
					; DATA XREF: sub_40484C+109o
		mov	al, [ebp+var_D]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
sub_40484C	endp


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

; Attributes: bp-based frame


sub_404974	proc near		; CODE XREF: sub_404CB0+2Ep
					; sub_404D24+2Ep ...

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_D		= byte ptr -0Dh
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
		add	esp, 0FFFFFFD4h
		push	ebx
		xor	ebx, ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_404AC7
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	[ebp+var_D], 0
		mov	edx, [ebp+var_8]
		mov	al, 5Ch
		call	sub_404810
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jle	loc_404AB1
		lea	eax, [ebp+var_14]
		push	eax
		mov	ecx, [ebp+var_18]
		dec	ecx
		mov	edx, 1
		mov	eax, [ebp+var_8]
		call	@System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void)
		lea	eax, [ebp+var_20]
		push	eax
		push	20019h
		push	0
		mov	eax, [ebp+var_14]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, ds:off_40A2C4
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	loc_404AB1
		lea	eax, [ebp+var_14]
		push	eax
		mov	eax, [ebp+var_8]
		call	sub_401DF4
		mov	ecx, eax
		sub	ecx, [ebp+var_18]
		mov	edx, [ebp+var_18]
		inc	edx
		mov	eax, [ebp+var_8]
		call	@System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void)
		cmp	[ebp+var_14], 0
		jnz	short loc_404A1A
		xor	eax, eax
		mov	[ebp+var_2C], eax
		jmp	short loc_404A25
; ---------------------------------------------------------------------------


loc_404A1A:				; CODE XREF: sub_404974+9Dj
		mov	eax, [ebp+var_14]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	[ebp+var_2C], eax


loc_404A25:				; CODE XREF: sub_404974+A4j
		lea	eax, [ebp+var_28]
		push	eax
		push	0
		lea	eax, [ebp+var_1C]
		push	eax
		push	0
		mov	eax, [ebp+var_2C]
		push	eax
		mov	eax, [ebp+var_20]
		push	eax
		mov	eax, ds:off_40A170
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	short loc_404AA4
		mov	eax, [ebp+var_28]
		call	sub_40114C
		mov	[ebp+var_24], eax
		lea	eax, [ebp+var_28]
		push	eax
		mov	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		push	0
		mov	eax, [ebp+var_2C]
		push	eax
		mov	eax, [ebp+var_20]
		push	eax
		mov	eax, ds:off_40A170
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	short loc_404A9C
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+var_1C]
		jnz	short loc_404A92
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+var_24]
		mov	[eax], edx
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+var_28]
		mov	[eax], edx
		mov	[ebp+var_D], 1
		jmp	short loc_404AA4
; ---------------------------------------------------------------------------


loc_404A92:				; CODE XREF: sub_404974+106j
		mov	eax, [ebp+var_24]
		call	sub_401164
		jmp	short loc_404AA4
; ---------------------------------------------------------------------------


loc_404A9C:				; CODE XREF: sub_404974+FEj
		mov	eax, [ebp+var_24]
		call	sub_401164


loc_404AA4:				; CODE XREF: sub_404974+D0j
					; sub_404974+11Cj ...
		mov	eax, [ebp+var_20]
		push	eax
		mov	eax, ds:off_40A2C8
		mov	eax, [eax]
		call	eax


loc_404AB1:				; CODE XREF: sub_404974+38j
					; sub_404974+76j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_404ACE


loc_404ABE:				; CODE XREF: sub_404974+158j
		lea	eax, [ebp+var_14]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_404AC7:				; DATA XREF: sub_404974+18o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404ABE
; ---------------------------------------------------------------------------


loc_404ACE:				; CODE XREF: sub_404974+152j
					; DATA XREF: sub_404974+145o
		mov	al, [ebp+var_D]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
sub_404974	endp


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

; Attributes: bp-based frame


sub_404AD8	proc near		; CODE XREF: sub_4055F8+62p
					; sub_4057E4+B8p ...

var_14		= dword	ptr -14h
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		push	ebx
		xor	ebx, ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_404B47
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_14]
		mov	ecx, offset dword_404B60
		mov	edx, [ebp+var_C]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_14]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		call	sub_401DF4
		inc	eax
		push	eax
		mov	ecx, 1
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_40484C
		mov	[ebp+var_D], al
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_404B4E


loc_404B3E:				; CODE XREF: sub_404AD8+74j
		lea	eax, [ebp+var_14]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_404B47:				; DATA XREF: sub_404AD8+18o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404B3E
; ---------------------------------------------------------------------------


loc_404B4E:				; CODE XREF: sub_404AD8+6Ej
					; DATA XREF: sub_404AD8+61o
		mov	al, [ebp+var_D]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_404AD8	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 1
dword_404B60	dd 0		
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_404B64	proc near		; CODE XREF: sub_409718+66p r+9Cp

var_14		= dword	ptr -14h
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		push	ebx
		xor	ebx, ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_404BD5
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_14]
		mov	ecx, offset dword_404BEC
		mov	edx, [ebp+var_C]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_14]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		call	sub_401DF4
		add	eax, 2
		push	eax
		mov	ecx, 7
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_40484C
		mov	[ebp+var_D], al
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_404BDC


loc_404BCC:				; CODE XREF: sub_404B64+76j
		lea	eax, [ebp+var_14]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_404BD5:				; DATA XREF: sub_404B64+18o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404BCC
; ---------------------------------------------------------------------------


loc_404BDC:				; CODE XREF: sub_404B64+70j
					; DATA XREF: sub_404B64+63o
		mov	al, [ebp+var_D]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_404B64	endp

; ---------------------------------------------------------------------------
		dd 0FFFFFFFFh, 2
dword_404BEC	dd 0		
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_404BF0	proc near		; CODE XREF: r+25Ep

var_14		= dword	ptr -14h
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		push	ebx
		xor	ebx, ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_404C5F
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_14]
		mov	ecx, offset dword_404C78
		mov	edx, [ebp+var_C]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_14]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		call	sub_401DF4
		inc	eax
		push	eax
		mov	ecx, 2
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_40484C
		mov	[ebp+var_D], al
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_404C66


loc_404C56:				; CODE XREF: sub_404BF0+74j
		lea	eax, [ebp+var_14]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_404C5F:				; DATA XREF: sub_404BF0+18o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404C56
; ---------------------------------------------------------------------------


loc_404C66:				; CODE XREF: sub_404BF0+6Ej
					; DATA XREF: sub_404BF0+61o
		mov	al, [ebp+var_D]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_404BF0	endp

; ---------------------------------------------------------------------------
		align 10h
		dd 0FFFFFFFFh, 1
dword_404C78	dd 0		
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_404C7C	proc near		; CODE XREF: sub_4057E4+6Ep

var_D		= byte ptr -0Dh
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
		add	esp, 0FFFFFFF0h
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		mov	ecx, 3
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_40484C
		mov	[ebp+var_D], al
		mov	al, [ebp+var_D]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_404C7C	endp


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

; Attributes: bp-based frame


sub_404CB0	proc near		; CODE XREF: sub_405688+5Ap

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE8h
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	[ebp+var_D], 0
		mov	eax, [ebp+var_C]
		call	sub_401C00
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, 1
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_404974
		test	al, al
		jz	short loc_404D1C
		dec	[ebp+var_18]
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_18]
		call	sub_4020C8
		cmp	[ebp+var_18], 0
		jbe	short loc_404D10
		mov	eax, [ebp+var_C]
		call	sub_401FC4
		mov	edx, eax
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+var_18]
		call	sub_401210


loc_404D10:				; CODE XREF: sub_404CB0+49j
		mov	eax, [ebp+var_14]
		call	sub_401164
		mov	[ebp+var_D], 1


loc_404D1C:				; CODE XREF: sub_404CB0+35j
		mov	al, [ebp+var_D]
		mov	esp, ebp
		pop	ebp
		retn
sub_404CB0	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_404D24	proc near		; CODE XREF: sub_409718+23p r+58p

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE8h
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	[ebp+var_D], 0
		mov	eax, [ebp+var_C]
		call	sub_401C00
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, 7
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_404974
		test	al, al
		jz	short loc_404D90
		dec	[ebp+var_18]
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_18]
		call	sub_4020C8
		cmp	[ebp+var_18], 0
		jbe	short loc_404D84
		mov	eax, [ebp+var_C]
		call	sub_401FC4
		mov	edx, eax
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+var_18]
		call	sub_401210


loc_404D84:				; CODE XREF: sub_404D24+49j
		mov	eax, [ebp+var_14]
		call	sub_401164
		mov	[ebp+var_D], 1


loc_404D90:				; CODE XREF: sub_404D24+35j
		mov	al, [ebp+var_D]
		mov	esp, ebp
		pop	ebp
		retn
sub_404D24	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_404D98	proc near		; CODE XREF: sub_405718+52p

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE8h
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	[ebp+var_D], 0
		mov	eax, [ebp+var_C]
		call	sub_401C00
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, 3
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_404974
		test	al, al
		jz	short loc_404DFB
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_18]
		call	sub_4020C8
		mov	eax, [ebp+var_C]
		call	sub_401FC4
		mov	edx, eax
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+var_18]
		call	sub_401210
		mov	eax, [ebp+var_14]
		call	sub_401164
		mov	[ebp+var_D], 1


loc_404DFB:				; CODE XREF: sub_404D98+35j
		mov	al, [ebp+var_D]
		mov	esp, ebp
		pop	ebp
		retn
sub_404D98	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_404E04	proc near		; DATA XREF: CODE:00409EE0o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_404E29
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B23C
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_404E30


loc_404E28:				; CODE XREF: sub_404E04+2Aj
		retn
; ---------------------------------------------------------------------------


loc_404E29:				; DATA XREF: sub_404E04+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404E28
; ---------------------------------------------------------------------------


loc_404E30:				; CODE XREF: sub_404E04:loc_404E28j
					; DATA XREF: sub_404E04+1Fo
		pop	ebp
		retn
sub_404E04	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_404E34	proc near		; DATA XREF: CODE:00409EDCo
		sub	ds:dword_40B23C, 1
		retn
sub_404E34	endp

; ---------------------------------------------------------------------------
off_404E3C	dd offset dword_404E88	; DATA XREF: sub_4051B8+3Er
					; sub_405348+33r
		dd 2 dup(0)
		dd offset dword_404E88
		dd 4 dup(0)
		dd offset aKahjk	; "kahjk"
		dd 10h
		dd offset off_40100C
		dd offset @System@TObject@SafeCallException$qqrp14System@TObjectpv ; System::TObject::SafeCallException(System::TObject	*,void *)
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40149C
		dd offset nullsub_4
		dd offset sub_401388
		dd offset sub_40139C
		dd offset @System@TObject@$bdtr$qqrv ; System::TObject::~TObject(void)
dword_404E88	dd 0Eh,	10000h						; CODE:00404E48o
		db 2 dup(0)
		dd offset off_401000
		db 8			; Method
		db 0
		db 0			; Procedure
		db 0
aKahjk		db 5,'kahjk'            ; DATA XREF: CODE:00404E5Co

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

; Attributes: bp-based frame


sub_404EA0	proc near		; CODE XREF: sub_4051B8+6Ep
					; sub_405348+6Bp

var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_5		= byte ptr -5
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFDCh
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_14], edx
		mov	[ebp+var_4], eax
		mov	[ebp+var_5], 0
		xor	eax, eax
		push	ebp
		push	offset loc_404FF4
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		push	0
		push	1
		push	2
		mov	eax, ds:off_40A284
		mov	eax, [eax]
		call	eax
		mov	edx, [ebp+var_4]
		mov	[edx+4], eax
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+4], 0FFFFFFFFh
		jnz	short loc_404EEC
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	loc_404FFE
; ---------------------------------------------------------------------------


loc_404EEC:				; CODE XREF: sub_404EA0+3Dj
		lea	eax, [ebp+var_24]
		mov	edx, 10h
		call	@Windows@ZeroMemory$qqrpvui ; Windows::ZeroMemory(void *,uint)
		mov	[ebp+var_24], 2
		mov	eax, [ebp+var_4]
		mov	ax, [eax+0Ch]
		push	eax
		mov	eax, ds:off_40A2E0
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_22], ax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+8]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, ds:off_40A30C
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_404F3F
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	loc_404FFE
; ---------------------------------------------------------------------------


loc_404F3F:				; CODE XREF: sub_404EA0+90j
		mov	eax, [ebp+var_10]
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		mov	eax, ds:off_40A2B4
		mov	eax, [eax]
		call	eax
		push	eax
		mov	eax, ds:off_40A14C
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_20], eax
		push	10h
		lea	eax, [ebp+var_24]
		push	eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		push	eax
		mov	eax, ds:off_40A204
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jz	short loc_404F83
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_404FFE
; ---------------------------------------------------------------------------


loc_404F83:				; CODE XREF: sub_404EA0+D7j
		mov	[ebp+var_C], 7530h
		push	4
		lea	eax, [ebp+var_C]
		push	eax
		push	1005h
		push	0FFFFh
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		push	eax
		mov	eax, ds:off_40A290
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jz	short loc_404FB8
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_404FFE
; ---------------------------------------------------------------------------


loc_404FB8:				; CODE XREF: sub_404EA0+10Cj
		push	4
		lea	eax, [ebp+var_C]
		push	eax
		push	1006h
		push	0FFFFh
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		push	eax
		mov	eax, ds:off_40A290
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jz	short loc_404FE6
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_404FFE
; ---------------------------------------------------------------------------


loc_404FE6:				; CODE XREF: sub_404EA0+13Aj
		mov	[ebp+var_5], 1
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_404FFE
; ---------------------------------------------------------------------------


loc_404FF4:				; DATA XREF: sub_404EA0+16o
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_404FFE:				; CODE XREF: sub_404EA0+47j
					; sub_404EA0+9Aj ...
		mov	al, [ebp+var_5]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_404EA0	endp


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

; Attributes: bp-based frame


sub_405008	proc near		; CODE XREF: sub_4051B8+F8p
					; sub_405348+F5p ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		push	eax
		mov	eax, ds:off_40A1B0
		mov	eax, [eax]
		call	eax
		pop	ecx
		pop	ebp
		retn
sub_405008	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_405024	proc near		; CODE XREF: sub_405518+15p

var_11		= byte ptr -11h
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
		add	esp, 0FFFFFFECh
		mov	[ebp+var_11], dl
		mov	[ebp+var_4], eax
		push	0
		push	4
		lea	eax, [ebp+var_C]
		push	eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		push	eax
		mov	eax, ds:off_40A300
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 4
		jz	short loc_405058
		xor	eax, eax
		mov	[ebp+var_8], eax
		jmp	short loc_405068
; ---------------------------------------------------------------------------


loc_405058:				; CODE XREF: sub_405024+2Bj
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A1C0
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_8], eax


loc_405068:				; CODE XREF: sub_405024+32j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_405024	endp

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

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

; Attributes: bp-based frame


sub_405070	proc near		; CODE XREF: sub_405518+39p

var_14		= dword	ptr -14h
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		mov	[ebp+var_14], eax
		mov	[ebp+var_D], 0
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_8]
		call	sub_4020C8
		cmp	[ebp+var_8], 0
		jle	short loc_4050D2


loc_405099:				; CODE XREF: sub_405070+60j
		push	0
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+var_C]
		call	sub_401FC4
		mov	edx, [ebp+var_14]
		add	eax, edx
		push	eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		push	eax
		mov	eax, ds:off_40A300
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0FFFFFFFFh
		jz	short loc_4050D2
		mov	eax, [ebp+var_14]
		sub	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jg	short loc_405099


loc_4050D2:				; CODE XREF: sub_405070+27j
					; sub_405070+54j
		cmp	[ebp+var_8], 0
		jnz	short loc_4050DC
		mov	[ebp+var_D], 1


loc_4050DC:				; CODE XREF: sub_405070+66j
		mov	al, [ebp+var_D]
		mov	esp, ebp
		pop	ebp
		retn
sub_405070	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_4050E4	proc near		; CODE XREF: sub_4054B0+40p

var_10		= dword	ptr -10h
var_9		= byte ptr -9
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF0h
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_8]
		call	sub_401FA8
		xor	eax, eax
		push	ebp
		push	offset loc_405158
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	[ebp+var_9], 0
		push	0
		mov	eax, [ebp+var_8]
		call	sub_401DF4
		push	eax
		lea	eax, [ebp+var_8]
		call	sub_401FC4
		push	eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		push	eax
		mov	eax, ds:off_40A2D4
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		call	sub_401DF4
		cmp	eax, [ebp+var_10]
		jnz	short loc_405142
		mov	[ebp+var_9], 1


loc_405142:				; CODE XREF: sub_4050E4+58j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40515F


loc_40514F:				; CODE XREF: sub_4050E4+79j
		lea	eax, [ebp+var_8]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_405158:				; DATA XREF: sub_4050E4+17o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40514F
; ---------------------------------------------------------------------------


loc_40515F:				; CODE XREF: sub_4050E4+73j
					; DATA XREF: sub_4050E4+66o
		mov	al, [ebp+var_9]
		mov	esp, ebp
		pop	ebp
		retn
sub_4050E4	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_405168	proc near		; CODE XREF: sub_405484+16p
					; sub_405484+23p ...

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_9		= byte ptr -9
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		mov	[ebp+var_11], cl
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	[ebp+var_9], 0
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A1BC
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_8], eax
		push	0
		push	4
		lea	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		push	eax
		mov	eax, ds:off_40A2D4
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 4
		jnz	short loc_4051B0
		mov	[ebp+var_9], 1


loc_4051B0:				; CODE XREF: sub_405168+42j
		mov	al, [ebp+var_9]
		mov	esp, ebp
		pop	ebp
		retn
sub_405168	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_4051B8	proc near		; CODE XREF: sub_405964+DFp

var_15		= byte ptr -15h
var_14		= dword	ptr -14h
var_D		= byte ptr -0Dh
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
		add	esp, 0FFFFFFE8h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_401FA8
		mov	eax, [ebp+var_C]
		call	sub_401FA8
		xor	eax, eax
		push	ebp
		push	offset loc_4052E3
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	[ebp+var_D], 0
		mov	eax, [ebp+arg_0]
		call	sub_401C00
		mov	dl, 1
		mov	eax, off_404E3C
		call	unknown_libname_3 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_14]
		add	eax, 8
		mov	edx, [ebp+var_4]
		call	sub_401C54
		mov	eax, ds:off_40A230
		mov	eax, [eax]
		mov	edx, [ebp+var_14]
		mov	[edx+0Ch], eax
		mov	edx, 1D4C0h
		mov	eax, [ebp+var_14]
		call	sub_404EA0
		mov	[ebp+var_15], al
		cmp	[ebp+var_15], 0
		jz	loc_4052C5
		xor	eax, eax
		push	ebp
		push	offset loc_4052BE
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	eax, eax
		push	ebp
		push	offset loc_405296
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_14]
		call	sub_405484
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_14]
		call	sub_4054B0
		mov	eax, 12Ch
		call	sub_406954
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_14]
		call	sub_405518
		mov	[ebp+var_15], al
		cmp	[ebp+var_15], 0
		jz	short loc_40528C
		mov	[ebp+var_D], 1


loc_40528C:				; CODE XREF: sub_4051B8+CEj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4052A0
; ---------------------------------------------------------------------------


loc_405296:				; DATA XREF: sub_4051B8+91o
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_4052A0:				; CODE XREF: sub_4051B8+DCj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4052C5


loc_4052AD:				; CODE XREF: sub_4051B8+10Bj
		mov	eax, [ebp+var_14]
		call	sub_405008
		mov	eax, [ebp+var_14]
		call	sub_4013F4
		retn
; ---------------------------------------------------------------------------


loc_4052BE:				; DATA XREF: sub_4051B8+83o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4052AD
; ---------------------------------------------------------------------------


loc_4052C5:				; CODE XREF: sub_4051B8+7Aj
					; sub_4051B8+105j
					; DATA XREF: ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4052EA


loc_4052D2:				; CODE XREF: sub_4051B8+130j
		lea	eax, [ebp+var_C]
		call	sub_401C00
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_4052E3:				; DATA XREF: sub_4051B8+25o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4052D2
; ---------------------------------------------------------------------------


loc_4052EA:				; CODE XREF: sub_4051B8+12Aj
					; DATA XREF: sub_4051B8+115o
		mov	al, [ebp+var_D]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4051B8	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_4052F8	proc near		; CODE XREF: sub_405348+43p

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_401C00
		mov	eax, ds:off_40A1F8
		mov	eax, [eax]
		mov	eax, [eax+1Ch]
		call	sub_401304
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jl	short loc_405342
		mov	eax, ds:off_40A1F8
		mov	eax, [eax]
		mov	eax, [eax+1Ch]
		cmp	eax, [ebp+var_8]
		jle	short loc_405342
		mov	ecx, [ebp+var_4]
		mov	eax, ds:off_40A1F8
		mov	eax, [eax]
		mov	edx, [ebp+var_8]
		call	sub_4033C8


loc_405342:				; CODE XREF: sub_4052F8+27j
					; sub_4052F8+36j
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_4052F8	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_405348	proc near		; CODE XREF: sub_405AC8+63p
					; sub_405BE8+61p

var_1C		= dword	ptr -1Ch
var_15		= byte ptr -15h
var_14		= dword	ptr -14h
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE4h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_8]
		call	sub_401FA8
		xor	eax, eax
		push	ebp
		push	offset loc_405470
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	[ebp+var_D], 0
		mov	dl, 1
		mov	eax, off_404E3C
		call	unknown_libname_3 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_1C]
		call	sub_4052F8
		mov	edx, [ebp+var_1C]
		mov	eax, [ebp+var_14]
		add	eax, 8
		call	sub_401C54
		mov	eax, ds:off_40A230
		mov	eax, [eax]
		mov	edx, [ebp+var_14]
		mov	[edx+0Ch], eax
		mov	edx, 1D4C0h
		mov	eax, [ebp+var_14]
		call	sub_404EA0
		mov	[ebp+var_15], al
		cmp	[ebp+var_15], 0
		jz	loc_405452
		xor	eax, eax
		push	ebp
		push	offset loc_40544B
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	eax, eax
		push	ebp
		push	offset loc_405423
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_14]
		call	sub_405484
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_14]
		call	sub_4054B0
		mov	eax, 64h
		call	sub_406954
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_14]
		call	sub_405518
		mov	[ebp+var_15], al
		cmp	[ebp+var_15], 0
		jz	short loc_405419
		mov	[ebp+var_D], 1


loc_405419:				; CODE XREF: sub_405348+CBj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_40542D
; ---------------------------------------------------------------------------


loc_405423:				; DATA XREF: sub_405348+8Eo
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_40542D:				; CODE XREF: sub_405348+D9j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405452


loc_40543A:				; CODE XREF: sub_405348+108j
		mov	eax, [ebp+var_14]
		call	sub_405008
		mov	eax, [ebp+var_14]
		call	sub_4013F4
		retn
; ---------------------------------------------------------------------------


loc_40544B:				; DATA XREF: sub_405348+80o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40543A
; ---------------------------------------------------------------------------


loc_405452:				; CODE XREF: sub_405348+77j
					; sub_405348+102j
					; DATA XREF: ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405477


loc_40545F:				; CODE XREF: sub_405348+12Dj
		lea	eax, [ebp+var_1C]
		call	sub_401C00
		lea	eax, [ebp+var_8]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_405470:				; DATA XREF: sub_405348+22o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40545F
; ---------------------------------------------------------------------------


loc_405477:				; CODE XREF: sub_405348+127j
					; DATA XREF: sub_405348+112o
		mov	al, [ebp+var_D]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_405348	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_405484	proc near		; CODE XREF: sub_4051B8+A2p
					; sub_405348+9Fp

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	cl, 1
		mov	edx, 78E3h
		mov	eax, [ebp+var_4]
		call	sub_405168
		mov	cl, 1
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_405168
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_405484	endp


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

; Attributes: bp-based frame


sub_4054B0	proc near		; CODE XREF: sub_4051B8+ADp
					; sub_405348+AAp

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_8]
		call	sub_401FA8
		xor	eax, eax
		push	ebp
		push	offset loc_40550B
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_8]
		call	sub_401DF4
		mov	[ebp+var_C], eax
		mov	cl, 1
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_4]
		call	sub_405168
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_4050E4
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405512


loc_405502:				; CODE XREF: sub_4054B0+60j
		lea	eax, [ebp+var_8]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_40550B:				; DATA XREF: sub_4054B0+17o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405502
; ---------------------------------------------------------------------------


loc_405512:				; CODE XREF: sub_4054B0+5Aj
					; DATA XREF: sub_4054B0+4Do
		mov	esp, ebp
		pop	ebp
		retn
sub_4054B0	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_405518	proc near		; CODE XREF: sub_4051B8+C2p
					; sub_405348+BFp

var_10		= dword	ptr -10h
var_9		= byte ptr -9
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF0h
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	[ebp+var_9], 0
		mov	dl, 1
		mov	eax, [ebp+var_4]
		call	sub_405024
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 5B8D80h
		jle	short loc_405548
		mov	eax, [ebp+var_4]
		call	sub_405008
		jmp	short loc_405559
; ---------------------------------------------------------------------------


loc_405548:				; CODE XREF: sub_405518+24j
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_10]
		mov	eax, [ebp+var_4]
		call	sub_405070
		mov	[ebp+var_9], al


loc_405559:				; CODE XREF: sub_405518+2Ej
		mov	al, [ebp+var_9]
		mov	esp, ebp
		pop	ebp
		retn
sub_405518	endp


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

; Attributes: bp-based frame


sub_405560	proc near		; DATA XREF: CODE:00409EE8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_405585
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B240
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40558C


loc_405584:				; CODE XREF: sub_405560+2Aj
		retn
; ---------------------------------------------------------------------------


loc_405585:				; DATA XREF: sub_405560+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405584
; ---------------------------------------------------------------------------


loc_40558C:				; CODE XREF: sub_405560:loc_405584j
					; DATA XREF: sub_405560+1Fo
		pop	ebp
		retn
sub_405560	endp

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

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



sub_405590	proc near		; DATA XREF: CODE:00409EE4o
		sub	ds:dword_40B240, 1
		retn
sub_405590	endp


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



sub_405598	proc near		; CODE XREF: sub_4063E8+3Fp r+29p ...
		mov	eax, ds:off_40A294
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A308
		mov	[edx], eax
		retn
sub_405598	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_4055AC	proc near		; CODE XREF: sub_4055D4+6p
					; sub_405718+5Bp ...

var_18		= byte ptr -18h
var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE8h
		lea	eax, [ebp+var_18]
		push	eax
		mov	eax, ds:off_40A304
		mov	eax, [eax]
		call	eax
		lea	edx, [ebp+var_8]
		lea	eax, [ebp+var_18]
		call	sub_402D3C
		fld	[ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_4055AC	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_4055D4	proc near		; CODE XREF: sub_4063E8:loc_406500p
					; sub_4063E8+3D8p

var_10		= qword	ptr -10h
var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF0h
		call	sub_4055AC
		call	sub_40127C
		mov	dword ptr [ebp+var_10],	eax
		mov	dword ptr [ebp+var_10+4], edx
		fild	[ebp+var_10]
		fstp	[ebp+var_8]
		wait
		fld	[ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_4055D4	endp


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

; Attributes: bp-based frame


sub_4055F8	proc near		; CODE XREF: sub_4063E8+BAp
					; sub_4063E8+38Dp ...

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
		add	esp, 0FFFFFFF0h
		xor	ecx, ecx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_10], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_401FA8
		mov	eax, [ebp+var_8]
		call	sub_401FA8
		xor	eax, eax
		push	ebp
		push	offset loc_40567A
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ds:off_40A1D0
		mov	edx, [edx]
		lea	eax, [ebp+var_10]
		mov	ecx, [ebp+var_4]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_10]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_C]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_C]
		mov	ecx, [ebp+var_8]
		mov	eax, 80000002h
		call	sub_404AD8
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405681


loc_40566C:				; CODE XREF: sub_4055F8+87j
		lea	eax, [ebp+var_10]
		mov	edx, 4
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_40567A:				; DATA XREF: sub_4055F8+27o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40566C
; ---------------------------------------------------------------------------


loc_405681:				; CODE XREF: sub_4055F8+81j
					; DATA XREF: sub_4055F8+6Fo
		mov	esp, ebp
		pop	ebp
		retn
sub_4055F8	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_405688	proc near		; CODE XREF: sub_406F40+26p

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
		add	esp, 0FFFFFFF0h
		xor	ecx, ecx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_10], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_401FA8
		xor	eax, eax
		push	ebp
		push	offset loc_40570A
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ds:off_40A1D0
		mov	edx, [edx]
		lea	eax, [ebp+var_10]
		mov	ecx, [ebp+var_4]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_10]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_C]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_C]
		mov	ecx, [ebp+var_8]
		mov	eax, 80000002h
		call	sub_404CB0
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405711


loc_4056F4:				; CODE XREF: sub_405688+87j
		lea	eax, [ebp+var_10]
		mov	edx, 2
		call	sub_401C24
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_40570A:				; DATA XREF: sub_405688+1Fo
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4056F4
; ---------------------------------------------------------------------------


loc_405711:				; CODE XREF: sub_405688+81j
					; DATA XREF: sub_405688+67o
		mov	esp, ebp
		pop	ebp
		retn
sub_405688	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_405718	proc near		; CODE XREF: sub_4057C4+Dp

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= qword	ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE4h
		xor	edx, edx
		mov	[ebp+var_18], edx
		mov	[ebp+var_1C], edx
		mov	[ebp+var_14], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_4057B2
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ds:off_40A1D0
		mov	edx, [edx]
		lea	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_4]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_1C]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_18]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_18]
		lea	ecx, [ebp+var_14]
		mov	eax, 80000002h
		call	sub_404D98
		test	al, al
		jnz	short loc_405784
		call	sub_4055AC
		fsub	flt_4057C0
		fstp	[ebp+var_10]
		wait
		jmp	short loc_405797
; ---------------------------------------------------------------------------


loc_405784:				; CODE XREF: sub_405718+59j
		mov	eax, [ebp+var_14]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, [eax]
		mov	dword ptr [ebp+var_10],	edx
		mov	edx, [eax+4]
		mov	dword ptr [ebp+var_10+4], edx


loc_405797:				; CODE XREF: sub_405718+6Aj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4057B9


loc_4057A4:				; CODE XREF: sub_405718+9Fj
		lea	eax, [ebp+var_1C]
		mov	edx, 3
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_4057B2:				; DATA XREF: sub_405718+17o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4057A4
; ---------------------------------------------------------------------------


loc_4057B9:				; CODE XREF: sub_405718+99j
					; DATA XREF: sub_405718+87o
		fld	[ebp+var_10]
		mov	esp, ebp
		pop	ebp
		retn
sub_405718	endp

; ---------------------------------------------------------------------------
flt_4057C0	dd 1.0e1		; DATA XREF: sub_405718+60r

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

; Attributes: bp-based frame


sub_4057C4	proc near		; CODE XREF: sub_4058C8+1Bp

var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	eax, ds:off_40A320
		mov	eax, [eax]
		call	sub_405718
		fstp	[ebp+var_8]
		wait
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_4057C4	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_4057E4	proc near		; CODE XREF: sub_4063E8+191p

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		= byte ptr -10h
var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		mov	ecx, 4


loc_4057EC:				; CODE XREF: sub_4057E4+Dj
		push	0
		push	0
		dec	ecx
		jnz	short loc_4057EC
		push	ecx
		xor	eax, eax
		push	ebp
		push	offset loc_4058BC
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		call	sub_4055AC
		fstp	[ebp+var_8]
		wait
		lea	edx, [ebp+var_10]
		lea	eax, [ebp+var_8]
		mov	ecx, 8
		call	sub_401210
		push	7
		mov	ecx, ds:off_40A320
		mov	ecx, [ecx]
		mov	edx, ds:off_40A1D0
		mov	edx, [edx]
		lea	eax, [ebp+var_1C]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_1C]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_18]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_18]
		lea	ecx, [ebp+var_10]
		mov	eax, 80000002h
		call	sub_404C7C
		lea	eax, [ebp+var_14]
		mov	edx, ds:off_40A0D8
		mov	edx, [edx]
		call	sub_401C98
		mov	ecx, ds:off_40A150
		mov	ecx, [ecx]
		mov	edx, ds:off_40A1D0
		mov	edx, [edx]
		lea	eax, [ebp+var_24]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_24]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_20]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_20]
		mov	ecx, [ebp+var_14]
		mov	eax, 80000002h
		call	sub_404AD8
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4058C3


loc_4058AE:				; CODE XREF: sub_4057E4+DDj
		lea	eax, [ebp+var_24]
		mov	edx, 5
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_4058BC:				; DATA XREF: sub_4057E4+13o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4058AE
; ---------------------------------------------------------------------------


loc_4058C3:				; CODE XREF: sub_4057E4+D7j
					; DATA XREF: sub_4057E4+C5o
		mov	esp, ebp
		pop	ebp
		retn
sub_4057E4	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_4058C8	proc near		; CODE XREF: sub_4063E8:loc_406555p

var_38		= qword	ptr -38h
var_18		= qword	ptr -18h
var_10		= qword	ptr -10h
var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE8h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_1], 0
		xor	eax, eax
		push	ebp
		push	offset loc_40594B
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		call	sub_4057C4
		fstp	[ebp+var_10]
		wait
		call	sub_4055AC
		add	esp, 0FFFFFFF8h
		fstp	[esp+38h+var_38]
		wait
		push	dword ptr [ebp+var_10+4]
		push	dword ptr [ebp+var_10] ; double
		call	sub_40692C
		fstp	[ebp+var_18]
		wait
		fld	[ebp+var_18]
		fcomp	flt_405960
		fnstsw	ax
		sahf
		jnb	short loc_405938
		call	sub_4055AC
		add	esp, 0FFFFFFF8h
		fstp	[esp+38h+var_38]
		wait
		call	@Dateutils@DayOf$qqrx16System@TDateTime	; Dateutils::DayOf(System::TDateTime)
		mov	ebx, eax
		push	dword ptr [ebp+var_10+4]
		push	dword ptr [ebp+var_10] ; double
		call	@Dateutils@DayOf$qqrx16System@TDateTime	; Dateutils::DayOf(System::TDateTime)
		cmp	bx, ax
		jz	short loc_40593C


loc_405938:				; CODE XREF: sub_4058C8+4Bj
		xor	eax, eax
		jmp	short loc_40593E
; ---------------------------------------------------------------------------


loc_40593C:				; CODE XREF: sub_4058C8+6Ej
		mov	al, 1


loc_40593E:				; CODE XREF: sub_4058C8+72j
		mov	[ebp+var_1], al
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_405955
; ---------------------------------------------------------------------------


loc_40594B:				; DATA XREF: sub_4058C8+10o
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_405955:				; CODE XREF: sub_4058C8+81j
		mov	al, [ebp+var_1]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4058C8	endp

; ---------------------------------------------------------------------------
		align 10h
flt_405960	dd 1.2e1		; DATA XREF: sub_4058C8+42r

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

; Attributes: bp-based frame


sub_405964	proc near		; CODE XREF: sub_4063E8+CEp

var_44		= dword	ptr -44h
var_40		= byte ptr -40h
var_3C		= byte ptr -3Ch
var_38		= byte ptr -38h
var_34		= byte ptr -34h
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
		add	esp, 0FFFFFFBCh
		push	ebx
		push	esi
		push	edi
		xor	ecx, ecx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_10], ecx
		mov	[ebp+var_14], ecx
		mov	[ebp+var_18], edx
		mov	[ebp+var_4], eax
		mov	ecx, 0Bh
		lea	eax, [ebp+var_44]
		mov	edx, off_401000
		call	sub_402250
		xor	eax, eax
		push	ebp
		push	offset loc_405AB8
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_14]
		mov	edx, ds:off_40A1A0
		mov	edx, [edx]
		call	sub_401C98
		xor	eax, eax
		push	ebp
		push	offset loc_405A80
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_44]
		mov	edx, ds:off_40A1A0
		mov	edx, [edx]
		call	sub_401C98
		lea	eax, [ebp+var_40]
		mov	edx, ds:off_40A1AC
		mov	edx, [edx]
		call	sub_401C98
		lea	eax, [ebp+var_3C]
		mov	edx, ds:off_40A0E8
		mov	edx, [edx]
		call	sub_401C98
		lea	eax, [ebp+var_38]
		mov	edx, ds:off_40A2DC
		mov	edx, [edx]
		call	sub_401C98
		lea	eax, [ebp+var_34]
		mov	edx, ds:off_40A148
		mov	edx, [edx]
		call	sub_401C98
		mov	eax, [ebp+var_4]
		call	sub_40336C
		xor	eax, eax
		mov	[ebp+var_8], eax


loc_405A1A:				; CODE XREF: sub_405964+FCj
		lea	eax, [ebp+var_C]
		mov	edx, [ebp+var_8]
		mov	edx, [ebp+edx*4+var_44]
		call	sub_401C98
		cmp	[ebp+var_C], 0
		jz	short loc_405A59
		lea	eax, [ebp+var_10]
		push	eax
		mov	ecx, ds:off_40A25C
		mov	ecx, [ecx]
		mov	edx, 4F95h
		mov	eax, [ebp+var_C]
		call	sub_4051B8
		cmp	[ebp+var_10], 0
		jz	short loc_405A59
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_C]
		call	sub_40335C


loc_405A59:				; CODE XREF: sub_405964+C9j
					; sub_405964+E8j
		inc	[ebp+var_8]
		cmp	[ebp+var_8], 6
		jnz	short loc_405A1A
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_405A76
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_14]
		call	sub_40335C


loc_405A76:				; CODE XREF: sub_405964+105j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_405A8A
; ---------------------------------------------------------------------------


loc_405A80:				; DATA XREF: sub_405964+4Eo
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_405A8A:				; CODE XREF: sub_405964+11Aj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405ABF


loc_405A97:				; CODE XREF: sub_405964+159j
		lea	eax, [ebp+var_44]
		mov	ecx, 0Bh
		mov	edx, off_401000
		call	sub_40231C
		lea	eax, [ebp+var_14]
		mov	edx, 3
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_405AB8:				; DATA XREF: sub_405964+30o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405A97
; ---------------------------------------------------------------------------


loc_405ABF:				; CODE XREF: sub_405964+153j
					; DATA XREF: sub_405964+12Eo
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_405964	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_405AC8	proc near		; CODE XREF: sub_4063E8+1C2p

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		xor	edx, edx
		mov	[ebp+var_14], edx
		mov	[ebp+var_10], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_405B8F
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		call	sub_401C00


loc_405AEF:				; CODE XREF: sub_405AC8+A7j
		mov	eax, ds:off_40A2D0
		cmp	byte ptr [eax],	0
		jnz	short loc_405B74
		mov	eax, ds:off_40A100
		push	dword ptr [eax]
		mov	eax, ds:off_40A224
		push	dword ptr [eax]
		push	offset _str__.Text
		mov	eax, ds:off_40A1C4
		push	dword ptr [eax]
		lea	eax, [ebp+var_14]
		mov	edx, 4
		call	sub_401EB4
		mov	edx, [ebp+var_14]
		lea	ecx, [ebp+var_10]
		mov	eax, 27B3h
		call	sub_405348
		mov	[ebp+var_5], al
		cmp	[ebp+var_5], 0
		jz	short loc_405B53
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_10]
		call	sub_401C54
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		call	sub_401DF4
		cmp	eax, 9
		jge	short loc_405B74


loc_405B53:				; CODE XREF: sub_405AC8+6Fj
		mov	eax, 1Eh
		call	sub_401304
		add	eax, 28h
		mov	[ebp+var_C], eax
		imul	eax, [ebp+var_C], 3E8h
		call	sub_406954
		jmp	loc_405AEF
; ---------------------------------------------------------------------------


loc_405B74:				; CODE XREF: sub_405AC8+2Fj
					; sub_405AC8+89j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405B96


loc_405B81:				; CODE XREF: sub_405AC8+CCj
		lea	eax, [ebp+var_14]
		mov	edx, 2
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_405B8F:				; DATA XREF: sub_405AC8+14o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405B81
; ---------------------------------------------------------------------------


loc_405B96:				; CODE XREF: sub_405AC8+C6j
					; DATA XREF: sub_405AC8+B4o
		mov	esp, ebp
		pop	ebp
		retn
sub_405AC8	endp

; ---------------------------------------------------------------------------
		align 4
_str__		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_405AC8+3Fo
		dd 1			; Len
		db '_',0                ; Text
		align 4

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

; Attributes: bp-based frame


sub_405BA8	proc near		; CODE XREF: sub_4063E8+FCp
					; sub_4063E8+13Dp ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_401FA8
		xor	eax, eax
		push	ebp
		push	offset loc_405BDB
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405BE2


loc_405BD2:				; CODE XREF: sub_405BA8+38j
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_405BDB:				; DATA XREF: sub_405BA8+12o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405BD2
; ---------------------------------------------------------------------------


loc_405BE2:				; CODE XREF: sub_405BA8+32j
					; DATA XREF: sub_405BA8+25o
		pop	ecx
		pop	ebp
		retn
sub_405BA8	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_405BE8	proc near		; CODE XREF: sub_405F58+41p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_9		= byte ptr -9
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE4h
		xor	edx, edx
		mov	[ebp+var_1C], edx
		mov	[ebp+var_18], edx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_405CC9
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		call	sub_401C00
		xor	eax, eax
		mov	[ebp+var_14], eax


loc_405C17:				; CODE XREF: sub_405BE8+B5j
		mov	eax, ds:off_40A100
		push	dword ptr [eax]
		mov	eax, ds:off_40A224
		push	dword ptr [eax]
		push	offset _str___0.Text
		mov	eax, ds:off_40A1C4
		push	dword ptr [eax]
		lea	eax, [ebp+var_18]
		mov	edx, 4
		call	sub_401EB4
		mov	edx, [ebp+var_18]
		lea	ecx, [ebp+var_8]
		mov	eax, 2ABAh
		call	sub_405348
		mov	[ebp+var_9], al
		cmp	[ebp+var_9], 0
		jz	short loc_405C7A
		mov	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_1C]
		mov	edx, [ebp+var_8]
		call	@System@@WStrFromLStr$qqrr17System@WideStringx17System@AnsiString ; System::__linkproc__ WStrFromLStr(System::WideString &,System::AnsiString)
		mov	eax, [ebp+var_1C]
		mov	edx, ds:off_40A154
		mov	edx, [edx]
		xor	ecx, ecx
		call	sub_4042E8
		jmp	short loc_405CA3
; ---------------------------------------------------------------------------


loc_405C7A:				; CODE XREF: sub_405BE8+6Dj
		mov	eax, 1Eh
		call	sub_401304
		add	eax, 28h
		mov	[ebp+var_10], eax
		imul	eax, [ebp+var_10], 3E8h
		call	sub_406954
		inc	[ebp+var_14]
		cmp	[ebp+var_14], 15h
		jnz	loc_405C17


loc_405CA3:				; CODE XREF: sub_405BE8+90j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405CD0


loc_405CB0:				; CODE XREF: sub_405BE8+E6j
		lea	eax, [ebp+var_1C]
		call	@System@@WStrClr$qqrpv ; System::__linkproc__ WStrClr(void *)
		lea	eax, [ebp+var_18]
		call	sub_401C00
		lea	eax, [ebp+var_8]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_405CC9:				; DATA XREF: sub_405BE8+17o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405CB0
; ---------------------------------------------------------------------------


loc_405CD0:				; CODE XREF: sub_405BE8+E0j
					; DATA XREF: sub_405BE8+C3o
		mov	esp, ebp
		pop	ebp
		retn
sub_405BE8	endp

; ---------------------------------------------------------------------------
_str___0	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_405BE8+3Do
		dd 1			; Len
		db '_',0                ; Text
		align 10h

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

; Attributes: bp-based frame


sub_405CE0	proc near		; CODE XREF: sub_405E48+98p

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
		add	esp, 0FFFFFFF0h
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_401FA8
		xor	eax, eax
		push	ebp
		push	offset loc_405D6B
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_8]
		call	sub_401C00
		mov	eax, [ebp+var_4]
		call	sub_401DF4
		dec	eax
		test	eax, eax
		jle	short loc_405D55
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], 1


loc_405D21:				; CODE XREF: sub_405CE0+73j
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_C]
		cmp	byte ptr [eax+edx-1], 3Dh
		jnz	short loc_405D4D
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+var_4]
		call	sub_401DF4
		mov	ecx, eax
		sub	ecx, [ebp+var_C]
		mov	edx, [ebp+var_C]
		inc	edx
		mov	eax, [ebp+var_4]
		call	@System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void)
		jmp	short loc_405D55
; ---------------------------------------------------------------------------


loc_405D4D:				; CODE XREF: sub_405CE0+4Cj
		inc	[ebp+var_C]
		dec	[ebp+var_10]
		jnz	short loc_405D21


loc_405D55:				; CODE XREF: sub_405CE0+35j
					; sub_405CE0+6Bj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405D72


loc_405D62:				; CODE XREF: sub_405CE0+90j
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_405D6B:				; DATA XREF: sub_405CE0+17o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405D62
; ---------------------------------------------------------------------------


loc_405D72:				; CODE XREF: sub_405CE0+8Aj
					; DATA XREF: sub_405CE0+7Do
		mov	esp, ebp
		pop	ebp
		retn
sub_405CE0	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_405D78	proc near		; CODE XREF: sub_405E48+7Fp

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
		add	esp, 0FFFFFFF0h
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_401FA8
		xor	eax, eax
		push	ebp
		push	offset loc_405DFB
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_8]
		call	sub_401C00
		mov	eax, [ebp+var_4]
		call	sub_401DF4
		dec	eax
		test	eax, eax
		jle	short loc_405DE5
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], 1


loc_405DB9:				; CODE XREF: sub_405D78+6Bj
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_C]
		cmp	byte ptr [eax+edx-1], 3Dh
		jnz	short loc_405DDD
		mov	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+var_C]
		dec	ecx
		mov	edx, 1
		mov	eax, [ebp+var_4]
		call	@System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void)
		jmp	short loc_405DE5
; ---------------------------------------------------------------------------


loc_405DDD:				; CODE XREF: sub_405D78+4Cj
		inc	[ebp+var_C]
		dec	[ebp+var_10]
		jnz	short loc_405DB9


loc_405DE5:				; CODE XREF: sub_405D78+35j
					; sub_405D78+63j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405E02


loc_405DF2:				; CODE XREF: sub_405D78+88j
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_405DFB:				; DATA XREF: sub_405D78+17o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405DF2
; ---------------------------------------------------------------------------


loc_405E02:				; CODE XREF: sub_405D78+82j
					; DATA XREF: sub_405D78+75o
		mov	esp, ebp
		pop	ebp
		retn
sub_405D78	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_405E08	proc near		; CODE XREF: sub_405E48+A3p

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		push	0FFFFFFFFh
		mov	eax, [ebp+var_8]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		push	0FFFFFFFFh
		mov	eax, [ebp+var_4]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		push	0
		push	400h
		mov	eax, ds:off_40A0F0
		mov	eax, [eax]
		call	eax
		sub	eax, 2
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
sub_405E08	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_405E48	proc near		; CODE XREF: sub_405F58+54p

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
		add	esp, 0FFFFFFD8h
		push	ebx
		xor	ebx, ebx
		mov	[ebp+var_28], ebx
		mov	[ebp+var_24], ebx
		mov	[ebp+var_18], ebx
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_405F4C
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_C]
		call	sub_401C00
		call	sub_403094
		mov	[ebp+var_10], eax
		xor	eax, eax
		push	ebp
		push	offset loc_405F1D
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_10]
		mov	edx, [ebp+var_4]
		call	sub_4030C8
		mov	eax, [ebp+var_10]
		mov	eax, [eax+1Ch]
		dec	eax
		test	eax, eax
		jl	short loc_405F07
		inc	eax
		mov	[ebp+var_20], eax
		mov	[ebp+var_14], 0


loc_405EB3:				; CODE XREF: sub_405E48+BDj
		lea	ecx, [ebp+var_24]
		mov	eax, [ebp+var_10]
		mov	edx, [ebp+var_14]
		call	sub_4033C8
		mov	eax, [ebp+var_24]
		lea	edx, [ebp+var_18]
		call	sub_405D78
		lea	ecx, [ebp+var_28]
		mov	eax, [ebp+var_10]
		mov	edx, [ebp+var_14]
		call	sub_4033C8
		mov	eax, [ebp+var_28]
		lea	edx, [ebp+var_1C]
		call	sub_405CE0
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_18]
		call	sub_405E08
		test	eax, eax
		jnz	short loc_405EFF
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_1C]
		call	sub_401C54


loc_405EFF:				; CODE XREF: sub_405E48+AAj
		inc	[ebp+var_14]
		dec	[ebp+var_20]
		jnz	short loc_405EB3


loc_405F07:				; CODE XREF: sub_405E48+5Ej
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405F24


loc_405F14:				; CODE XREF: sub_405E48+DAj
		mov	eax, [ebp+var_10]
		call	sub_4030F8
		retn
; ---------------------------------------------------------------------------


loc_405F1D:				; DATA XREF: sub_405E48+3Fo
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405F14
; ---------------------------------------------------------------------------


loc_405F24:				; CODE XREF: sub_405E48+D4j
					; DATA XREF: sub_405E48+C7o
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405F53


loc_405F31:				; CODE XREF: sub_405E48+109j
		lea	eax, [ebp+var_28]
		mov	edx, 2
		call	sub_401C24
		lea	eax, [ebp+var_1C]
		mov	edx, 2
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_405F4C:				; DATA XREF: sub_405E48+21o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405F31
; ---------------------------------------------------------------------------


loc_405F53:				; CODE XREF: sub_405E48+103j
					; DATA XREF: sub_405E48+E4o
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_405E48	endp


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

; Attributes: bp-based frame


sub_405F58	proc near		; CODE XREF: sub_4063E8+1F9p

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

		push	ebp
		mov	ebp, esp
		xor	ecx, ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_406006
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	0
		mov	[ebp+var_5], 0
		lea	eax, [ebp+var_14]
		call	sub_401C00
		xor	eax, eax
		push	ebp
		push	offset loc_405FE1
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_14]
		call	sub_405BE8
		lea	ecx, [ebp+var_C]
		mov	edx, ds:off_40A0C8
		mov	edx, [edx]
		mov	eax, [ebp+var_14]
		call	sub_405E48
		lea	edx, [ebp+var_10]
		mov	eax, ds:off_40A2B8
		mov	eax, [eax]
		call	sub_406968
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_10]
		call	@System@@LStrCmp$qqrv ;	System::__linkproc__ LStrCmp(void)
		jz	short loc_405FD3
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	1


loc_405FD3:				; CODE XREF: sub_405F58+73j
		mov	[ebp+var_5], 1
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_405FEB
; ---------------------------------------------------------------------------


loc_405FE1:				; DATA XREF: sub_405F58+33o
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_405FEB:				; CODE XREF: sub_405F58+87j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40600D


loc_405FF8:				; CODE XREF: sub_405F58+B3j
		lea	eax, [ebp+var_14]
		mov	edx, 3
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_406006:				; DATA XREF: sub_405F58+13o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405FF8
; ---------------------------------------------------------------------------


loc_40600D:				; CODE XREF: sub_405F58+ADj
					; DATA XREF: sub_405F58+9Bo
		mov	al, [ebp+var_5]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_405F58	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_406018	proc near		; CODE XREF: sub_4063E8+249p
					; sub_4063E8+2A7p

var_48		= byte ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_A		= byte ptr -0Ah
var_9		= byte ptr -9
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ecx, 8


loc_406021:				; CODE XREF: sub_406018+Ej
		push	0
		push	0
		dec	ecx
		jnz	short loc_406021
		push	ecx
		xchg	ecx, [ebp+var_4]
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_9], cl
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_401FA8
		mov	eax, [ebp+var_8]
		call	sub_401FA8
		xor	eax, eax
		push	ebp
		push	offset loc_4062D2
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	[ebp+var_18], 1
		mov	[ebp+var_A], 0
		xor	eax, eax
		push	ebp
		push	offset loc_40628B
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, ds:off_40A0D4
		mov	eax, [eax]
		mov	eax, [eax+1Ch]
		dec	eax
		test	eax, eax
		jl	loc_4061B0
		inc	eax
		mov	[ebp+var_24], eax
		mov	[ebp+var_1C], 0


loc_40608D:				; CODE XREF: sub_406018+192j
		lea	eax, [ebp+var_28]
		call	sub_406B8C
		push	[ebp+var_28]
		mov	eax, ds:off_40A29C
		push	dword ptr [eax]
		lea	edx, [ebp+var_2C]
		mov	eax, [ebp+var_1C]
		call	sub_4031F0
		push	[ebp+var_2C]
		lea	eax, [ebp+var_14]
		mov	edx, 3
		call	sub_401EB4
		push	[ebp+var_14]
		push	offset _str___1.Text
		mov	eax, 0DBBA0h
		call	sub_401304
		lea	edx, [ebp+var_30]
		call	sub_4031F0
		push	[ebp+var_30]
		mov	eax, 0DBBA0h
		call	sub_401304
		lea	edx, [ebp+var_34]
		call	sub_4031F0
		push	[ebp+var_34]
		mov	eax, ds:off_40A2AC
		push	dword ptr [eax]
		lea	eax, [ebp+var_14]
		mov	edx, 5
		call	sub_401EB4
		mov	eax, ds:off_40A2F8
		push	dword ptr [eax]
		lea	ecx, [ebp+var_38]
		mov	eax, ds:off_40A0D4
		mov	eax, [eax]
		mov	edx, [ebp+var_1C]
		call	sub_4033C8
		push	[ebp+var_38]
		mov	eax, ds:off_40A270
		push	dword ptr [eax]
		push	[ebp+var_4]
		push	offset _str_?.Text
		mov	eax, 0DBBA0h
		call	sub_401304
		lea	edx, [ebp+var_3C]
		call	sub_4031F0
		push	[ebp+var_3C]
		lea	eax, [ebp+var_10]
		mov	edx, 6
		call	sub_401EB4
		push	0
		push	0
		mov	eax, [ebp+var_14]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_10]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		push	0
		mov	eax, ds:off_40A2FC
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_40619A
		cmp	[ebp+var_9], 0
		jnz	short loc_406189
		mov	eax, [ebp+var_14]
		call	sub_403334
		test	al, al
		jnz	short loc_4061B0


loc_406189:				; CODE XREF: sub_406018+163j
		lea	edx, [ebp+var_20]
		mov	eax, [ebp+var_14]
		call	sub_406968
		cmp	[ebp+var_20], 0
		jnz	short loc_4061B0


loc_40619A:				; CODE XREF: sub_406018+15Dj
		mov	eax, 1388h
		call	sub_406954
		inc	[ebp+var_1C]
		dec	[ebp+var_24]
		jnz	loc_40608D


loc_4061B0:				; CODE XREF: sub_406018+64j
					; sub_406018+16Fj ...
		cmp	[ebp+var_18], 0
		jnz	short loc_40622D
		mov	ecx, ds:off_40A114
		mov	ecx, [ecx]
		lea	eax, [ebp+var_40]
		mov	edx, [ebp+var_14]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_40]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, ds:off_40A10C
		mov	eax, [eax]
		call	eax
		mov	eax, [ebp+var_8]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_14]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, ds:off_40A10C
		mov	eax, [eax]
		call	eax
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_A], al
		mov	ecx, ds:off_40A114
		mov	ecx, [ecx]
		lea	eax, [ebp+var_44]
		mov	edx, [ebp+var_14]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_44]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, ds:off_40A1A8
		mov	eax, [eax]
		call	eax


loc_40622D:				; CODE XREF: sub_406018+19Cj
		mov	eax, [ebp+var_8]
		call	sub_403334
		test	al, al
		jz	short loc_406281
		cmp	[ebp+var_9], 0
		jnz	short loc_40624D
		mov	[ebp+var_A], 1
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_406295
; ---------------------------------------------------------------------------


loc_40624D:				; CODE XREF: sub_406018+225j
		lea	edx, [ebp+var_20]
		mov	eax, [ebp+var_8]
		call	sub_406968
		cmp	[ebp+var_20], 0
		jz	short loc_40626F
		mov	[ebp+var_A], 1
		lea	edx, [ebp+var_48]
		mov	eax, [ebp+var_8]
		call	sub_406E58
		jmp	short loc_406281
; ---------------------------------------------------------------------------


loc_40626F:				; CODE XREF: sub_406018+244j
		mov	eax, [ebp+var_8]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, ds:off_40A1A8
		mov	eax, [eax]
		call	eax


loc_406281:				; CODE XREF: sub_406018+21Fj
					; sub_406018+255j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_406295
; ---------------------------------------------------------------------------


loc_40628B:				; DATA XREF: sub_406018+4Co
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_406295:				; CODE XREF: sub_406018+233j
					; sub_406018+271j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4062D9


loc_4062A2:				; CODE XREF: sub_406018+2BFj
		lea	eax, [ebp+var_48]
		mov	edx, 9
		call	sub_401C24
		lea	eax, [ebp+var_20]
		call	sub_401C00
		lea	eax, [ebp+var_14]
		mov	edx, 2
		call	sub_401C24
		lea	eax, [ebp+var_8]
		mov	edx, 2
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_4062D2:				; DATA XREF: sub_406018+33o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4062A2
; ---------------------------------------------------------------------------


loc_4062D9:				; CODE XREF: sub_406018+2B9j
					; DATA XREF: sub_406018+285o
		mov	al, [ebp+var_A]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_406018	endp

; ---------------------------------------------------------------------------
		align 4
_str___1	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406018+A5o
		dd 1			; Len
		db '_',0                ; Text
		align 10h
_str_?		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406018+10Eo
		dd 1			; Len
		db '?',0                ; Text
		align 4

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

; Attributes: bp-based frame


sub_4062FC	proc near		; CODE XREF: sub_4063E8+34Fp

var_68		= dword	ptr -68h
var_3C		= dword	ptr -3Ch
var_38		= word ptr -38h
var_24		= dword	ptr -24h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_5		= byte ptr -5
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFF98h
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_401FA8
		xor	eax, eax
		push	ebp
		push	offset loc_4063DA
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	[ebp+var_5], 0
		lea	eax, [ebp+var_24]
		mov	edx, 10h
		call	@Windows@ZeroMemory$qqrpvui ; Windows::ZeroMemory(void *,uint)
		lea	eax, [ebp+var_68]
		mov	edx, 44h
		call	@Windows@ZeroMemory$qqrpvui ; Windows::ZeroMemory(void *,uint)
		mov	[ebp+var_68], 44h
		mov	[ebp+var_38], 5
		mov	[ebp+var_3C], 101h
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		mov	eax, ds:off_40A248
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		push	0
		push	30h
		push	0
		push	0
		push	0
		mov	eax, [ebp+var_4]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		push	0
		mov	eax, ds:off_40A298
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_4063C4
		mov	eax, [ebp+var_24]
		mov	[ebp+var_10], eax
		push	0DBBA0Dh
		mov	eax, [ebp+var_10]
		push	eax
		mov	eax, ds:off_40A258
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 102h
		jnz	short loc_4063C0
		mov	eax, [ebp+var_14]
		push	eax
		mov	eax, [ebp+var_10]
		push	eax
		mov	eax, ds:off_40A17C
		mov	eax, [eax]
		call	eax
		jmp	short loc_4063C4
; ---------------------------------------------------------------------------


loc_4063C0:				; CODE XREF: sub_4062FC+AFj
		mov	[ebp+var_5], 1


loc_4063C4:				; CODE XREF: sub_4062FC+8Bj
					; sub_4062FC+C2j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4063E1


loc_4063D1:				; CODE XREF: sub_4062FC+E3j
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_4063DA:				; DATA XREF: sub_4062FC+14o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4063D1
; ---------------------------------------------------------------------------


loc_4063E1:				; CODE XREF: sub_4062FC+DDj
					; DATA XREF: sub_4062FC+D0o
		mov	al, [ebp+var_5]
		mov	esp, ebp
		pop	ebp
		retn
sub_4062FC	endp


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

; Attributes: bp-based frame


sub_4063E8	proc near		; CODE XREF: ServiceMain:loc_409E1Bp

var_1F8		= dword	ptr -1F8h
var_1F4		= dword	ptr -1F4h
var_1F0		= dword	ptr -1F0h
var_1EC		= dword	ptr -1ECh
var_1E8		= byte ptr -1E8h
var_1E4		= dword	ptr -1E4h
var_1E0		= dword	ptr -1E0h
var_1DC		= dword	ptr -1DCh
var_1D8		= dword	ptr -1D8h
var_1D4		= dword	ptr -1D4h
var_1D0		= dword	ptr -1D0h
var_1CC		= dword	ptr -1CCh
var_1C8		= dword	ptr -1C8h
var_1C4		= dword	ptr -1C4h
var_1C0		= byte ptr -1C0h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_21		= byte ptr -21h
var_20		= dword	ptr -20h
var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h
var_18		= qword	ptr -18h
var_10		= qword	ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		mov	ecx, 3Fh


loc_4063F0:				; CODE XREF: sub_4063E8+Dj
		push	0
		push	0
		dec	ecx
		jnz	short loc_4063F0
		push	ebx
		push	esi
		push	edi
		xor	eax, eax
		push	ebp
		push	offset loc_40683B
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	eax, eax
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_1C0]
		push	eax
		xor	edx, edx
		mov	al, 2
		call	@Windows@MakeWord$qqrucuc ; Windows::MakeWord(uchar,uchar)
		push	eax
		mov	eax, ds:off_40A15C
		mov	eax, [eax]
		call	eax
		call	sub_405598
		xor	eax, eax
		push	ebp
		push	offset loc_406806
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_1C4]
		push	eax
		mov	eax, ds:off_40A0D8
		mov	eax, [eax]
		mov	ecx, 2
		mov	edx, 1
		call	@System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void)
		mov	ecx, [ebp+var_1C4]
		mov	edx, ds:off_40A128
		mov	edx, [edx]
		lea	eax, [ebp+var_2C]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	edx, ds:off_40A2E4
		mov	edx, [edx]
		lea	eax, [ebp+var_30]
		mov	ecx, offset _str_a.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		lea	ecx, [ebp+var_1C8]
		mov	edx, ds:off_40A154
		mov	dx, [edx]
		mov	eax, [ebp+var_30]
		call	sub_40408C
		mov	edx, [ebp+var_1C8]
		mov	eax, [ebp+var_2C]
		call	sub_4055F8
		mov	edx, ds:off_40A230
		mov	edx, [edx]
		mov	eax, ds:off_40A1F8
		mov	eax, [eax]
		call	sub_405964
		xor	eax, eax
		mov	[ebp+var_4], eax
		xor	eax, eax
		mov	dword ptr [ebp+var_10],	eax
		mov	dword ptr [ebp+var_10+4], eax
		mov	eax, ds:off_40A2D0
		cmp	byte ptr [eax],	0
		jz	short loc_4064DF
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	loc_406810
; ---------------------------------------------------------------------------


loc_4064DF:				; CODE XREF: sub_4063E8+E8j
		mov	eax, offset _str_1.Text
		call	sub_405BA8


loc_4064E9:				; CODE XREF: sub_4063E8+136j
		mov	eax, ds:off_40A2D0
		cmp	byte ptr [eax],	0
		jz	short loc_406500
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	loc_406810
; ---------------------------------------------------------------------------


loc_406500:				; CODE XREF: sub_4063E8+109j
		call	sub_4055D4
		fstp	[ebp+var_18]
		wait
		fld	[ebp+var_10]
		fcomp	[ebp+var_18]
		fnstsw	ax
		sahf
		jnz	short loc_406520
		mov	eax, 7530h
		call	sub_406954
		jmp	short loc_4064E9
; ---------------------------------------------------------------------------


loc_406520:				; CODE XREF: sub_4063E8+12Aj
		mov	eax, offset _str_2.Text
		call	sub_405BA8
		mov	eax, 2710h
		call	sub_401304
		add	eax, 7D0h
		call	sub_406954


loc_40653E:				; CODE XREF: sub_4063E8+185j
		mov	eax, ds:off_40A2D0
		cmp	byte ptr [eax],	0
		jz	short loc_406555
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	loc_406810
; ---------------------------------------------------------------------------


loc_406555:				; CODE XREF: sub_4063E8+15Ej
		call	sub_4058C8
		mov	[ebp+var_21], al
		cmp	[ebp+var_21], 0
		jz	short loc_40656F
		mov	eax, 4E21h
		call	sub_406954
		jmp	short loc_40653E
; ---------------------------------------------------------------------------


loc_40656F:				; CODE XREF: sub_4063E8+179j
		mov	eax, offset _str_3.Text
		call	sub_405BA8
		call	sub_4057E4
		mov	eax, offset _str_4.Text
		call	sub_405BA8
		mov	eax, 32h
		call	sub_401304
		add	eax, 0Ah
		mov	[ebp+var_20], eax
		imul	eax, [ebp+var_20], 3E8h
		call	sub_406954
		lea	eax, [ebp+var_1CC]
		call	sub_405AC8
		mov	edx, [ebp+var_1CC]
		mov	eax, ds:off_40A0D4
		mov	eax, [eax]
		call	sub_4030C8
		lea	edx, [ebp+var_1D0]
		mov	eax, ds:off_40A0D4
		mov	eax, [eax]
		call	sub_4033E0
		mov	eax, [ebp+var_1D0]
		call	sub_405BA8
		lea	eax, [ebp+var_19]
		call	sub_405F58
		mov	[ebp+var_1A], al
		mov	eax, offset _str_5.Text
		call	sub_405BA8
		cmp	[ebp+var_1A], 0
		jz	loc_4066BD
		cmp	[ebp+var_19], 0
		jz	loc_4066BD
		mov	ecx, ds:off_40A1B4
		mov	ecx, [ecx]
		mov	edx, ds:off_40A248
		mov	edx, [edx]
		lea	eax, [ebp+var_1D4]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	edx, [ebp+var_1D4]
		mov	eax, ds:off_40A2BC
		mov	eax, [eax]
		mov	cl, 1
		call	sub_406018
		mov	ecx, ds:off_40A1B4
		mov	ecx, [ecx]
		mov	edx, ds:off_40A248
		mov	edx, [edx]
		lea	eax, [ebp+var_1D8]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_1D8]
		lea	edx, [ebp+var_28]
		call	sub_406968
		cmp	[ebp+var_28], 0
		jnz	short loc_4066BD
		mov	ecx, ds:off_40A1B4
		mov	ecx, [ecx]
		mov	edx, ds:off_40A248
		mov	edx, [edx]
		lea	eax, [ebp+var_1DC]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	edx, [ebp+var_1DC]
		mov	eax, ds:off_40A210
		mov	eax, [eax]
		mov	cl, 1
		call	sub_406018
		mov	ecx, ds:off_40A1B4
		mov	ecx, [ecx]
		mov	edx, ds:off_40A248
		mov	edx, [edx]
		lea	eax, [ebp+var_1E0]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_1E0]
		lea	edx, [ebp+var_28]
		call	sub_406968


loc_4066BD:				; CODE XREF: sub_4063E8+20Fj
					; sub_4063E8+219j ...
		mov	eax, offset _str_6.Text
		call	sub_405BA8
		mov	ecx, ds:off_40A1B4
		mov	ecx, [ecx]
		mov	edx, ds:off_40A248
		mov	edx, [edx]
		lea	eax, [ebp+var_1E4]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_1E4]
		lea	edx, [ebp+var_28]
		call	sub_406968
		cmp	[ebp+var_28], 0
		jz	loc_4067FC
		mov	eax, offset _str_7.Text
		call	sub_405BA8
		mov	ecx, ds:off_40A1B4
		mov	ecx, [ecx]
		mov	edx, ds:off_40A248
		mov	edx, [edx]
		lea	eax, [ebp+var_1EC]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_1EC]
		lea	edx, [ebp+var_1E8]
		call	sub_406E58
		mov	eax, ds:off_40A2B8
		mov	eax, [eax]
		call	sub_4062FC
		test	al, al
		jz	short loc_40677C
		mov	edx, ds:off_40A2E4
		mov	edx, [edx]
		lea	eax, [ebp+var_30]
		mov	ecx, offset _str_T.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		lea	ecx, [ebp+var_1F0]
		mov	edx, ds:off_40A154
		mov	dx, [edx]
		mov	eax, [ebp+var_30]
		call	sub_40408C
		mov	edx, [ebp+var_1F0]
		mov	eax, [ebp+var_2C]
		call	sub_4055F8
		jmp	short loc_4067B6
; ---------------------------------------------------------------------------


loc_40677C:				; CODE XREF: sub_4063E8+356j
		mov	edx, ds:off_40A2E4
		mov	edx, [edx]
		lea	eax, [ebp+var_30]
		mov	ecx, offset _str_F.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		lea	ecx, [ebp+var_1F4]
		mov	edx, ds:off_40A154
		mov	dx, [edx]
		mov	eax, [ebp+var_30]
		call	sub_40408C
		mov	edx, [ebp+var_1F4]
		mov	eax, [ebp+var_2C]
		call	sub_4055F8


loc_4067B6:				; CODE XREF: sub_4063E8+392j
		mov	eax, offset _str_8.Text
		call	sub_405BA8
		call	sub_4055D4
		fstp	[ebp+var_10]
		wait
		lea	eax, [ebp+var_1F8]
		push	eax
		mov	eax, ds:off_40A0D8
		mov	eax, [eax]
		mov	ecx, 2
		mov	edx, 1
		call	@System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void)
		mov	ecx, [ebp+var_1F8]
		mov	edx, ds:off_40A128
		mov	edx, [edx]
		lea	eax, [ebp+var_2C]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)


loc_4067FC:				; CODE XREF: sub_4063E8+30Cj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_406810
; ---------------------------------------------------------------------------


loc_406806:				; DATA XREF: sub_4063E8+47o
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_406810:				; CODE XREF: sub_4063E8+F2j
					; sub_4063E8+113j ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406842


loc_40681D:				; CODE XREF: sub_4063E8+458j
		lea	eax, [ebp+var_1F8]
		mov	edx, 0Eh
		call	sub_401C24
		lea	eax, [ebp+var_30]
		mov	edx, 3
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_40683B:				; DATA XREF: sub_4063E8+15o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40681D
; ---------------------------------------------------------------------------


loc_406842:				; CODE XREF: sub_4063E8+452j
					; DATA XREF: sub_4063E8+430o
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4063E8	endp

; ---------------------------------------------------------------------------
_str_a		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_4063E8+90o
		dd 1			; Len
		db 'a',0                ; Text
		align 4
_str_1		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_4063E8:loc_4064DFo
		dd 1			; Len
		db '1',0                ; Text
		align 4
_str_2		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_4063E8:loc_406520o
		dd 1			; Len
		db '2',0                ; Text
		align 10h
_str_3		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_4063E8:loc_40656Fo
		dd 1			; Len
		db '3',0                ; Text
		align 4
_str_4		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_4063E8+196o
		dd 1			; Len
		db '4',0                ; Text
		align 4
_str_5		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_4063E8+201o
		dd 1			; Len
		db '5',0                ; Text
		align 4
_str_6		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_4063E8:loc_4066BDo
		dd 1			; Len
		db '6',0                ; Text
		align 10h
_str_7		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_4063E8+312o
		dd 1			; Len
		db '7',0                ; Text
		align 4
_str_T		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_4063E8+363o
		dd 1			; Len
		db 'T',0                ; Text
		align 4
_str_F		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_4063E8+39Fo
		dd 1			; Len
		db 'F',0                ; Text
		align 4
_str_8		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_4063E8:loc_4067B6o
		dd 1			; Len
		db '8',0                ; Text
		align 10h

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

; Attributes: bp-based frame


sub_4068D0	proc near		; DATA XREF: CODE:00409EF0o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_4068F5
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B244
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4068FC


loc_4068F4:				; CODE XREF: sub_4068D0+2Aj
		retn
; ---------------------------------------------------------------------------


loc_4068F5:				; DATA XREF: sub_4068D0+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4068F4
; ---------------------------------------------------------------------------


loc_4068FC:				; CODE XREF: sub_4068D0:loc_4068F4j
					; DATA XREF: sub_4068D0+1Fo
		pop	ebp
		retn
sub_4068D0	endp

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

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



sub_406900	proc near		; DATA XREF: CODE:00409EECo
		sub	ds:dword_40B244, 1
		retn
sub_406900	endp

; [00000024 BYTES: COLLAPSED FUNCTION Dateutils::DayOf(System::TDateTime). PRESS KEYPAD	"+" TO EXPAND]

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

; Attributes: bp-based frame

; int __stdcall	sub_40692C(double, double)

sub_40692C	proc near		; CODE XREF: sub_4058C8+36p

var_8		= qword	ptr -8
arg_0		= qword	ptr  8
arg_8		= qword	ptr  10h

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		fld	[ebp+arg_8]
		fsub	[ebp+arg_0]
		fabs
		fmul	flt_406950
		fstp	[ebp+var_8]
		wait
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		pop	ebp
		retn	10h
sub_40692C	endp

; ---------------------------------------------------------------------------
		align 10h
flt_406950	dd 2.4e1		; DATA XREF: sub_40692C+Er

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

; Attributes: bp-based frame


sub_406954	proc near		; CODE XREF: sub_4051B8+B7p
					; sub_405348+B4p ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		push	eax
		call	ds:dword_40B2C8
		pop	ecx
		pop	ebp
		retn
sub_406954	endp


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

; Attributes: bp-based frame


sub_406968	proc near		; CODE XREF: sub_405F58+63p
					; sub_406018+177p ...

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_401FA8
		xor	eax, eax
		push	ebp
		push	offset loc_406A43
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_8]
		call	sub_401C00
		xor	eax, eax
		mov	[ebp+var_C], eax
		xor	eax, eax
		push	ebp
		push	offset loc_406A26
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	eax, eax
		push	ebp
		push	offset loc_4069F8
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		call	sub_403334
		test	al, al
		jnz	short loc_4069D1
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		call	@System@@TryFinallyExit$qqrv ; System::__linkproc__ TryFinallyExit(void)
		jmp	short loc_406A2D
; ---------------------------------------------------------------------------


loc_4069D1:				; CODE XREF: sub_406968+58j
		mov	ecx, [ebp+var_4]
		mov	dl, 1
		mov	eax, off_404390
		call	sub_404404
		mov	[ebp+var_C], eax
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_C]
		call	sub_4046FC
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_406A0A
; ---------------------------------------------------------------------------


loc_4069F8:				; DATA XREF: sub_406968+43o
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		mov	eax, [ebp+var_8]
		call	sub_401C00
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_406A0A:				; CODE XREF: sub_406968+8Ej
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406A2D


loc_406A17:				; CODE XREF: sub_406968+C3j
		cmp	[ebp+var_C], 0
		jz	short loc_406A25
		mov	eax, [ebp+var_C]
		call	sub_4013F4


loc_406A25:				; CODE XREF: sub_406968+B3j
		retn
; ---------------------------------------------------------------------------


loc_406A26:				; DATA XREF: sub_406968+35o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_406A17
; ---------------------------------------------------------------------------


loc_406A2D:				; CODE XREF: sub_406968+67j
					; sub_406968:loc_406A25j
					; DATA XREF: ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406A4A


loc_406A3A:				; CODE XREF: sub_406968+E0j
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_406A43:				; DATA XREF: sub_406968+1Ao
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_406A3A
; ---------------------------------------------------------------------------


loc_406A4A:				; CODE XREF: sub_406968+DAj
					; DATA XREF: sub_406968+CDo
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_406968	endp

; ---------------------------------------------------------------------------
		align 4
; [00000088 BYTES: COLLAPSED FUNCTION Adaptreq::TBasicActionResponseImpl::HandleResponse(void).	PRESS KEYPAD "+" TO EXPAND]
_str___2	dd 0FFFFFFFFh		; _top
					; DATA XREF: Adaptreq::TBasicActionResponseImpl::HandleResponse(void)+5Ao
		dd 1			; Len
		db '\',0                ; Text
		align 4
; [000000A2 BYTES: COLLAPSED FUNCTION sub_406AE8. PRESS	KEYPAD "+" TO EXPAND]
		align 4
; [000000A7 BYTES: COLLAPSED FUNCTION sub_406B8C. PRESS	KEYPAD "+" TO EXPAND]
		align 4
_str___3	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406B8C+6Co
		dd 1			; Len
		db '\',0                ; Text
		align 10h

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

; Attributes: bp-based frame


sub_406C40	proc near		; CODE XREF: sub_408FFC+6F0p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
hLibModule	= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_6		= byte ptr -6
var_5		= byte ptr -5
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE0h
		push	ebx
		xor	edx, edx
		mov	[ebp+var_20], edx
		mov	[ebp+var_1C], edx
		mov	[ebp+var_C], edx
		mov	[ebp+var_14], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_406DC9
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		call	sub_401C00
		mov	[ebp+var_5], 0
		xor	eax, eax
		push	ebp
		push	offset loc_406D97
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		sub	[ebp+var_10], 45h
		lea	eax, [ebp+var_C]
		mov	edx, ds:off_40A0F8
		mov	edx, [edx]
		call	sub_401C98
		mov	eax, 4E40h
		call	sub_401304
		mov	ebx, eax
		add	ebx, 2744h
		mov	eax, 1864Dh
		call	sub_401304
		add	ebx, eax
		mov	eax, ebx
		lea	edx, [ebp+var_1C]
		call	sub_4031F0
		mov	edx, [ebp+var_1C]
		lea	eax, [ebp+var_C]
		call	@System@@LStrCat$qqrv ;	System::__linkproc__ LStrCat(void)
		lea	eax, [ebp+var_C]
		mov	edx, ds:off_40A1F0
		mov	edx, [edx]
		call	@System@@LStrCat$qqrv ;	System::__linkproc__ LStrCat(void)
		lea	eax, [ebp+var_20]
		call	sub_406B8C
		mov	edx, [ebp+var_20]
		lea	eax, [ebp+var_14]
		mov	ecx, [ebp+var_C]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		sub	[ebp+var_10], 3Eh
		mov	[ebp+var_5], 0
		mov	eax, [ebp+var_14]
		call	sub_406AE8
		mov	[ebp+var_6], al
		cmp	[ebp+var_6], 0
		jz	short loc_406D60
		mov	eax, [ebp+var_14]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpLibFileName
		call	LoadLibraryA	; LoadLibraryA
		mov	[ebp+hLibModule], eax
		cmp	[ebp+hLibModule], 0
		jz	short loc_406D57
		dec	[ebp+var_10]
		mov	eax, ds:off_40A0F4
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+hLibModule]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	ds:dword_40B2A8, eax
		cmp	ds:dword_40B2A8, 0
		jnz	short loc_406D64
		sub	[ebp+var_10], 0Fh
		mov	[ebp+var_5], 1
		mov	eax, [ebp+hLibModule]
		push	eax		; hLibModule
		call	FreeLibrary_0
		jmp	short loc_406D64
; ---------------------------------------------------------------------------


loc_406D57:				; CODE XREF: sub_406C40+DBj
		inc	[ebp+var_10]
		mov	[ebp+var_5], 1
		jmp	short loc_406D64
; ---------------------------------------------------------------------------


loc_406D60:				; CODE XREF: sub_406C40+C4j
		mov	[ebp+var_5], 1


loc_406D64:				; CODE XREF: sub_406C40+102j
					; sub_406C40+115j ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406D9E


loc_406D71:				; CODE XREF: sub_406C40+15Cj
		inc	[ebp+var_10]
		lea	eax, [ebp+var_14]
		mov	edx, offset _str______.Text
		call	@System@@LStrCat$qqrv ;	System::__linkproc__ LStrCat(void)
		inc	[ebp+var_10]
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_14]
		call	sub_4032A4
		mov	[ebp+var_10], 0B1h
		retn
; ---------------------------------------------------------------------------


loc_406D97:				; DATA XREF: sub_406C40+35o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_406D71
; ---------------------------------------------------------------------------


loc_406D9E:				; CODE XREF: sub_406C40+156j
					; DATA XREF: sub_406C40+12Co
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406DD0


loc_406DAB:				; CODE XREF: sub_406C40+18Ej
		lea	eax, [ebp+var_20]
		mov	edx, 2
		call	sub_401C24
		lea	eax, [ebp+var_14]
		call	sub_401C00
		lea	eax, [ebp+var_C]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_406DC9:				; DATA XREF: sub_406C40+1Bo
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_406DAB
; ---------------------------------------------------------------------------


loc_406DD0:				; CODE XREF: sub_406C40+188j
					; DATA XREF: sub_406C40+166o
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_406C40	endp

; ---------------------------------------------------------------------------
		align 4
_str______	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406C40+137o
		dd 5			; Len
		db '     ',0            ; Text
		align 4

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

; Attributes: bp-based frame


sub_406DE8	proc near		; CODE XREF: sub_406E58+8Ep

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	[ebp+var_C], 0FFFFFFFFh
		mov	eax, [ebp+var_8]
		and	eax, 3
		cmp	eax, 2
		ja	short loc_406E51
		mov	eax, [ebp+var_8]
		and	eax, 0F0h
		cmp	eax, 40h
		ja	short loc_406E51
		push	0
		push	80h
		push	3
		push	0
		mov	eax, [ebp+var_8]
		and	eax, 0F0h
		shr	eax, 4
		mov	eax, ds:dword_40A0B4[eax*4]
		push	eax
		mov	eax, [ebp+var_8]
		and	eax, 3
		mov	eax, ds:dword_40A0A8[eax*4]
		push	eax
		mov	eax, [ebp+var_4]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		call	ds:dword_40B24C
		mov	[ebp+var_C], eax


loc_406E51:				; CODE XREF: sub_406DE8+1Cj
					; sub_406DE8+29j
		mov	eax, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
sub_406DE8	endp


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

; Attributes: bp-based frame


sub_406E58	proc near		; CODE XREF: sub_406018+250p
					; sub_4063E8+343p

var_15C		= dword	ptr -15Ch
var_158		= byte ptr -158h
var_144		= dword	ptr -144h
var_140		= dword	ptr -140h
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
		add	esp, 0FFFFFEA4h
		xor	ecx, ecx
		mov	[ebp+var_15C], ecx
		mov	[ebp+var_18], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_401FA8
		xor	eax, eax
		push	ebp
		push	offset loc_406F35
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_158]
		push	eax
		mov	ecx, ds:off_40A0D0
		mov	ecx, [ecx]
		mov	edx, ds:off_40A248
		mov	edx, [edx]
		lea	eax, [ebp+var_15C]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_15C]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		call	ds:dword_40B2CC
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0FFFFFFFFh
		jz	short loc_406F14
		mov	eax, [ebp+var_144]
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_140]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		push	eax
		call	ds:dword_40B2D0
		mov	edx, 41h
		mov	eax, [ebp+var_4]
		call	sub_406DE8
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jbe	short loc_406F14
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		call	ds:dword_40B2D4
		mov	eax, [ebp+var_C]
		push	eax
		call	ds:dword_40B2D8


loc_406F14:				; CODE XREF: sub_406E58+68j
					; sub_406E58+9Aj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406F3C


loc_406F21:				; CODE XREF: sub_406E58+E2j
		lea	eax, [ebp+var_15C]
		call	sub_401C00
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_406F35:				; DATA XREF: sub_406E58+22o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_406F21
; ---------------------------------------------------------------------------


loc_406F3C:				; CODE XREF: sub_406E58+DCj
					; DATA XREF: sub_406E58+C4o
		mov	esp, ebp
		pop	ebp
		retn
sub_406E58	endp


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

; Attributes: bp-based frame


sub_406F40	proc near		; CODE XREF: sub_408FFC+6C6p

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		xor	edx, edx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_406FB5
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	edx, [ebp+var_8]
		mov	eax, ds:off_40A138
		mov	eax, [eax]
		call	sub_405688
		cmp	[ebp+var_8], 0
		jz	short loc_406F7E
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_8]
		call	sub_401C54
		jmp	short loc_406F9F
; ---------------------------------------------------------------------------


loc_406F7E:				; CODE XREF: sub_406F40+2Fj
		mov	eax, [ebp+var_4]
		mov	edx, ds:off_40A2A0
		mov	edx, [edx]
		call	sub_401C54
		mov	edx, [ebp+var_4]
		mov	edx, [edx]
		mov	eax, ds:off_40A138
		mov	eax, [eax]
		call	sub_4055F8


loc_406F9F:				; CODE XREF: sub_406F40+3Cj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406FBC


loc_406FAC:				; CODE XREF: sub_406F40+7Aj
		lea	eax, [ebp+var_8]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_406FB5:				; DATA XREF: sub_406F40+11o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_406FAC
; ---------------------------------------------------------------------------


loc_406FBC:				; CODE XREF: sub_406F40+74j
					; DATA XREF: sub_406F40+67o
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_406F40	endp


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

; Attributes: bp-based frame


sub_406FC0	proc near		; DATA XREF: CODE:00409EF8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_406FE5
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B318
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406FEC


loc_406FE4:				; CODE XREF: sub_406FC0+2Aj
		retn
; ---------------------------------------------------------------------------


loc_406FE5:				; DATA XREF: sub_406FC0+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_406FE4
; ---------------------------------------------------------------------------


loc_406FEC:				; CODE XREF: sub_406FC0:loc_406FE4j
					; DATA XREF: sub_406FC0+1Fo
		pop	ebp
		retn
sub_406FC0	endp

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

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



sub_406FF0	proc near		; DATA XREF: CODE:00409EF4o
		sub	ds:dword_40B318, 1
		retn
sub_406FF0	endp


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

; Attributes: bp-based frame


sub_406FF8	proc near		; DATA XREF: CODE:00409F14o

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		pop	ecx
		pop	ebp
		retn
sub_406FF8	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_407008	proc near		; CODE XREF: sub_407068+3Ap
					; sub_407068+53p ...

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFD4h
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	[ebp+var_2C], 20h
		mov	eax, [ebp+var_4]
		mov	ds:dword_40B320, eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], 7
		mov	eax, [ebp+var_8]
		mov	[ebp+var_20], eax
		xor	eax, eax
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_18], eax
		mov	[ebp+var_14], 0BB8h
		lea	eax, [ebp+var_2C]
		push	eax
		mov	eax, ds:dword_40B31C
		push	eax
		mov	eax, ds:off_40A20C
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		mov	esp, ebp
		pop	ebp
		retn
sub_407008	endp


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

; Attributes: bp-based frame


sub_407068	proc near		; DATA XREF: ServiceMain+14o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	eax, 5		; switch 6 cases
		ja	loc_407122	; default
					; jumptable 00407077 case 0
		jmp	off_40707E[eax*4] ; switch jump
; ---------------------------------------------------------------------------
off_40707E	dd offset loc_407122	; DATA XREF: sub_407068+Fr
		dd offset loc_407096	; jump table for switch	statement
		dd offset loc_4070C2
		dd offset loc_4070E3
		dd offset loc_407104
		dd offset loc_407114
; ---------------------------------------------------------------------------


loc_407096:				; CODE XREF: sub_407068+Fj
					; DATA XREF: sub_407068:off_40707Eo
		mov	ecx, 1		; jumptable 00407077 case 1
		xor	edx, edx
		mov	eax, 3
		call	sub_407008
		push	0Ah
		mov	eax, ds:off_40A1E4
		mov	eax, [eax]
		call	eax
		xor	ecx, ecx
		xor	edx, edx
		mov	eax, 1
		call	sub_407008
		jmp	short loc_407122 ; default
					; jumptable 00407077 case 0
; ---------------------------------------------------------------------------


loc_4070C2:				; CODE XREF: sub_407068+Fj
					; DATA XREF: sub_407068:off_40707Eo
		mov	ecx, 1		; jumptable 00407077 case 2
		xor	edx, edx
		mov	eax, 6
		call	sub_407008
		xor	ecx, ecx
		xor	edx, edx
		mov	eax, 7
		call	sub_407008
		jmp	short loc_407122 ; default
					; jumptable 00407077 case 0
; ---------------------------------------------------------------------------


loc_4070E3:				; CODE XREF: sub_407068+Fj
					; DATA XREF: sub_407068:off_40707Eo
		mov	ecx, 1		; jumptable 00407077 case 3
		xor	edx, edx
		mov	eax, 5
		call	sub_407008
		xor	ecx, ecx
		xor	edx, edx
		mov	eax, 4
		call	sub_407008
		jmp	short loc_407122 ; default
					; jumptable 00407077 case 0
; ---------------------------------------------------------------------------


loc_407104:				; CODE XREF: sub_407068+Fj
					; DATA XREF: sub_407068:off_40707Eo
		xor	ecx, ecx	; jumptable 00407077 case 4
		xor	edx, edx
		mov	eax, ds:dword_40B320
		call	sub_407008
		jmp	short loc_407122 ; default
					; jumptable 00407077 case 0
; ---------------------------------------------------------------------------


loc_407114:				; CODE XREF: sub_407068+Fj
					; DATA XREF: sub_407068:off_40707Eo
		xor	ecx, ecx	; jumptable 00407077 case 5
		xor	edx, edx
		mov	eax, 1
		call	sub_407008


loc_407122:				; CODE XREF: sub_407068+9j
					; sub_407068+Fj ...
		pop	ebp		; default
					; jumptable 00407077 case 0
		retn	4
sub_407068	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_407128	proc near		; CODE XREF: r+1Fp ServiceMain+5p

var_188		= dword	ptr -188h
var_184		= dword	ptr -184h
var_180		= dword	ptr -180h
var_17C		= dword	ptr -17Ch
var_178		= dword	ptr -178h
var_174		= dword	ptr -174h
var_170		= dword	ptr -170h
var_16C		= dword	ptr -16Ch
var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_160		= dword	ptr -160h
var_15C		= dword	ptr -15Ch
var_158		= dword	ptr -158h
var_154		= dword	ptr -154h
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_148		= dword	ptr -148h
var_144		= dword	ptr -144h
var_140		= dword	ptr -140h
var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_D4		= dword	ptr -0D4h
var_D0		= dword	ptr -0D0h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		mov	ecx, 31h


loc_407130:				; CODE XREF: sub_407128+Dj
		push	0
		push	0
		dec	ecx
		jnz	short loc_407130
		mov	[ebp+var_10], eax
		xor	eax, eax
		push	ebp
		push	offset loc_407FF7
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	[ebp+var_4], 1
		lea	eax, [ebp+var_8]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF71h
		mov	eax, offset a3bvald ; "3bvAlD"
		call	sub_4042E8
		mov	eax, [ebp+var_8]
		call	sub_403258
		mov	edx, ds:off_40A230
		mov	[edx], eax
		lea	eax, [ebp+var_C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF72h
		mov	eax, offset aNgyMd ; "+ngy+MD"
		call	sub_4042E8
		mov	eax, [ebp+var_C]
		call	sub_403258
		mov	edx, ds:off_40A154
		mov	[edx], eax
		lea	eax, [ebp+var_14]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF73h
		mov	eax, offset aUco3k7wux882eb ; "uCO3k7wux882Ebmw"
		call	sub_4042E8
		mov	edx, [ebp+var_14]
		mov	eax, ds:off_40A184
		call	sub_401C54
		lea	eax, [ebp+var_18]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF74h
		mov	eax, offset aDifoh2zro4eio2 ; "difOH2Zro4eIO2UbDyP0"
		call	sub_4042E8
		mov	edx, [ebp+var_18]
		mov	eax, ds:off_40A318
		call	sub_401C54
		lea	eax, [ebp+var_1C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF75h
		mov	eax, offset aDmgjufwnxsugjd ; "dmgJUfwnXSUgJDMp/IN"
		call	sub_4042E8
		mov	edx, [ebp+var_1C]
		mov	eax, ds:off_40A1F4
		call	sub_401C54
		lea	eax, [ebp+var_20]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF76h
		mov	eax, offset aD1uvmvjc94eg2p ; "d+1Uvmvjc94eG2P"
		call	sub_4042E8
		mov	edx, [ebp+var_20]
		mov	eax, ds:off_40A264
		call	sub_401C54
		lea	eax, [ebp+var_24]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF77h
		mov	eax, offset aDywlnguyXaar4w ; "dyWLNguy+XaaR4Wevt/7ZA"
		call	sub_4042E8
		mov	edx, [ebp+var_24]
		mov	eax, ds:off_40A1DC
		call	sub_401C54
		lea	eax, [ebp+var_28]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF78h
		mov	eax, offset aDkbmeha0iugai2 ; "dKbMEhA0IUgaI2M"
		call	sub_4042E8
		mov	edx, [ebp+var_28]
		mov	eax, ds:off_40A1D8
		call	sub_401C54
		lea	eax, [ebp+var_2C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF79h
		mov	eax, offset aDocwpfzjx2wkQb ; "dOcwpfZjx2wk/QBIpA"
		call	sub_4042E8
		mov	edx, [ebp+var_2C]
		mov	eax, ds:off_40A260
		call	sub_401C54
		lea	eax, [ebp+var_30]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF7Ah
		mov	eax, offset aCmodknob2qkas3 ; "cmODKnOB2Qkas3WVRs1YxysZCEbEqcTFEBoRGxd"...
		call	sub_4042E8
		mov	edx, [ebp+var_30]
		mov	eax, ds:off_40A130
		call	sub_401C54
		lea	eax, [ebp+var_34]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF7Bh
		mov	eax, offset aQrgzyakggxzvmd ; "qrgZYAKGGXzVmdzJkLzMNhSYNh/OL9/vaO8tLWN"...
		call	sub_4042E8
		mov	edx, [ebp+var_34]
		mov	eax, ds:off_40A328
		call	sub_401C54
		lea	eax, [ebp+var_38]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF7Ch
		mov	eax, offset aC2wxhmzsyycikz ; "c2wXHMzsYYCIKZh2r092AF/BSI2wp0qNcudzVmX"...
		call	sub_4042E8
		mov	edx, [ebp+var_38]
		mov	eax, ds:off_40A214
		call	sub_401C54
		lea	eax, [ebp+var_3C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF7Dh
		mov	eax, offset aQxakbx6ivb1mjr ; "qXaKBx6ivB1MJRwWDOxXYNeHFRuLqlS/fSUDyl+"...
		call	sub_4042E8
		mov	edx, [ebp+var_3C]
		mov	eax, ds:off_40A18C
		call	sub_401C54
		lea	eax, [ebp+var_40]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF7Eh
		mov	eax, offset aCaijfn3c0zmzcs ; "caIjFN3c0zMZcs+lZwbduea2ZoUI6GvV0Vh5SQ0"...
		call	sub_4042E8
		mov	edx, [ebp+var_40]
		mov	eax, ds:off_40A1C8
		call	sub_401C54
		mov	eax, ds:off_40A1B8
		mov	edx, offset _str_10180721.Text
		call	sub_401C54
		mov	eax, ds:off_40A128
		mov	edx, offset _str_m.Text
		call	sub_401C54
		lea	eax, [ebp+var_44]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF7Fh
		mov	eax, offset aKyfph1iw740pca ; "KyFph1Iw740pCA"
		call	sub_4042E8
		mov	edx, [ebp+var_44]
		mov	eax, ds:off_40A158
		call	sub_401C54
		lea	eax, [ebp+var_48]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF80h
		mov	eax, offset aNcrlctbl ;	"NCRlCtbl"
		call	sub_4042E8
		mov	edx, [ebp+var_48]
		mov	eax, ds:off_40A0D8
		call	sub_401C54
		lea	eax, [ebp+var_4C]
		push	eax
		mov	eax, ds:off_40A0D8
		mov	eax, [eax]
		mov	ecx, 2
		mov	edx, 1
		call	@System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void)
		mov	edx, [ebp+var_4C]
		mov	ecx, ds:off_40A1B8
		mov	ecx, [ecx]
		mov	eax, ds:off_40A2E4
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		lea	eax, [ebp+var_50]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF81h
		mov	eax, offset aCsqnhpAzuvs2sv ; "cSQnHp+AzUvS2SV/BRFsSy2gsqm8y+i9"
		call	sub_4042E8
		mov	edx, [ebp+var_50]
		mov	eax, ds:off_40A1D0
		call	sub_401C54
		lea	eax, [ebp+var_54]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF82h
		mov	eax, offset aTi6nrFol5c	; "ti6nR+FoL5C"
		call	sub_4042E8
		mov	edx, [ebp+var_54]
		mov	eax, ds:off_40A1A0
		call	sub_401C54
		lea	eax, [ebp+var_58]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF83h
		mov	eax, offset aRnialtyzi12hps ; "+rNiALTYZI12hPS2wHN"
		call	sub_4042E8
		mov	edx, [ebp+var_58]
		mov	eax, ds:off_40A1AC
		call	sub_401C54
		lea	eax, [ebp+var_5C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF84h
		mov	eax, offset a939eivv3pogxnv ; "939EIVV3PoGXNV5ELD"
		call	sub_4042E8
		mov	edx, [ebp+var_5C]
		mov	eax, ds:off_40A0E8
		call	sub_401C54
		lea	eax, [ebp+var_60]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF85h
		mov	eax, offset aLwbdumyysvu9v9 ; "lWbDumyysVu9v9lsnaN"
		call	sub_4042E8
		mov	edx, [ebp+var_60]
		mov	eax, ds:off_40A2DC
		call	sub_401C54
		lea	eax, [ebp+var_64]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF86h
		mov	eax, offset a5b20ovjgt5hoq5 ; "5b20OvjgT5HOq++5fB"
		call	sub_4042E8
		mov	edx, [ebp+var_64]
		mov	eax, ds:off_40A148
		call	sub_401C54
		lea	eax, [ebp+var_68]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF87h
		mov	eax, offset a6uzj ; "6uzj"
		call	sub_4042E8
		mov	edx, [ebp+var_68]
		mov	eax, ds:off_40A138
		call	sub_401C54
		lea	eax, [ebp+var_6C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF88h
		mov	eax, offset a4cKvaucy0ife6e ; "4C/KvaUCy0iFE6E"
		call	sub_4042E8
		mov	edx, [ebp+var_6C]
		mov	eax, ds:off_40A1CC
		call	sub_401C54
		lea	eax, [ebp+var_70]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF89h
		mov	eax, offset a8ourt5o ; "8Ourt+5O"
		call	sub_4042E8
		mov	edx, [ebp+var_70]
		mov	eax, ds:off_40A22C
		call	sub_401C54
		lea	eax, [ebp+var_74]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF8Ah
		mov	eax, offset aNH3qxm ; "n+h3qXM"
		call	sub_4042E8
		mov	edx, [ebp+var_74]
		mov	eax, ds:off_40A28C
		call	sub_401C54
		lea	eax, [ebp+var_78]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF8Bh
		mov	eax, offset aO22villgoziyya ; "o22vilLGOzIYyAQ9vB"
		call	sub_4042E8
		mov	edx, [ebp+var_78]
		mov	eax, ds:off_40A2CC
		call	sub_401C54
		lea	eax, [ebp+var_7C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF8Ch
		mov	eax, offset aIsxd ; "iSXD"
		call	sub_4042E8
		mov	edx, [ebp+var_7C]
		mov	eax, ds:off_40A0F8
		call	sub_401C54
		lea	eax, [ebp+var_80]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF8Dh
		mov	eax, offset aHDlb ; "h//dlB"
		call	sub_4042E8
		mov	edx, [ebp+var_80]
		mov	eax, ds:off_40A1F0
		call	sub_401C54
		lea	eax, [ebp+var_84]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF8Eh
		mov	eax, offset a6wivZ9pgd5qwa ; "6WIv+Z9PgD5qwA"
		call	sub_4042E8
		mov	edx, [ebp+var_84]
		mov	eax, ds:off_40A180
		call	sub_401C54
		lea	eax, [ebp+var_88]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF8Fh
		mov	eax, offset aAq6vywcs5pelnh ; "aq6vywcS5PeLNh24rbMcasM6"
		call	sub_4042E8
		mov	edx, [ebp+var_88]
		mov	eax, ds:off_40A0F4
		call	sub_401C54
		lea	eax, [ebp+var_8C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF90h
		mov	eax, offset a4sob3rmctepeqw ; "4Sob3rmCtEpEqWH"
		call	sub_4042E8
		mov	edx, [ebp+var_8C]
		mov	eax, ds:off_40A1CC
		call	sub_401C54
		lea	eax, [ebp+var_90]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF91h
		mov	eax, offset a8qzrxc ; "8qZrxC"
		call	sub_4042E8
		mov	edx, [ebp+var_90]
		mov	eax, ds:off_40A268
		call	sub_401C54
		lea	eax, [ebp+var_94]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF92h
		mov	eax, offset aYw53fwb08zkfjd ; "YW53FWB08zKFjD"
		call	sub_4042E8
		mov	edx, [ebp+var_94]
		mov	eax, ds:off_40A11C
		call	sub_401C54
		lea	eax, [ebp+var_98]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF93h
		mov	eax, offset aYacSHx5pkymb ; "Yac/S+HX5PkymB"
		call	sub_4042E8
		mov	edx, [ebp+var_98]
		mov	eax, ds:off_40A2E8
		call	sub_401C54
		lea	eax, [ebp+var_9C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF94h
		mov	eax, offset aYczilil7ytz55j ; "YCzILiL7ytZ/55JVbR3U"
		call	sub_4042E8
		mov	edx, [ebp+var_9C]
		mov	eax, ds:off_40A144
		call	sub_401C54
		lea	eax, [ebp+var_A0]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF95h
		mov	eax, offset aO2nzavl6gpk6tk ; "o2nzAVl6gpK6tkxRrB"
		call	sub_4042E8
		mov	edx, [ebp+var_A0]
		mov	eax, ds:off_40A2CC
		call	sub_401C54
		lea	eax, [ebp+var_A4]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF96h
		mov	eax, offset a8imfxzfi ;	"8imFxZFI"
		call	sub_4042E8
		mov	edx, [ebp+var_A4]
		mov	eax, ds:off_40A22C
		call	sub_401C54
		lea	eax, [ebp+var_A8]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF97h
		mov	eax, offset a8orVl2oocosna ; "8Or/VL2OoCOSnA"
		call	sub_4042E8
		mov	edx, [ebp+var_A8]
		mov	eax, ds:off_40A238
		call	sub_401C54
		lea	eax, [ebp+var_AC]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF98h
		mov	eax, offset a9exlmc ; "9exlMC"
		call	sub_4042E8
		mov	edx, [ebp+var_AC]
		mov	eax, ds:off_40A2C0
		call	sub_401C54
		lea	eax, [ebp+var_B0]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF99h
		mov	eax, offset aMut3p1x7Jwx ; "mut3P1x7/Jwx"
		call	sub_4042E8
		mov	edx, [ebp+var_B0]
		mov	eax, ds:off_40A254
		call	sub_401C54
		lea	eax, [ebp+var_B4]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF9Ah
		mov	eax, offset aM2ovcwmcigA ; "m2OvcWMciG+a"
		call	sub_4042E8
		mov	edx, [ebp+var_B4]
		mov	eax, ds:off_40A108
		call	sub_401C54
		lea	eax, [ebp+var_B8]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF9Bh
		mov	eax, offset aNsvwp1e ; "nSVwP1E"
		call	sub_4042E8
		mov	edx, [ebp+var_B8]
		mov	eax, ds:off_40A28C
		call	sub_401C54
		lea	eax, [ebp+var_BC]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF9Ch
		mov	eax, offset aSijtutktdd	; "siJTUtKTdD"
		call	sub_4042E8
		mov	edx, [ebp+var_BC]
		mov	eax, ds:off_40A1D4
		call	sub_401C54
		lea	eax, [ebp+var_C0]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF9Dh
		mov	eax, offset aHozfxej ; "hOZfxEJ"
		call	sub_4042E8
		mov	edx, [ebp+var_C0]
		mov	eax, ds:off_40A168
		call	sub_401C54
		lea	eax, [ebp+var_C4]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF9Eh
		mov	eax, offset aNip17no ; "niP17NO"
		call	sub_4042E8
		mov	edx, [ebp+var_C4]
		mov	eax, ds:off_40A164
		call	sub_401C54
		lea	eax, [ebp+var_C8]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CF9Fh
		mov	eax, offset aI6d3vntdfkht4f ; "I6D3vNtDfKht4F7n"
		call	sub_4042E8
		mov	edx, [ebp+var_C8]
		mov	eax, ds:off_40A2D8
		call	sub_401C54
		lea	eax, [ebp+var_CC]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFA0h
		mov	eax, offset aIyeUgnxh4vt0p7 ; "IyE+ugnXh4vT0P7J7sy7B/Y7AA"
		call	sub_4042E8
		mov	edx, [ebp+var_CC]
		mov	eax, ds:off_40A228
		call	sub_401C54
		lea	eax, [ebp+var_D0]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFA1h
		mov	eax, offset aM6fzivtOfT	; "M6FZIVT/Of/t"
		call	sub_4042E8
		mov	edx, [ebp+var_D0]
		mov	eax, ds:off_40A274
		call	sub_401C54
		lea	eax, [ebp+var_D4]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFA2h
		mov	eax, offset a5yc8ncxbc3gx58 ; "5yC8nCxBC3gx58E"
		call	sub_4042E8
		mov	edx, [ebp+var_D4]
		mov	eax, ds:off_40A178
		call	sub_401C54
		lea	eax, [ebp+var_D8]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFA3h
		mov	eax, offset aK20fouwyzfgjev ; "k20fOuWyZfGjEv5F"
		call	sub_4042E8
		mov	edx, [ebp+var_D8]
		mov	eax, ds:off_40A134
		call	sub_401C54
		lea	eax, [ebp+var_DC]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFA4h
		mov	eax, offset aIaa8cwic5nbo2q ; "IaA8CWiC5NbO2QD4J/gMRJZjMNZb+nC"
		call	sub_4042E8
		mov	edx, [ebp+var_DC]
		mov	eax, ds:off_40A2A4
		call	sub_401C54
		lea	eax, [ebp+var_E0]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFA5h
		mov	eax, offset aIsfcqmqbxifrdb ; "ISFcQmQBxIfrDBiiKdxaw8jfkD"
		call	sub_4042E8
		mov	edx, [ebp+var_E0]
		mov	eax, ds:off_40A314
		call	sub_401C54
		lea	eax, [ebp+var_E4]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFA6h
		mov	eax, offset aZctr1eyzggrtwr ; "ZCtr1eYzggrtWRHPnHK"
		call	sub_4042E8
		mov	edx, [ebp+var_E4]
		mov	eax, ds:off_40A1E8
		call	sub_401C54
		lea	eax, [ebp+var_E8]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFA7h
		mov	eax, offset aSqlqzpdnmegkyv ; "sqLQZPDNMegkyVI"
		call	sub_4042E8
		mov	edx, [ebp+var_E8]
		mov	eax, ds:off_40A160
		call	sub_401C54
		lea	eax, [ebp+var_EC]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFA8h
		mov	eax, offset aCg9y1xp ; "cG9y1xP"
		call	sub_4042E8
		mov	edx, [ebp+var_EC]
		mov	eax, ds:off_40A19C
		call	sub_401C54
		lea	eax, [ebp+var_F0]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFA9h
		mov	eax, offset aQw7trd ; "qW7TRD"
		call	sub_4042E8
		mov	edx, [ebp+var_F0]
		mov	eax, ds:off_40A25C
		call	sub_401C54
		lea	eax, [ebp+var_F4]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFAAh
		mov	eax, offset aA2cekfy4 ;	"a2cEKfY4"
		call	sub_4042E8
		mov	edx, [ebp+var_F4]
		mov	eax, ds:off_40A320
		call	sub_401C54
		lea	eax, [ebp+var_F8]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFABh
		mov	eax, offset aAcEvc ; "aC+EVC"
		call	sub_4042E8
		mov	edx, [ebp+var_F8]
		mov	eax, ds:off_40A150
		call	sub_401C54
		lea	eax, [ebp+var_FC]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFACh
		mov	eax, offset a9dwija ; "9DwIjA"
		call	sub_4042E8
		mov	edx, [ebp+var_FC]
		mov	eax, ds:off_40A100
		call	sub_401C54
		lea	eax, [ebp+var_100]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFADh
		mov	eax, offset a6ipvu3uWb ; "6ipvu3U+WB"
		call	sub_4042E8
		mov	edx, [ebp+var_100]
		mov	eax, ds:off_40A2A0
		call	sub_401C54
		lea	eax, [ebp+var_104]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFAEh
		mov	eax, offset aSsb4ur9kkslybb ; "sSB4UR9kksLYBB"
		call	sub_4042E8
		mov	edx, [ebp+var_104]
		mov	eax, ds:off_40A0D0
		call	sub_401C54
		lea	eax, [ebp+var_108]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFAFh
		mov	eax, offset aJmnetkrqyelx8o ; "JmnETKRQYeLX8oCaYTF"
		call	sub_4042E8
		mov	edx, [ebp+var_108]
		mov	eax, ds:off_40A140
		call	sub_401C54
		lea	eax, [ebp+var_10C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFB0h
		mov	eax, offset aJalkydxttyno ; "JaLKYDXtTYnO"
		call	sub_4042E8
		mov	edx, [ebp+var_10C]
		mov	eax, ds:off_40A120
		call	sub_401C54
		lea	eax, [ebp+var_110]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFB1h
		mov	eax, offset aCq5tjmgi5ex1gk ; "cq5tjmGi5Ex1gkJ"
		call	sub_4042E8
		mov	edx, [ebp+var_110]
		mov	eax, ds:off_40A0E0
		call	sub_401C54
		lea	eax, [ebp+var_114]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFB2h
		mov	eax, offset aMuy88x2vyxuuho ; "MuY88x+2VyXUUhO"
		call	sub_4042E8
		mov	edx, [ebp+var_114]
		mov	eax, ds:off_40A234
		call	sub_401C54
		lea	eax, [ebp+var_118]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFB3h
		mov	eax, offset a42lwmjpg9sj9um ; "42lwmJpg9SJ9umDL"
		call	sub_4042E8
		mov	edx, [ebp+var_118]
		mov	eax, ds:off_40A0C8
		call	sub_401C54
		lea	eax, [ebp+var_11C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFB4h
		mov	eax, offset aGsdpujcgoxep ; "gSdpuJcgOXeP"
		call	sub_4042E8
		mov	edx, [ebp+var_11C]
		mov	eax, ds:off_40A1B4
		call	sub_401C54
		lea	eax, [ebp+var_120]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFB5h
		mov	eax, offset a7wft ; "7WFT"
		call	sub_4042E8
		mov	edx, [ebp+var_120]
		mov	eax, ds:off_40A29C
		call	sub_401C54
		lea	eax, [ebp+var_124]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFB6h
		mov	eax, offset aNkpgr98hC ; "nKpgR98h+C"
		call	sub_4042E8
		mov	edx, [ebp+var_124]
		mov	eax, ds:off_40A2F8
		call	sub_401C54
		lea	eax, [ebp+var_128]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFB7h
		mov	eax, offset aGnzuezd ; "gnZuEZD"
		call	sub_4042E8
		mov	edx, [ebp+var_128]
		mov	eax, ds:off_40A270
		call	sub_401C54
		lea	eax, [ebp+var_12C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFB8h
		mov	eax, offset aLqiul724pPpecg ; "LqIuL724P+PPEcG"
		call	sub_4042E8
		mov	edx, [ebp+var_12C]
		mov	eax, ds:off_40A208
		call	sub_401C54
		lea	eax, [ebp+var_130]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFB9h
		mov	eax, offset aCsbrkmdgHwo ; "CSBrKmDg+HWo"
		call	sub_4042E8
		mov	edx, [ebp+var_130]
		mov	eax, ds:off_40A174
		call	sub_401C54
		lea	eax, [ebp+var_134]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFBAh
		mov	eax, offset aHvo21d ; "hvo21D"
		call	sub_4042E8
		mov	edx, [ebp+var_134]
		mov	eax, ds:off_40A114
		call	sub_401C54
		lea	eax, [ebp+var_138]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFBBh
		mov	eax, offset a42yu7kp ; "42YU7KP"
		call	sub_4042E8
		mov	edx, [ebp+var_138]
		mov	eax, ds:off_40A2BC
		call	sub_401C54
		lea	eax, [ebp+var_13C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFBCh
		mov	eax, offset a4oedrowy ;	"4OEDrOWy"
		call	sub_4042E8
		mov	edx, [ebp+var_13C]
		mov	eax, ds:off_40A210
		call	sub_401C54
		lea	eax, [ebp+var_140]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFBDh
		mov	eax, offset aMer3curGxyfxrf ; "Mer3Cur+GXYfXrf/pbB"
		call	sub_4042E8
		mov	edx, [ebp+var_140]
		mov	eax, ds:off_40A244
		call	sub_401C54
		lea	eax, [ebp+var_144]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFBEh
		mov	eax, offset aYcsu7htwnpmint ; "YCSu7hTWnpMintfgNKcswPAX8C"
		call	sub_4042E8
		mov	edx, [ebp+var_144]
		mov	eax, ds:off_40A200
		call	sub_401C54
		lea	eax, [ebp+var_148]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFBFh
		mov	eax, offset aTg1igt58O0jift ; "TG1igT58+O0jifTlYCtauw8/hstxl79V"
		call	sub_4042E8
		mov	edx, [ebp+var_148]
		mov	eax, ds:off_40A27C
		call	sub_401C54
		lea	eax, [ebp+var_14C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFC0h
		mov	eax, offset aAovyKNwhbskqcb ; "AOvy/K+nWhbsKqcbklC"
		call	sub_4042E8
		mov	edx, [ebp+var_14C]
		mov	eax, ds:off_40A0EC
		call	sub_401C54
		lea	eax, [ebp+var_150]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFC1h
		mov	eax, offset aM2oiiojif1fuza ; "M2oIIOjIF1FUzaB"
		call	sub_4042E8
		mov	edx, [ebp+var_150]
		mov	eax, ds:off_40A1EC
		call	sub_401C54
		lea	eax, [ebp+var_154]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFC2h
		mov	eax, offset aDaegfaypa13sg2 ; "daegfAYpA13sG2B1f30Rye7+4zOP/f9RDEA9"
		call	sub_4042E8
		mov	edx, [ebp+var_154]
		mov	eax, ds:off_40A2B0
		call	sub_401C54
		lea	eax, [ebp+var_158]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFC3h
		mov	eax, offset aAPp7cqmo2xpssb ; "A+pp7CQMo/2xpssB"
		call	sub_4042E8
		mov	edx, [ebp+var_158]
		mov	eax, ds:off_40A24C
		call	sub_401C54
		lea	eax, [ebp+var_15C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFC4h
		mov	eax, offset aLmvJaxszvyouvq ; "Lmv/JaxsZVyOuVqaKD"
		call	sub_4042E8
		mov	edx, [ebp+var_15C]
		mov	eax, ds:off_40A250
		call	sub_401C54
		lea	eax, [ebp+var_160]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFC5h
		mov	eax, offset aMuehx9qw5tdnqq ; "MuEHX9Qw5TDNQqrMopC"
		call	sub_4042E8
		mov	edx, [ebp+var_160]
		mov	eax, ds:off_40A23C
		call	sub_401C54
		lea	eax, [ebp+var_164]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFC6h
		mov	eax, offset aIi60kloyyocini ; "Ii60kloYyocIniAI"
		call	sub_4042E8
		mov	edx, [ebp+var_164]
		mov	eax, ds:off_40A0E4
		call	sub_401C54
		lea	eax, [ebp+var_168]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFC7h
		mov	eax, offset aMmrdkrqujpLYof ; "MmrDKrqujP+l/yOFQ7B"
		call	sub_4042E8
		mov	edx, [ebp+var_168]
		mov	eax, ds:off_40A26C
		call	sub_401C54
		lea	eax, [ebp+var_16C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFC8h
		mov	eax, offset aMimfjxhnkjw2km ; "MiMfJXhNKjW2kmQz2kK/Vrs9"
		call	sub_4042E8
		mov	edx, [ebp+var_16C]
		mov	eax, ds:off_40A1A4
		call	sub_401C54
		lea	eax, [ebp+var_170]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFC9h
		mov	eax, offset aCytbpk4jopc4if ; "cyTBPk4JOPC4ifjTC42G2C"
		call	sub_4042E8
		mov	edx, [ebp+var_170]
		mov	eax, ds:off_40A0DC
		call	sub_401C54
		lea	eax, [ebp+var_174]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFCAh
		mov	eax, offset aJskfpqauaowhrv ; "JSKFPqaUaowHRvF"
		call	sub_4042E8
		mov	edx, [ebp+var_174]
		mov	eax, ds:off_40A278
		call	sub_401C54
		lea	eax, [ebp+var_178]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFCBh
		mov	eax, offset aMc2aw51npzrj6z ; "MC2aw51NPzRJ6Z3UjTN"
		call	sub_4042E8
		mov	edx, [ebp+var_178]
		mov	eax, ds:off_40A220
		call	sub_401C54
		lea	eax, [ebp+var_17C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFCCh
		mov	eax, offset a8sZrjwimobtuqj ; "8S+ZrJwimOBtuQJ"
		call	sub_4042E8
		mov	edx, [ebp+var_17C]
		mov	eax, ds:off_40A1C4
		call	sub_401C54
		lea	eax, [ebp+var_180]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFCDh
		mov	eax, offset aIebgig9qms015z ; "IeBgig9qMS015zSd"
		call	sub_4042E8
		mov	edx, [ebp+var_180]
		mov	eax, ds:off_40A1E0
		call	sub_401C54
		lea	eax, [ebp+var_184]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFCEh
		mov	eax, offset aHfg1 ; "hfG1"
		call	sub_4042E8
		mov	edx, [ebp+var_184]
		mov	eax, ds:off_40A2AC
		call	sub_401C54
		lea	eax, [ebp+var_188]
		push	eax
		xor	ecx, ecx
		mov	edx, 0CFCFh
		mov	eax, offset aIqmytcqcs7ijZn ; "IqmYTCQCs7iJ//ZN"
		call	sub_4042E8
		mov	edx, [ebp+var_188]
		mov	eax, ds:off_40A13C
		call	sub_401C54
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_407FFE


loc_407FD9:				; CODE XREF: sub_407128+ED4j
		lea	eax, [ebp+var_188]
		mov	edx, 5Eh
		call	sub_401C24
		lea	eax, [ebp+var_C]
		mov	edx, 2
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_407FF7:				; DATA XREF: sub_407128+15o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_407FD9
; ---------------------------------------------------------------------------


loc_407FFE:				; CODE XREF: sub_407128+ECEj
					; DATA XREF: sub_407128+EACo
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_407128	endp

; ---------------------------------------------------------------------------
		align 4
unknown_libname_17 dd 0Ch
a3bvald:				; DATA XREF: sub_407128+32o
		unicode	0, <3bvAlD>,0
		align 4
		dd 0Eh
aNgyMd:					; DATA XREF: sub_407128+57o
		unicode	0, <+ngy+MD>,0
		unicode	0, < >,0
aUco3k7wux882eb:			; DATA XREF: sub_407128+7Co
		unicode	0, <uCO3k7wux882Ebmw>,0
		align 4
		unicode	0, <(>,0
aDifoh2zro4eio2:			; DATA XREF: sub_407128+9Eo
		unicode	0, <difOH2Zro4eIO2UbDyP0>,0
		align 4
		unicode	0, <&>,0
aDmgjufwnxsugjd:			; DATA XREF: sub_407128+C0o
		unicode	0, <dmgJUfwnXSUgJDMp/IN>,0
		dd 1Eh
aD1uvmvjc94eg2p:			; DATA XREF: sub_407128+E2o
		unicode	0, <d+1Uvmvjc94eG2P>,0
		unicode	0, <,>,0
aDywlnguyXaar4w:			; DATA XREF: sub_407128+104o
		unicode	0, <dyWLNguy+XaaR4Wevt/7ZA>,0
		align 4
		dd 1Eh
aDkbmeha0iugai2:			; DATA XREF: sub_407128+126o
		unicode	0, <dKbMEhA0IUgaI2M>,0
		unicode	0, <$>,0
aDocwpfzjx2wkQb:			; DATA XREF: sub_407128+148o
		unicode	0, <dOcwpfZjx2wk/QBIpA>,0
		align 4
		db '´',0
		align 10h
aCmodknob2qkas3:			; DATA XREF: sub_407128+16Ao
		unicode	0, <cmODKnOB2Qkas3WVRs1YxysZCEbEqcTFEBoRGxd7ijW9l3e9E6NIFF//a>
		unicode	0, <9j9+IZWgYn4Hh+RfXfLg7WAu+kKx+2QcD>,0
		align 4
aI		db 'ˆ',0
		align 4
aQrgzyakggxzvmd:			; DATA XREF: sub_407128+18Co
		unicode	0, <qrgZYAKGGXzVmdzJkLzMNhSYNh/OL9/vaO8tLWNkXpBH5GmDoYxW3xP2/>
		unicode	0, <ar/8LhS65ib>,0
		align 4
aA		db ' ',0
		align 4
aC2wxhmzsyycikz:			; DATA XREF: sub_407128+1AEo
		unicode	0, <c2wXHMzsYYCIKZh2r092AF/BSI2wp0qNcudzVmX61oOS7wQg0GWJuka6m>
		unicode	0, <2BQJvHQ51T2+hOyRGpMpoN0>,0
		align 10h
aV:
		unicode	0, <v>,0
aQxakbx6ivb1mjr:			; DATA XREF: sub_407128+1D0o
		unicode	0, <qXaKBx6ivB1MJRwWDOxXYNeHFRuLqlS/fSUDyl+JzXSzBEnQgo0VA9Zjp>
		unicode	0, <GN>,0
		db 'œ',0
		align 10h
aCaijfn3c0zmzcs:			; DATA XREF: sub_407128+1F2o
		unicode	0, <caIjFN3c0zMZcs+lZwbduea2ZoUI6GvV0Vh5SQ09dW7bt6ymTPHS5i4B0>
		unicode	0, <ZNh4WRiczDxmU2YXE0miA>,0
		align 10h
_str_10180721	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407128+20Eo
		dd 8			; Len
		db '10180721',0         ; Text
		align 4
_str_m		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407128+21Do
		dd 1			; Len
		db 'm',0                ; Text
		align 10h
		dd 1Ch
aKyfph1iw740pca:			; DATA XREF: sub_407128+232o
		unicode	0, <KyFph1Iw740pCA>,0
		align 4
		dd 10h
aNcrlctbl:				; DATA XREF: sub_407128+254o
		unicode	0, <NCRlCtbl>,0
		align 4
a@:
		unicode	0, <@>,0
aCsqnhpAzuvs2sv:			; DATA XREF: sub_407128+2A5o
		unicode	0, <cSQnHp+AzUvS2SV/BRFsSy2gsqm8y+i9>,0
		align 4
		dd 16h
aTi6nrFol5c:				; DATA XREF: sub_407128+2C7o
		unicode	0, <ti6nR+FoL5C>,0
		unicode	0, <&>,0
aRnialtyzi12hps:			; DATA XREF: sub_407128+2E9o
		unicode	0, <+rNiALTYZI12hPS2wHN>,0
		unicode	0, <$>,0
a939eivv3pogxnv:			; DATA XREF: sub_407128+30Bo
		unicode	0, <939EIVV3PoGXNV5ELD>,0
		align 4
		unicode	0, <&>,0
aLwbdumyysvu9v9:			; DATA XREF: sub_407128+32Do
		unicode	0, <lWbDumyysVu9v9lsnaN>,0
		unicode	0, <$>,0
a5b20ovjgt5hoq5:			; DATA XREF: sub_407128+34Fo
		unicode	0, <5b20OvjgT5HOq++5fB>,0
		align 10h
		dw 8
		unicode	0, <>,0
a6uzj:					; DATA XREF: sub_407128+371o
		unicode	0, <6uzj>,0
		align 10h
		dd 1Eh
a4cKvaucy0ife6e:			; DATA XREF: sub_407128+393o
		unicode	0, <4C/KvaUCy0iFE6E>,0
		dd 10h
a8ourt5o:				; DATA XREF: sub_407128+3B5o
		unicode	0, <8Ourt+5O>,0
		align 4
		dd 0Eh
aNH3qxm:				; DATA XREF: sub_407128+3D7o
		unicode	0, <n+h3qXM>,0
		unicode	0, <$>,0
aO22villgoziyya:			; DATA XREF: sub_407128+3F9o
		unicode	0, <o22vilLGOzIYyAQ9vB>,0
		align 4
		dw 8
		unicode	0, <>,0
aIsxd:					; DATA XREF: sub_407128+41Bo
		unicode	0, <iSXD>,0
		align 4
unknown_libname_18 dd 0Ch
aHDlb:					; DATA XREF: sub_407128+43Do
		unicode	0, <h//dlB>,0
		align 10h
		dd 1Ch
a6wivZ9pgd5qwa:				; DATA XREF: sub_407128+462o
		unicode	0, <6WIv+Z9PgD5qwA>,0
		align 4
a0:
		unicode	0, <0>,0
aAq6vywcs5pelnh:			; DATA XREF: sub_407128+48Ao
		unicode	0, <aq6vywcS5PeLNh24rbMcasM6>,0
		align 4
		dd 1Eh
a4sob3rmctepeqw:			; DATA XREF: sub_407128+4B2o
		unicode	0, <4Sob3rmCtEpEqWH>,0
unknown_libname_19 dd 0Ch
a8qzrxc:				; DATA XREF: sub_407128+4DAo
		unicode	0, <8qZrxC>,0
		align 4
		dd 1Ch
aYw53fwb08zkfjd:			; DATA XREF: sub_407128+502o
		unicode	0, <YW53FWB08zKFjD>,0
		align 4
		dd 1Ch
aYacSHx5pkymb:				; DATA XREF: sub_407128+52Ao
		unicode	0, <Yac/S+HX5PkymB>,0
		align 4
		unicode	0, <(>,0
aYczilil7ytz55j:			; DATA XREF: sub_407128+552o
		unicode	0, <YCzILiL7ytZ/55JVbR3U>,0
		align 4
		unicode	0, <$>,0
aO2nzavl6gpk6tk:			; DATA XREF: sub_407128+57Ao
		unicode	0, <o2nzAVl6gpK6tkxRrB>,0
		align 4
		dd 10h
a8imfxzfi:				; DATA XREF: sub_407128+5A2o
		unicode	0, <8imFxZFI>,0
		align 10h
		dd 1Ch
a8orVl2oocosna:				; DATA XREF: sub_407128+5CAo
		unicode	0, <8Or/VL2OoCOSnA>,0
		align 4
unknown_libname_20 dd 0Ch
a9exlmc:				; DATA XREF: sub_407128+5F2o
		unicode	0, <9exlMC>,0
		align 4
		dd 18h
aMut3p1x7Jwx:				; DATA XREF: sub_407128+61Ao
		unicode	0, <mut3P1x7/Jwx>,0
		align 4
		dd 18h
aM2ovcwmcigA:				; DATA XREF: sub_407128+642o
		unicode	0, <m2OvcWMciG+a>,0
		align 4
		dd 0Eh
aNsvwp1e:				; DATA XREF: sub_407128+66Ao
		unicode	0, <nSVwP1E>,0
		dd 14h
aSijtutktdd:				; DATA XREF: sub_407128+692o
		unicode	0, <siJTUtKTdD>,0
		align 4
		dd 0Eh
aHozfxej:				; DATA XREF: sub_407128+6BAo
		unicode	0, <hOZfxEJ>,0
		dd 0Eh
aNip17no:				; DATA XREF: sub_407128+6E2o
		unicode	0, <niP17NO>,0
		unicode	0, < >,0
aI6d3vntdfkht4f:			; DATA XREF: sub_407128+70Ao
		unicode	0, <I6D3vNtDfKht4F7n>,0
		align 4
a4:
		unicode	0, <4>,0
aIyeUgnxh4vt0p7:			; DATA XREF: sub_407128+732o
		unicode	0, <IyE+ugnXh4vT0P7J7sy7B/Y7AA>,0
		align 4
		dd 18h
aM6fzivtOfT:				; DATA XREF: sub_407128+75Ao
		unicode	0, <M6FZIVT/Of/t>,0
		align 4
		dd 1Eh
a5yc8ncxbc3gx58:			; DATA XREF: sub_407128+782o
		unicode	0, <5yC8nCxBC3gx58E>,0
		unicode	0, < >,0
aK20fouwyzfgjev:			; DATA XREF: sub_407128+7AAo
		unicode	0, <k20fOuWyZfGjEv5F>,0
		align 10h
		dw 3Eh
		unicode	0, <>,0
aIaa8cwic5nbo2q:			; DATA XREF: sub_407128+7D2o
		unicode	0, <IaA8CWiC5NbO2QD4J/gMRJZjMNZb+nC>,0
a4_0:
		unicode	0, <4>,0
aIsfcqmqbxifrdb:			; DATA XREF: sub_407128+7FAo
		unicode	0, <ISFcQmQBxIfrDBiiKdxaw8jfkD>,0
		align 10h
		unicode	0, <&>,0
aZctr1eyzggrtwr:			; DATA XREF: sub_407128+822o
		unicode	0, <ZCtr1eYzggrtWRHPnHK>,0
		dd 1Eh
aSqlqzpdnmegkyv:			; DATA XREF: sub_407128+84Ao
		unicode	0, <sqLQZPDNMegkyVI>,0
		dd 0Eh
aCg9y1xp:				; DATA XREF: sub_407128+872o
		unicode	0, <cG9y1xP>,0
unknown_libname_21 dd 0Ch
aQw7trd:				; DATA XREF: sub_407128+89Ao
		unicode	0, <qW7TRD>,0
		align 4
		dd 10h
aA2cekfy4:				; DATA XREF: sub_407128+8C2o
		unicode	0, <a2cEKfY4>,0
		align 10h
		dd 0Ch
aAcEvc:					; DATA XREF: sub_407128+8EAo
		unicode	0, <aC+EVC>,0
		align 4
unknown_libname_22 dd 0Ch
a9dwija:				; DATA XREF: sub_407128+912o
		unicode	0, <9DwIjA>,0
		align 4
		dd 14h
a6ipvu3uWb:				; DATA XREF: sub_407128+93Ao
		unicode	0, <6ipvu3U+WB>,0
		align 4
		dd 1Ch
aSsb4ur9kkslybb:			; DATA XREF: sub_407128+962o
		unicode	0, <sSB4UR9kksLYBB>,0
		align 4
		unicode	0, <&>,0
aJmnetkrqyelx8o:			; DATA XREF: sub_407128+98Ao
		unicode	0, <JmnETKRQYeLX8oCaYTF>,0
		dd 18h
aJalkydxttyno:				; DATA XREF: sub_407128+9B2o
		unicode	0, <JaLKYDXtTYnO>,0
		align 4
		dd 1Eh
aCq5tjmgi5ex1gk:			; DATA XREF: sub_407128+9DAo
		unicode	0, <cq5tjmGi5Ex1gkJ>,0
		dd 1Eh
aMuy88x2vyxuuho:			; DATA XREF: sub_407128+A02o
		unicode	0, <MuY88x+2VyXUUhO>,0
		unicode	0, < >,0
a42lwmjpg9sj9um:			; DATA XREF: sub_407128+A2Ao
		unicode	0, <42lwmJpg9SJ9umDL>,0
		align 4
		dd 18h
aGsdpujcgoxep:				; DATA XREF: sub_407128+A52o
		unicode	0, <gSdpuJcgOXeP>,0
		align 4
		dw 8
		unicode	0, <>,0
a7wft:					; DATA XREF: sub_407128+A7Ao
		unicode	0, <7WFT>,0
		align 4
		dd 14h
aNkpgr98hC:				; DATA XREF: sub_407128+AA2o
		unicode	0, <nKpgR98h+C>,0
		align 10h
		dd 0Eh
aGnzuezd:				; DATA XREF: sub_407128+ACAo
		unicode	0, <gnZuEZD>,0
		dd 1Eh
aLqiul724pPpecg:			; DATA XREF: sub_407128+AF2o
		unicode	0, <LqIuL724P+PPEcG>,0
		dd 18h
aCsbrkmdgHwo:				; DATA XREF: sub_407128+B1Ao
		unicode	0, <CSBrKmDg+HWo>,0
		align 4
unknown_libname_23 dd 0Ch
aHvo21d:				; DATA XREF: sub_407128+B42o
		unicode	0, <hvo21D>,0
		align 4
		dd 0Eh
a42yu7kp:				; DATA XREF: sub_407128+B6Ao
		unicode	0, <42YU7KP>,0
		dd 10h
a4oedrowy:				; DATA XREF: sub_407128+B92o
		unicode	0, <4OEDrOWy>,0
		align 4
		unicode	0, <&>,0
aMer3curGxyfxrf:			; DATA XREF: sub_407128+BBAo
		unicode	0, <Mer3Cur+GXYfXrf/pbB>,0
a4_1:
		unicode	0, <4>,0
aYcsu7htwnpmint:			; DATA XREF: sub_407128+BE2o
		unicode	0, <YCSu7hTWnpMintfgNKcswPAX8C>,0
		align 10h
a@_0:
		unicode	0, <@>,0
aTg1igt58O0jift:			; DATA XREF: sub_407128+C0Ao
		unicode	0, <TG1igT58+O0jifTlYCtauw8/hstxl79V>,0
		align 4
		unicode	0, <&>,0
aAovyKNwhbskqcb:			; DATA XREF: sub_407128+C32o
		unicode	0, <AOvy/K+nWhbsKqcbklC>,0
		dd 1Eh
aM2oiiojif1fuza:			; DATA XREF: sub_407128+C5Ao
		unicode	0, <M2oIIOjIF1FUzaB>,0
		unicode	0, <H>,0
aDaegfaypa13sg2:			; DATA XREF: sub_407128+C82o
		unicode	0, <daegfAYpA13sG2B1f30Rye7+4zOP/f9RDEA9>,0
		align 4
		unicode	0, < >,0
aAPp7cqmo2xpssb:			; DATA XREF: sub_407128+CAAo
		unicode	0, <A+pp7CQMo/2xpssB>,0
		align 10h
		unicode	0, <$>,0
aLmvJaxszvyouvq:			; DATA XREF: sub_407128+CD2o
		unicode	0, <Lmv/JaxsZVyOuVqaKD>,0
		align 4
		unicode	0, <&>,0
aMuehx9qw5tdnqq:			; DATA XREF: sub_407128+CFAo
		unicode	0, <MuEHX9Qw5TDNQqrMopC>,0
		unicode	0, < >,0
aIi60kloyyocini:			; DATA XREF: sub_407128+D22o
		unicode	0, <Ii60kloYyocIniAI>,0
		align 10h
		unicode	0, <&>,0
aMmrdkrqujpLYof:			; DATA XREF: sub_407128+D4Ao
		unicode	0, <MmrDKrqujP+l/yOFQ7B>,0
a0_0:
		unicode	0, <0>,0
aMimfjxhnkjw2km:			; DATA XREF: sub_407128+D72o
		unicode	0, <MiMfJXhNKjW2kmQz2kK/Vrs9>,0
		align 4
		unicode	0, <,>,0
aCytbpk4jopc4if:			; DATA XREF: sub_407128+D9Ao
		unicode	0, <cyTBPk4JOPC4ifjTC42G2C>,0
		align 4
		dd 1Eh
aJskfpqauaowhrv:			; DATA XREF: sub_407128+DC2o
		unicode	0, <JSKFPqaUaowHRvF>,0
		unicode	0, <&>,0
aMc2aw51npzrj6z:			; DATA XREF: sub_407128+DEAo
		unicode	0, <MC2aw51NPzRJ6Z3UjTN>,0
		dd 1Eh
a8sZrjwimobtuqj:			; DATA XREF: sub_407128+E12o
		unicode	0, <8S+ZrJwimOBtuQJ>,0
		unicode	0, < >,0
aIebgig9qms015z:			; DATA XREF: sub_407128+E3Ao
		unicode	0, <IeBgig9qMS015zSd>,0
		align 4
		dw 8
		unicode	0, <>,0
aHfg1:					; DATA XREF: sub_407128+E62o
		unicode	0, <hfG1>,0
		align 4
		unicode	0, < >,0
aIqmytcqcs7ijZn:			; DATA XREF: sub_407128+E8Ao
		unicode	0, <IqmYTCQCs7iJ//ZN>,0
		align 4

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

; Attributes: bp-based frame


sub_408FFC	proc near		; CODE XREF: r+24p ServiceMain+Ap

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
hModule		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE4h
		xor	eax, eax
		mov	[ebp+var_1C], eax
		mov	[ebp+var_18], eax
		mov	[ebp+var_14], eax
		xor	eax, eax
		push	ebp
		push	offset loc_40970C
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, ds:off_40A178
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpLibFileName
		call	LoadLibraryA	; LoadLibraryA
		mov	[ebp+var_10], eax
		mov	eax, ds:off_40A184
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpLibFileName
		call	LoadLibraryA	; LoadLibraryA
		mov	[ebp+hModule], eax
		mov	eax, ds:off_40A134
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpLibFileName
		call	LoadLibraryA	; LoadLibraryA
		mov	[ebp+var_C], eax
		mov	eax, ds:off_40A1CC
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpLibFileName
		call	LoadLibraryA	; LoadLibraryA
		mov	[ebp+var_8], eax
		mov	eax, ds:off_40A0DC
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+hModule]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A20C
		mov	[edx], eax
		mov	eax, ds:off_40A278
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A12C
		mov	[edx], eax
		mov	eax, ds:off_40A318
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+hModule]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A2A8
		mov	[edx], eax
		mov	eax, ds:off_40A1F4
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+hModule]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A198
		mov	[edx], eax
		mov	eax, ds:off_40A264
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+hModule]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A2C8
		mov	[edx], eax
		mov	eax, ds:off_40A1DC
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+hModule]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A170
		mov	[edx], eax
		mov	eax, ds:off_40A1D8
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+hModule]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A21C
		mov	[edx], eax
		mov	eax, ds:off_40A260
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+hModule]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A2C4
		mov	[edx], eax
		mov	eax, ds:off_40A24C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+hModule]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A104
		mov	[edx], eax
		mov	eax, ds:off_40A250
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+hModule]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A110
		mov	[edx], eax
		mov	eax, ds:off_40A23C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+hModule]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A0FC
		mov	[edx], eax
		mov	eax, ds:off_40A22C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A284
		mov	[edx], eax
		mov	eax, ds:off_40A28C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A2E0
		mov	[edx], eax
		mov	eax, ds:off_40A2CC
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A30C
		mov	[edx], eax
		mov	eax, ds:off_40A268
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A2D4
		mov	[edx], eax
		mov	eax, ds:off_40A11C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A15C
		mov	[edx], eax
		mov	eax, ds:off_40A2E8
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A324
		mov	[edx], eax
		mov	eax, ds:off_40A144
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A194
		mov	[edx], eax
		mov	eax, ds:off_40A2CC
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A30C
		mov	[edx], eax
		mov	eax, ds:off_40A22C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A284
		mov	[edx], eax
		mov	eax, ds:off_40A238
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A290
		mov	[edx], eax
		mov	eax, ds:off_40A2C0
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A300
		mov	[edx], eax
		mov	eax, ds:off_40A254
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A2B4
		mov	[edx], eax
		mov	eax, ds:off_40A108
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A14C
		mov	[edx], eax
		mov	eax, ds:off_40A28C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A2E0
		mov	[edx], eax
		mov	eax, ds:off_40A1D4
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A204
		mov	[edx], eax
		mov	eax, ds:off_40A168
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A1C0
		mov	[edx], eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A1BC
		mov	[edx], eax
		mov	eax, ds:off_40A2D8
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A31C
		mov	[edx], eax
		mov	eax, ds:off_40A0E4
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A218
		mov	[edx], eax
		mov	eax, ds:off_40A228
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A280
		mov	[edx], eax
		mov	eax, ds:off_40A274
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A1FC
		mov	[edx], eax
		mov	eax, ds:off_40A2A4
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_10]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A2F0
		mov	[edx], eax
		mov	eax, ds:off_40A314
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_10]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A0CC
		mov	[edx], eax
		mov	eax, ds:off_40A1E8
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_10]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A240
		mov	[edx], eax
		mov	eax, ds:off_40A160
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_8]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A1B0
		mov	[edx], eax
		mov	eax, ds:off_40A19C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A1E4
		mov	[edx], eax
		mov	eax, ds:off_40A140
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A190
		mov	[edx], eax
		mov	eax, ds:off_40A120
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A16C
		mov	[edx], eax
		mov	eax, ds:off_40A0E0
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A118
		mov	[edx], eax
		mov	eax, ds:off_40A234
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A288
		mov	[edx], eax
		mov	eax, ds:off_40A174
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A10C
		mov	[edx], eax
		mov	eax, ds:off_40A208
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A1A8
		mov	[edx], eax
		mov	eax, ds:off_40A244
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A298
		mov	[edx], eax
		mov	eax, ds:off_40A200
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A258
		mov	[edx], eax
		mov	eax, ds:off_40A0EC
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+hModule]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A310
		mov	[edx], eax
		mov	ecx, ds:off_40A1B4
		mov	ecx, [ecx]
		mov	edx, ds:off_40A248
		mov	edx, [edx]
		mov	eax, ds:off_40A2B8
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, ds:off_40A1EC
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A188
		mov	[edx], eax
		mov	eax, ds:off_40A2B0
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+hModule]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A2F4
		mov	[edx], eax
		mov	eax, ds:off_40A26C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+hModule]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A124
		mov	[edx], eax
		mov	eax, ds:off_40A1A4
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+hModule]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A2EC
		mov	[edx], eax
		mov	eax, ds:off_40A220
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A0F0
		mov	[edx], eax
		mov	eax, ds:off_40A1E0
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A304
		mov	[edx], eax
		mov	eax, ds:off_40A13C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpProcName
		mov	eax, [ebp+var_C]
		push	eax		; hModule
		call	GetProcAddress	; GetProcAddress
		mov	edx, ds:off_40A294
		mov	[edx], eax
		lea	eax, [ebp+var_14]
		call	sub_406F40
		mov	edx, [ebp+var_14]
		mov	eax, ds:off_40A224
		call	sub_401C54
		lea	eax, [ebp+var_18]
		call	@Adaptreq@TBasicActionResponseImpl@HandleResponse$qqrv ; Adaptreq::TBasicActionResponseImpl::HandleResponse(void)
		mov	edx, [ebp+var_18]
		mov	eax, ds:off_40A248
		call	sub_401C54
		lea	eax, [ebp+var_1C]
		call	sub_406C40
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_409713


loc_4096FE:				; CODE XREF: sub_408FFC+715j
		lea	eax, [ebp+var_1C]
		mov	edx, 3
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_40970C:				; DATA XREF: sub_408FFC+14o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4096FE
; ---------------------------------------------------------------------------


loc_409713:				; CODE XREF: sub_408FFC+70Fj
					; DATA XREF: sub_408FFC+6FDo
		mov	esp, ebp
		pop	ebp
		retn
sub_408FFC	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_409718	proc near		; CODE XREF: r+3Ep

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0
		xor	eax, eax
		push	ebp
		push	offset loc_409799
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	ecx, [ebp+var_4]
		mov	edx, ds:off_40A130
		mov	edx, [edx]
		mov	eax, 80000002h
		call	sub_404D24
		test	al, al
		jz	short loc_409783
		mov	edx, ds:off_40A158
		mov	edx, [edx]
		mov	eax, [ebp+var_4]
		call	sub_4032DC
		test	eax, eax
		jl	short loc_409783
		mov	edx, ds:off_40A158
		mov	edx, [edx]
		lea	eax, [ebp+var_4]
		xor	ecx, ecx
		call	sub_402B8C
		test	al, al
		jz	short loc_409783
		mov	edx, ds:off_40A130
		mov	edx, [edx]
		mov	ecx, [ebp+var_4]
		mov	eax, 80000002h
		call	sub_404B64


loc_409783:				; CODE XREF: sub_409718+2Aj
					; sub_409718+3Ej ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4097A0


loc_409790:				; CODE XREF: sub_409718+86j
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_409799:				; DATA XREF: sub_409718+8o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_409790
; ---------------------------------------------------------------------------


loc_4097A0:				; CODE XREF: sub_409718+80j
					; DATA XREF: sub_409718+73o
		pop	ecx
		pop	ebp
		retn
sub_409718	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_4097A4	proc near		; CODE XREF: r+43p

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFCCh
		xor	eax, eax
		mov	[ebp+var_28], eax
		mov	[ebp+var_30], eax
		mov	[ebp+var_34], eax
		mov	[ebp+var_2C], eax
		xor	eax, eax
		push	ebp
		push	offset loc_4098D2
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		push	0F003Fh
		push	0
		push	0
		mov	eax, ds:off_40A310
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jbe	loc_4098B7
		push	0F01FFh
		mov	eax, ds:off_40A158
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, ds:off_40A104
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jbe	loc_4098AA
		lea	eax, [ebp+var_24]
		push	eax
		push	1
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A124
		mov	eax, [eax]
		call	eax
		push	7D0h
		mov	eax, ds:off_40A1E4
		mov	eax, [eax]
		call	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A110
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	short loc_40989D
		mov	eax, ds:off_40A218
		mov	eax, [eax]
		call	eax
		lea	edx, [ebp+var_2C]
		call	sub_4031F0
		mov	ecx, [ebp+var_2C]
		lea	eax, [ebp+var_28]
		mov	edx, offset _str_5_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_28]
		push	eax
		mov	edx, ds:off_40A1D0
		mov	edx, [edx]
		lea	eax, [ebp+var_34]
		mov	ecx, offset _str_i.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_34]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_30]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_30]
		mov	eax, 80000002h
		pop	ecx
		call	sub_404AD8


loc_40989D:				; CODE XREF: sub_4097A4+9Dj
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A2EC
		mov	eax, [eax]
		call	eax


loc_4098AA:				; CODE XREF: sub_4097A4+67j
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, ds:off_40A2EC
		mov	eax, [eax]
		call	eax


loc_4098B7:				; CODE XREF: sub_4097A4+3Bj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4098D9


loc_4098C4:				; CODE XREF: sub_4097A4+133j
		lea	eax, [ebp+var_34]
		mov	edx, 4
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_4098D2:				; DATA XREF: sub_4097A4+17o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4098C4
; ---------------------------------------------------------------------------


loc_4098D9:				; CODE XREF: sub_4097A4+12Dj
					; DATA XREF: sub_4097A4+11Bo
		mov	esp, ebp
		pop	ebp
		retn
sub_4097A4	endp

; ---------------------------------------------------------------------------
		align 10h
_str_5_0	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_4097A4+B6o
		dd 1			; Len
		db '5',0                ; Text
		align 4
_str_i		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_4097A4+CFo
		dd 1			; Len
		db 'i',0                ; Text
		align 4
; Exported entry   2. r

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

; Attributes: bp-based frame

		public r

r		proc near

var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
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
		mov	ecx, 11h


loc_409900:				; CODE XREF: r+Dj
		push	0
		push	0
		dec	ecx
		jnz	short loc_409900
		xor	eax, eax
		push	ebp
		push	offset loc_409D49
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	eax, eax
		call	sub_407128
		call	sub_408FFC
		call	sub_405598
		lea	eax, [ebp+var_14]
		mov	edx, ds:off_40A0D8
		mov	edx, [edx]
		call	sub_401C98
		call	sub_409718
		call	sub_4097A4
		lea	ecx, [ebp+var_4]
		mov	edx, ds:off_40A214
		mov	edx, [edx]
		mov	eax, 80000002h
		call	sub_404D24
		test	al, al
		jz	loc_409CB0
		mov	edx, [ebp+var_14]
		mov	eax, [ebp+var_4]
		call	sub_4032DC
		test	eax, eax
		jge	short loc_409984
		push	[ebp+var_14]
		push	offset dword_409D5C
		push	[ebp+var_4]
		lea	eax, [ebp+var_4]
		mov	edx, 3
		call	sub_401EB4


loc_409984:				; CODE XREF: r+72j
		mov	edx, ds:off_40A214
		mov	edx, [edx]
		mov	ecx, [ebp+var_4]
		mov	eax, 80000002h
		call	sub_404B64
		test	al, al
		jz	loc_409C54
		push	0F003Fh
		push	0
		push	0
		mov	eax, ds:off_40A310
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jbe	loc_409A8E
		push	0F01FFh
		mov	eax, [ebp+var_14]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A104
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jbe	loc_409A81
		lea	eax, [ebp+var_30]
		push	eax
		push	1
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A124
		mov	eax, [eax]
		call	eax
		push	7D0h
		mov	eax, ds:off_40A1E4
		mov	eax, [eax]
		call	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A110
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	short loc_409A74
		mov	eax, ds:off_40A218
		mov	eax, [eax]
		call	eax
		lea	edx, [ebp+var_38]
		call	sub_4031F0
		mov	ecx, [ebp+var_38]
		lea	eax, [ebp+var_34]
		mov	edx, offset _str_5_1.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_34]
		push	eax
		mov	edx, ds:off_40A1D0
		mov	edx, [edx]
		lea	eax, [ebp+var_40]
		mov	ecx, offset _str_i_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_40]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_3C]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_3C]
		mov	eax, 80000002h
		pop	ecx
		call	sub_404AD8


loc_409A74:				; CODE XREF: r+120j
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A2EC
		mov	eax, [eax]
		call	eax


loc_409A81:				; CODE XREF: r+EAj
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A2EC
		mov	eax, [eax]
		call	eax


loc_409A8E:				; CODE XREF: r+C2j
		push	0F003Fh
		push	0
		push	0
		mov	eax, ds:off_40A310
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jbe	loc_409BF5
		push	0
		push	0
		push	0
		push	0
		push	0
		mov	eax, ds:off_40A18C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		push	1
		push	2
		push	10h
		push	0F01FFh
		push	0
		mov	eax, [ebp+var_14]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A0FC
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jbe	loc_409B96
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A2EC
		mov	eax, [eax]
		call	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A2EC
		mov	eax, [eax]
		call	eax
		lea	eax, [ebp+var_10]
		mov	edx, 0FFh
		call	sub_4020C8
		push	0FFh		; nSize
		mov	eax, [ebp+var_10]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax		; lpFilename
		mov	eax, ds:hModule
		push	eax		; hModule
		call	GetModuleFileNameA	; GetModuleFileNameA
		mov	eax, ds:off_40A1C8
		mov	ecx, [ebp+var_14]
		mov	edx, offset _str__s.Text
		call	sub_402B8C
		mov	edx, ds:off_40A1C8
		mov	edx, [edx]
		mov	ecx, [ebp+var_10]
		mov	eax, 80000002h
		call	sub_404BF0
		mov	edx, ds:off_40A1D0
		mov	edx, [edx]
		lea	eax, [ebp+var_48]
		mov	ecx, offset _str_i_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_48]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_44]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_44]
		xor	ecx, ecx
		mov	eax, 80000002h
		call	sub_404AD8
		jmp	loc_409D16
; ---------------------------------------------------------------------------


loc_409B96:				; CODE XREF: r+1F6j
		mov	eax, ds:off_40A218
		mov	eax, [eax]
		call	eax
		lea	edx, [ebp+var_50]
		call	sub_4031F0
		mov	ecx, [ebp+var_50]
		lea	eax, [ebp+var_4C]
		mov	edx, offset _str_1_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_4C]
		push	eax
		mov	edx, ds:off_40A1D0
		mov	edx, [edx]
		lea	eax, [ebp+var_58]
		mov	ecx, offset _str_i_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_58]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_54]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_54]
		mov	eax, 80000002h
		pop	ecx
		call	sub_404AD8
		jmp	loc_409D16
; ---------------------------------------------------------------------------


loc_409BF5:				; CODE XREF: r+1AFj
		mov	eax, ds:off_40A218
		mov	eax, [eax]
		call	eax
		lea	edx, [ebp+var_60]
		call	sub_4031F0
		mov	ecx, [ebp+var_60]
		lea	eax, [ebp+var_5C]
		mov	edx, offset _str_2_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_5C]
		push	eax
		mov	edx, ds:off_40A1D0
		mov	edx, [edx]
		lea	eax, [ebp+var_68]
		mov	ecx, offset _str_i_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_68]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_64]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_64]
		mov	eax, 80000002h
		pop	ecx
		call	sub_404AD8
		jmp	loc_409D16
; ---------------------------------------------------------------------------


loc_409C54:				; CODE XREF: r+A3j
		mov	eax, ds:off_40A218
		mov	eax, [eax]
		call	eax
		lea	edx, [ebp+var_70]
		call	sub_4031F0
		mov	ecx, [ebp+var_70]
		lea	eax, [ebp+var_6C]
		mov	edx, offset _str_3_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_6C]
		push	eax
		mov	edx, ds:off_40A1D0
		mov	edx, [edx]
		lea	eax, [ebp+var_78]
		mov	ecx, offset _str_i_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_78]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_74]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_74]
		mov	eax, 80000002h
		pop	ecx
		call	sub_404AD8
		jmp	short loc_409D16
; ---------------------------------------------------------------------------


loc_409CB0:				; CODE XREF: r+5Fj
		mov	eax, ds:off_40A218
		mov	eax, [eax]
		call	eax
		lea	edx, [ebp+var_80]
		call	sub_4031F0
		mov	ecx, [ebp+var_80]
		lea	eax, [ebp+var_7C]
		mov	edx, offset _str_4_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_7C]
		push	eax
		mov	edx, ds:off_40A1D0
		mov	edx, [edx]
		lea	eax, [ebp+var_88]
		mov	ecx, offset _str_i_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_88]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_84]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_84]
		mov	eax, 80000002h
		pop	ecx
		call	sub_404AD8


loc_409D16:				; CODE XREF: r+299j r+2F8j ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_409D50


loc_409D23:				; CODE XREF: r+456j
		lea	eax, [ebp+var_88]
		mov	edx, 16h
		call	sub_401C24
		lea	eax, [ebp+var_14]
		mov	edx, 2
		call	sub_401C24
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_409D49:				; DATA XREF: r+12o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_409D23
; ---------------------------------------------------------------------------


loc_409D50:				; CODE XREF: r+450j
					; DATA XREF: r+426o
		mov	esp, ebp
		pop	ebp
		retn
r		endp

; ---------------------------------------------------------------------------
		dd 0FFFFFFFFh, 1
dword_409D5C	dd 0		_str_5_1	dd 0FFFFFFFFh		; _top ; DATA XREF: r+139o
		dd 1			; Len
		db '5',0                ; Text
		align 4
_str_i_0	dd 0FFFFFFFFh		; _top ; DATA XREF: r+152o r+26Eo ...
		dd 1			; Len
		db 'i',0                ; Text
		align 4
_str__s		dd 0FFFFFFFFh		; _top ; DATA XREF: r+244o
		dd 2			; Len
		db '%s',0               ; Text
		align 4
_str_1_0	dd 0FFFFFFFFh		; _top ; DATA XREF: r+2B5o
		dd 1			; Len
		db '1',0                ; Text
		align 10h
_str_2_0	dd 0FFFFFFFFh		; _top ; DATA XREF: r+314o
		dd 1			; Len
		db '2',0                ; Text
		align 4
_str_3_0	dd 0FFFFFFFFh		; _top ; DATA XREF: r+373o
		dd 1			; Len
		db '3',0                ; Text
		align 4
_str_4_0	dd 0FFFFFFFFh		; _top ; DATA XREF: r+3CFo
		dd 1			; Len
		db '4',0                ; Text
		align 4
; Exported entry   1. ServiceMain

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

; Attributes: bp-based frame

		public ServiceMain

ServiceMain	proc near
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		call	sub_407128
		call	sub_408FFC
		call	sub_405598
		push	offset sub_407068
		mov	eax, ds:off_40A0D8
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, ds:off_40A2F4
		mov	eax, [eax]
		call	eax
		mov	ds:dword_40B31C, eax
		cmp	ds:dword_40B31C, 0
		jz	short loc_409E40
		mov	eax, ds:off_40A12C
		mov	eax, [eax]
		call	eax
		mov	ecx, 1
		xor	edx, edx
		mov	eax, 2
		call	sub_407008
		xor	ecx, ecx
		xor	edx, edx
		mov	eax, 4
		call	sub_407008
		jmp	short loc_409E2E
; ---------------------------------------------------------------------------


loc_409E1B:				; CODE XREF: ServiceMain+8Aj
		call	sub_4063E8
		push	927C0h
		mov	eax, ds:off_40A1E4
		mov	eax, [eax]
		call	eax


loc_409E2E:				; CODE XREF: ServiceMain+65j
		cmp	ds:dword_40B320, 3
		jz	short loc_409E40
		cmp	ds:dword_40B320, 1
		jnz	short loc_409E1B


loc_409E40:				; CODE XREF: ServiceMain+3Bj
					; ServiceMain+81j
		pop	ebp
		retn	8
ServiceMain	endp

; [00000028 BYTES: COLLAPSED FUNCTION unknown_libname_24. PRESS	KEYPAD "+" TO EXPAND]
dword_409E6C	dd 12h				dd offset off_409E74
off_409E74	dd offset loc_402920	; DATA XREF: CODE:00409E70o
		dd offset sub_4028F0
		dd offset sub_402774
		dd offset sub_40272C
		dd offset sub_402988
		dd offset sub_402958
		dd offset sub_4029C0
		dd offset sub_402990
		dd offset sub_4029F8
		dd offset sub_4029C8
		dd offset unknown_libname_14 ; BDS 2005-2006 and Delphi6-7 Visual Component Library
		dd offset sub_403550
		dd offset sub_403608
		dd offset sub_4035D8
		dd offset sub_403A10
		dd offset sub_403610
		dd offset sub_404388
		dd offset sub_404358
		dd offset sub_404760
		dd offset sub_404730
		dd offset sub_404798
		dd offset sub_404768
		dd offset sub_4047D0
		dd offset sub_4047A0
		dd offset sub_404808
		dd offset sub_4047D8
		dd offset sub_404E34
		dd offset sub_404E04
		dd offset sub_405590
		dd offset sub_405560
		dd offset sub_406900
		dd offset sub_4068D0
		dd offset sub_406FF0
		dd offset sub_406FC0
		align 10h
		dd offset unknown_libname_24 ; BDS 2005-2006 and Delphi6-7 Visual Component Library
; ---------------------------------------------------------------------------

; BOOL __stdcall DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
		public DllEntryPoint
DllEntryPoint:
		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFB4h
		mov	eax, offset dword_409E6C
		call	@Sysinit@@InitLib$qqrv ; Sysinit::__linkproc__ InitLib(void)
		mov	ds:dword_40B06C, offset	sub_406FF8
		call	sub_401B04
; ---------------------------------------------------------------------------
		align 100h
CODE		ends

; Section 2. (virtual address 0000A000)
; Virtual size			: 0000032C (	812.)
; Section size in file		: 00000400 (   1024.)
; Offset to raw	data for section: 00009400
; 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 40A000h
off_40A000	dd offset nullsub_1	; DATA XREF: sub_40231C+88r
off_40A004	dd offset nullsub_1	; DATA XREF: sub_40231C+71r
off_40A008	dd offset nullsub_1	; DATA XREF: sub_40231C+7Br
off_40A00C	dd offset sub_4019BC	; DATA XREF: sub_4019BC+Fr
					; sub_4019BC+35r ...
off_40A010	dd offset sub_401988	; DATA XREF: sub_401B04:loc_401B52r
off_40A014	dd offset nullsub_1	; DATA XREF: sub_401B04:loc_401B81r
word_40A018	dw 1332h		; DATA XREF: unknown_libname_2+3r
					; System::__linkproc__ StartLib(void)+89w
		dw 0C08Bh
byte_40A01C	db 0			; DATA XREF: sub_401534r sub_401550r ...
		db 8Dh,	40h, 0
byte_40A020	db 0			; DATA XREF: sub_40161C+52r
					; sub_40161C:loc_4016A9r
		db 8Dh,	40h, 0
dword_40A024	dd 0							; System::RegisterModule(System::TLibModule *)+8w
dword_40A028	dd 0		off_40A02C	dd offset sub_402464	; DATA XREF: sub_401B04+66r
off_40A030	dd offset nullsub_1	; DATA XREF: sub_40272C:loc_402754r
off_40A034	dd offset sub_4010E8	; DATA XREF: sub_40114C+4r
					; System::__linkproc__ ReallocMem(void *&,int)+3Fr ...
off_40A038	dd offset sub_4010F8	; DATA XREF: sub_401164+4r
					; System::__linkproc__ ReallocMem(void *&,int)+26r
off_40A03C	dd offset sub_401104	; DATA XREF: System::__linkproc__ ReallocMem(void *&,int)+Dr
word_40A040	dw 1F32h		; DATA XREF: sub_40127C+8r
		dw 0C08Bh
off_40A044	dd offset nullsub_1	; DATA XREF: sub_401B04+38r
dword_40A048	dd 0							; Sysinit::__linkproc__	InitLib(void)o
dword_40A04C	dd 0				dd 2 dup(0)
dword_40A058	dd 0				align 10h
off_40A060	dd offset sub_402828	; DATA XREF: Sysinit::__linkproc__ InitLib(void)+3Bo
		dd offset sub_4027D8
		dd offset sub_402788
		dd offset sub_402800
byte_40A070	db 3Dh			; DATA XREF: sub_4030B0+Ar
		db 8Dh,	40h, 0
dword_40A074	dd 1C001Fh, 2 dup(1E001Fh), 1F001Fh, 2 dup(1F001Eh), 1D001Fh
					; DATA XREF: sub_402D3C+2Co
					; sub_402EE8+E6o
		dd 2 dup(1E001Fh), 1F001Fh, 2 dup(1F001Eh)
dword_40A0A4	dd 0							; sub_402A4C+4o ...
dword_40A0A8	dd 80000000h			dd 40000000h, 0C0000000h
dword_40A0B4	dd 0				dd 0
		dd 1, 2, 3
off_40A0C8	dd offset dword_40B1A8	; DATA XREF: sub_405F58+49r
					; sub_407128+A3Ar
off_40A0CC	dd offset dword_40B2BC	; DATA XREF: sub_4044CC+89r
					; sub_408FFC+467r
off_40A0D0	dd offset dword_40B18C	; DATA XREF: sub_406E58+34r
					; sub_407128+972r
off_40A0D4	dd offset dword_40B1B4	; DATA XREF: sub_406018+57r
					; sub_406018+F2r ...
off_40A0D8	dd offset dword_40B0CC	; DATA XREF: sub_4057E4+76r
					; sub_4063E8+59r ...
off_40A0DC	dd offset dword_40B20C	; DATA XREF: sub_407128+DAAr
					; sub_408FFC+73r
off_40A0E0	dd offset dword_40B198	; DATA XREF: sub_407128+9EAr
					; sub_408FFC+505r
off_40A0E4	dd offset dword_40B200	; DATA XREF: sub_407128+D32r
					; sub_408FFC+3D9r
off_40A0E8	dd offset dword_40B0E8	; DATA XREF: sub_405964+7Cr
					; sub_407128+318r
off_40A0EC	dd offset dword_40B1E4	; DATA XREF: sub_407128+C42r
					; sub_408FFC+5B9r
off_40A0F0	dd offset dword_40B30C	; DATA XREF: sub_405E08+29r
					; sub_408FFC+67Fr
off_40A0F4	dd offset dword_40B114	; DATA XREF: sub_406C40+E0r
					; sub_407128+49Ar
off_40A0F8	dd offset dword_40B108	; DATA XREF: sub_406C40+47r
					; sub_407128+428r
off_40A0FC	dd offset dword_40B2F4	; DATA XREF: sub_408FFC+1B5r r+1E6r
off_40A100	dd offset dword_40B180	; DATA XREF: sub_405AC8+31r
					; sub_405BE8:loc_405C17r ...
off_40A104	dd offset dword_40B2EC	; DATA XREF: sub_408FFC+179r
					; sub_4097A4+57r ...
off_40A108	dd offset dword_40B134	; DATA XREF: sub_407128+652r
					; sub_408FFC+325r
off_40A10C	dd offset dword_40B2DC	; DATA XREF: sub_406018+1C3r
					; sub_406018+1DEr ...
off_40A110	dd offset dword_40B2F0	; DATA XREF: sub_408FFC+197r
					; sub_4097A4+92r ...
off_40A114	dd offset dword_40B1C8	; DATA XREF: sub_406018+19Er
					; sub_406018+1F0r ...
off_40A118	dd offset dword_40B2D4	; DATA XREF: sub_408FFC+51Br
off_40A11C	dd offset dword_40B11C	; DATA XREF: sub_407128+512r
					; sub_408FFC+235r
off_40A120	dd offset dword_40B194	; DATA XREF: sub_407128+9C2r
					; sub_408FFC+4E7r
off_40A124	dd offset dword_40B2FC	; DATA XREF: sub_408FFC+643r
					; sub_4097A4+77r ...
off_40A128	dd offset dword_40B0C4	; DATA XREF: sub_4063E8+75r
					; sub_4063E8+404r ...
off_40A12C	dd offset dword_40B308	; DATA XREF: sub_408FFC+A7r
					; ServiceMain+3Dr
off_40A130	dd offset dword_40B0B0	; DATA XREF: sub_407128+177r
					; sub_409718+16r ...
off_40A134	dd offset dword_40B154	; DATA XREF: sub_407128+7BAr
					; sub_408FFC+49r
off_40A138	dd offset dword_40B1F0	; DATA XREF: sub_406F40+1Fr
					; sub_406F40+53r ...
off_40A13C	dd offset dword_40B220	; DATA XREF: sub_407128+E9Ar
					; sub_408FFC+6A5r
off_40A140	dd offset dword_40B190	; DATA XREF: sub_407128+99Ar
					; sub_408FFC+4C9r
off_40A144	dd offset dword_40B124	; DATA XREF: sub_407128+562r
					; sub_408FFC+271r
off_40A148	dd offset dword_40B0F0	; DATA XREF: sub_405964+9Cr
					; sub_407128+35Cr
off_40A14C	dd offset dword_40B294	; DATA XREF: sub_404EA0+B3r
					; sub_408FFC+33Br
off_40A150	dd offset dword_40B17C	; DATA XREF: sub_4057E4+83r
					; sub_407128+8FAr
off_40A154	dd offset dword_40B0DC	; DATA XREF: sub_405BE8+81r
					; sub_4063E8+A0r ...
off_40A158	dd offset dword_40B0C8	; DATA XREF: sub_407128+23Fr
					; sub_409718+2Cr ...
off_40A15C	dd offset dword_40B27C	; DATA XREF: sub_4063E8+36r
					; sub_408FFC+24Br
off_40A160	dd offset dword_40B164	; DATA XREF: sub_407128+85Ar
					; sub_408FFC+48Dr
off_40A164	dd offset dword_40B140	; DATA XREF: sub_407128+6F2r
					; sub_408FFC+39Dr
off_40A168	dd offset dword_40B13C	; DATA XREF: sub_407128+6CAr
					; sub_408FFC+37Fr
off_40A16C	dd offset dword_40B2D0	; DATA XREF: sub_408FFC+4FDr
off_40A170	dd offset dword_40B25C	; DATA XREF: sub_404974+C5r
					; sub_404974+F3r ...
off_40A174	dd offset dword_40B1C4	; DATA XREF: sub_407128+B2Ar
					; sub_408FFC+541r
off_40A178	dd offset dword_40B150	; DATA XREF: sub_407128+792r
					; sub_408FFC+1Fr
off_40A17C	dd offset dword_40B2A4	; DATA XREF: sub_4062FC+B9r
off_40A180	dd offset dword_40B110	; DATA XREF: sub_406AE8+3Ar
					; sub_407128+472r
off_40A184	dd offset dword_40B094	; DATA XREF: sub_407128+89r
					; sub_408FFC+34r
off_40A188	dd offset dword_40B24C	; DATA XREF: sub_408FFC+607r
off_40A18C	dd offset dword_40B0BC	; DATA XREF: sub_407128+1DDr r+1BFr
off_40A190	dd offset dword_40B2CC	; DATA XREF: sub_408FFC+4DFr
off_40A194	dd offset dword_40B284	; DATA XREF: sub_408FFC+287r
off_40A198	dd offset dword_40B258	; DATA XREF: sub_40484C+B9r
					; sub_40484C+E5r ...
off_40A19C	dd offset dword_40B168	; DATA XREF: sub_407128+882r
					; sub_408FFC+4ABr
off_40A1A0	dd offset dword_40B0E0	; DATA XREF: sub_405964+3Er
					; sub_405964+5Cr ...
off_40A1A4	dd offset dword_40B208	; DATA XREF: sub_407128+D82r
					; sub_408FFC+64Br
off_40A1A8	dd offset dword_40B2E0	; DATA XREF: sub_406018+20Cr
					; sub_406018+260r ...
off_40A1AC	dd offset dword_40B0E4	; DATA XREF: sub_405964+6Cr
					; sub_407128+2F6r
off_40A1B0	dd offset dword_40B2C4	; DATA XREF: sub_405008+Er
					; sub_408FFC+4A3r
off_40A1B4	dd offset dword_40B1B0	; DATA XREF: sub_4063E8+21Fr
					; sub_4063E8+24Er ...
off_40A1B8	dd offset dword_40B0F4	; DATA XREF: sub_407128+209r
					; sub_407128+288r
off_40A1BC	dd offset dword_40B29C	; DATA XREF: sub_405168+17r
					; sub_408FFC+3B3r
off_40A1C0	dd offset dword_40B298	; DATA XREF: sub_405024+38r
					; sub_408FFC+395r
off_40A1C4	dd offset dword_40B1A4	; DATA XREF: sub_405AC8+44r
					; sub_405BE8+42r ...
off_40A1C8	dd offset dword_40B0C0	; DATA XREF: sub_407128+1FFr r+23Cr ...
off_40A1CC	dd offset dword_40B0F8	; DATA XREF: sub_407128+3A0r
					; sub_407128+4C2r ...
off_40A1D0	dd offset dword_40B0D4	; DATA XREF: sub_4055F8+32r
					; sub_405688+2Ar ...
off_40A1D4	dd offset dword_40B138	; DATA XREF: sub_407128+6A2r
					; sub_408FFC+361r
off_40A1D8	dd offset dword_40B0A8	; DATA XREF: sub_407128+133r
					; sub_408FFC+127r
off_40A1DC	dd offset dword_40B0A4	; DATA XREF: sub_407128+111r
					; sub_408FFC+109r
off_40A1E0	dd offset dword_40B218	; DATA XREF: sub_407128+E4Ar
					; sub_408FFC+687r
off_40A1E4	dd offset dword_40B2C8	; DATA XREF: sub_407068+41r
					; sub_408FFC+4C1r ...
off_40A1E8	dd offset dword_40B160	; DATA XREF: sub_407128+832r
					; sub_408FFC+46Fr
off_40A1EC	dd offset dword_40B1E8	; DATA XREF: sub_407128+C6Ar
					; sub_408FFC+5F1r
off_40A1F0	dd offset dword_40B10C	; DATA XREF: sub_406C40+8Ar
					; sub_407128+44Ar
off_40A1F4	dd offset dword_40B09C	; DATA XREF: sub_407128+CDr
					; sub_408FFC+CDr
off_40A1F8	dd offset dword_40B16C	; DATA XREF: sub_4052F8+11r
					; sub_4052F8+29r ...
off_40A1FC	dd offset dword_40B2B4	; DATA XREF: sub_408FFC+42Br
off_40A200	dd offset dword_40B1DC	; DATA XREF: sub_407128+BF2r
					; sub_408FFC+59Br
off_40A204	dd offset dword_40B2A0	; DATA XREF: sub_404EA0+CCr
					; sub_408FFC+377r
off_40A208	dd offset dword_40B1CC	; DATA XREF: sub_407128+B02r
					; sub_408FFC+55Fr
off_40A20C	dd offset dword_40B304	; DATA XREF: sub_407008+4Dr
					; sub_408FFC+89r
off_40A210	dd offset dword_40B1D4	; DATA XREF: sub_4063E8+29Er
					; sub_407128+BA2r
off_40A214	dd offset dword_40B0B8	; DATA XREF: sub_407128+1BBr r+4Br ...
off_40A218	dd offset dword_40B2F8	; DATA XREF: sub_408FFC+3EFr
					; sub_4097A4+9Fr ...
off_40A21C	dd offset dword_40B264	; DATA XREF: sub_408FFC+13Dr
off_40A220	dd offset dword_40B214	; DATA XREF: sub_407128+DFAr
					; sub_408FFC+669r
off_40A224	dd offset dword_40B1A0	; DATA XREF: sub_405AC8+38r
					; sub_405BE8+36r ...
off_40A228	dd offset dword_40B148	; DATA XREF: sub_407128+742r
					; sub_408FFC+3F7r
off_40A22C	dd offset dword_40B0FC	; DATA XREF: sub_407128+3C2r
					; sub_407128+5B2r ...
off_40A230	dd offset dword_40B0D8	; DATA XREF: sub_4051B8+59r
					; sub_405348+56r ...
off_40A234	dd offset dword_40B19C	; DATA XREF: sub_407128+A12r
					; sub_408FFC+523r
off_40A238	dd offset dword_40B128	; DATA XREF: sub_407128+5DAr
					; sub_408FFC+2CBr
off_40A23C	dd offset dword_40B1FC	; DATA XREF: sub_407128+D0Ar
					; sub_408FFC+19Fr
off_40A240	dd offset dword_40B2C0	; DATA XREF: sub_4044CC+C4r
					; sub_4045C4+4Fr ...
off_40A244	dd offset dword_40B1D8	; DATA XREF: sub_407128+BCAr
					; sub_408FFC+57Dr
off_40A248	dd offset dword_40B188	; DATA XREF: sub_4062FC+59r
					; sub_4063E8+227r ...
off_40A24C	dd offset dword_40B1F4	; DATA XREF: sub_407128+CBAr
					; sub_408FFC+163r
off_40A250	dd offset dword_40B1F8	; DATA XREF: sub_407128+CE2r
					; sub_408FFC+181r
off_40A254	dd offset dword_40B130	; DATA XREF: sub_407128+62Ar
					; sub_408FFC+307r
off_40A258	dd offset dword_40B2E8	; DATA XREF: sub_4062FC+9Cr
					; sub_408FFC+5B1r
off_40A25C	dd offset dword_40B170	; DATA XREF: sub_405964+CFr
					; sub_407128+8AAr
off_40A260	dd offset dword_40B0AC	; DATA XREF: sub_407128+155r
					; sub_408FFC+145r
off_40A264	dd offset dword_40B0A0	; DATA XREF: sub_407128+EFr
					; sub_408FFC+EBr
off_40A268	dd offset dword_40B118	; DATA XREF: sub_407128+4EAr
					; sub_408FFC+217r
off_40A26C	dd offset dword_40B204	; DATA XREF: sub_407128+D5Ar
					; sub_408FFC+62Dr
off_40A270	dd offset dword_40B1C0	; DATA XREF: sub_406018+104r
					; sub_407128+ADAr
off_40A274	dd offset dword_40B14C	; DATA XREF: sub_407128+76Ar
					; sub_408FFC+415r
off_40A278	dd offset dword_40B210	; DATA XREF: sub_407128+DD2r
					; sub_408FFC+91r
off_40A27C	dd offset dword_40B1E0	; DATA XREF: sub_4044CC+ABr
					; sub_407128+C1Ar
off_40A280	dd offset dword_40B2B0	; DATA XREF: sub_408FFC+40Dr
off_40A284	dd offset dword_40B270	; DATA XREF: sub_404EA0+27r
					; sub_408FFC+1D3r ...
off_40A288	dd offset dword_40B2D8	; DATA XREF: sub_408FFC+539r
off_40A28C	dd offset dword_40B100	; DATA XREF: sub_407128+3E4r
					; sub_407128+67Ar ...
off_40A290	dd offset dword_40B288	; DATA XREF: sub_404EA0+101r
					; sub_404EA0+12Fr ...
off_40A294	dd offset dword_40B314	; DATA XREF: sub_405598r
					; sub_408FFC+6BBr
off_40A298	dd offset dword_40B2E4	; DATA XREF: sub_4062FC+7Br
					; sub_408FFC+593r
off_40A29C	dd offset dword_40B1B8	; DATA XREF: sub_406018+80r
					; sub_407128+A8Ar
off_40A2A0	dd offset dword_40B184	; DATA XREF: sub_406F40+41r
					; sub_407128+94Ar
off_40A2A4	dd offset dword_40B158	; DATA XREF: sub_407128+7E2r
					; sub_408FFC+433r
off_40A2A8	dd offset dword_40B254	; DATA XREF: sub_40484C+75r
					; sub_408FFC+C5r
off_40A2AC	dd offset dword_40B21C	; DATA XREF: sub_406018+D4r
					; sub_407128+E72r
off_40A2B0	dd offset dword_40B1EC	; DATA XREF: sub_407128+C92r
					; sub_408FFC+60Fr
off_40A2B4	dd offset dword_40B290	; DATA XREF: sub_404EA0+A9r
					; sub_408FFC+31Dr
off_40A2B8	dd offset dword_40B1AC	; DATA XREF: sub_405F58+5Cr
					; sub_4063E8+348r ...
off_40A2BC	dd offset dword_40B1D0	; DATA XREF: sub_4063E8+240r
					; sub_407128+B7Ar
off_40A2C0	dd offset dword_40B12C	; DATA XREF: sub_407128+602r
					; sub_408FFC+2E9r
off_40A2C4	dd offset dword_40B268	; DATA XREF: sub_404974+6Br
					; sub_408FFC+15Br
off_40A2C8	dd offset dword_40B260	; DATA XREF: sub_40484C+F8r
					; sub_404974+134r ...
off_40A2CC	dd offset dword_40B104	; DATA XREF: sub_407128+406r
					; sub_407128+58Ar ...
off_40A2D0	dd offset dword_40B174	; DATA XREF: sub_405AC8:loc_405AEFr
					; sub_4063E8+E0r ...
off_40A2D4	dd offset dword_40B278	; DATA XREF: sub_4050E4+41r
					; sub_405168+32r ...
off_40A2D8	dd offset dword_40B144	; DATA XREF: sub_407128+71Ar
					; sub_408FFC+3BBr
off_40A2DC	dd offset dword_40B0EC	; DATA XREF: sub_405964+8Cr
					; sub_407128+33Ar
off_40A2E0	dd offset dword_40B26C	; DATA XREF: sub_404EA0+67r
					; sub_408FFC+1F1r ...
off_40A2E4	dd offset dword_40B0D0	; DATA XREF: sub_4063E8+85r
					; sub_4063E8+358r ...
off_40A2E8	dd offset dword_40B120	; DATA XREF: sub_407128+53Ar
					; sub_408FFC+253r
off_40A2EC	dd offset dword_40B300	; DATA XREF: sub_408FFC+661r
					; sub_4097A4+FDr ...
off_40A2F0	dd offset dword_40B2B8	; DATA XREF: sub_4044CC+2Dr
					; sub_408FFC+449r
off_40A2F4	dd offset dword_40B248	; DATA XREF: sub_408FFC+625r
					; ServiceMain+26r
off_40A2F8	dd offset dword_40B1BC	; DATA XREF: sub_406018+E8r
					; sub_407128+AB2r
off_40A2FC	dd offset dword_40B2A8	; DATA XREF: sub_406018+14Dr
off_40A300	dd offset dword_40B28C	; DATA XREF: sub_405024+1Br
					; sub_405070+44r ...
off_40A304	dd offset dword_40B310	; DATA XREF: sub_4055AC+Ar
					; sub_408FFC+69Dr
off_40A308	dd offset dword_40B024	; DATA XREF: sub_405598+9r
off_40A30C	dd offset dword_40B274	; DATA XREF: sub_404EA0+80r
					; sub_408FFC+20Fr ...
off_40A310	dd offset dword_40B250	; DATA XREF: sub_408FFC+5CFr
					; sub_4097A4+2Br ...
off_40A314	dd offset dword_40B15C	; DATA XREF: sub_407128+80Ar
					; sub_408FFC+451r
off_40A318	dd offset dword_40B098	; DATA XREF: sub_407128+ABr
					; sub_408FFC+AFr
off_40A31C	dd offset dword_40B2AC	; DATA XREF: sub_408FFC+3D1r
off_40A320	dd offset dword_40B178	; DATA XREF: sub_4057C4+6r
					; sub_4057E4+39r ...
off_40A324	dd offset dword_40B280	; DATA XREF: sub_408FFC+269r
off_40A328	dd offset dword_40B0B4	; DATA XREF: sub_407128+199r
		align 100h
DATA		ends

; Section 3. (virtual address 0000B000)
; Virtual size			: 00000325 (	805.)
; Section size in file		: 00000000 (	  0.)
; Offset to raw	data for section: 00009800
; Flags	C0000000: Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Regular
; Segment permissions: Read/Write
BSS		segment	para public '' use32
		assume cs:BSS
		;org 40B000h
		assume es:nothing, ss:nothing, ds:CODE,	fs:nothing, gs:nothing
dword_40B000	dd ?		dword_40B004	dd ?		dword_40B008	dd ?							; CODE:0040191Fr
dword_40B00C	dd ?		dword_40B010	dd ?		byte_40B014	db ?			; DATA XREF: System::__linkproc__ StartLib(void)+82w
		align 4
dword_40B018	dd ?							; sub_401B04+9o ...
dword_40B01C	dd ?		dword_40B020	dd ?							; sub_401BF4w
dword_40B024	dd ?		dword_40B028	dd ?							; sub_402774w
dword_40B02C	dd ?							; System::__linkproc__ StartLib(void)+3o ...
dword_40B030	dd ?		dword_40B034	dd ?							; System::__linkproc__ StartLib(void)+2Aw
dword_40B038	dd ?							; System::__linkproc__ StartLib(void):loc_401A75w
dword_40B03C	dd ?		dword_40B040	dd ?							; sub_401AD0+Br
dword_40B044	dd ?							; sub_401AD0+5r
dword_40B048	dd ?		dword_40B04C	dd ?		byte_40B050	db ?			; DATA XREF: System::__linkproc__ StartLib(void)+58w
		align 4
dword_40B054	dd ?		dword_40B058	dd ?							; sub_40272C+22r
byte_40B05C	db ?			; DATA XREF: sub_40284Cr
					; Sysinit::__linkproc__	InitLib(void)+Dw
		align 10h
; DWORD	dwTlsIndex
dwTlsIndex	dd ?			; DATA XREF: sub_402788+Ar
					; sub_402788+3Cr ...
		align 8
; HMODULE hModule
hModule		dd ?			; DATA XREF: Sysinit::__linkproc__ InitLib(void)+17w
					; r+231r
dword_40B06C	dd ?							; CODE:00409F14w
dword_40B070	dd ?							; CODE:loc_402920w
dword_40B074	dd ?							; sub_40284C:loc_40287Dr
dword_40B078	dd ?							; sub_402988w
dword_40B07C	dd ?							; sub_4029C0w
dword_40B080	dd ?							; sub_4029F8w
; HMODULE hLibModule
hLibModule	dd ?			; DATA XREF: sub_403550+19r
					; sub_403550+22r
dword_40B088	dd ?							; unknown_libname_14+11w
dword_40B08C	dd ?		dword_40B090	dd ?							; sub_403608w
dword_40B094	dd ?							; DATA:off_40A184o
dword_40B098	dd ?							; DATA:off_40A318o
dword_40B09C	dd ?							; DATA:off_40A1F4o
dword_40B0A0	dd ?							; DATA:off_40A264o
dword_40B0A4	dd ?							; DATA:off_40A1DCo
dword_40B0A8	dd ?							; DATA:off_40A1D8o
dword_40B0AC	dd ?							; DATA:off_40A260o
dword_40B0B0	dd ?							; DATA:off_40A130o
dword_40B0B4	dd ?							; DATA:off_40A328o
dword_40B0B8	dd ?							; DATA:off_40A214o
dword_40B0BC	dd ?							; DATA:off_40A18Co
dword_40B0C0	dd ?							; DATA:off_40A1C8o
dword_40B0C4	dd ?							; DATA:off_40A128o
dword_40B0C8	dd ?							; DATA:off_40A158o
dword_40B0CC	dd ?							; DATA:off_40A0D8o
dword_40B0D0	dd ?							; DATA:off_40A2E4o
dword_40B0D4	dd ?							; DATA:off_40A1D0o
dword_40B0D8	dd ?		dword_40B0DC	dd ?		dword_40B0E0	dd ?							; DATA:off_40A1A0o
dword_40B0E4	dd ?							; DATA:off_40A1ACo
dword_40B0E8	dd ?							; DATA:off_40A0E8o
dword_40B0EC	dd ?							; DATA:off_40A2DCo
dword_40B0F0	dd ?							; DATA:off_40A148o
dword_40B0F4	dd ?							; DATA:off_40A1B8o
dword_40B0F8	dd ?							; DATA:off_40A1CCo
dword_40B0FC	dd ?							; DATA:off_40A22Co
dword_40B100	dd ?							; DATA:off_40A28Co
dword_40B104	dd ?							; DATA:off_40A2CCo
dword_40B108	dd ?							; DATA:off_40A0F8o
dword_40B10C	dd ?							; DATA:off_40A1F0o
dword_40B110	dd ?							; DATA:off_40A180o
dword_40B114	dd ?							; DATA:off_40A0F4o
dword_40B118	dd ?							; DATA:off_40A268o
dword_40B11C	dd ?							; DATA:off_40A11Co
dword_40B120	dd ?							; DATA:off_40A2E8o
dword_40B124	dd ?							; DATA:off_40A144o
dword_40B128	dd ?							; DATA:off_40A238o
dword_40B12C	dd ?							; DATA:off_40A2C0o
dword_40B130	dd ?							; DATA:off_40A254o
dword_40B134	dd ?							; DATA:off_40A108o
dword_40B138	dd ?							; DATA:off_40A1D4o
dword_40B13C	dd ?							; DATA:off_40A168o
dword_40B140	dd ?							; DATA:off_40A164o
dword_40B144	dd ?							; DATA:off_40A2D8o
dword_40B148	dd ?							; DATA:off_40A228o
dword_40B14C	dd ?							; DATA:off_40A274o
dword_40B150	dd ?							; DATA:off_40A178o
dword_40B154	dd ?							; DATA:off_40A134o
dword_40B158	dd ?							; DATA:off_40A2A4o
dword_40B15C	dd ?							; DATA:off_40A314o
dword_40B160	dd ?							; DATA:off_40A1E8o
dword_40B164	dd ?							; DATA:off_40A160o
dword_40B168	dd ?							; DATA:off_40A19Co
dword_40B16C	dd ?							; sub_403A10+29w ...
dword_40B170	dd ?							; DATA:off_40A25Co
dword_40B174	dd ?		dword_40B178	dd ?							; DATA:off_40A320o
dword_40B17C	dd ?							; DATA:off_40A150o
dword_40B180	dd ?							; DATA:off_40A100o
dword_40B184	dd ?							; DATA:off_40A2A0o
dword_40B188	dd ?							; DATA:off_40A248o
dword_40B18C	dd ?							; DATA:off_40A0D0o
dword_40B190	dd ?							; DATA:off_40A140o
dword_40B194	dd ?							; DATA:off_40A120o
dword_40B198	dd ?							; DATA:off_40A0E0o
dword_40B19C	dd ?							; DATA:off_40A234o
dword_40B1A0	dd ?							; DATA:off_40A224o
dword_40B1A4	dd ?							; DATA:off_40A1C4o
dword_40B1A8	dd ?							; DATA:off_40A0C8o
dword_40B1AC	dd ?							; DATA:off_40A2B8o
dword_40B1B0	dd ?							; DATA:off_40A1B4o
dword_40B1B4	dd ?							; sub_403A10+1Fw ...
dword_40B1B8	dd ?							; DATA:off_40A29Co
dword_40B1BC	dd ?							; DATA:off_40A2F8o
dword_40B1C0	dd ?							; DATA:off_40A270o
dword_40B1C4	dd ?							; DATA:off_40A174o
dword_40B1C8	dd ?							; DATA:off_40A114o
dword_40B1CC	dd ?							; DATA:off_40A208o
dword_40B1D0	dd ?							; DATA:off_40A2BCo
dword_40B1D4	dd ?							; DATA:off_40A210o
dword_40B1D8	dd ?							; DATA:off_40A244o
dword_40B1DC	dd ?							; DATA:off_40A200o
dword_40B1E0	dd ?							; DATA:off_40A27Co
dword_40B1E4	dd ?							; DATA:off_40A0ECo
dword_40B1E8	dd ?							; DATA:off_40A1ECo
dword_40B1EC	dd ?							; DATA:off_40A2B0o
dword_40B1F0	dd ?							; DATA:off_40A138o
dword_40B1F4	dd ?							; DATA:off_40A24Co
dword_40B1F8	dd ?							; DATA:off_40A250o
dword_40B1FC	dd ?							; DATA:off_40A23Co
dword_40B200	dd ?							; DATA:off_40A0E4o
dword_40B204	dd ?							; DATA:off_40A26Co
dword_40B208	dd ?							; DATA:off_40A1A4o
dword_40B20C	dd ?							; DATA:off_40A0DCo
dword_40B210	dd ?							; DATA:off_40A278o
dword_40B214	dd ?							; DATA:off_40A220o
dword_40B218	dd ?							; DATA:off_40A1E0o
dword_40B21C	dd ?							; DATA:off_40A2ACo
dword_40B220	dd ?							; DATA:off_40A13Co
dword_40B224	dd ?							; sub_403A10+11w
dword_40B228	dd ?							; sub_404388w
dword_40B22C	dd ?							; sub_404760w
dword_40B230	dd ?							; sub_404798w
dword_40B234	dd ?							; sub_4047D0w
dword_40B238	dd ?							; sub_404808w
dword_40B23C	dd ?							; sub_404E34w
dword_40B240	dd ?							; sub_405590w
dword_40B244	dd ?							; sub_406900w
dword_40B248	dd ?		dword_40B24C	dd ?							; DATA:off_40A188o
dword_40B250	dd ?		dword_40B254	dd ?		dword_40B258	dd ?		dword_40B25C	dd ?		dword_40B260	dd ?		dword_40B264	dd ?		dword_40B268	dd ?		dword_40B26C	dd ?		dword_40B270	dd ?		dword_40B274	dd ?		dword_40B278	dd ?		dword_40B27C	dd ?		dword_40B280	dd ?		dword_40B284	dd ?		dword_40B288	dd ?		dword_40B28C	dd ?		dword_40B290	dd ?		dword_40B294	dd ?		dword_40B298	dd ?		dword_40B29C	dd ?		dword_40B2A0	dd ?		dword_40B2A4	dd ?		dword_40B2A8	dd ?							; sub_406C40+FBr ...
dword_40B2AC	dd ?							; DATA:off_40A31Co
dword_40B2B0	dd ?							; DATA:off_40A280o
dword_40B2B4	dd ?							; DATA:off_40A1FCo
dword_40B2B8	dd ?		dword_40B2BC	dd ?		dword_40B2C0	dd ?		dword_40B2C4	dd ?		dword_40B2C8	dd ?							; DATA:off_40A1E4o
dword_40B2CC	dd ?							; DATA:off_40A190o
dword_40B2D0	dd ?							; DATA:off_40A16Co
dword_40B2D4	dd ?							; DATA:off_40A118o
dword_40B2D8	dd ?							; DATA:off_40A288o
dword_40B2DC	dd ?		dword_40B2E0	dd ?		dword_40B2E4	dd ?		dword_40B2E8	dd ?		dword_40B2EC	dd ?		dword_40B2F0	dd ?		dword_40B2F4	dd ?		dword_40B2F8	dd ?		dword_40B2FC	dd ?		dword_40B300	dd ?		dword_40B304	dd ?		dword_40B308	dd ?		dword_40B30C	dd ?		dword_40B310	dd ?		dword_40B314	dd ?		dword_40B318	dd ?							; sub_406FF0w
dword_40B31C	dd ?							; ServiceMain+2Fw ...
dword_40B320	dd ?							; sub_407068+A0r ...
		align 100h
BSS		ends

;
; Imports from kernel32.dll
;
; Section 4. (virtual address 0000C000)
; Virtual size			: 00000288 (	648.)
; Section size in file		: 00000400 (   1024.)
; Offset to raw	data for section: 00009800
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Externs
; _idata
; DWORD	GetCurrentThreadId(void)
		extrn __imp_GetCurrentThreadId:dword ; DATA XREF: GetCurrentThreadIdr
; SIZE_T __stdcall LocalSize(HLOCAL hMem)
		extrn __imp_LocalSize:dword ; DATA XREF: LocalSizer
; HLOCAL __stdcall LocalReAlloc(HLOCAL hMem, SIZE_T uBytes, UINT uFlags)
		extrn __imp_LocalReAlloc:dword ; DATA XREF: LocalReAllocr
; int __stdcall	WideCharToMultiByte(UINT CodePage, DWORD dwFlags, LPCWSTR lpWideCharStr, int cchWideChar, LPSTR	lpMultiByteStr,	int cbMultiByte, LPCSTR	lpDefaultChar, LPBOOL lpUsedDefaultChar)
		extrn __imp_WideCharToMultiByte:dword ;	DATA XREF: WideCharToMultiByter
; int __stdcall	MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr,	int cchWideChar)
		extrn __imp_MultiByteToWideChar:dword ;	DATA XREF: MultiByteToWideCharr
; void __stdcall ExitProcess(UINT uExitCode)
		extrn __imp_ExitProcess:dword ;	DATA XREF: ExitProcessr
; LONG __stdcall UnhandledExceptionFilter(struct _EXCEPTION_POINTERS *ExceptionInfo)
		extrn __imp_UnhandledExceptionFilter:dword
					; DATA XREF: UnhandledExceptionFilterr
		extrn __imp_RtlUnwind:dword ; DATA XREF: RtlUnwindr
; void __stdcall RaiseException(DWORD dwExceptionCode, DWORD dwExceptionFlags, DWORD nNumberOfArguments, const ULONG_PTR *lpArguments)
		extrn __imp_RaiseException:dword ; DATA	XREF: RaiseExceptionr
; BOOL __stdcall TlsSetValue(DWORD dwTlsIndex, LPVOID lpTlsValue)
		extrn __imp_TlsSetValue:dword ;	DATA XREF: TlsSetValuer
; LPVOID __stdcall TlsGetValue(DWORD dwTlsIndex)
		extrn __imp_TlsGetValue:dword ;	DATA XREF: TlsGetValuer
; BOOL __stdcall TlsFree(DWORD dwTlsIndex)
		extrn __imp_TlsFree:dword ; DATA XREF: TlsFreer
; DWORD	TlsAlloc(void)
		extrn __imp_TlsAlloc:dword ; DATA XREF:	TlsAllocr
; HLOCAL __stdcall LocalFree(HLOCAL hMem)
		extrn __imp_LocalFree:dword ; DATA XREF: LocalFreer
; HLOCAL __stdcall LocalAlloc(UINT uFlags, SIZE_T uBytes)
		extrn __imp_LocalAlloc:dword ; DATA XREF: LocalAllocr
; BOOL __stdcall FreeLibrary(HMODULE hLibModule)
		extrn __imp_FreeLibrary:dword ;	DATA XREF: FreeLibraryr

;
; Imports from oleaut32.dll
;
; void __stdcall SysFreeString(BSTR)
		extrn __imp_SysFreeString:dword	; DATA XREF: SysFreeStringr
; BSTR __stdcall SysAllocStringLen(const OLECHAR *, UINT)
		extrn __imp_SysAllocStringLen:dword ; DATA XREF: SysAllocStringLenr

;
; Imports from kernel32.dll
;
; FARPROC __stdcall GetProcAddress(HMODULE hModule, LPCSTR lpProcName)
		extrn __imp_GetProcAddress:dword ; DATA	XREF: GetProcAddressr
; BOOL __stdcall FreeLibrary_0(HMODULE hLibModule)
		extrn __imp_FreeLibrary_0:dword	; DATA XREF: FreeLibrary_0r

;
; Imports from kernel32.dll
;
; HMODULE __stdcall LoadLibraryA(LPCSTR	lpLibFileName)
		extrn __imp_LoadLibraryA:dword ; DATA XREF: LoadLibraryAr
; DWORD	__stdcall GetModuleFileNameA(HMODULE hModule, LPSTR lpFilename,	DWORD nSize)
		extrn __imp_GetModuleFileNameA:dword ; DATA XREF: GetModuleFileNameAr
; DWORD	__stdcall GetFileAttributesA(LPCSTR lpFileName)
		extrn __imp_GetFileAttributesA:dword ; DATA XREF: GetFileAttributesAr


		end DllEntryPoint