;
; +-------------------------------------------------------------------------+
; |	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   :	456A96F124E8F14FD72F07F9B3434EA1

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

		.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:00404472o
					; CODE:0040447Ao ...
byte_401004	db 0Ah			; DATA XREF: CODE:off_401000o
					; LString
		db 6,'String'
off_40100C	dd offset aTobject	; DATA XREF: CODE:00404444o
					; CODE:00404EF0o
					; "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_402EC4+Bp
					; sub_402EEC+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_403C6C+DAp
					; sub_403C6C+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_40538C+1Bp
					; sub_405B5C+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_4030ECp
		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:0040445Co ...
		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:00404460o ...
		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_4023B4
		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:00404454o ...
		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_404490+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_404558:loc_40463Dj ...

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_402910
		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_402910
		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_4027F0:loc_40282Cj ...
		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_4023E0+63p
					; sub_403A64+8Fp ...
		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_403A64+24p
					; sub_403F00+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_403280+3p
					; sub_4032B8+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_4046DC+72p
					; sub_405B5C+53p ...
		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_404490+1Ep
					; sub_405178+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_403B04+75p ...
		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_403A64+6Fp
					; sub_403F00+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: unknown_libname_11:loc_40221Bj
					; System::__linkproc__ WStrFromLStr(System::WideString &,System::AnsiString):loc_40222Dj

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
; [0000002C BYTES: COLLAPSED FUNCTION unknown_libname_11. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4
; [0000000E BYTES: COLLAPSED FUNCTION System::__linkproc__ WStrFromLStr(System::WideString &,System::AnsiString). PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4
; [0000000E BYTES: COLLAPSED FUNCTION System::__linkproc__ WStrToPWChar(System::WideString). PRESS KEYPAD "+" TO EXPAND]
		align 4
; [00000081 BYTES: COLLAPSED FUNCTION System::__linkproc__ WStrCmp(void). PRESS	KEYPAD "+" TO EXPAND]
		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_4022E8	proc near		; CODE XREF: sub_402314+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_4022FA:				; CODE XREF: sub_4022E8+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_4022FA
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4022E8	endp

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

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



sub_402314	proc near		; CODE XREF: sub_402314+6Fp
					; unknown_libname_12+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_402353
		cmp	al, 0Bh
		jz	short loc_402353
		cmp	al, 0Ch
		jz	short loc_40235D
		cmp	al, 0Dh
		jz	short loc_402370
		cmp	al, 0Eh
		jz	short loc_40238E
		cmp	al, 0Fh
		jz	short loc_402353
		cmp	al, 11h
		jz	short loc_402353
		mov	al, 2
		pop	edi
		pop	esi
		pop	ebx
		jmp	loc_4011CC
; ---------------------------------------------------------------------------


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


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


loc_402370:				; CODE XREF: sub_402314+24j
		push	ebp
		mov	ebp, edx


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


loc_40238E:				; CODE XREF: sub_402314+29j
		push	ebp
		mov	ebp, edx


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


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

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

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



sub_4023B4	proc near		; CODE XREF: sub_40139C+12p
					; sub_4023E0+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_4023C6:				; CODE XREF: sub_4023B4+24j
		mov	edx, [esi]
		mov	eax, [esi+4]
		add	eax, ebx
		mov	edx, [edx]
		call	unknown_libname_13 ; BDS 2005-2006 and Delphi6-7 Visual	Component Library
		add	esi, 8
		dec	edi
		jg	short loc_4023C6
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4023B4	endp


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



sub_4023E0	proc near		; CODE XREF: sub_4023E0+A6p
					; unknown_libname_13+5j ...
		cmp	ecx, 0
		jz	locret_4024C9
		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_402430
		cmp	al, 0Bh
		jz	short loc_40244A
		cmp	al, 0Ch
		jz	short loc_402463
		cmp	al, 0Dh
		jz	short loc_402473
		cmp	al, 0Eh
		jz	short loc_402491
		cmp	al, 0Fh
		jz	loc_4024A7
		cmp	al, 11h
		jz	loc_4024B6
		pop	edi
		pop	esi
		pop	ebx
		pop	eax
		mov	al, 2
		jmp	loc_4011CC
; ---------------------------------------------------------------------------


loc_402430:				; CODE XREF: sub_4023E0+1Dj
		cmp	ecx, 1
		mov	eax, ebx
		jg	short loc_402441
		call	sub_401C00
		jmp	loc_4024C5
; ---------------------------------------------------------------------------


loc_402441:				; CODE XREF: sub_4023E0+55j
		mov	edx, ecx
		call	sub_401C24
		jmp	short loc_4024C5
; ---------------------------------------------------------------------------


loc_40244A:				; CODE XREF: sub_4023E0+22j
		cmp	ecx, 1
		mov	eax, ebx
		jg	short loc_402459
		call	ds:off_40A004
		jmp	short loc_4024C5
; ---------------------------------------------------------------------------


loc_402459:				; CODE XREF: sub_4023E0+6Fj
		mov	edx, ecx
		call	ds:off_40A008
		jmp	short loc_4024C5
; ---------------------------------------------------------------------------


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


loc_402473:				; CODE XREF: sub_4023E0+2Cj
		push	ebp
		mov	ebp, edx


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


loc_402491:				; CODE XREF: sub_4023E0+31j
		push	ebp
		mov	ebp, edx


loc_402494:				; CODE XREF: sub_4023E0+C2j
		mov	eax, ebx
		add	ebx, [esi+ebp+2]
		mov	edx, esi
		call	sub_4023B4
		dec	edi
		jg	short loc_402494
		pop	ebp
		jmp	short loc_4024C5
; ---------------------------------------------------------------------------


loc_4024A7:				; CODE XREF: sub_4023E0+36j
					; sub_4023E0+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_4024A7
		jmp	short loc_4024C5
; ---------------------------------------------------------------------------


loc_4024B6:				; CODE XREF: sub_4023E0+3Fj
					; sub_4023E0+E3j
		mov	eax, ebx
		mov	edx, esi
		add	ebx, 4
		call	sub_4024DC
		dec	edi
		jg	short loc_4024B6


loc_4024C5:				; CODE XREF: sub_4023E0+5Cj
					; sub_4023E0+68j ...
		pop	edi
		pop	esi
		pop	ebx
		pop	eax

locret_4024C9:				; CODE XREF: sub_4023E0+3j
		retn
sub_4023E0	endp

; ---------------------------------------------------------------------------
		align 4
; [0000000A BYTES: COLLAPSED FUNCTION unknown_libname_13. 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_4024DC	proc near		; CODE XREF: sub_4023E0+DDp
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short locret_402514
		mov	dword ptr [eax], 0
		dec	dword ptr [ecx-8]
		jnz	short locret_402514
		push	eax
		mov	eax, ecx
		xor	ecx, ecx
		mov	cl, [edx+1]
		mov	edx, [edx+ecx+6]
		test	edx, edx
		jz	short loc_40250B
		mov	ecx, [eax-4]
		test	ecx, ecx
		jz	short loc_40250B
		mov	edx, [edx]
		call	sub_4023E0


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

locret_402514:				; CODE XREF: sub_4024DC+4j
					; sub_4024DC+Fj
		retn
sub_4024DC	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_402528	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_402542


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


loc_402542:				; CODE XREF: sub_402528+Cj
		pop	esi
		pop	ebx
		retn
sub_402528	endp

; ---------------------------------------------------------------------------
		align 4
; [00000015 BYTES: COLLAPSED FUNCTION System::__linkproc__ IntfClear(System::DelphiInterface<System::IInterface> &). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [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_4025AE	proc near		; CODE XREF: CODE:0040264Ep

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_4025C8
		or	edx, edx
		jz	short loc_402620
		or	ebx, ebx
		jz	short loc_402620


loc_4025C8:				; CODE XREF: sub_4025AE+10j
		or	edx, edx
		jns	short loc_4025D6
		neg	edx
		neg	eax
		sbb	edx, 0
		or	edi, 1


loc_4025D6:				; CODE XREF: sub_4025AE+1Cj
		or	ecx, ecx
		jns	short loc_4025E4
		neg	ecx
		neg	ebx
		sbb	ecx, 0
		xor	edi, 1


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


loc_4025F0:				; CODE XREF: sub_4025AE:loc_402607j
		shl	eax, 1
		rcl	edx, 1
		rcl	esi, 1
		rcl	edi, 1
		cmp	edi, ebp
		jb	short loc_402607
		ja	short loc_402602
		cmp	esi, ebx
		jb	short loc_402607


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


loc_402607:				; CODE XREF: sub_4025AE+4Cj
					; sub_4025AE+52j
		loop	loc_4025F0
		pop	ebx
		test	ebx, 1
		jz	short loc_402619
		neg	edx
		neg	eax
		sbb	edx, 0


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


loc_402620:				; CODE XREF: sub_4025AE+14j
					; sub_4025AE+18j
		div	ebx
		xor	edx, edx
		jmp	short loc_402619
sub_4025AE	endp

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


loc_402645:				; CODE XREF: CODE:00402632j
					; CODE:0040263Ej
		pop	esi
		push	dword ptr [esp+8]
		push	dword ptr [esp+8]
		call	sub_4025AE
		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_402670
		or	edx, edx
		jz	short loc_40269B
		or	ebx, ebx
		jz	short loc_40269B


loc_402670:				; CODE XREF: CODE:00402666j
		mov	ebp, ecx
		mov	ecx, 40h
		xor	edi, edi
		xor	esi, esi


loc_40267B:				; CODE XREF: CODE:loc_402692j
		shl	eax, 1
		rcl	edx, 1
		rcl	esi, 1
		rcl	edi, 1
		cmp	edi, ebp
		jb	short loc_402692
		ja	short loc_40268D
		cmp	esi, ebx
		jb	short loc_402692


loc_40268D:				; CODE XREF: CODE:00402687j
		sub	esi, ebx
		sbb	edi, ebp
		inc	eax


loc_402692:				; CODE XREF: CODE:00402685j
					; CODE:0040268Bj
		loop	loc_40267B


loc_402694:				; CODE XREF: CODE:0040269Fj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------


loc_40269B:				; CODE XREF: CODE:0040266Aj
					; CODE:0040266Ej
		div	ebx
		xor	edx, edx
		jmp	short loc_402694

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



sub_4026A1	proc near		; CODE XREF: CODE:00402743p
					; sub_402EC4+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_4026BB
		or	edx, edx
		jz	short loc_402714
		or	ebx, ebx
		jz	short loc_402714


loc_4026BB:				; CODE XREF: sub_4026A1+10j
		or	edx, edx
		jns	short loc_4026C9
		neg	edx
		neg	eax
		sbb	edx, 0
		or	edi, 1


loc_4026C9:				; CODE XREF: sub_4026A1+1Cj
		or	ecx, ecx
		jns	short loc_4026D4
		neg	ecx
		neg	ebx
		sbb	ecx, 0


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


loc_4026E0:				; CODE XREF: sub_4026A1:loc_4026F7j
		shl	eax, 1
		rcl	edx, 1
		rcl	esi, 1
		rcl	edi, 1
		cmp	edi, ebp
		jb	short loc_4026F7
		ja	short loc_4026F2
		cmp	esi, ebx
		jb	short loc_4026F7


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


loc_4026F7:				; CODE XREF: sub_4026A1+49j
					; sub_4026A1+4Fj
		loop	loc_4026E0
		mov	eax, esi
		mov	edx, edi
		pop	ebx
		test	ebx, 1
		jz	short loc_40270D
		neg	edx
		neg	eax
		sbb	edx, 0


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


loc_402714:				; CODE XREF: sub_4026A1+14j
					; sub_4026A1+18j
		div	ebx
		xchg	eax, edx
		xor	edx, edx
		jmp	short loc_40270D
sub_4026A1	endp

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


loc_40273A:				; CODE XREF: CODE:00402727j
					; CODE:00402733j
		pop	esi
		push	dword ptr [esp+8]
		push	dword ptr [esp+8]
		call	sub_4026A1
		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_402765
		or	edx, edx
		jz	short loc_402794
		or	ebx, ebx
		jz	short loc_402794


loc_402765:				; CODE XREF: CODE:0040275Bj
		mov	ebp, ecx
		mov	ecx, 40h
		xor	edi, edi
		xor	esi, esi


loc_402770:				; CODE XREF: CODE:loc_402787j
		shl	eax, 1
		rcl	edx, 1
		rcl	esi, 1
		rcl	edi, 1
		cmp	edi, ebp
		jb	short loc_402787
		ja	short loc_402782
		cmp	esi, ebx
		jb	short loc_402787


loc_402782:				; CODE XREF: CODE:0040277Cj
		sub	esi, ebx
		sbb	edi, ebp
		inc	eax


loc_402787:				; CODE XREF: CODE:0040277Aj
					; CODE:00402780j
		loop	loc_402770
		mov	eax, esi
		mov	edx, edi


loc_40278D:				; CODE XREF: CODE:00402799j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------


loc_402794:				; CODE XREF: CODE:0040275Fj
					; CODE:00402763j
		div	ebx
		xchg	eax, edx
		xor	edx, edx
		jmp	short loc_40278D
; ---------------------------------------------------------------------------
		cmp	cl, 20h
		jl	short loc_4027B1
		cmp	cl, 40h
		jl	short loc_4027AA
		xor	edx, edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4027AA:				; CODE XREF: CODE:004027A3j
		mov	edx, eax
		shl	edx, cl
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4027B1:				; CODE XREF: CODE:0040279Ej
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------
		cmp	cl, 20h
		jl	short loc_4027CD
		cmp	cl, 40h
		jl	short loc_4027C7
		sar	edx, 1Fh
		mov	eax, edx
		retn
; ---------------------------------------------------------------------------


loc_4027C7:				; CODE XREF: CODE:004027BFj
		mov	eax, edx
		cdq
		sar	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_4027CD:				; CODE XREF: CODE:004027BAj
		shrd	eax, edx, cl
		sar	edx, cl
		retn
; ---------------------------------------------------------------------------
		cmp	cl, 20h
		jl	short loc_4027E9
		cmp	cl, 40h
		jl	short loc_4027E2
		xor	edx, edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4027E2:				; CODE XREF: CODE:004027DBj
		mov	eax, edx
		xor	edx, edx
		shr	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_4027E9:				; CODE XREF: CODE:004027D6j
		shrd	eax, edx, cl
		shr	edx, cl
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4027F0	proc near		; DATA XREF: CODE:00409C80o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_40282C
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B028
		jnz	short loc_40281E
		cmp	ds:dword_40B058, 0
		jz	short loc_402818
		call	ds:dword_40B058


loc_402818:				; CODE XREF: sub_4027F0+20j
		call	ds:off_40A030


loc_40281E:				; CODE XREF: sub_4027F0+17j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_402833


loc_40282B:				; CODE XREF: sub_4027F0+41j
		retn
; ---------------------------------------------------------------------------


loc_40282C:				; DATA XREF: sub_4027F0+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40282B
; ---------------------------------------------------------------------------


loc_402833:				; CODE XREF: sub_4027F0:loc_40282Bj
					; DATA XREF: sub_4027F0+36o
		pop	ebp
		retn
sub_4027F0	endp

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

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



sub_402838	proc near		; DATA XREF: CODE:00409C7Co
		sub	ds:dword_40B028, 1
		jnb	short locret_40284B
		call	GetCurrentThreadId	; GetCurrentThreadId
		mov	ds:dword_40B010, eax

locret_40284B:				; CODE XREF: sub_402838+7j
		retn
sub_402838	endp


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



sub_40284C	proc near		; CODE XREF: sub_40289C:loc_4028BDp
					; sub_402910:loc_40292Bp
					; DATA XREF: ...
		push	ebx
		mov	eax, 8
		test	eax, eax
		jz	short loc_402899
		cmp	ds:dwTlsIndex, 0
		jge	short loc_402869
		mov	eax, 0E2h
		call	sub_401BF4


loc_402869:				; CODE XREF: sub_40284C+11j
		push	8		; uBytes
		push	40h		; uFlags
		call	LocalAlloc	; LocalAlloc
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_402887
		mov	eax, 0E2h
		call	sub_401BF4
		jmp	short loc_402893
; ---------------------------------------------------------------------------


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


loc_402893:				; CODE XREF: sub_40284C+39j
		mov	ds:dword_40B074, ebx


loc_402899:				; CODE XREF: sub_40284C+8j
		pop	ebx
		retn
sub_40284C	endp

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

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



sub_40289C	proc near		; DATA XREF: DATA:0040A064o
		mov	eax, 8
		test	eax, eax
		jz	short locret_4028C2
		call	TlsAlloc	; TlsAlloc
		mov	ds:dwTlsIndex, eax
		test	eax, eax
		jge	short loc_4028BD
		mov	eax, 0E2h
		call	sub_401BF4


loc_4028BD:				; CODE XREF: sub_40289C+15j
		call	sub_40284C

locret_4028C2:				; CODE XREF: sub_40289C+7j
		retn
sub_40289C	endp

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

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



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

locret_4028EB:				; CODE XREF: sub_4028C4+7j
					; sub_4028C4+10j ...
		retn
sub_4028C4	endp


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



sub_4028EC	proc near		; DATA XREF: DATA:off_40A060o
		mov	eax, 8
		test	eax, eax
		jz	short locret_40290E
		call	sub_4028C4
		cmp	ds:dwTlsIndex, 0
		jl	short locret_40290E
		mov	eax, ds:dwTlsIndex
		push	eax		; dwTlsIndex
		call	TlsFree	; TlsFree

locret_40290E:				; CODE XREF: sub_4028EC+7j
					; sub_4028EC+15j
		retn
sub_4028EC	endp

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

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



sub_402910	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_402948
		mov	edx, large fs:2Ch
		mov	eax, [edx+eax*4]
		retn
; ---------------------------------------------------------------------------


loc_40292B:				; CODE XREF: sub_402910+40j
		call	sub_40284C
		mov	eax, ds:dwTlsIndex
		push	eax		; dwTlsIndex
		call	TlsGetValue	; TlsGetValue
		test	eax, eax
		jz	short loc_402941
		retn
; ---------------------------------------------------------------------------


loc_402941:				; CODE XREF: sub_402910+2Ej
		mov	eax, ds:dword_40B074
		retn
; ---------------------------------------------------------------------------


loc_402948:				; CODE XREF: sub_402910+Ej
		push	eax		; dwTlsIndex
		call	TlsGetValue	; TlsGetValue
		test	eax, eax
		jz	short loc_40292B
		retn
sub_402910	endp

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

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



sub_402954	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_402954	endp

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

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

; Attributes: bp-based frame


sub_4029B4	proc near		; DATA XREF: CODE:00409C78o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_4029D9
		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_4029E0


loc_4029D8:				; CODE XREF: sub_4029B4+2Aj
		retn
; ---------------------------------------------------------------------------


loc_4029D9:				; DATA XREF: sub_4029B4+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4029D8
; ---------------------------------------------------------------------------


loc_4029E0:				; CODE XREF: sub_4029B4:loc_4029D8j
					; DATA XREF: sub_4029B4+1Fo
		pop	ebp
		retn
sub_4029B4	endp

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


loc_4029E4:				; DATA XREF: CODE:off_409C74o
		sub	ds:dword_40B070, 1
		retn
; [00000006 BYTES: COLLAPSED FUNCTION FreeLibrary_0. PRESS KEYPAD "+" TO EXPAND]
		align 4


loc_4029F4:				; DATA XREF: sub_408C30+6Fo
		jmp	ds:GetProcAddress
; ---------------------------------------------------------------------------
		align 4
; [00000006 BYTES: COLLAPSED FUNCTION LoadLibraryW. 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_402A18	proc near		; CODE XREF: sub_4046DC+39p
		shr	eax, 10h
		retn
sub_402A18	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_402A24	proc near		; DATA XREF: CODE:00409C88o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_402A49
		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_402A50


loc_402A48:				; CODE XREF: sub_402A24+2Aj
		retn
; ---------------------------------------------------------------------------


loc_402A49:				; DATA XREF: sub_402A24+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_402A48
; ---------------------------------------------------------------------------


loc_402A50:				; CODE XREF: sub_402A24:loc_402A48j
					; DATA XREF: sub_402A24+1Fo
		pop	ebp
		retn
sub_402A24	endp

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

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



sub_402A54	proc near		; DATA XREF: CODE:00409C84o
		sub	ds:dword_40B078, 1
		retn
sub_402A54	endp


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

; Attributes: bp-based frame


sub_402A5C	proc near		; DATA XREF: CODE:00409C90o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_402A81
		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_402A88


loc_402A80:				; CODE XREF: sub_402A5C+2Aj
		retn
; ---------------------------------------------------------------------------


loc_402A81:				; DATA XREF: sub_402A5C+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_402A80
; ---------------------------------------------------------------------------


loc_402A88:				; CODE XREF: sub_402A5C:loc_402A80j
					; DATA XREF: sub_402A5C+1Fo
		pop	ebp
		retn
sub_402A5C	endp

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

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



sub_402A8C	proc near		; DATA XREF: CODE:00409C8Co
		sub	ds:dword_40B07C, 1
		retn
sub_402A8C	endp


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

; Attributes: bp-based frame


sub_402A94	proc near		; DATA XREF: CODE:00409C98o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_402AB9
		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_402AC0


loc_402AB8:				; CODE XREF: sub_402A94+2Aj
		retn
; ---------------------------------------------------------------------------


loc_402AB9:				; DATA XREF: sub_402A94+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_402AB8
; ---------------------------------------------------------------------------


loc_402AC0:				; CODE XREF: sub_402A94:loc_402AB8j
					; DATA XREF: sub_402A94+1Fo
		pop	ebp
		retn
sub_402A94	endp

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

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



sub_402AC4	proc near		; DATA XREF: CODE:00409C94o
		sub	ds:dword_40B080, 1
		retn
sub_402AC4	endp

; ---------------------------------------------------------------------------
off_402ACC	dd offset off_402AD8	; DATA XREF: sub_402BC8+4r
		dd 28h,	0
off_402AD8	dd offset sub_402B14	; DATA XREF: CODE:off_402ACCo
		dd offset @System@@Dispose$qqrpvt1 ; System::__linkproc__ Dispose(void *,void *)
off_402AE0	dd offset off_402AEC	; DATA XREF: sub_403098+4r
		dd 2Ah,	0
off_402AEC	dd offset sub_4030B4	; DATA XREF: CODE:off_402AE0o
		dd offset @System@@Dispose$qqrpvt1_0 ; System::__linkproc__ Dispose(void *,void	*)
; [00000006 BYTES: COLLAPSED FUNCTION GetFileAttributesA. PRESS	KEYPAD "+" TO EXPAND]
		align 4

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



sub_402AFC	proc near		; CODE XREF: sub_40325Cp sub_403280+Bp ...
		test	eax, eax
		jnz	short locret_402B05
		mov	eax, offset dword_40A0A4

locret_402B05:				; CODE XREF: sub_402AFC+2j
		retn
sub_402AFC	endp

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

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



sub_402B08	proc near		; CODE XREF: sub_403268+1p
					; sub_403478:loc_403483p
		test	edx, edx
		jnz	short locret_402B11
		mov	edx, offset dword_40A0A4

locret_402B11:				; CODE XREF: sub_402B08+2j
		retn
sub_402B08	endp

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

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

; Attributes: bp-based frame


sub_402B14	proc near		; DATA XREF: CODE:off_402AD8o

var_4		= dword	ptr -4

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

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

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

; Attributes: bp-based frame


sub_402B20	proc near		; CODE XREF: sub_40310C+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_402B98
		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_402B98
; ---------------------------------------------------------------------------


loc_402B4D:				; CODE XREF: sub_402B20+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_402C0C
		mov	[ebp+var_8], eax
		mov	edx, [ebp+var_10]
		inc	edx
		mov	eax, [ebp+var_C]
		mov	eax, [eax+10h]
		call	sub_402C0C
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		mov	eax, [eax+10h]
		mov	ecx, 2
		mov	edx, [ebp+var_10]
		call	sub_403190
		mov	eax, [ebp+var_4]
		call	[ebp+var_8]


loc_402B98:				; CODE XREF: sub_402B20+12j
					; sub_402B20+2Bj
		mov	eax, [ebp+var_C]
		cmp	dword ptr [eax+10h], 0
		jz	short loc_402BAD
		mov	eax, [ebp+var_C]
		mov	eax, [eax+10h]
		cmp	dword ptr [eax+1Ch], 0
		jg	short loc_402B4D


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

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

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

; Attributes: bp-based frame


sub_402BC8	proc near		; CODE XREF: sub_403438+Bp
					; sub_403478+79p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, off_402ACC
		xor	eax, eax
		call	sub_4030EC
		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_402BC8	endp


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

; Attributes: bp-based frame


sub_402BEC	proc near		; CODE XREF: sub_4033A0+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_403190
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_402BEC	endp


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



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


loc_402C1C:				; CODE XREF: sub_402C0C+2j
					; sub_402C0C+7j
		xor	eax, eax
		retn
sub_402C0C	endp

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

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



sub_402C20	proc near		; CODE XREF: sub_4032E0+2Fp
		push	edi
		xchg	eax, edi
		xchg	eax, edx
		repne scasb
		xchg	eax, edi
		pop	edi
		retn
sub_402C20	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 =======================================



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


loc_402C59:				; CODE XREF: sub_402C48+9j
		mov	edi, edx
		retn
sub_402C48	endp

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

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

; Attributes: bp-based frame

; int __stdcall	sub_402C78(int,	double)

sub_402C78	proc near		; CODE XREF: sub_402CC4+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_402EEC
		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_402C78	endp

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

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

; Attributes: bp-based frame

; int __stdcall	sub_402CC4(double)

sub_402CC4	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_402C78
		mov	esp, ebp
		pop	ebp
		retn	8
sub_402CC4	endp

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

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

; Attributes: bp-based frame


sub_402CF4	proc near		; CODE XREF: sub_402D40+21p
					; sub_402EEC+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_402D0C
		dec	eax
		or	eax, 0FFFFFFFCh
		inc	eax


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


loc_402D2E:				; CODE XREF: sub_402CF4+1Aj
		xor	eax, eax
		jmp	short loc_402D34
; ---------------------------------------------------------------------------


loc_402D32:				; CODE XREF: sub_402CF4+29j
					; sub_402CF4+38j
		mov	al, 1


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

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

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

; Attributes: bp-based frame


sub_402D40	proc near		; CODE XREF: sub_405640+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_402CF4
		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_402EB7
		mov	eax, [ebp+var_4]
		cmp	word ptr [eax+2], 0Ch
		ja	loc_402EB7
		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_402EB7
		mov	eax, [ebp+var_4]
		cmp	word ptr [eax+8], 18h
		jnb	loc_402EB7
		mov	eax, [ebp+var_4]
		cmp	word ptr [eax+0Ah], 3Ch
		jnb	loc_402EB7
		mov	eax, [ebp+var_4]
		cmp	word ptr [eax+0Ch], 3Ch
		jnb	loc_402EB7
		mov	eax, [ebp+var_4]
		cmp	word ptr [eax+0Eh], 3E8h
		jnb	loc_402EB7
		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_402E1D
		mov	[ebp+var_1C], eax
		mov	[ebp+var_10], 1


loc_402E07:				; CODE XREF: sub_402D40+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_402E07


loc_402E1D:				; CODE XREF: sub_402D40+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_402E32
		xor	eax, eax
		mov	[ebp+var_10], eax


loc_402E32:				; CODE XREF: sub_402D40+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_402E4E
		add	edx, 3


loc_402E4E:				; CODE XREF: sub_402D40+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_402EC0
		faddp	st(1), st
		mov	eax, [ebp+var_8]
		fstp	qword ptr [eax]
		wait
		mov	[ebp+var_9], 1


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

; ---------------------------------------------------------------------------
		align 10h
flt_402EC0	dd 8.64e7		; DATA XREF: sub_402D40+165r

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

; Attributes: bp-based frame

; int __stdcall	sub_402EC4(double)

sub_402EC4	proc near		; CODE XREF: sub_402EEC+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_4026A1
		inc	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		pop	ecx
		pop	ebp
		retn	8
sub_402EC4	endp

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

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

; Attributes: bp-based frame

; int __stdcall	sub_402EEC(double)

sub_402EEC	proc near		; CODE XREF: sub_402C78+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_403094
		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_403088
		dec	[ebp+var_C]
		mov	[ebp+var_E], 1
		cmp	[ebp+var_C], 23AB1h
		jl	short loc_402F4A


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


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


loc_402F6E:				; CODE XREF: sub_402EEC+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_14 ; 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_14 ; BDS 2005-2006 and Delphi6-7 Visual	Component Library
		cmp	[ebp+var_14], 4
		jnz	short loc_402FBB
		dec	[ebp+var_14]
		add	[ebp+var_12], 16Dh


loc_402FBB:				; CODE XREF: sub_402EEC+C3j
		mov	ax, [ebp+var_14]
		add	[ebp+var_E], ax
		movzx	eax, [ebp+var_E]
		call	sub_402CF4
		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_402FE2:				; CODE XREF: sub_402EEC+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_40300A
		mov	ax, [ebp+var_14]
		sub	[ebp+var_12], ax
		inc	[ebp+var_10]
		jmp	short loc_402FE2
; ---------------------------------------------------------------------------


loc_40300A:				; CODE XREF: sub_402EEC+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_402EC4
		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_14 ; 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_14 ; 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_14 ; BDS 2005-2006 and Delphi6-7 Visual	Component Library
		mov	[ebp+var_5], 1


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

; ---------------------------------------------------------------------------
		align 4
flt_403094	dd 8.64e7		; DATA XREF: sub_402EEC+1Ar

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

; Attributes: bp-based frame


sub_403098	proc near		; CODE XREF: sub_403A1C+1Ap
					; sub_403A1C+24p ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, off_402AE0
		xor	eax, eax
		call	sub_4030EC
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		pop	ecx
		pop	ebp
		retn
sub_403098	endp

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

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

; Attributes: bp-based frame


sub_4030B4	proc near		; DATA XREF: CODE:off_402AECo

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_4030B4	endp

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

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

; Attributes: bp-based frame


sub_4030CC	proc near		; CODE XREF: sub_405EC4+50p
					; sub_406464+1E9p

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_403478
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_4030CC	endp

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

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



sub_4030EC	proc near		; CODE XREF: sub_402BC8+Cp
					; sub_403098+Cp
		call	sub_40131C
		jz	short locret_4030F9
		push	eax
		mov	edx, [eax]
		call	dword ptr [edx]
		pop	eax

locret_4030F9:				; CODE XREF: sub_4030EC+5j
		retn
sub_4030EC	endp

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

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



sub_4030FC	proc near		; CODE XREF: sub_402B20+93p
					; sub_403370+29p ...
		test	eax, eax
		jz	short locret_40310B
		sub	dword ptr [eax+4], 2
		jge	short locret_40310B
		mov	edx, [eax]
		push	dword ptr [edx+4]

locret_40310B:				; CODE XREF: sub_4030FC+2j
					; sub_4030FC+8j
		retn
sub_4030FC	endp ; sp-analysis failed


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



sub_40310C	proc near		; CODE XREF: System::__linkproc__ Dispose(void *,void *)+7p
					; System::__linkproc__ Dispose(void *,void *)+7p
		push	eax
		call	sub_402B20
		pop	eax
		xor	edx, edx
		call	sub_401164
		retn
sub_40310C	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_40312C	proc near		; CODE XREF: sub_403160+1Ep
					; sub_403478+A8p
		cmp	edx, [eax+1Ch]
		jge	short loc_403134
		mov	edx, [eax+1Ch]


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

locret_403147:				; CODE XREF: sub_40312C+Bj
		retn
sub_40312C	endp


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



sub_403148	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_403148	endp

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

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



sub_403160	proc near		; CODE XREF: sub_4031C8+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_403183
		mov	ecx, [eax+24h]
		test	ecx, ecx
		jnz	short loc_40317C
		mov	ecx, edx
		shr	ecx, 2
		inc	ecx


loc_40317C:				; CODE XREF: sub_403160+14j
		add	edx, ecx
		call	sub_40312C


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

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

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



sub_403190	proc near		; CODE XREF: sub_402B20+6Dp
					; sub_402BEC+17p
		test	ecx, ecx
		jle	short locret_4031C7
		cmp	edx, [eax+1Ch]
		jge	short locret_4031C7
		push	ebx
		xchg	eax, ebx
		lea	eax, [edx+ecx]
		cmp	eax, [ebx+1Ch]
		jbe	short loc_4031A8
		mov	ecx, [ebx+1Ch]
		sub	ecx, edx


loc_4031A8:				; CODE XREF: sub_403190+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_4031C7:				; CODE XREF: sub_403190+2j
					; sub_403190+7j
		retn
sub_403190	endp


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



sub_4031C8	proc near		; CODE XREF: sub_403438+36p
		push	ecx
		push	eax
		push	dword ptr [eax+1Ch]
		push	edx
		call	sub_403160
		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_4031EF
		push	eax
		lea	edx, [eax+4]
		call	sub_401210
		pop	eax


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

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

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



sub_4031F4	proc near		; CODE XREF: sub_4046DC+44p
					; sub_4046DC+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_403207
		neg	eax


loc_403207:				; CODE XREF: sub_4031F4+Fj
		mov	cl, 0Ah


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


loc_40321E:				; CODE XREF: sub_4031F4+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_4031F4	endp

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

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



sub_40322C	proc near		; CODE XREF: sub_40325C+5p
		xchg	eax, edx
		xor	eax, eax
		test	edx, edx
		jz	short locret_40325B
		xor	ecx, ecx
		mov	cl, [edx]
		inc	edx
		cmp	cl, 2Dh
		pushf
		jz	short loc_403243
		cmp	cl, 2Bh
		jnz	short loc_403246


loc_403243:				; CODE XREF: sub_40322C+10j
					; sub_40322C+28j
		mov	cl, [edx]
		inc	edx


loc_403246:				; CODE XREF: sub_40322C+15j
		sub	cl, 30h
		cmp	cl, 9
		ja	short loc_403256
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2]
		jmp	short loc_403243
; ---------------------------------------------------------------------------


loc_403256:				; CODE XREF: sub_40322C+20j
		popf
		jnz	short locret_40325B
		neg	eax

locret_40325B:				; CODE XREF: sub_40322C+5j
					; sub_40322C+2Bj
		retn
sub_40322C	endp


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



sub_40325C	proc near		; CODE XREF: sub_407280+40p
					; sub_407280+65p
		call	sub_402AFC
		call	sub_40322C
		retn
sub_40325C	endp

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

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



sub_403268	proc near		; CODE XREF: sub_4032A8+9p
		xchg	eax, edx
		call	sub_402B08
		dec	edx


loc_40326F:				; CODE XREF: sub_403268+10j
		inc	edx
		movzx	ecx, byte ptr [edx]
		jecxz	short loc_40327A
		cmp	cl, 20h
		jbe	short loc_40326F


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


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



sub_403280	proc near		; CODE XREF: sub_4032A8+1p

var_C		= dword	ptr -0Ch

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


loc_403292:				; CODE XREF: sub_403280+1Bj
		dec	ecx
		mov	dl, [eax+ecx]
		jl	short loc_40329D
		cmp	dl, 20h
		jbe	short loc_403292


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


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



sub_4032A8	proc near		; CODE XREF: sub_406D9C+14Cp
		push	edx
		call	sub_403280
		pop	edx
		mov	eax, [edx]
		call	sub_403268
		retn
sub_4032A8	endp

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

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



sub_4032B8	proc near		; CODE XREF: sub_40944C+6Ep
		push	ecx
		push	eax
		push	edx
		call	sub_401DF4
		pop	edx
		test	edx, edx
		jg	short loc_4032C8
		xor	edx, edx
		inc	edx


loc_4032C8:				; CODE XREF: sub_4032B8+Bj
		sub	eax, edx
		mov	ecx, eax
		pop	eax
		jge	short loc_4032D6
		pop	eax
		jl	sub_401C00


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

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

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



sub_4032E0	proc near		; CODE XREF: sub_409504+37p r+6Cp

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_402AFC
		mov	bl, [eax]
		xchg	eax, [esp+10h+var_10]
		call	sub_402AFC
		mov	esi, eax
		dec	eax


loc_403301:				; CODE XREF: sub_4032E0+46j
		inc	eax
		mov	dl, bl
		mov	ecx, [esi-4]
		sub	ecx, eax
		add	ecx, esi
		cmp	ecx, edi
		jl	short loc_40332D
		call	sub_402C20
		test	eax, eax
		jz	short loc_40332F
		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_403301
		sub	eax, esi
		inc	eax
		jmp	short loc_403330
; ---------------------------------------------------------------------------


loc_40332D:				; CODE XREF: sub_4032E0+2Dj
		xor	eax, eax


loc_40332F:				; CODE XREF: sub_4032E0+36j
		dec	eax


loc_403330:				; CODE XREF: sub_4032E0+4Bj
		pop	edx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4032E0	endp

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

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



sub_403338	proc near		; CODE XREF: sub_406094+168p
					; sub_406094+218p ...
		call	sub_402AFC
		push	eax		; lpFileName
		call	GetFileAttributesA	; GetFileAttributesA
		inc	eax
		jz	short locret_40334C
		dec	eax
		and	al, 10h
		setz	al

locret_40334C:				; CODE XREF: sub_403338+Cj
		retn
sub_403338	endp

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

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



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

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

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



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


loc_403375:				; CODE XREF: sub_403370+11j
		dec	edx
		jl	short loc_403383
		push	edx
		mov	eax, ebx
		call	sub_4033A0
		pop	edx
		jmp	short loc_403375
; ---------------------------------------------------------------------------


loc_403383:				; CODE XREF: sub_403370+6j
		xor	eax, eax
		mov	[ebx+25h], eax
		xchg	eax, [ebx+21h]
		test	eax, eax
		jz	short loc_403396
		call	sub_401164
		xor	eax, eax


loc_403396:				; CODE XREF: sub_403370+1Dj
		xchg	eax, [ebx+18h]
		call	sub_4030FC
		pop	ebx
		retn
sub_403370	endp


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



sub_4033A0	proc near		; CODE XREF: sub_403370+Bp
		dec	dword ptr [eax+1Ch]
		push	eax
		mov	eax, [eax+18h]
		mov	ecx, [eax+18h]
		push	dword ptr [ecx+edx*4]
		call	sub_402BEC
		pop	eax
		pop	edx
		mov	ecx, [edx+25h]
		jecxz	short loc_4033C5
		cmp	eax, [edx+21h]
		jb	short loc_4033C5
		add	ecx, [edx+21h]
		cmp	eax, ecx
		jb	short locret_4033CA


loc_4033C5:				; CODE XREF: sub_4033A0+17j
					; sub_4033A0+1Cj
		call	sub_401164

locret_4033CA:				; CODE XREF: sub_4033A0+23j
		retn
sub_4033A0	endp

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

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



sub_4033CC	proc near		; CODE XREF: sub_40538C+45p
					; sub_405EC4+74p ...
		push	ecx
		mov	eax, [eax+18h]
		test	eax, eax
		jz	short loc_4033D9
		call	sub_402C0C


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

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

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



sub_4033E4	proc near		; CODE XREF: sub_406464+1FBp
		push	esi
		push	edi
		mov	ecx, [eax+1Ch]
		mov	eax, [eax+18h]
		push	ecx
		jecxz	short loc_4033F2
		mov	esi, [eax+18h]


loc_4033F2:				; CODE XREF: sub_4033E4+9j
		push	esi
		xchg	eax, edx
		xor	edx, edx
		jecxz	short loc_40340E
		push	eax


loc_4033F9:				; CODE XREF: sub_4033E4+23j
		push	ecx
		push	edx
		lodsd
		call	sub_402C48
		pop	edx
		lea	edx, [edx+eax+2]
		pop	ecx
		loop	loc_4033F9
		pop	eax
		pop	esi
		xchg	edx, ecx
		push	eax


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


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


loc_403432:				; CODE XREF: sub_4033E4+31j
		pop	edi
		pop	esi
		retn
sub_4033E4	endp

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

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



sub_403438	proc near		; CODE XREF: sub_403360+6p
		push	ebx
		push	edx
		push	ecx
		xchg	eax, ebx
		mov	eax, [ebx+18h]
		test	eax, eax
		jnz	short loc_40344B
		call	sub_402BC8
		mov	[ebx+18h], eax


loc_40344B:				; CODE XREF: sub_403438+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_403469
		call	sub_401210


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


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



sub_403478	proc near		; CODE XREF: sub_4030CC+14p
		dec	cl
		jz	short loc_403483
		pusha
		call	sub_403370
		popa


loc_403483:				; CODE XREF: sub_403478+2j
		call	sub_402B08
		jz	locret_403551
		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_4034D8
		push	eax
		call	sub_401210
		pop	edx
		push	edx
		push	esi
		mov	esi, [ebx+18h]
		mov	esi, [esi+18h]
		mov	ecx, [ebx+1Ch]


loc_4034C1:				; CODE XREF: sub_403478:loc_4034CFj
		lodsd
		sub	eax, edx
		cmp	eax, [ebx+25h]
		jnb	short loc_4034CF
		add	eax, [ebx+21h]
		mov	[esi-4], eax


loc_4034CF:				; CODE XREF: sub_403478+4Fj
		loop	loc_4034C1
		pop	esi
		pop	eax
		call	sub_401164


loc_4034D8:				; CODE XREF: sub_403478+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_4034F9
		call	sub_402BC8
		mov	[ebx+18h], eax


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


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


loc_403513:				; CODE XREF: sub_403478+8Cj
					; sub_403478+91j
		mov	[ebx+1Ch], edx
		mov	eax, [ebx+18h]
		push	edx
		push	eax
		cmp	edx, [eax+20h]
		jle	short loc_403525
		call	sub_40312C


loc_403525:				; CODE XREF: sub_403478+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_403537:				; CODE XREF: sub_403478+D2j
					; sub_403478+D5j
		cmp	[edi], ah
		jz	short loc_40354F
		mov	[edx], edi
		add	edx, 4
		repne scasb
		jnz	short loc_40354F
		mov	[edi-1], ah
		cmp	byte ptr [edi],	0Ah
		jnz	short loc_403537
		inc	edi
		loop	loc_403537


loc_40354F:				; CODE XREF: sub_403478+C1j
					; sub_403478+CAj
		pop	edi
		pop	ebx

locret_403551:				; CODE XREF: sub_403478+10j
		retn
sub_403478	endp

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

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

; Attributes: bp-based frame


sub_403554	proc near		; DATA XREF: CODE:00409CA0o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_4035A3
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B088
		jnz	short loc_403595
		cmp	ds:hLibModule, 0
		jz	short loc_403581
		mov	eax, ds:hLibModule
		push	eax		; hLibModule
		call	FreeLibrary_0


loc_403581:				; CODE XREF: sub_403554+20j
		mov	eax, offset dword_40B08C
		call	sub_401C00
		mov	eax, offset dword_40A0A4
		call	sub_401C00


loc_403595:				; CODE XREF: sub_403554+17j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4035AA


loc_4035A2:				; CODE XREF: sub_403554+54j
		retn
; ---------------------------------------------------------------------------


loc_4035A3:				; DATA XREF: sub_403554+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4035A2
; ---------------------------------------------------------------------------


loc_4035AA:				; CODE XREF: sub_403554:loc_4035A2j
					; DATA XREF: sub_403554+49o
		pop	ebp
		retn
sub_403554	endp

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

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

; Attributes: bp-based frame


sub_4035DC	proc near		; DATA XREF: CODE:00409CA8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_403601
		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_403608


loc_403600:				; CODE XREF: sub_4035DC+2Aj
		retn
; ---------------------------------------------------------------------------


loc_403601:				; DATA XREF: sub_4035DC+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_403600
; ---------------------------------------------------------------------------


loc_403608:				; CODE XREF: sub_4035DC:loc_403600j
					; DATA XREF: sub_4035DC+1Fo
		pop	ebp
		retn
sub_4035DC	endp

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

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



sub_40360C	proc near		; DATA XREF: CODE:00409CA4o
		sub	ds:dword_40B090, 1
		retn
sub_40360C	endp


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

; Attributes: bp-based frame


sub_403614	proc near		; DATA XREF: CODE:00409CB0o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_403A13
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B228
		jnz	loc_403A05
		mov	eax, ds:dword_40B1B4
		call	sub_4030FC
		mov	eax, ds:dword_40B16C
		call	sub_4030FC
		mov	eax, offset dword_40B224
		call	sub_401C00
		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_403A05:				; CODE XREF: sub_403614+17j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_403A1A


loc_403A12:				; CODE XREF: sub_403614+404j
		retn
; ---------------------------------------------------------------------------


loc_403A13:				; DATA XREF: sub_403614+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_403A12
; ---------------------------------------------------------------------------


loc_403A1A:				; CODE XREF: sub_403614:loc_403A12j
					; DATA XREF: sub_403614+3F9o
		pop	ebp
		retn
sub_403614	endp


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

; Attributes: bp-based frame


sub_403A1C	proc near		; DATA XREF: CODE:00409CACo
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_403A58
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		sub	ds:dword_40B228, 1
		jnb	short loc_403A4A
		call	sub_403098
		mov	ds:dword_40B1B4, eax
		call	sub_403098
		mov	ds:dword_40B16C, eax


loc_403A4A:				; CODE XREF: sub_403A1C+18j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_403A5F


loc_403A57:				; CODE XREF: sub_403A1C+41j
		retn
; ---------------------------------------------------------------------------


loc_403A58:				; DATA XREF: sub_403A1C+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_403A57
; ---------------------------------------------------------------------------


loc_403A5F:				; CODE XREF: sub_403A1C:loc_403A57j
					; DATA XREF: sub_403A1C+36o
		pop	ebp
		retn
sub_403A1C	endp

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

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

; Attributes: bp-based frame


sub_403A64	proc near		; CODE XREF: sub_403BE8+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_403AF9
		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_403AD8
; ---------------------------------------------------------------------------


loc_403A97:				; CODE XREF: sub_403A64+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_4040F0
		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_403AD8:				; CODE XREF: sub_403A64+31j
		cmp	[ebp+var_C], 0
		jnz	short loc_403A97
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_403B00


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


loc_403AF9:				; DATA XREF: sub_403A64+13o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_403AEB
; ---------------------------------------------------------------------------


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


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

; Attributes: bp-based frame


sub_403B04	proc near		; CODE XREF: sub_403BE8+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
		mov	[ebp+var_14], 1AEh
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_4]
		call	sub_401C54
		inc	[ebp+var_14]
		mov	ax, word ptr [ebp+var_8]
		mov	[ebp+var_10], ax
		sub	[ebp+var_14], 9
		mov	eax, [ebp+var_C]
		mov	eax, [eax]
		call	sub_401DF4
		test	ax, ax
		jbe	loc_403BE0
		mov	[ebp+var_1E], ax
		mov	[ebp+var_E], 1


loc_403B51:				; CODE XREF: sub_403B04+D6j
		dec	[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
		add	[ebp+var_14], 54h
		movzx	eax, [ebp+var_10]
		shr	eax, 8
		mov	[ebp+var_1C], eax
		dec	[ebp+var_14]
		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
		dec	[ebp+var_14]
		mov	[ebp+var_14], 26Ch
		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
		inc	[ebp+var_14]
		imul	eax, [ebp+var_18], 0CE6Dh
		mov	[ebp+var_1C], eax
		add	[ebp+var_14], 59h
		mov	ax, word ptr [ebp+var_1C]
		mov	[ebp+var_10], ax
		add	[ebp+var_14], 0Fh
		add	[ebp+var_10], 58BFh
		add	[ebp+var_14], 0Bh
		inc	[ebp+var_E]
		dec	[ebp+var_1E]
		jnz	loc_403B51


loc_403BE0:				; CODE XREF: sub_403B04+3Dj
		sub	[ebp+var_14], 5Ah
		mov	esp, ebp
		pop	ebp
		retn
sub_403B04	endp


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

; Attributes: bp-based frame


sub_403BE8	proc near		; CODE XREF: sub_4042EC+2Ep

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_403C5F
		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_403A64
		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_403B04
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_403C66


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


loc_403C5F:				; DATA XREF: sub_403BE8+1Eo
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_403C51
; ---------------------------------------------------------------------------


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

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

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

; Attributes: bp-based frame


sub_403C6C	proc near		; CODE XREF: sub_403F00+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_403C84:				; CODE XREF: sub_403C6C+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_403C84
		mov	[ebp+var_C], 61h


loc_403CA1:				; CODE XREF: sub_403C6C+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_403CA1
		mov	[ebp+var_C], 30h


loc_403CBE:				; CODE XREF: sub_403C6C+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_403CBE
		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_403D23
		dec	eax
		jz	short loc_403D88
		dec	eax
		jz	loc_403E25
		jmp	loc_403EF5
; ---------------------------------------------------------------------------


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


loc_403D36:				; CODE XREF: sub_403C6C+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_403D61
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403D61:				; CODE XREF: sub_403C6C+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_403EF5
; ---------------------------------------------------------------------------


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


loc_403D9B:				; CODE XREF: sub_403C6C+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_403DC6
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403DC6:				; CODE XREF: sub_403C6C+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_403DFE
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403DFE:				; CODE XREF: sub_403C6C+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_403EF5
; ---------------------------------------------------------------------------


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


loc_403E38:				; CODE XREF: sub_403C6C+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_403E63
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403E63:				; CODE XREF: sub_403C6C+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_403E9B
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403E9B:				; CODE XREF: sub_403C6C+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_403ED3
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403ED3:				; CODE XREF: sub_403C6C+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_403EF5:				; CODE XREF: sub_403C6C+B2j
					; sub_403C6C+117j ...
		sub	[ebp+var_14], 4Dh
		mov	esp, ebp
		pop	ebp
		retn
sub_403C6C	endp

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

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

; Attributes: bp-based frame


sub_403F00	proc near		; CODE XREF: sub_404090+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_403FA4
		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_403F7B
; ---------------------------------------------------------------------------


loc_403F3A:				; CODE XREF: sub_403F00+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_403C6C
		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_403F7B:				; CODE XREF: sub_403F00+38j
		cmp	[ebp+var_C], 0
		jnz	short loc_403F3A
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_403FAB


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


loc_403FA4:				; DATA XREF: sub_403F00+1Ao
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_403F8E
; ---------------------------------------------------------------------------


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

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

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

; Attributes: bp-based frame


sub_403FB0	proc near		; CODE XREF: sub_404090+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
		dec	[ebp+var_10]
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_4]
		call	sub_401C54
		add	[ebp+var_10], 2Ah
		mov	ax, [ebp+var_6]
		mov	[ebp+var_14], ax
		inc	[ebp+var_10]
		mov	eax, [ebp+var_C]
		mov	eax, [eax]
		call	sub_401DF4
		test	ax, ax
		jbe	loc_404085
		mov	[ebp+var_1E], ax
		mov	[ebp+var_12], 1


loc_403FFA:				; CODE XREF: sub_403FB0+CFj
		dec	[ebp+var_10]
		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
		inc	[ebp+var_10]
		movzx	eax, [ebp+var_14]
		shr	eax, 8
		mov	[ebp+var_1C], eax
		inc	[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
		dec	[ebp+var_10]
		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], 10h
		mov	[ebp+var_1C], 0CE6Dh
		mov	[ebp+var_10], 319h
		mov	ax, word ptr [ebp+var_18]
		imul	word ptr [ebp+var_1C]
		add	ax, 58BFh
		mov	[ebp+var_14], ax
		mov	[ebp+var_10], 33Fh
		inc	[ebp+var_12]
		dec	[ebp+var_1E]
		jnz	loc_403FFA


loc_404085:				; CODE XREF: sub_403FB0+3Aj
		add	[ebp+var_10], 34h
		mov	esp, ebp
		pop	ebp
		retn
sub_403FB0	endp

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

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

; Attributes: bp-based frame


sub_404090	proc near		; CODE XREF: sub_404344+64p

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_4040E4
		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_403FB0
		mov	eax, [ebp+var_10]
		mov	edx, [ebp+var_C]
		call	sub_403F00
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4040EB


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


loc_4040E4:				; DATA XREF: sub_404090+19o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4040DB
; ---------------------------------------------------------------------------


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


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

; Attributes: bp-based frame


sub_4040F0	proc near		; CODE XREF: sub_403A64+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_404103:				; CODE XREF: sub_4040F0+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_404103
		mov	[ebp+var_E6], 3Eh
		mov	[ebp+var_E2], 3Fh
		mov	[ebp+var_10], 30h


loc_40412E:				; CODE XREF: sub_4040F0+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_40412E
		mov	[ebp+var_10], 42h


loc_404153:				; CODE XREF: sub_4040F0+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_404153
		mov	[ebp+var_10], 61h


loc_404178:				; CODE XREF: sub_4040F0+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_404178
		mov	eax, [ebp+var_4]
		call	sub_401DF4
		sub	eax, 2
		jz	short loc_4041B2
		dec	eax
		jz	short loc_404207
		dec	eax
		jz	loc_40426D
		jmp	loc_4042E5
; ---------------------------------------------------------------------------


loc_4041B2:				; CODE XREF: sub_4040F0+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_4042E5
; ---------------------------------------------------------------------------


loc_404207:				; CODE XREF: sub_4040F0+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_4042E5
; ---------------------------------------------------------------------------


loc_40426D:				; CODE XREF: sub_4040F0+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_4042E5:				; CODE XREF: sub_4040F0+BDj
					; sub_4040F0+112j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4040F0	endp

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

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

; Attributes: bp-based frame


sub_4042EC	proc near		; CODE XREF: sub_405C7C+7Dp
					; sub_407280+38p ...

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, 0FFFFFFF4h
		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_404335
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_403BE8
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40433C


loc_40432C:				; CODE XREF: sub_4042EC+4Ej
		lea	eax, [ebp+var_C]
		call	@System@@WStrClr$qqrpv ; System::__linkproc__ WStrClr(void *)
		retn
; ---------------------------------------------------------------------------


loc_404335:				; DATA XREF: sub_4042EC+1Ao
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40432C
; ---------------------------------------------------------------------------


loc_40433C:				; CODE XREF: sub_4042EC+48j
					; DATA XREF: sub_4042EC+3Bo
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4042EC	endp

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

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

; Attributes: bp-based frame


sub_404344	proc near		; CODE XREF: sub_404344+48p
					; sub_406464+C1p ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_6		= word ptr -6
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_6], dx
		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_4043CB
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_C]
		xor	edx, edx
		call	@System@@WStrCmp$qqrv ;	System::__linkproc__ WStrCmp(void)
		jnz	short loc_404393
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, offset dword_4043E0
		mov	dx, [ebp+var_6]
		mov	eax, [ebp+var_4]
		call	sub_404344
		jmp	short loc_4043AD
; ---------------------------------------------------------------------------


loc_404393:				; CODE XREF: sub_404344+36j
		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	dx, [ebp+var_6]
		call	sub_404090


loc_4043AD:				; CODE XREF: sub_404344+4Dj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4043D2


loc_4043BA:				; CODE XREF: sub_404344+8Cj
		lea	eax, [ebp+var_10]
		call	sub_401C00
		lea	eax, [ebp+var_C]
		call	@System@@WStrClr$qqrpv ; System::__linkproc__ WStrClr(void *)
		retn
; ---------------------------------------------------------------------------


loc_4043CB:				; DATA XREF: sub_404344+21o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4043BA
; ---------------------------------------------------------------------------


loc_4043D2:				; CODE XREF: sub_404344+86j
					; DATA XREF: sub_404344+71o
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_404344	endp

; ---------------------------------------------------------------------------
		align 4
		dd 2
dword_4043E0	dd 61h		
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4043E4	proc near		; DATA XREF: CODE:00409CB8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_404409
		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_404410


loc_404408:				; CODE XREF: sub_4043E4+2Aj
		retn
; ---------------------------------------------------------------------------


loc_404409:				; DATA XREF: sub_4043E4+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404408
; ---------------------------------------------------------------------------


loc_404410:				; CODE XREF: sub_4043E4:loc_404408j
					; DATA XREF: sub_4043E4+1Fo
		pop	ebp
		retn
sub_4043E4	endp

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

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



sub_404414	proc near		; DATA XREF: CODE:00409CB4o
		sub	ds:dword_40B22C, 1
		retn
sub_404414	endp

; ---------------------------------------------------------------------------
off_40441C	dd offset dword_404468	; DATA XREF: sub_406AC4+6Er
		dd 2 dup(0)
		dd offset dword_404468
		dd 4 dup(0)
		dd offset aAlokwuukwjxb	; "alokwuukwjxb"
		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_404528
dword_404468	dd 0Eh,	20000h						; CODE:00404428o
		db 2 dup(0)
		dd offset off_401000
unknown_libname_16 dw 0Ch
		db 2 dup(0)
		dd offset off_401000
		dw 1Ch
		db 2 dup(0)
aAlokwuukwjxb	db 12,'alokwuukwjxb'    ; DATA XREF: CODE:0040443Co
		align 10h
; [00000096 BYTES: COLLAPSED FUNCTION sub_404490. PRESS	KEYPAD "+" TO EXPAND]
		align 4

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

; Attributes: bp-based frame


sub_404528	proc near		; DATA XREF: CODE:00404464o

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_4030FC
		cmp	[ebp+var_5], 0
		jle	short loc_404552
		mov	eax, [ebp+var_4]
		call	@System@@ClassDestroy$qqrp14System@TObject ; System::__linkproc__ ClassDestroy(System::TObject *)


loc_404552:				; CODE XREF: sub_404528+20j
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_404528	endp

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

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

; Attributes: bp-based frame


sub_404558	proc near		; CODE XREF: sub_404490+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_40463D
		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_40A2FC
		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_4045AA
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	loc_404647
; ---------------------------------------------------------------------------


loc_4045AA:				; CODE XREF: sub_404558+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_4045F8
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_404647
; ---------------------------------------------------------------------------


loc_4045F8:				; CODE XREF: sub_404558+94j
		lea	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+var_4]
		add	eax, 10h
		push	eax
		mov	eax, ds:off_40A284
		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_40A248
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	short loc_404633
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_404647
; ---------------------------------------------------------------------------


loc_404633:				; CODE XREF: sub_404558+CFj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_404647
; ---------------------------------------------------------------------------


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


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

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

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

; Attributes: bp-based frame


sub_404650	proc near		; CODE XREF: sub_404490+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_4046C6
		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_404683
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4046D0
; ---------------------------------------------------------------------------


loc_404683:				; CODE XREF: sub_404650+27j
		lea	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+var_4]
		add	eax, 14h
		push	eax
		push	offset dword_4046D8
		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_40A248
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jz	short loc_4046BC
		cmp	[ebp+var_8], 34h
		jnb	short loc_4046BC
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4046D0
; ---------------------------------------------------------------------------


loc_4046BC:				; CODE XREF: sub_404650+5Aj
					; sub_404650+60j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4046D0
; ---------------------------------------------------------------------------


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


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

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

; Attributes: bp-based frame


sub_4046DC	proc near		; CODE XREF: sub_404788+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_40476E
		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_402A18
		movzx	eax, ax
		lea	edx, [ebp+var_18]
		call	sub_4031F4
		lea	edx, [ebp+var_14]
		movzx	eax, word ptr [ebp+var_8]
		call	sub_4031F4
		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_404775


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


loc_40476E:				; DATA XREF: sub_4046DC+1Eo
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404760
; ---------------------------------------------------------------------------


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

; ---------------------------------------------------------------------------
		align 4
_str__		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_4046DC+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_404788	proc near		; CODE XREF: sub_406AC4+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_4047B7
		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_4046DC


loc_4047B7:				; CODE XREF: sub_404788+13j
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_404788	endp

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

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

; Attributes: bp-based frame


sub_4047BC	proc near		; DATA XREF: CODE:00409CC0o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_4047E1
		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_4047E8


loc_4047E0:				; CODE XREF: sub_4047BC+2Aj
		retn
; ---------------------------------------------------------------------------


loc_4047E1:				; DATA XREF: sub_4047BC+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4047E0
; ---------------------------------------------------------------------------


loc_4047E8:				; CODE XREF: sub_4047BC:loc_4047E0j
					; DATA XREF: sub_4047BC+1Fo
		pop	ebp
		retn
sub_4047BC	endp

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

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



sub_4047EC	proc near		; DATA XREF: CODE:00409CBCo
		sub	ds:dword_40B230, 1
		retn
sub_4047EC	endp


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

; Attributes: bp-based frame


sub_4047F4	proc near		; DATA XREF: CODE:00409CC8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_404819
		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_404820


loc_404818:				; CODE XREF: sub_4047F4+2Aj
		retn
; ---------------------------------------------------------------------------


loc_404819:				; DATA XREF: sub_4047F4+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404818
; ---------------------------------------------------------------------------


loc_404820:				; CODE XREF: sub_4047F4:loc_404818j
					; DATA XREF: sub_4047F4+1Fo
		pop	ebp
		retn
sub_4047F4	endp

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

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



sub_404824	proc near		; DATA XREF: CODE:00409CC4o
		sub	ds:dword_40B234, 1
		retn
sub_404824	endp


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

; Attributes: bp-based frame


sub_40482C	proc near		; DATA XREF: CODE:00409CD0o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_404851
		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_404858


loc_404850:				; CODE XREF: sub_40482C+2Aj
		retn
; ---------------------------------------------------------------------------


loc_404851:				; DATA XREF: sub_40482C+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404850
; ---------------------------------------------------------------------------


loc_404858:				; CODE XREF: sub_40482C:loc_404850j
					; DATA XREF: sub_40482C+1Fo
		pop	ebp
		retn
sub_40482C	endp

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

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



sub_40485C	proc near		; DATA XREF: CODE:00409CCCo
		sub	ds:dword_40B238, 1
		retn
sub_40485C	endp


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

; Attributes: bp-based frame


sub_404864	proc near		; DATA XREF: CODE:00409CD8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_404889
		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_404890


loc_404888:				; CODE XREF: sub_404864+2Aj
		retn
; ---------------------------------------------------------------------------


loc_404889:				; DATA XREF: sub_404864+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404888
; ---------------------------------------------------------------------------


loc_404890:				; CODE XREF: sub_404864:loc_404888j
					; DATA XREF: sub_404864+1Fo
		pop	ebp
		retn
sub_404864	endp

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

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



sub_404894	proc near		; DATA XREF: CODE:00409CD4o
		sub	ds:dword_40B23C, 1
		retn
sub_404894	endp


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

; Attributes: bp-based frame


sub_40489C	proc near		; CODE XREF: sub_4048D8+2Cp
					; sub_404A00+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_4048D0
		mov	[ebp+var_C], eax


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


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

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

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

; Attributes: bp-based frame


sub_4048D8	proc near		; CODE XREF: sub_404B64+51p
					; sub_404BF0+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_4049EF
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	[ebp+var_D], 0
		mov	edx, [ebp+var_8]
		mov	al, 5Ch
		call	sub_40489C
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jle	loc_4049D9
		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_40A2B4
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	short loc_4049D9
		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_4049A2
		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_40A19C
		mov	eax, [eax]
		call	eax
		test	eax, eax
		setz	[ebp+var_D]
		jmp	short loc_4049CC
; ---------------------------------------------------------------------------


loc_4049A2:				; CODE XREF: sub_4048D8+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_40A19C
		mov	eax, [eax]
		call	eax
		test	eax, eax
		setz	[ebp+var_D]


loc_4049CC:				; CODE XREF: sub_4048D8+C8j
		mov	eax, [ebp+var_20]
		push	eax
		mov	eax, ds:off_40A2D4
		mov	eax, [eax]
		call	eax


loc_4049D9:				; CODE XREF: sub_4048D8+38j
					; sub_4048D8+80j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4049F6


loc_4049E6:				; CODE XREF: sub_4048D8+11Cj
		lea	eax, [ebp+var_14]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_4049EF:				; DATA XREF: sub_4048D8+18o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4049E6
; ---------------------------------------------------------------------------


loc_4049F6:				; CODE XREF: sub_4048D8+116j
					; DATA XREF: sub_4048D8+109o
		mov	al, [ebp+var_D]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
sub_4048D8	endp


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

; Attributes: bp-based frame


sub_404A00	proc near		; CODE XREF: sub_404D3C+2Ep
					; sub_404DB0+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_404B53
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	[ebp+var_D], 0
		mov	edx, [ebp+var_8]
		mov	al, 5Ch
		call	sub_40489C
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jle	loc_404B3D
		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_40A2D0
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	loc_404B3D
		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_404AA6
		xor	eax, eax
		mov	[ebp+var_2C], eax
		jmp	short loc_404AB1
; ---------------------------------------------------------------------------


loc_404AA6:				; CODE XREF: sub_404A00+9Dj
		mov	eax, [ebp+var_14]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	[ebp+var_2C], eax


loc_404AB1:				; CODE XREF: sub_404A00+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_40A174
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	short loc_404B30
		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_40A174
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	short loc_404B28
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+var_1C]
		jnz	short loc_404B1E
		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_404B30
; ---------------------------------------------------------------------------


loc_404B1E:				; CODE XREF: sub_404A00+106j
		mov	eax, [ebp+var_24]
		call	sub_401164
		jmp	short loc_404B30
; ---------------------------------------------------------------------------


loc_404B28:				; CODE XREF: sub_404A00+FEj
		mov	eax, [ebp+var_24]
		call	sub_401164


loc_404B30:				; CODE XREF: sub_404A00+D0j
					; sub_404A00+11Cj ...
		mov	eax, [ebp+var_20]
		push	eax
		mov	eax, ds:off_40A2D4
		mov	eax, [eax]
		call	eax


loc_404B3D:				; CODE XREF: sub_404A00+38j
					; sub_404A00+76j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_404B5A


loc_404B4A:				; CODE XREF: sub_404A00+158j
		lea	eax, [ebp+var_14]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_404B53:				; DATA XREF: sub_404A00+18o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404B4A
; ---------------------------------------------------------------------------


loc_404B5A:				; CODE XREF: sub_404A00+152j
					; DATA XREF: sub_404A00+145o
		mov	al, [ebp+var_D]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
sub_404A00	endp


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

; Attributes: bp-based frame


sub_404B64	proc near		; CODE XREF: sub_40568C+62p
					; sub_405878+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_404BD3
		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
		inc	eax
		push	eax
		mov	ecx, 1
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_4048D8
		mov	[ebp+var_D], al
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_404BDA


loc_404BCA:				; CODE XREF: sub_404B64+74j
		lea	eax, [ebp+var_14]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_404BD3:				; DATA XREF: sub_404B64+18o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404BCA
; ---------------------------------------------------------------------------


loc_404BDA:				; CODE XREF: sub_404B64+6Ej
					; DATA XREF: sub_404B64+61o
		mov	al, [ebp+var_D]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_404B64	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 1
dword_404BEC	dd 0		
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_404BF0	proc near		; CODE XREF: sub_409504+66p r+9Dp

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_404C61
		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
		add	eax, 2
		push	eax
		mov	ecx, 7
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_4048D8
		mov	[ebp+var_D], al
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_404C68


loc_404C58:				; CODE XREF: sub_404BF0+76j
		lea	eax, [ebp+var_14]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_404C61:				; DATA XREF: sub_404BF0+18o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404C58
; ---------------------------------------------------------------------------


loc_404C68:				; CODE XREF: sub_404BF0+70j
					; DATA XREF: sub_404BF0+63o
		mov	al, [ebp+var_D]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_404BF0	endp

; ---------------------------------------------------------------------------
		dd 0FFFFFFFFh, 2
dword_404C78	dd 0		
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_404C7C	proc near		; CODE XREF: r+26Bp

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_404CEB
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_14]
		mov	ecx, offset dword_404D04
		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_4048D8
		mov	[ebp+var_D], al
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_404CF2


loc_404CE2:				; CODE XREF: sub_404C7C+74j
		lea	eax, [ebp+var_14]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_404CEB:				; DATA XREF: sub_404C7C+18o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404CE2
; ---------------------------------------------------------------------------


loc_404CF2:				; CODE XREF: sub_404C7C+6Ej
					; DATA XREF: sub_404C7C+61o
		mov	al, [ebp+var_D]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_404C7C	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 1
dword_404D04	dd 0		
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_404D08	proc near		; CODE XREF: sub_405878+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_4048D8
		mov	[ebp+var_D], al
		mov	al, [ebp+var_D]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_404D08	endp


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

; Attributes: bp-based frame


sub_404D3C	proc near		; CODE XREF: sub_40571C+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_404A00
		test	al, al
		jz	short loc_404DA8
		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_404D9C
		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_404D9C:				; CODE XREF: sub_404D3C+49j
		mov	eax, [ebp+var_14]
		call	sub_401164
		mov	[ebp+var_D], 1


loc_404DA8:				; CODE XREF: sub_404D3C+35j
		mov	al, [ebp+var_D]
		mov	esp, ebp
		pop	ebp
		retn
sub_404D3C	endp

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

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

; Attributes: bp-based frame


sub_404DB0	proc near		; CODE XREF: sub_409504+23p r+59p

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_404A00
		test	al, al
		jz	short loc_404E1C
		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_404E10
		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_404E10:				; CODE XREF: sub_404DB0+49j
		mov	eax, [ebp+var_14]
		call	sub_401164
		mov	[ebp+var_D], 1


loc_404E1C:				; CODE XREF: sub_404DB0+35j
		mov	al, [ebp+var_D]
		mov	esp, ebp
		pop	ebp
		retn
sub_404DB0	endp

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

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

; Attributes: bp-based frame


sub_404E24	proc near		; CODE XREF: sub_4057AC+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_404A00
		test	al, al
		jz	short loc_404E87
		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_404E87:				; CODE XREF: sub_404E24+35j
		mov	al, [ebp+var_D]
		mov	esp, ebp
		pop	ebp
		retn
sub_404E24	endp

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

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

; Attributes: bp-based frame


sub_404E90	proc near		; DATA XREF: CODE:00409CE0o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_404EB5
		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_404EBC


loc_404EB4:				; CODE XREF: sub_404E90+2Aj
		retn
; ---------------------------------------------------------------------------


loc_404EB5:				; DATA XREF: sub_404E90+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_404EB4
; ---------------------------------------------------------------------------


loc_404EBC:				; CODE XREF: sub_404E90:loc_404EB4j
					; DATA XREF: sub_404E90+1Fo
		pop	ebp
		retn
sub_404E90	endp

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

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



sub_404EC0	proc near		; DATA XREF: CODE:00409CDCo
		sub	ds:dword_40B240, 1
		retn
sub_404EC0	endp

; ---------------------------------------------------------------------------
off_404EC8	dd offset dword_404F14	; DATA XREF: sub_40524C+3Er
					; sub_4053DC+33r
		dd 2 dup(0)
		dd offset dword_404F14
		dd 4 dup(0)
		dd offset aEpefpohmsbh	; "epefpohmsbh"
		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_404F14	dd 0Eh,	10000h						; CODE:00404ED4o
		db 2 dup(0)
		dd offset off_401000
		db 8			; Method
		db 0
		db 0			; Procedure
		db 0
aEpefpohmsbh	db 11,'epefpohmsbh'     ; DATA XREF: CODE:00404EE8o
		align 4

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

; Attributes: bp-based frame


sub_404F34	proc near		; CODE XREF: sub_40524C+6Ep
					; sub_4053DC+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_405088
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		push	0
		push	1
		push	2
		mov	eax, ds:off_40A28C
		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_404F80
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	loc_405092
; ---------------------------------------------------------------------------


loc_404F80:				; CODE XREF: sub_404F34+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_40A2EC
		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_40A318
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_404FD3
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	loc_405092
; ---------------------------------------------------------------------------


loc_404FD3:				; CODE XREF: sub_404F34+90j
		mov	eax, [ebp+var_10]
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		mov	eax, ds:off_40A2C0
		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_40A20C
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jz	short loc_405017
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_405092
; ---------------------------------------------------------------------------


loc_405017:				; CODE XREF: sub_404F34+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_40A298
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jz	short loc_40504C
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_405092
; ---------------------------------------------------------------------------


loc_40504C:				; CODE XREF: sub_404F34+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_40A298
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jz	short loc_40507A
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_405092
; ---------------------------------------------------------------------------


loc_40507A:				; CODE XREF: sub_404F34+13Aj
		mov	[ebp+var_5], 1
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_405092
; ---------------------------------------------------------------------------


loc_405088:				; DATA XREF: sub_404F34+16o
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_405092:				; CODE XREF: sub_404F34+47j
					; sub_404F34+9Aj ...
		mov	al, [ebp+var_5]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_404F34	endp


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

; Attributes: bp-based frame


sub_40509C	proc near		; CODE XREF: sub_40524C+F8p
					; sub_4053DC+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_40A1B4
		mov	eax, [eax]
		call	eax
		pop	ecx
		pop	ebp
		retn
sub_40509C	endp

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

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

; Attributes: bp-based frame


sub_4050B8	proc near		; CODE XREF: sub_4055AC+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_40A30C
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 4
		jz	short loc_4050EC
		xor	eax, eax
		mov	[ebp+var_8], eax
		jmp	short loc_4050FC
; ---------------------------------------------------------------------------


loc_4050EC:				; CODE XREF: sub_4050B8+2Bj
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A1C4
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_8], eax


loc_4050FC:				; CODE XREF: sub_4050B8+32j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_4050B8	endp

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

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

; Attributes: bp-based frame


sub_405104	proc near		; CODE XREF: sub_4055AC+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_405166


loc_40512D:				; CODE XREF: sub_405104+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_40A30C
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0FFFFFFFFh
		jz	short loc_405166
		mov	eax, [ebp+var_14]
		sub	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jg	short loc_40512D


loc_405166:				; CODE XREF: sub_405104+27j
					; sub_405104+54j
		cmp	[ebp+var_8], 0
		jnz	short loc_405170
		mov	[ebp+var_D], 1


loc_405170:				; CODE XREF: sub_405104+66j
		mov	al, [ebp+var_D]
		mov	esp, ebp
		pop	ebp
		retn
sub_405104	endp

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

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

; Attributes: bp-based frame


sub_405178	proc near		; CODE XREF: sub_405544+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_4051EC
		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_40A2E0
		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_4051D6
		mov	[ebp+var_9], 1


loc_4051D6:				; CODE XREF: sub_405178+58j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4051F3


loc_4051E3:				; CODE XREF: sub_405178+79j
		lea	eax, [ebp+var_8]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_4051EC:				; DATA XREF: sub_405178+17o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4051E3
; ---------------------------------------------------------------------------


loc_4051F3:				; CODE XREF: sub_405178+73j
					; DATA XREF: sub_405178+66o
		mov	al, [ebp+var_9]
		mov	esp, ebp
		pop	ebp
		retn
sub_405178	endp

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

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

; Attributes: bp-based frame


sub_4051FC	proc near		; CODE XREF: sub_405518+16p
					; sub_405518+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_40A1C0
		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_40A2E0
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 4
		jnz	short loc_405244
		mov	[ebp+var_9], 1


loc_405244:				; CODE XREF: sub_4051FC+42j
		mov	al, [ebp+var_9]
		mov	esp, ebp
		pop	ebp
		retn
sub_4051FC	endp

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

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

; Attributes: bp-based frame


sub_40524C	proc near		; CODE XREF: sub_4059F8+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_405377
		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_404EC8
		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_40A238
		mov	eax, [eax]
		mov	edx, [ebp+var_14]
		mov	[edx+0Ch], eax
		mov	edx, 1D4C0h
		mov	eax, [ebp+var_14]
		call	sub_404F34
		mov	[ebp+var_15], al
		cmp	[ebp+var_15], 0
		jz	loc_405359
		xor	eax, eax
		push	ebp
		push	offset loc_405352
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	eax, eax
		push	ebp
		push	offset loc_40532A
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_14]
		call	sub_405518
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_14]
		call	sub_405544
		mov	eax, 12Ch
		call	sub_406AB0
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_14]
		call	sub_4055AC
		mov	[ebp+var_15], al
		cmp	[ebp+var_15], 0
		jz	short loc_405320
		mov	[ebp+var_D], 1


loc_405320:				; CODE XREF: sub_40524C+CEj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_405334
; ---------------------------------------------------------------------------


loc_40532A:				; DATA XREF: sub_40524C+91o
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_405334:				; CODE XREF: sub_40524C+DCj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405359


loc_405341:				; CODE XREF: sub_40524C+10Bj
		mov	eax, [ebp+var_14]
		call	sub_40509C
		mov	eax, [ebp+var_14]
		call	sub_4013F4
		retn
; ---------------------------------------------------------------------------


loc_405352:				; DATA XREF: sub_40524C+83o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405341
; ---------------------------------------------------------------------------


loc_405359:				; CODE XREF: sub_40524C+7Aj
					; sub_40524C+105j
					; DATA XREF: ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40537E


loc_405366:				; CODE XREF: sub_40524C+130j
		lea	eax, [ebp+var_C]
		call	sub_401C00
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_405377:				; DATA XREF: sub_40524C+25o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405366
; ---------------------------------------------------------------------------


loc_40537E:				; CODE XREF: sub_40524C+12Aj
					; DATA XREF: sub_40524C+115o
		mov	al, [ebp+var_D]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_40524C	endp

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

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

; Attributes: bp-based frame


sub_40538C	proc near		; CODE XREF: sub_4053DC+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_40A200
		mov	eax, [eax]
		mov	eax, [eax+1Ch]
		call	sub_401304
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jl	short loc_4053D6
		mov	eax, ds:off_40A200
		mov	eax, [eax]
		mov	eax, [eax+1Ch]
		cmp	eax, [ebp+var_8]
		jle	short loc_4053D6
		mov	ecx, [ebp+var_4]
		mov	eax, ds:off_40A200
		mov	eax, [eax]
		mov	edx, [ebp+var_8]
		call	sub_4033CC


loc_4053D6:				; CODE XREF: sub_40538C+27j
					; sub_40538C+36j
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_40538C	endp

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

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

; Attributes: bp-based frame


sub_4053DC	proc near		; CODE XREF: sub_405B5C+63p
					; sub_405C7C+5Ep

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_405504
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	[ebp+var_D], 0
		mov	dl, 1
		mov	eax, off_404EC8
		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_40538C
		mov	edx, [ebp+var_1C]
		mov	eax, [ebp+var_14]
		add	eax, 8
		call	sub_401C54
		mov	eax, ds:off_40A238
		mov	eax, [eax]
		mov	edx, [ebp+var_14]
		mov	[edx+0Ch], eax
		mov	edx, 1D4C0h
		mov	eax, [ebp+var_14]
		call	sub_404F34
		mov	[ebp+var_15], al
		cmp	[ebp+var_15], 0
		jz	loc_4054E6
		xor	eax, eax
		push	ebp
		push	offset loc_4054DF
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	eax, eax
		push	ebp
		push	offset loc_4054B7
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_14]
		call	sub_405518
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_14]
		call	sub_405544
		mov	eax, 64h
		call	sub_406AB0
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_14]
		call	sub_4055AC
		mov	[ebp+var_15], al
		cmp	[ebp+var_15], 0
		jz	short loc_4054AD
		mov	[ebp+var_D], 1


loc_4054AD:				; CODE XREF: sub_4053DC+CBj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4054C1
; ---------------------------------------------------------------------------


loc_4054B7:				; DATA XREF: sub_4053DC+8Eo
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_4054C1:				; CODE XREF: sub_4053DC+D9j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4054E6


loc_4054CE:				; CODE XREF: sub_4053DC+108j
		mov	eax, [ebp+var_14]
		call	sub_40509C
		mov	eax, [ebp+var_14]
		call	sub_4013F4
		retn
; ---------------------------------------------------------------------------


loc_4054DF:				; DATA XREF: sub_4053DC+80o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4054CE
; ---------------------------------------------------------------------------


loc_4054E6:				; CODE XREF: sub_4053DC+77j
					; sub_4053DC+102j
					; DATA XREF: ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40550B


loc_4054F3:				; CODE XREF: sub_4053DC+12Dj
		lea	eax, [ebp+var_1C]
		call	sub_401C00
		lea	eax, [ebp+var_8]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_405504:				; DATA XREF: sub_4053DC+22o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4054F3
; ---------------------------------------------------------------------------


loc_40550B:				; CODE XREF: sub_4053DC+127j
					; DATA XREF: sub_4053DC+112o
		mov	al, [ebp+var_D]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4053DC	endp

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

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

; Attributes: bp-based frame


sub_405518	proc near		; CODE XREF: sub_40524C+A2p
					; sub_4053DC+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_4051FC
		mov	cl, 1
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_4051FC
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_405518	endp


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

; Attributes: bp-based frame


sub_405544	proc near		; CODE XREF: sub_40524C+ADp
					; sub_4053DC+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_40559F
		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_4051FC
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_405178
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4055A6


loc_405596:				; CODE XREF: sub_405544+60j
		lea	eax, [ebp+var_8]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_40559F:				; DATA XREF: sub_405544+17o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405596
; ---------------------------------------------------------------------------


loc_4055A6:				; CODE XREF: sub_405544+5Aj
					; DATA XREF: sub_405544+4Do
		mov	esp, ebp
		pop	ebp
		retn
sub_405544	endp

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

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

; Attributes: bp-based frame


sub_4055AC	proc near		; CODE XREF: sub_40524C+C2p
					; sub_4053DC+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_4050B8
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 5B8D80h
		jle	short loc_4055DC
		mov	eax, [ebp+var_4]
		call	sub_40509C
		jmp	short loc_4055ED
; ---------------------------------------------------------------------------


loc_4055DC:				; CODE XREF: sub_4055AC+24j
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_10]
		mov	eax, [ebp+var_4]
		call	sub_405104
		mov	[ebp+var_9], al


loc_4055ED:				; CODE XREF: sub_4055AC+2Ej
		mov	al, [ebp+var_9]
		mov	esp, ebp
		pop	ebp
		retn
sub_4055AC	endp


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

; Attributes: bp-based frame


sub_4055F4	proc near		; DATA XREF: CODE:00409CE8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_405619
		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_405620


loc_405618:				; CODE XREF: sub_4055F4+2Aj
		retn
; ---------------------------------------------------------------------------


loc_405619:				; DATA XREF: sub_4055F4+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405618
; ---------------------------------------------------------------------------


loc_405620:				; CODE XREF: sub_4055F4:loc_405618j
					; DATA XREF: sub_4055F4+1Fo
		pop	ebp
		retn
sub_4055F4	endp

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

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



sub_405624	proc near		; DATA XREF: CODE:00409CE4o
		sub	ds:dword_40B244, 1
		retn
sub_405624	endp


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



sub_40562C	proc near		; CODE XREF: sub_406464+40p r+2Ap ...
		mov	eax, ds:off_40A29C
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A314
		mov	[edx], eax
		retn
sub_40562C	endp

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

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

; Attributes: bp-based frame


sub_405640	proc near		; CODE XREF: sub_405668+6p
					; sub_4057AC+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_40A310
		mov	eax, [eax]
		call	eax
		lea	edx, [ebp+var_8]
		lea	eax, [ebp+var_18]
		call	sub_402D40
		fld	[ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_405640	endp

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

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

; Attributes: bp-based frame


sub_405668	proc near		; CODE XREF: sub_406464:loc_406591p
					; sub_406464+415p

var_10		= qword	ptr -10h
var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF0h
		call	sub_405640
		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_405668	endp


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

; Attributes: bp-based frame


sub_40568C	proc near		; CODE XREF: sub_406464+CFp
					; sub_406464+3B6p ...

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_40570E
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ds:off_40A1D4
		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_404B64
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405715


loc_405700:				; CODE XREF: sub_40568C+87j
		lea	eax, [ebp+var_10]
		mov	edx, 4
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_40570E:				; DATA XREF: sub_40568C+27o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405700
; ---------------------------------------------------------------------------


loc_405715:				; CODE XREF: sub_40568C+81j
					; DATA XREF: sub_40568C+6Fo
		mov	esp, ebp
		pop	ebp
		retn
sub_40568C	endp

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

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

; Attributes: bp-based frame


sub_40571C	proc near		; CODE XREF: sub_407098+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_40579E
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ds:off_40A1D4
		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_404D3C
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4057A5


loc_405788:				; CODE XREF: sub_40571C+87j
		lea	eax, [ebp+var_10]
		mov	edx, 2
		call	sub_401C24
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_40579E:				; DATA XREF: sub_40571C+1Fo
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405788
; ---------------------------------------------------------------------------


loc_4057A5:				; CODE XREF: sub_40571C+81j
					; DATA XREF: sub_40571C+67o
		mov	esp, ebp
		pop	ebp
		retn
sub_40571C	endp

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

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

; Attributes: bp-based frame


sub_4057AC	proc near		; CODE XREF: sub_405858+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_405846
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ds:off_40A1D4
		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_404E24
		test	al, al
		jnz	short loc_405818
		call	sub_405640
		fsub	flt_405854
		fstp	[ebp+var_10]
		wait
		jmp	short loc_40582B
; ---------------------------------------------------------------------------


loc_405818:				; CODE XREF: sub_4057AC+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_40582B:				; CODE XREF: sub_4057AC+6Aj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40584D


loc_405838:				; CODE XREF: sub_4057AC+9Fj
		lea	eax, [ebp+var_1C]
		mov	edx, 3
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_405846:				; DATA XREF: sub_4057AC+17o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405838
; ---------------------------------------------------------------------------


loc_40584D:				; CODE XREF: sub_4057AC+99j
					; DATA XREF: sub_4057AC+87o
		fld	[ebp+var_10]
		mov	esp, ebp
		pop	ebp
		retn
sub_4057AC	endp

; ---------------------------------------------------------------------------
flt_405854	dd 1.0e1		; DATA XREF: sub_4057AC+60r

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

; Attributes: bp-based frame


sub_405858	proc near		; CODE XREF: sub_40595C+1Bp

var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	eax, ds:off_40A32C
		mov	eax, [eax]
		call	sub_4057AC
		fstp	[ebp+var_8]
		wait
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_405858	endp

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

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

; Attributes: bp-based frame


sub_405878	proc near		; CODE XREF: sub_406464+1A6p

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_405880:				; CODE XREF: sub_405878+Dj
		push	0
		push	0
		dec	ecx
		jnz	short loc_405880
		push	ecx
		xor	eax, eax
		push	ebp
		push	offset loc_405950
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		call	sub_405640
		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_40A32C
		mov	ecx, [ecx]
		mov	edx, ds:off_40A1D4
		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_404D08
		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_40A1D4
		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_404B64
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405957


loc_405942:				; CODE XREF: sub_405878+DDj
		lea	eax, [ebp+var_24]
		mov	edx, 5
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_405950:				; DATA XREF: sub_405878+13o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405942
; ---------------------------------------------------------------------------


loc_405957:				; CODE XREF: sub_405878+D7j
					; DATA XREF: sub_405878+C5o
		mov	esp, ebp
		pop	ebp
		retn
sub_405878	endp

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

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

; Attributes: bp-based frame


sub_40595C	proc near		; CODE XREF: sub_406464:loc_4065E6p

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_4059DF
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		call	sub_405858
		fstp	[ebp+var_10]
		wait
		call	sub_405640
		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_406A88
		fstp	[ebp+var_18]
		wait
		fld	[ebp+var_18]
		fcomp	flt_4059F4
		fnstsw	ax
		sahf
		jnb	short loc_4059CC
		call	sub_405640
		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_4059D0


loc_4059CC:				; CODE XREF: sub_40595C+4Bj
		xor	eax, eax
		jmp	short loc_4059D2
; ---------------------------------------------------------------------------


loc_4059D0:				; CODE XREF: sub_40595C+6Ej
		mov	al, 1


loc_4059D2:				; CODE XREF: sub_40595C+72j
		mov	[ebp+var_1], al
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4059E9
; ---------------------------------------------------------------------------


loc_4059DF:				; DATA XREF: sub_40595C+10o
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_4059E9:				; CODE XREF: sub_40595C+81j
		mov	al, [ebp+var_1]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40595C	endp

; ---------------------------------------------------------------------------
		align 4
flt_4059F4	dd 1.2e1		; DATA XREF: sub_40595C+42r

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

; Attributes: bp-based frame


sub_4059F8	proc near		; CODE XREF: sub_406464+E3p

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_402314
		xor	eax, eax
		push	ebp
		push	offset loc_405B4C
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_14]
		mov	edx, ds:off_40A1A4
		mov	edx, [edx]
		call	sub_401C98
		xor	eax, eax
		push	ebp
		push	offset loc_405B14
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_44]
		mov	edx, ds:off_40A1A4
		mov	edx, [edx]
		call	sub_401C98
		lea	eax, [ebp+var_40]
		mov	edx, ds:off_40A1B0
		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_40A2E8
		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_403370
		xor	eax, eax
		mov	[ebp+var_8], eax


loc_405AAE:				; CODE XREF: sub_4059F8+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_405AED
		lea	eax, [ebp+var_10]
		push	eax
		mov	ecx, ds:off_40A264
		mov	ecx, [ecx]
		mov	edx, 4F95h
		mov	eax, [ebp+var_C]
		call	sub_40524C
		cmp	[ebp+var_10], 0
		jz	short loc_405AED
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_C]
		call	sub_403360


loc_405AED:				; CODE XREF: sub_4059F8+C9j
					; sub_4059F8+E8j
		inc	[ebp+var_8]
		cmp	[ebp+var_8], 6
		jnz	short loc_405AAE
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_405B0A
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_14]
		call	sub_403360


loc_405B0A:				; CODE XREF: sub_4059F8+105j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_405B1E
; ---------------------------------------------------------------------------


loc_405B14:				; DATA XREF: sub_4059F8+4Eo
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_405B1E:				; CODE XREF: sub_4059F8+11Aj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405B53


loc_405B2B:				; CODE XREF: sub_4059F8+159j
		lea	eax, [ebp+var_44]
		mov	ecx, 0Bh
		mov	edx, off_401000
		call	sub_4023E0
		lea	eax, [ebp+var_14]
		mov	edx, 3
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_405B4C:				; DATA XREF: sub_4059F8+30o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405B2B
; ---------------------------------------------------------------------------


loc_405B53:				; CODE XREF: sub_4059F8+153j
					; DATA XREF: sub_4059F8+12Eo
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4059F8	endp

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

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

; Attributes: bp-based frame


sub_405B5C	proc near		; CODE XREF: sub_406464+1D7p

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_405C23
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		call	sub_401C00


loc_405B83:				; CODE XREF: sub_405B5C+A7j
		mov	eax, ds:off_40A2DC
		cmp	byte ptr [eax],	0
		jnz	short loc_405C08
		mov	eax, ds:off_40A100
		push	dword ptr [eax]
		mov	eax, ds:off_40A22C
		push	dword ptr [eax]
		push	offset _str__.Text
		mov	eax, ds:off_40A1C8
		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_4053DC
		mov	[ebp+var_5], al
		cmp	[ebp+var_5], 0
		jz	short loc_405BE7
		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_405C08


loc_405BE7:				; CODE XREF: sub_405B5C+6Fj
		mov	eax, 1Eh
		call	sub_401304
		add	eax, 28h
		mov	[ebp+var_C], eax
		imul	eax, [ebp+var_C], 3E8h
		call	sub_406AB0
		jmp	loc_405B83
; ---------------------------------------------------------------------------


loc_405C08:				; CODE XREF: sub_405B5C+2Fj
					; sub_405B5C+89j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405C2A


loc_405C15:				; CODE XREF: sub_405B5C+CCj
		lea	eax, [ebp+var_14]
		mov	edx, 2
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_405C23:				; DATA XREF: sub_405B5C+14o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405C15
; ---------------------------------------------------------------------------


loc_405C2A:				; CODE XREF: sub_405B5C+C6j
					; DATA XREF: sub_405B5C+B4o
		mov	esp, ebp
		pop	ebp
		retn
sub_405B5C	endp

; ---------------------------------------------------------------------------
		align 10h
_str__		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_405B5C+3Fo
		dd 1			; Len
		db '_',0                ; Text
		align 4

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

; Attributes: bp-based frame


sub_405C3C	proc near		; CODE XREF: sub_406464+111p
					; sub_406464+152p ...

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_405C6F
		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_405C76


loc_405C66:				; CODE XREF: sub_405C3C+38j
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_405C6F:				; DATA XREF: sub_405C3C+12o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405C66
; ---------------------------------------------------------------------------


loc_405C76:				; CODE XREF: sub_405C3C+32j
					; DATA XREF: sub_405C3C+25o
		pop	ecx
		pop	ebp
		retn
sub_405C3C	endp

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

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

; Attributes: bp-based frame


sub_405C7C	proc near		; CODE XREF: sub_405FD4+41p

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, 0FFFFFFE8h
		xor	edx, edx
		mov	[ebp+var_18], edx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_405D43
		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_405CA8:				; CODE XREF: sub_405C7C+A7j
		mov	eax, ds:off_40A100
		push	dword ptr [eax]
		mov	eax, ds:off_40A22C
		push	dword ptr [eax]
		push	offset _str___0.Text
		mov	eax, ds:off_40A1C8
		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_4053DC
		mov	[ebp+var_9], al
		cmp	[ebp+var_9], 0
		jz	short loc_405D00
		mov	eax, [ebp+var_4]
		push	eax
		mov	edx, ds:off_40A154
		mov	edx, [edx]
		xor	ecx, ecx
		mov	eax, [ebp+var_8]
		call	sub_4042EC
		jmp	short loc_405D25
; ---------------------------------------------------------------------------


loc_405D00:				; CODE XREF: sub_405C7C+6Aj
		mov	eax, 1Eh
		call	sub_401304
		add	eax, 28h
		mov	[ebp+var_10], eax
		imul	eax, [ebp+var_10], 3E8h
		call	sub_406AB0
		inc	[ebp+var_14]
		cmp	[ebp+var_14], 15h
		jnz	short loc_405CA8


loc_405D25:				; CODE XREF: sub_405C7C+82j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405D4A


loc_405D32:				; CODE XREF: sub_405C7C+CCj
		lea	eax, [ebp+var_18]
		call	sub_401C00
		lea	eax, [ebp+var_8]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_405D43:				; DATA XREF: sub_405C7C+14o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405D32
; ---------------------------------------------------------------------------


loc_405D4A:				; CODE XREF: sub_405C7C+C6j
					; DATA XREF: sub_405C7C+B1o
		mov	esp, ebp
		pop	ebp
		retn
sub_405C7C	endp

; ---------------------------------------------------------------------------
		align 10h
_str___0	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_405C7C+3Ao
		dd 1			; Len
		db '_',0                ; Text
		align 4

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

; Attributes: bp-based frame


sub_405D5C	proc near		; CODE XREF: sub_405EC4+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_405DE7
		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_405DD1
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], 1


loc_405D9D:				; CODE XREF: sub_405D5C+73j
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_C]
		cmp	byte ptr [eax+edx-1], 3Dh
		jnz	short loc_405DC9
		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_405DD1
; ---------------------------------------------------------------------------


loc_405DC9:				; CODE XREF: sub_405D5C+4Cj
		inc	[ebp+var_C]
		dec	[ebp+var_10]
		jnz	short loc_405D9D


loc_405DD1:				; CODE XREF: sub_405D5C+35j
					; sub_405D5C+6Bj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405DEE


loc_405DDE:				; CODE XREF: sub_405D5C+90j
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_405DE7:				; DATA XREF: sub_405D5C+17o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405DDE
; ---------------------------------------------------------------------------


loc_405DEE:				; CODE XREF: sub_405D5C+8Aj
					; DATA XREF: sub_405D5C+7Do
		mov	esp, ebp
		pop	ebp
		retn
sub_405D5C	endp

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

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

; Attributes: bp-based frame


sub_405DF4	proc near		; CODE XREF: sub_405EC4+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_405E77
		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_405E61
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], 1


loc_405E35:				; CODE XREF: sub_405DF4+6Bj
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_C]
		cmp	byte ptr [eax+edx-1], 3Dh
		jnz	short loc_405E59
		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_405E61
; ---------------------------------------------------------------------------


loc_405E59:				; CODE XREF: sub_405DF4+4Cj
		inc	[ebp+var_C]
		dec	[ebp+var_10]
		jnz	short loc_405E35


loc_405E61:				; CODE XREF: sub_405DF4+35j
					; sub_405DF4+63j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405E7E


loc_405E6E:				; CODE XREF: sub_405DF4+88j
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_405E77:				; DATA XREF: sub_405DF4+17o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405E6E
; ---------------------------------------------------------------------------


loc_405E7E:				; CODE XREF: sub_405DF4+82j
					; DATA XREF: sub_405DF4+75o
		mov	esp, ebp
		pop	ebp
		retn
sub_405DF4	endp

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

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

; Attributes: bp-based frame


sub_405E84	proc near		; CODE XREF: sub_405EC4+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_405E84	endp

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

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

; Attributes: bp-based frame


sub_405EC4	proc near		; CODE XREF: sub_405FD4+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_405FC8
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_C]
		call	sub_401C00
		call	sub_403098
		mov	[ebp+var_10], eax
		xor	eax, eax
		push	ebp
		push	offset loc_405F99
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_10]
		mov	edx, [ebp+var_4]
		call	sub_4030CC
		mov	eax, [ebp+var_10]
		mov	eax, [eax+1Ch]
		dec	eax
		test	eax, eax
		jl	short loc_405F83
		inc	eax
		mov	[ebp+var_20], eax
		mov	[ebp+var_14], 0


loc_405F2F:				; CODE XREF: sub_405EC4+BDj
		lea	ecx, [ebp+var_24]
		mov	eax, [ebp+var_10]
		mov	edx, [ebp+var_14]
		call	sub_4033CC
		mov	eax, [ebp+var_24]
		lea	edx, [ebp+var_18]
		call	sub_405DF4
		lea	ecx, [ebp+var_28]
		mov	eax, [ebp+var_10]
		mov	edx, [ebp+var_14]
		call	sub_4033CC
		mov	eax, [ebp+var_28]
		lea	edx, [ebp+var_1C]
		call	sub_405D5C
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_18]
		call	sub_405E84
		test	eax, eax
		jnz	short loc_405F7B
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_1C]
		call	sub_401C54


loc_405F7B:				; CODE XREF: sub_405EC4+AAj
		inc	[ebp+var_14]
		dec	[ebp+var_20]
		jnz	short loc_405F2F


loc_405F83:				; CODE XREF: sub_405EC4+5Ej
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405FA0


loc_405F90:				; CODE XREF: sub_405EC4+DAj
		mov	eax, [ebp+var_10]
		call	sub_4030FC
		retn
; ---------------------------------------------------------------------------


loc_405F99:				; DATA XREF: sub_405EC4+3Fo
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405F90
; ---------------------------------------------------------------------------


loc_405FA0:				; CODE XREF: sub_405EC4+D4j
					; DATA XREF: sub_405EC4+C7o
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_405FCF


loc_405FAD:				; CODE XREF: sub_405EC4+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_405FC8:				; DATA XREF: sub_405EC4+21o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_405FAD
; ---------------------------------------------------------------------------


loc_405FCF:				; CODE XREF: sub_405EC4+103j
					; DATA XREF: sub_405EC4+E4o
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_405EC4	endp


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

; Attributes: bp-based frame


sub_405FD4	proc near		; CODE XREF: sub_406464+20Ep

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_406082
		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_40605D
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_14]
		call	sub_405C7C
		lea	ecx, [ebp+var_C]
		mov	edx, ds:off_40A0C8
		mov	edx, [edx]
		mov	eax, [ebp+var_14]
		call	sub_405EC4
		lea	edx, [ebp+var_10]
		mov	eax, ds:off_40A2C4
		mov	eax, [eax]
		call	sub_406AC4
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_10]
		call	@System@@LStrCmp$qqrv ;	System::__linkproc__ LStrCmp(void)
		jz	short loc_40604F
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	1


loc_40604F:				; CODE XREF: sub_405FD4+73j
		mov	[ebp+var_5], 1
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_406067
; ---------------------------------------------------------------------------


loc_40605D:				; DATA XREF: sub_405FD4+33o
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_406067:				; CODE XREF: sub_405FD4+87j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406089


loc_406074:				; CODE XREF: sub_405FD4+B3j
		lea	eax, [ebp+var_14]
		mov	edx, 3
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_406082:				; DATA XREF: sub_405FD4+13o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_406074
; ---------------------------------------------------------------------------


loc_406089:				; CODE XREF: sub_405FD4+ADj
					; DATA XREF: sub_405FD4+9Bo
		mov	al, [ebp+var_5]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_405FD4	endp

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

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

; Attributes: bp-based frame


sub_406094	proc near		; CODE XREF: sub_406464+25Ep
					; sub_406464+2BCp

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_40609D:				; CODE XREF: sub_406094+Ej
		push	0
		push	0
		dec	ecx
		jnz	short loc_40609D
		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_40634E
		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_406307
		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_40622C
		inc	eax
		mov	[ebp+var_24], eax
		mov	[ebp+var_1C], 0


loc_406109:				; CODE XREF: sub_406094+192j
		lea	eax, [ebp+var_28]
		call	sub_406CE8
		push	[ebp+var_28]
		mov	eax, ds:off_40A2A4
		push	dword ptr [eax]
		lea	edx, [ebp+var_2C]
		mov	eax, [ebp+var_1C]
		call	sub_4031F4
		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_4031F4
		push	[ebp+var_30]
		mov	eax, 0DBBA0h
		call	sub_401304
		lea	edx, [ebp+var_34]
		call	sub_4031F4
		push	[ebp+var_34]
		mov	eax, ds:off_40A2B8
		push	dword ptr [eax]
		lea	eax, [ebp+var_14]
		mov	edx, 5
		call	sub_401EB4
		mov	eax, ds:off_40A304
		push	dword ptr [eax]
		lea	ecx, [ebp+var_38]
		mov	eax, ds:off_40A0D4
		mov	eax, [eax]
		mov	edx, [ebp+var_1C]
		call	sub_4033CC
		push	[ebp+var_38]
		mov	eax, ds:off_40A278
		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_4031F4
		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_40A308
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_406216
		cmp	[ebp+var_9], 0
		jnz	short loc_406205
		mov	eax, [ebp+var_14]
		call	sub_403338
		test	al, al
		jnz	short loc_40622C


loc_406205:				; CODE XREF: sub_406094+163j
		lea	edx, [ebp+var_20]
		mov	eax, [ebp+var_14]
		call	sub_406AC4
		cmp	[ebp+var_20], 0
		jnz	short loc_40622C


loc_406216:				; CODE XREF: sub_406094+15Dj
		mov	eax, 1388h
		call	sub_406AB0
		inc	[ebp+var_1C]
		dec	[ebp+var_24]
		jnz	loc_406109


loc_40622C:				; CODE XREF: sub_406094+64j
					; sub_406094+16Fj ...
		cmp	[ebp+var_18], 0
		jnz	short loc_4062A9
		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_40A1AC
		mov	eax, [eax]
		call	eax


loc_4062A9:				; CODE XREF: sub_406094+19Cj
		mov	eax, [ebp+var_8]
		call	sub_403338
		test	al, al
		jz	short loc_4062FD
		cmp	[ebp+var_9], 0
		jnz	short loc_4062C9
		mov	[ebp+var_A], 1
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_406311
; ---------------------------------------------------------------------------


loc_4062C9:				; CODE XREF: sub_406094+225j
		lea	edx, [ebp+var_20]
		mov	eax, [ebp+var_8]
		call	sub_406AC4
		cmp	[ebp+var_20], 0
		jz	short loc_4062EB
		mov	[ebp+var_A], 1
		lea	edx, [ebp+var_48]
		mov	eax, [ebp+var_8]
		call	sub_406FB0
		jmp	short loc_4062FD
; ---------------------------------------------------------------------------


loc_4062EB:				; CODE XREF: sub_406094+244j
		mov	eax, [ebp+var_8]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, ds:off_40A1AC
		mov	eax, [eax]
		call	eax


loc_4062FD:				; CODE XREF: sub_406094+21Fj
					; sub_406094+255j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_406311
; ---------------------------------------------------------------------------


loc_406307:				; DATA XREF: sub_406094+4Co
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_406311:				; CODE XREF: sub_406094+233j
					; sub_406094+271j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406355


loc_40631E:				; CODE XREF: sub_406094+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_40634E:				; DATA XREF: sub_406094+33o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40631E
; ---------------------------------------------------------------------------


loc_406355:				; CODE XREF: sub_406094+2B9j
					; DATA XREF: sub_406094+285o
		mov	al, [ebp+var_A]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_406094	endp

; ---------------------------------------------------------------------------
		align 10h
_str___1	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406094+A5o
		dd 1			; Len
		db '_',0                ; Text
		align 4
_str_?		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406094+10Eo
		dd 1			; Len
		db '?',0                ; Text
		align 4

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

; Attributes: bp-based frame


sub_406378	proc near		; CODE XREF: sub_406464+364p

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_406456
		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_40A250
		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_40A2A0
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_406440
		mov	eax, [ebp+var_24]
		mov	[ebp+var_10], eax
		push	0DBBA0Dh
		mov	eax, [ebp+var_10]
		push	eax
		mov	eax, ds:off_40A260
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 102h
		jnz	short loc_40643C
		mov	eax, [ebp+var_14]
		push	eax
		mov	eax, [ebp+var_10]
		push	eax
		mov	eax, ds:off_40A180
		mov	eax, [eax]
		call	eax
		jmp	short loc_406440
; ---------------------------------------------------------------------------


loc_40643C:				; CODE XREF: sub_406378+AFj
		mov	[ebp+var_5], 1


loc_406440:				; CODE XREF: sub_406378+8Bj
					; sub_406378+C2j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40645D


loc_40644D:				; CODE XREF: sub_406378+E3j
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_406456:				; DATA XREF: sub_406378+14o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40644D
; ---------------------------------------------------------------------------


loc_40645D:				; CODE XREF: sub_406378+DDj
					; DATA XREF: sub_406378+D0o
		mov	al, [ebp+var_5]
		mov	esp, ebp
		pop	ebp
		retn
sub_406378	endp


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

; Attributes: bp-based frame


sub_406464	proc near		; CODE XREF: ServiceMain:loc_409C1Bp

var_204		= dword	ptr -204h
var_200		= dword	ptr -200h
var_1FC		= dword	ptr -1FCh
var_1F8		= dword	ptr -1F8h
var_1F4		= dword	ptr -1F4h
var_1F0		= dword	ptr -1F0h
var_1EC		= byte ptr -1ECh
var_1E8		= dword	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, 40h


loc_40646C:				; CODE XREF: sub_406464+Dj
		push	0
		push	0
		dec	ecx
		jnz	short loc_40646C
		push	ecx
		push	ebx
		push	esi
		push	edi
		xor	eax, eax
		push	ebp
		push	offset loc_40693B
		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_40562C
		xor	eax, eax
		push	ebp
		push	offset loc_4068BF
		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_40A2F0
		mov	edx, [edx]
		lea	eax, [ebp+var_30]
		mov	ecx, offset _str_a.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		lea	eax, [ebp+var_1C8]
		push	eax
		lea	eax, [ebp+var_1CC]
		mov	edx, [ebp+var_30]
		call	@System@@WStrFromLStr$qqrr17System@WideStringx17System@AnsiString ; System::__linkproc__ WStrFromLStr(System::WideString &,System::AnsiString)
		mov	eax, [ebp+var_1CC]
		mov	edx, ds:off_40A154
		mov	dx, [edx]
		xor	ecx, ecx
		call	sub_404344
		mov	edx, [ebp+var_1C8]
		mov	eax, [ebp+var_2C]
		call	sub_40568C
		mov	edx, ds:off_40A238
		mov	edx, [edx]
		mov	eax, ds:off_40A200
		mov	eax, [eax]
		call	sub_4059F8
		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_40A2DC
		cmp	byte ptr [eax],	0
		jz	short loc_406570
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	loc_4068C9
; ---------------------------------------------------------------------------


loc_406570:				; CODE XREF: sub_406464+FDj
		mov	eax, offset _str_1.Text
		call	sub_405C3C


loc_40657A:				; CODE XREF: sub_406464+14Bj
		mov	eax, ds:off_40A2DC
		cmp	byte ptr [eax],	0
		jz	short loc_406591
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	loc_4068C9
; ---------------------------------------------------------------------------


loc_406591:				; CODE XREF: sub_406464+11Ej
		call	sub_405668
		fstp	[ebp+var_18]
		wait
		fld	[ebp+var_10]
		fcomp	[ebp+var_18]
		fnstsw	ax
		sahf
		jnz	short loc_4065B1
		mov	eax, 7530h
		call	sub_406AB0
		jmp	short loc_40657A
; ---------------------------------------------------------------------------


loc_4065B1:				; CODE XREF: sub_406464+13Fj
		mov	eax, offset _str_2.Text
		call	sub_405C3C
		mov	eax, 2710h
		call	sub_401304
		add	eax, 7D0h
		call	sub_406AB0


loc_4065CF:				; CODE XREF: sub_406464+19Aj
		mov	eax, ds:off_40A2DC
		cmp	byte ptr [eax],	0
		jz	short loc_4065E6
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	loc_4068C9
; ---------------------------------------------------------------------------


loc_4065E6:				; CODE XREF: sub_406464+173j
		call	sub_40595C
		mov	[ebp+var_21], al
		cmp	[ebp+var_21], 0
		jz	short loc_406600
		mov	eax, 4E21h
		call	sub_406AB0
		jmp	short loc_4065CF
; ---------------------------------------------------------------------------


loc_406600:				; CODE XREF: sub_406464+18Ej
		mov	eax, offset _str_3.Text
		call	sub_405C3C
		call	sub_405878
		mov	eax, offset _str_4.Text
		call	sub_405C3C
		mov	eax, 32h
		call	sub_401304
		add	eax, 0Ah
		mov	[ebp+var_20], eax
		imul	eax, [ebp+var_20], 3E8h
		call	sub_406AB0
		lea	eax, [ebp+var_1D0]
		call	sub_405B5C
		mov	edx, [ebp+var_1D0]
		mov	eax, ds:off_40A0D4
		mov	eax, [eax]
		call	sub_4030CC
		lea	edx, [ebp+var_1D4]
		mov	eax, ds:off_40A0D4
		mov	eax, [eax]
		call	sub_4033E4
		mov	eax, [ebp+var_1D4]
		call	sub_405C3C
		lea	eax, [ebp+var_19]
		call	sub_405FD4
		mov	[ebp+var_1A], al
		mov	eax, offset _str_5.Text
		call	sub_405C3C
		cmp	[ebp+var_1A], 0
		jz	loc_40674E
		cmp	[ebp+var_19], 0
		jz	loc_40674E
		mov	ecx, ds:off_40A1B8
		mov	ecx, [ecx]
		mov	edx, ds:off_40A250
		mov	edx, [edx]
		lea	eax, [ebp+var_1D8]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	edx, [ebp+var_1D8]
		mov	eax, ds:off_40A2C8
		mov	eax, [eax]
		mov	cl, 1
		call	sub_406094
		mov	ecx, ds:off_40A1B8
		mov	ecx, [ecx]
		mov	edx, ds:off_40A250
		mov	edx, [edx]
		lea	eax, [ebp+var_1DC]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_1DC]
		lea	edx, [ebp+var_28]
		call	sub_406AC4
		cmp	[ebp+var_28], 0
		jnz	short loc_40674E
		mov	ecx, ds:off_40A1B8
		mov	ecx, [ecx]
		mov	edx, ds:off_40A250
		mov	edx, [edx]
		lea	eax, [ebp+var_1E0]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	edx, [ebp+var_1E0]
		mov	eax, ds:off_40A218
		mov	eax, [eax]
		mov	cl, 1
		call	sub_406094
		mov	ecx, ds:off_40A1B8
		mov	ecx, [ecx]
		mov	edx, ds:off_40A250
		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_406AC4


loc_40674E:				; CODE XREF: sub_406464+224j
					; sub_406464+22Ej ...
		mov	eax, offset _str_6.Text
		call	sub_405C3C
		mov	ecx, ds:off_40A1B8
		mov	ecx, [ecx]
		mov	edx, ds:off_40A250
		mov	edx, [edx]
		lea	eax, [ebp+var_1E8]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_1E8]
		lea	edx, [ebp+var_28]
		call	sub_406AC4
		cmp	[ebp+var_28], 0
		jz	loc_4068B5
		mov	eax, offset _str_7.Text
		call	sub_405C3C
		mov	ecx, ds:off_40A1B8
		mov	ecx, [ecx]
		mov	edx, ds:off_40A250
		mov	edx, [edx]
		lea	eax, [ebp+var_1F0]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_1F0]
		lea	edx, [ebp+var_1EC]
		call	sub_406FB0
		mov	eax, ds:off_40A2C4
		mov	eax, [eax]
		call	sub_406378
		test	al, al
		jz	short loc_406821
		mov	edx, ds:off_40A2F0
		mov	edx, [edx]
		lea	eax, [ebp+var_30]
		mov	ecx, offset _str_T.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		lea	eax, [ebp+var_1F4]
		push	eax
		lea	eax, [ebp+var_1F8]
		mov	edx, [ebp+var_30]
		call	@System@@WStrFromLStr$qqrr17System@WideStringx17System@AnsiString ; System::__linkproc__ WStrFromLStr(System::WideString &,System::AnsiString)
		mov	eax, [ebp+var_1F8]
		mov	edx, ds:off_40A154
		mov	dx, [edx]
		xor	ecx, ecx
		call	sub_404344
		mov	edx, [ebp+var_1F4]
		mov	eax, [ebp+var_2C]
		call	sub_40568C
		jmp	short loc_40686F
; ---------------------------------------------------------------------------


loc_406821:				; CODE XREF: sub_406464+36Bj
		mov	edx, ds:off_40A2F0
		mov	edx, [edx]
		lea	eax, [ebp+var_30]
		mov	ecx, offset _str_F.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		lea	eax, [ebp+var_1FC]
		push	eax
		lea	eax, [ebp+var_200]
		mov	edx, [ebp+var_30]
		call	@System@@WStrFromLStr$qqrr17System@WideStringx17System@AnsiString ; System::__linkproc__ WStrFromLStr(System::WideString &,System::AnsiString)
		mov	eax, [ebp+var_200]
		mov	edx, ds:off_40A154
		mov	dx, [edx]
		xor	ecx, ecx
		call	sub_404344
		mov	edx, [ebp+var_1FC]
		mov	eax, [ebp+var_2C]
		call	sub_40568C


loc_40686F:				; CODE XREF: sub_406464+3BBj
		mov	eax, offset _str_8.Text
		call	sub_405C3C
		call	sub_405668
		fstp	[ebp+var_10]
		wait
		lea	eax, [ebp+var_204]
		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_204]
		mov	edx, ds:off_40A128
		mov	edx, [edx]
		lea	eax, [ebp+var_2C]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)


loc_4068B5:				; CODE XREF: sub_406464+321j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4068C9
; ---------------------------------------------------------------------------


loc_4068BF:				; DATA XREF: sub_406464+48o
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_4068C9:				; CODE XREF: sub_406464+107j
					; sub_406464+128j ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406942


loc_4068D6:				; CODE XREF: sub_406464+4DCj
		lea	eax, [ebp+var_204]
		call	sub_401C00
		lea	eax, [ebp+var_200]
		call	@System@@WStrClr$qqrpv ; System::__linkproc__ WStrClr(void *)
		lea	eax, [ebp+var_1FC]
		call	sub_401C00
		lea	eax, [ebp+var_1F8]
		call	@System@@WStrClr$qqrpv ; System::__linkproc__ WStrClr(void *)
		lea	eax, [ebp+var_1F4]
		mov	edx, 0Ah
		call	sub_401C24
		lea	eax, [ebp+var_1CC]
		call	@System@@WStrClr$qqrpv ; System::__linkproc__ WStrClr(void *)
		lea	eax, [ebp+var_1C8]
		mov	edx, 2
		call	sub_401C24
		lea	eax, [ebp+var_30]
		mov	edx, 3
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_40693B:				; DATA XREF: sub_406464+16o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4068D6
; ---------------------------------------------------------------------------


loc_406942:				; CODE XREF: sub_406464+4D6j
					; DATA XREF: sub_406464+46Do
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_406464	endp

; ---------------------------------------------------------------------------
_str_a		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406464+91o
		dd 1			; Len
		db 'a',0                ; Text
		align 4
_str_1		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406464:loc_406570o
		dd 1			; Len
		db '1',0                ; Text
		align 4
_str_2		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406464:loc_4065B1o
		dd 1			; Len
		db '2',0                ; Text
		align 10h
_str_3		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406464:loc_406600o
		dd 1			; Len
		db '3',0                ; Text
		align 4
_str_4		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406464+1ABo
		dd 1			; Len
		db '4',0                ; Text
		align 4
_str_5		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406464+216o
		dd 1			; Len
		db '5',0                ; Text
		align 4
_str_6		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406464:loc_40674Eo
		dd 1			; Len
		db '6',0                ; Text
		align 10h
_str_7		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406464+327o
		dd 1			; Len
		db '7',0                ; Text
		align 4
_str_T		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406464+378o
		dd 1			; Len
		db 'T',0                ; Text
		align 4
_str_F		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406464+3C8o
		dd 1			; Len
		db 'F',0                ; Text
		align 4
_str_8		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406464:loc_40686Fo
		dd 1			; Len
		db '8',0                ; Text
		align 10h

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

; Attributes: bp-based frame


sub_4069D0	proc near		; DATA XREF: CODE:00409CF0o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_4069F5
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B248
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4069FC


loc_4069F4:				; CODE XREF: sub_4069D0+2Aj
		retn
; ---------------------------------------------------------------------------


loc_4069F5:				; DATA XREF: sub_4069D0+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4069F4
; ---------------------------------------------------------------------------


loc_4069FC:				; CODE XREF: sub_4069D0:loc_4069F4j
					; DATA XREF: sub_4069D0+1Fo
		pop	ebp
		retn
sub_4069D0	endp

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

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



sub_406A00	proc near		; DATA XREF: CODE:00409CECo
		sub	ds:dword_40B248, 1
		retn
sub_406A00	endp


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

; Attributes: bp-based frame


sub_406A08	proc near		; CODE XREF: sub_406D9C+CDp
					; sub_408C30+2Bp ...

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		xor	edx, edx
		mov	[ebp+var_C], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_406A56
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_C]
		mov	edx, [ebp+var_4]
		call	unknown_libname_11 ; BDS 2005-2006 and Delphi6-7 Visual	Component Library
		mov	eax, [ebp+var_C]
		call	@System@@WStrToPWChar$qqrx17System@WideString ;	System::__linkproc__ WStrToPWChar(System::WideString)
		push	eax		; lpLibFileName
		call	LoadLibraryW	; LoadLibraryW
		mov	[ebp+var_8], eax
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406A5D


loc_406A4D:				; CODE XREF: sub_406A08+53j
		lea	eax, [ebp+var_C]
		call	@System@@WStrClr$qqrpv ; System::__linkproc__ WStrClr(void *)
		retn
; ---------------------------------------------------------------------------


loc_406A56:				; DATA XREF: sub_406A08+11o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_406A4D
; ---------------------------------------------------------------------------


loc_406A5D:				; CODE XREF: sub_406A08+4Dj
					; DATA XREF: sub_406A08+40o
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_406A08	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_406A88(double, double)

sub_406A88	proc near		; CODE XREF: sub_40595C+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_406AAC
		fstp	[ebp+var_8]
		wait
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		pop	ebp
		retn	10h
sub_406A88	endp

; ---------------------------------------------------------------------------
		align 4
flt_406AAC	dd 2.4e1		; DATA XREF: sub_406A88+Er

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

; Attributes: bp-based frame


sub_406AB0	proc near		; CODE XREF: sub_40524C+B7p
					; sub_4053DC+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_40B2CC
		pop	ecx
		pop	ebp
		retn
sub_406AB0	endp


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

; Attributes: bp-based frame


sub_406AC4	proc near		; CODE XREF: sub_405FD4+63p
					; sub_406094+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_406B9F
		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_406B82
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	eax, eax
		push	ebp
		push	offset loc_406B54
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		call	sub_403338
		test	al, al
		jnz	short loc_406B2D
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		call	@System@@TryFinallyExit$qqrv ; System::__linkproc__ TryFinallyExit(void)
		jmp	short loc_406B89
; ---------------------------------------------------------------------------


loc_406B2D:				; CODE XREF: sub_406AC4+58j
		mov	ecx, [ebp+var_4]
		mov	dl, 1
		mov	eax, off_40441C
		call	sub_404490
		mov	[ebp+var_C], eax
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_C]
		call	sub_404788
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_406B66
; ---------------------------------------------------------------------------


loc_406B54:				; DATA XREF: sub_406AC4+43o
		jmp	sub_40161C
; ---------------------------------------------------------------------------
		mov	eax, [ebp+var_8]
		call	sub_401C00
		call	@System@@DoneExcept$qqrv ; System::__linkproc__	DoneExcept(void)


loc_406B66:				; CODE XREF: sub_406AC4+8Ej
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406B89


loc_406B73:				; CODE XREF: sub_406AC4+C3j
		cmp	[ebp+var_C], 0
		jz	short loc_406B81
		mov	eax, [ebp+var_C]
		call	sub_4013F4


loc_406B81:				; CODE XREF: sub_406AC4+B3j
		retn
; ---------------------------------------------------------------------------


loc_406B82:				; DATA XREF: sub_406AC4+35o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_406B73
; ---------------------------------------------------------------------------


loc_406B89:				; CODE XREF: sub_406AC4+67j
					; sub_406AC4:loc_406B81j
					; DATA XREF: ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406BA6


loc_406B96:				; CODE XREF: sub_406AC4+E0j
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_406B9F:				; DATA XREF: sub_406AC4+1Ao
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_406B96
; ---------------------------------------------------------------------------


loc_406BA6:				; CODE XREF: sub_406AC4+DAj
					; DATA XREF: sub_406AC4+CDo
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_406AC4	endp

; ---------------------------------------------------------------------------
		align 10h
; [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_406C44. PRESS	KEYPAD "+" TO EXPAND]
		align 4
; [000000A7 BYTES: COLLAPSED FUNCTION sub_406CE8. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
_str___3	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406CE8+6Co
		dd 1			; Len
		db '\',0                ; Text
		align 4

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

; Attributes: bp-based frame


sub_406D9C	proc near		; CODE XREF: sub_408C30+7EFp

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_406F23
		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_406EF1
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	[ebp+var_10]
		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_4031F4
		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_40A1F4
		mov	edx, [edx]
		call	@System@@LStrCat$qqrv ;	System::__linkproc__ LStrCat(void)
		lea	eax, [ebp+var_20]
		call	sub_406CE8
		mov	edx, [ebp+var_20]
		lea	eax, [ebp+var_14]
		mov	ecx, [ebp+var_C]
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		add	[ebp+var_10], 3Eh
		mov	[ebp+var_5], 0
		mov	eax, [ebp+var_14]
		call	sub_406C44
		mov	[ebp+var_6], al
		cmp	[ebp+var_6], 0
		jz	short loc_406EBD
		mov	eax, [ebp+var_14]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		call	sub_406A08
		mov	[ebp+hLibModule], eax
		cmp	[ebp+hLibModule], 0
		jz	short loc_406EB3
		sub	[ebp+var_10], 50h
		mov	eax, ds:off_40A0F4
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+hLibModule]
		push	eax
		call	ds:dword_40B320
		mov	ds:dword_40B2AC, eax
		cmp	ds:dword_40B2AC, 0
		jnz	short loc_406EC1
		add	[ebp+var_10], 3Ch
		mov	[ebp+var_5], 1
		mov	eax, [ebp+hLibModule]
		push	eax		; hLibModule
		call	FreeLibrary_0
		jmp	short loc_406EC1
; ---------------------------------------------------------------------------


loc_406EB3:				; CODE XREF: sub_406D9C+D9j
		sub	[ebp+var_10], 37h
		mov	[ebp+var_5], 1
		jmp	short loc_406EC1
; ---------------------------------------------------------------------------


loc_406EBD:				; CODE XREF: sub_406D9C+C3j
		mov	[ebp+var_5], 1


loc_406EC1:				; CODE XREF: sub_406D9C+102j
					; sub_406D9C+115j ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406EF8


loc_406ECE:				; CODE XREF: sub_406D9C+15Aj
		sub	[ebp+var_10], 2Ch
		lea	eax, [ebp+var_14]
		mov	edx, offset _str______.Text
		call	@System@@LStrCat$qqrv ;	System::__linkproc__ LStrCat(void)
		dec	[ebp+var_10]
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_14]
		call	sub_4032A8
		dec	[ebp+var_10]
		retn
; ---------------------------------------------------------------------------


loc_406EF1:				; DATA XREF: sub_406D9C+35o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_406ECE
; ---------------------------------------------------------------------------


loc_406EF8:				; CODE XREF: sub_406D9C+154j
					; DATA XREF: sub_406D9C+12Do
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406F2A


loc_406F05:				; CODE XREF: sub_406D9C+18Cj
		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_406F23:				; DATA XREF: sub_406D9C+1Bo
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_406F05
; ---------------------------------------------------------------------------


loc_406F2A:				; CODE XREF: sub_406D9C+186j
					; DATA XREF: sub_406D9C+164o
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_406D9C	endp

; ---------------------------------------------------------------------------
		align 10h
_str______	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406D9C+139o
		dd 5			; Len
		db '     ',0            ; Text
		align 10h

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

; Attributes: bp-based frame


sub_406F40	proc near		; CODE XREF: sub_406FB0+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_406FA9
		mov	eax, [ebp+var_8]
		and	eax, 0F0h
		cmp	eax, 40h
		ja	short loc_406FA9
		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_40B250
		mov	[ebp+var_C], eax


loc_406FA9:				; CODE XREF: sub_406F40+1Cj
					; sub_406F40+29j
		mov	eax, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
sub_406F40	endp


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

; Attributes: bp-based frame


sub_406FB0	proc near		; CODE XREF: sub_406094+250p
					; sub_406464+358p

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_40708D
		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_40A250
		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_40B2D0
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0FFFFFFFFh
		jz	short loc_40706C
		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_40B2D4
		mov	edx, 41h
		mov	eax, [ebp+var_4]
		call	sub_406F40
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jbe	short loc_40706C
		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_40B2D8
		mov	eax, [ebp+var_C]
		push	eax
		call	ds:dword_40B2DC


loc_40706C:				; CODE XREF: sub_406FB0+68j
					; sub_406FB0+9Aj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_407094


loc_407079:				; CODE XREF: sub_406FB0+E2j
		lea	eax, [ebp+var_15C]
		call	sub_401C00
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_40708D:				; DATA XREF: sub_406FB0+22o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_407079
; ---------------------------------------------------------------------------


loc_407094:				; CODE XREF: sub_406FB0+DCj
					; DATA XREF: sub_406FB0+C4o
		mov	esp, ebp
		pop	ebp
		retn
sub_406FB0	endp


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

; Attributes: bp-based frame


sub_407098	proc near		; CODE XREF: sub_408C30+7C5p

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_40710D
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	edx, [ebp+var_8]
		mov	eax, ds:off_40A138
		mov	eax, [eax]
		call	sub_40571C
		cmp	[ebp+var_8], 0
		jz	short loc_4070D6
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_8]
		call	sub_401C54
		jmp	short loc_4070F7
; ---------------------------------------------------------------------------


loc_4070D6:				; CODE XREF: sub_407098+2Fj
		mov	eax, [ebp+var_4]
		mov	edx, ds:off_40A2A8
		mov	edx, [edx]
		call	sub_401C54
		mov	edx, [ebp+var_4]
		mov	edx, [edx]
		mov	eax, ds:off_40A138
		mov	eax, [eax]
		call	sub_40568C


loc_4070F7:				; CODE XREF: sub_407098+3Cj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_407114


loc_407104:				; CODE XREF: sub_407098+7Aj
		lea	eax, [ebp+var_8]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_40710D:				; DATA XREF: sub_407098+11o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_407104
; ---------------------------------------------------------------------------


loc_407114:				; CODE XREF: sub_407098+74j
					; DATA XREF: sub_407098+67o
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_407098	endp


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

; Attributes: bp-based frame


sub_407118	proc near		; DATA XREF: CODE:00409CF8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_40713D
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_40B324
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_407144


loc_40713C:				; CODE XREF: sub_407118+2Aj
		retn
; ---------------------------------------------------------------------------


loc_40713D:				; DATA XREF: sub_407118+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40713C
; ---------------------------------------------------------------------------


loc_407144:				; CODE XREF: sub_407118:loc_40713Cj
					; DATA XREF: sub_407118+1Fo
		pop	ebp
		retn
sub_407118	endp

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

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



sub_407148	proc near		; DATA XREF: CODE:00409CF4o
		sub	ds:dword_40B324, 1
		retn
sub_407148	endp


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

; Attributes: bp-based frame


sub_407150	proc near		; DATA XREF: CODE:00409D14o

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_407150	endp

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

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

; Attributes: bp-based frame


sub_407160	proc near		; CODE XREF: sub_4071C0+3Ap
					; sub_4071C0+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_40B32C, 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_40B328
		push	eax
		mov	eax, ds:off_40A214
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		mov	esp, ebp
		pop	ebp
		retn
sub_407160	endp


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

; Attributes: bp-based frame


sub_4071C0	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_40727A	; default
					; jumptable 004071CF case 0
		jmp	off_4071D6[eax*4] ; switch jump
; ---------------------------------------------------------------------------
off_4071D6	dd offset loc_40727A	; DATA XREF: sub_4071C0+Fr
		dd offset loc_4071EE	; jump table for switch	statement
		dd offset loc_40721A
		dd offset loc_40723B
		dd offset loc_40725C
		dd offset loc_40726C
; ---------------------------------------------------------------------------


loc_4071EE:				; CODE XREF: sub_4071C0+Fj
					; DATA XREF: sub_4071C0:off_4071D6o
		mov	ecx, 1		; jumptable 004071CF case 1
		xor	edx, edx
		mov	eax, 3
		call	sub_407160
		push	0Ah
		mov	eax, ds:off_40A1E8
		mov	eax, [eax]
		call	eax
		xor	ecx, ecx
		xor	edx, edx
		mov	eax, 1
		call	sub_407160
		jmp	short loc_40727A ; default
					; jumptable 004071CF case 0
; ---------------------------------------------------------------------------


loc_40721A:				; CODE XREF: sub_4071C0+Fj
					; DATA XREF: sub_4071C0:off_4071D6o
		mov	ecx, 1		; jumptable 004071CF case 2
		xor	edx, edx
		mov	eax, 6
		call	sub_407160
		xor	ecx, ecx
		xor	edx, edx
		mov	eax, 7
		call	sub_407160
		jmp	short loc_40727A ; default
					; jumptable 004071CF case 0
; ---------------------------------------------------------------------------


loc_40723B:				; CODE XREF: sub_4071C0+Fj
					; DATA XREF: sub_4071C0:off_4071D6o
		mov	ecx, 1		; jumptable 004071CF case 3
		xor	edx, edx
		mov	eax, 5
		call	sub_407160
		xor	ecx, ecx
		xor	edx, edx
		mov	eax, 4
		call	sub_407160
		jmp	short loc_40727A ; default
					; jumptable 004071CF case 0
; ---------------------------------------------------------------------------


loc_40725C:				; CODE XREF: sub_4071C0+Fj
					; DATA XREF: sub_4071C0:off_4071D6o
		xor	ecx, ecx	; jumptable 004071CF case 4
		xor	edx, edx
		mov	eax, ds:dword_40B32C
		call	sub_407160
		jmp	short loc_40727A ; default
					; jumptable 004071CF case 0
; ---------------------------------------------------------------------------


loc_40726C:				; CODE XREF: sub_4071C0+Fj
					; DATA XREF: sub_4071C0:off_4071D6o
		xor	ecx, ecx	; jumptable 004071CF case 5
		xor	edx, edx
		mov	eax, 1
		call	sub_407160


loc_40727A:				; CODE XREF: sub_4071C0+9j
					; sub_4071C0+Fj ...
		pop	ebp		; default
					; jumptable 004071CF case 0
		retn	4
sub_4071C0	endp

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

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

; Attributes: bp-based frame


sub_407280	proc near		; CODE XREF: r+20p ServiceMain+5p

var_18C		= dword	ptr -18Ch
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_407288:				; CODE XREF: sub_407280+Dj
		push	0
		push	0
		dec	ecx
		jnz	short loc_407288
		push	ecx
		mov	[ebp+var_10], eax
		xor	eax, eax
		push	ebp
		push	offset loc_408178
		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, 0D031h
		mov	eax, offset _str_o3Ug7B.Text
		call	sub_4042EC
		mov	eax, [ebp+var_8]
		call	sub_40325C
		mov	edx, ds:off_40A238
		mov	[edx], eax
		lea	eax, [ebp+var_C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D032h
		mov	eax, offset _str_hb5z7XP.Text
		call	sub_4042EC
		mov	eax, [ebp+var_C]
		call	sub_40325C
		mov	edx, ds:off_40A154
		mov	[edx], eax
		lea	eax, [ebp+var_14]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D033h
		mov	eax, offset _str_xW6wl5rGdGKu0ws.Text
		call	sub_4042EC
		mov	edx, [ebp+var_14]
		mov	eax, ds:off_40A188
		call	sub_401C54
		lea	eax, [ebp+var_18]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D034h
		mov	eax, offset _str_C_8sJj5ViK36j_L.Text
		call	sub_4042EC
		mov	edx, [ebp+var_18]
		mov	eax, ds:off_40A324
		call	sub_401C54
		lea	eax, [ebp+var_1C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D035h
		mov	eax, offset _str_C2BgZM_rQ1EPwYn.Text
		call	sub_4042EC
		mov	edx, [ebp+var_1C]
		mov	eax, ds:off_40A1F8
		call	sub_401C54
		lea	eax, [ebp+var_20]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D036h
		mov	eax, offset _str_CKS7skSHLqaC33K.Text
		call	sub_4042EC
		mov	edx, [ebp+var_20]
		mov	eax, ds:off_40A26C
		call	sub_401C54
		lea	eax, [ebp+var_24]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D037h
		mov	eax, offset _str_CCnbeoSVIPS3PFT.Text
		call	sub_4042EC
		mov	edx, [ebp+var_24]
		mov	eax, ds:off_40A1E0
		call	sub_401C54
		lea	eax, [ebp+var_28]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D038h
		mov	eax, offset _str_CaoB6aFqwdB_0sC.Text
		call	sub_4042EC
		mov	edx, [ebp+var_28]
		mov	eax, ds:off_40A1DC
		call	sub_401C54
		lea	eax, [ebp+var_2C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D039h
		mov	eax, offset _str_Ce9KsGJ1Da58FWa.Text
		call	sub_4042EC
		mov	edx, [ebp+var_2C]
		mov	eax, ds:off_40A268
		call	sub_401C54
		lea	eax, [ebp+var_30]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D03Ah
		mov	eax, offset _str_DCQZnYfxXv9v3ig.Text
		call	sub_4042EC
		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, 0D03Bh
		mov	eax, offset _str_1nVPWJOBs0a_QtV.Text
		call	sub_4042EC
		mov	edx, [ebp+var_34]
		mov	eax, ds:off_40A334
		call	sub_401C54
		lea	eax, [ebp+var_38]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D03Ch
		mov	eax, offset _str_DOagFKq19C33s8h.Text
		call	sub_4042EC
		mov	edx, [ebp+var_38]
		mov	eax, ds:off_40A21C
		call	sub_401C54
		lea	eax, [ebp+var_3C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D03Dh
		mov	eax, offset _str_1TPDqrmpZR84hl2.Text
		call	sub_4042EC
		mov	edx, [ebp+var_3C]
		mov	eax, ds:off_40A190
		call	sub_401C54
		lea	eax, [ebp+var_40]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D03Eh
		mov	eax, offset _str_DG9RQ08GrFc4YMX.Text
		call	sub_4042EC
		mov	edx, [ebp+var_40]
		mov	eax, ds:off_40A1CC
		call	sub_401C54
		mov	eax, ds:off_40A1BC
		mov	edx, offset _str_11072155.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, 0D03Fh
		mov	eax, offset _str_V2q5q8BDSbqu_C.Text
		call	sub_4042EC
		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, 0D040h
		mov	eax, offset _str_SqkD6q9V.Text
		call	sub_4042EC
		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_40A1BC
		mov	ecx, [ecx]
		mov	eax, ds:off_40A2F0
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		lea	eax, [ebp+var_50]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D041h
		mov	eax, offset _str_DuLYKWRq02SQElk.Text
		call	sub_4042EC
		mov	edx, [ebp+var_50]
		mov	eax, ds:off_40A1D4
		call	sub_401C54
		lea	eax, [ebp+var_54]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D042h
		mov	eax, offset _str_y6MA8Q_nJiH.Text
		call	sub_4042EC
		mov	edx, [ebp+var_54]
		mov	eax, ds:off_40A1A4
		call	sub_401C54
		lea	eax, [ebp+var_58]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D043h
		mov	eax, offset _str_hr2jDylwBIaD4aa.Text
		call	sub_4042EC
		mov	edx, [ebp+var_58]
		mov	eax, ds:off_40A1B0
		call	sub_401C54
		lea	eax, [ebp+var_5C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D044h
		mov	eax, offset _str_inMutSLh9yecy2v.Text
		call	sub_4042EC
		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, 0D045h
		mov	eax, offset _str_6S_0baFItraPgqM.Text
		call	sub_4042EC
		mov	edx, [ebp+var_60]
		mov	eax, ds:off_40A2E8
		call	sub_401C54
		lea	eax, [ebp+var_64]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D046h
		mov	eax, offset _str_mb_oHF0ol9RfXNx.Text
		call	sub_4042EC
		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, 0D047h
		mov	eax, offset _str_lyFy.Text
		call	sub_4042EC
		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, 0D048h
		mov	eax, offset _str_nONAC5TYXprlVqG.Text
		call	sub_4042EC
		mov	edx, [ebp+var_6C]
		mov	eax, ds:off_40A1D0
		call	sub_401C54
		lea	eax, [ebp+var_70]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D049h
		mov	eax, offset _str_jqFbtj0z.Text
		call	sub_4042EC
		mov	edx, [ebp+var_70]
		mov	eax, ds:off_40A234
		call	sub_401C54
		lea	eax, [ebp+var_74]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D04Ah
		mov	eax, offset _str_4aYoq1K.Text
		call	sub_4042EC
		mov	edx, [ebp+var_74]
		mov	eax, ds:off_40A294
		call	sub_401C54
		lea	eax, [ebp+var_78]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D04Bh
		mov	eax, offset _str_3eJ8Q6VWDUnTKgU.Text
		call	sub_4042EC
		mov	edx, [ebp+var_78]
		mov	eax, ds:off_40A2D8
		call	sub_401C54
		lea	eax, [ebp+var_7C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D04Ch
		mov	eax, offset _str_9OOZ.Text
		call	sub_4042EC
		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, 0D04Dh
		mov	eax, offset _str__vKwID.Text
		call	sub_4042EC
		mov	edx, [ebp+var_80]
		mov	eax, ds:off_40A1F4
		call	sub_401C54
		lea	eax, [ebp+var_84]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D04Eh
		mov	eax, offset _str_liaQjnk7Hb7FbC.Text
		call	sub_4042EC
		mov	edx, [ebp+var_84]
		mov	eax, ds:off_40A184
		call	sub_401C54
		lea	eax, [ebp+var_88]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D04Fh
		mov	eax, offset _str_Fm4N1wH3m5xNILd.Text
		call	sub_4042EC
		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, 0D050h
		mov	eax, offset _str_nC25NyrLx_WCnRG.Text
		call	sub_4042EC
		mov	edx, [ebp+var_8C]
		mov	eax, ds:off_40A1D0
		call	sub_401C54
		lea	eax, [ebp+var_90]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D051h
		mov	eax, offset _str_j288AD.Text
		call	sub_4042EC
		mov	edx, [ebp+var_90]
		mov	eax, ds:off_40A270
		call	sub_401C54
		lea	eax, [ebp+var_94]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D052h
		mov	eax, offset _str_HC7s3V6VCmLsoB.Text
		call	sub_4042EC
		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, 0D053h
		mov	eax, offset _str_HKOn_COpdMWs2B.Text
		call	sub_4042EC
		mov	edx, [ebp+var_98]
		mov	eax, ds:off_40A2F4
		call	sub_401C54
		lea	eax, [ebp+var_9C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D054h
		mov	eax, offset _str_Hyy9T_X1_I00CVr.Text
		call	sub_4042EC
		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, 0D055h
		mov	eax, offset _str_3e2olMmF1ya_gJz.Text
		call	sub_4042EC
		mov	edx, [ebp+var_A0]
		mov	eax, ds:off_40A2D8
		call	sub_401C54
		lea	eax, [ebp+var_A4]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D056h
		mov	eax, offset _str_j_tRE95a.Text
		call	sub_4042EC
		mov	edx, [ebp+var_A4]
		mov	eax, ds:off_40A234
		call	sub_401C54
		lea	eax, [ebp+var_A8]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D057h
		mov	eax, offset _str_jqRkg1__aqP3OA.Text
		call	sub_4042EC
		mov	edx, [ebp+var_A8]
		mov	eax, ds:off_40A240
		call	sub_401C54
		lea	eax, [ebp+var_AC]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D058h
		mov	eax, offset _str_iqhhCB.Text
		call	sub_4042EC
		mov	edx, [ebp+var_AC]
		mov	eax, ds:off_40A2CC
		call	sub_401C54
		lea	eax, [ebp+var_B0]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D059h
		mov	eax, offset _str_5ebnQJF9qEc8.Text
		call	sub_4042EC
		mov	edx, [ebp+var_B0]
		mov	eax, ds:off_40A25C
		call	sub_401C54
		lea	eax, [ebp+var_B4]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D05Ah
		mov	eax, offset _str_5m8cqgomKyIz.Text
		call	sub_4042EC
		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, 0D05Bh
		mov	eax, offset _str_4OdSmrA.Text
		call	sub_4042EC
		mov	edx, [ebp+var_B8]
		mov	eax, ds:off_40A294
		call	sub_401C54
		lea	eax, [ebp+var_BC]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D05Ch
		mov	eax, offset _str_zGQC_oPD2D.Text
		call	sub_4042EC
		mov	edx, [ebp+var_BC]
		mov	eax, ds:off_40A1D8
		call	sub_401C54
		lea	eax, [ebp+var_C0]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D05Dh
		mov	eax, offset _str___GOPEH.Text
		call	sub_4042EC
		mov	edx, [ebp+var_C0]
		mov	eax, ds:off_40A16C
		call	sub_401C54
		lea	eax, [ebp+var_C4]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D05Eh
		mov	eax, offset _str_4eGsGpB.Text
		call	sub_4042EC
		mov	edx, [ebp+var_C4]
		mov	eax, ds:off_40A168
		call	sub_401C54
		lea	eax, [ebp+var_C8]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D05Fh
		mov	eax, offset _str_XCiJj0y4vOtj3IZ.Text
		call	sub_4042EC
		mov	edx, [ebp+var_C8]
		mov	eax, ds:off_40A2E4
		call	sub_401C54
		lea	eax, [ebp+var_CC]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D060h
		mov	eax, offset _str_XaXMhsk7bwYim57.Text
		call	sub_4042EC
		mov	edx, [ebp+var_CC]
		mov	eax, ds:off_40A230
		call	sub_401C54
		lea	eax, [ebp+var_D0]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D061h
		mov	eax, offset _str_TestvWuvOXd9.Text
		call	sub_4042EC
		mov	edx, [ebp+var_D0]
		mov	eax, ds:off_40A27C
		call	sub_401C54
		lea	eax, [ebp+var_D4]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D062h
		mov	eax, offset _str_my6Yu0H1yr7m4WG.Text
		call	sub_4042EC
		mov	edx, [ebp+var_D4]
		mov	eax, ds:off_40A17C
		call	sub_401C54
		lea	eax, [ebp+var_D8]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D063h
		mov	eax, offset _str_7OuwyQvT3YLoxXi.Text
		call	sub_4042EC
		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, 0D064h
		mov	eax, offset _str_XiivN9VTTAe_4LG.Text
		call	sub_4042EC
		mov	edx, [ebp+var_DC]
		mov	eax, ds:off_40A2B0
		call	sub_401C54
		lea	eax, [ebp+var_E0]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D065h
		mov	eax, offset _str_XmHw5nLh2jIQLnG.Text
		call	sub_4042EC
		mov	edx, [ebp+var_E0]
		mov	eax, ds:off_40A320
		call	sub_401C54
		lea	eax, [ebp+var_E4]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D066h
		mov	eax, offset _str_GCFja043VVaSBCo.Text
		call	sub_4042EC
		mov	edx, [ebp+var_E4]
		mov	eax, ds:off_40A1EC
		call	sub_401C54
		lea	eax, [ebp+var_E8]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D067h
		mov	eax, offset _str_zCiZvXyDyHq00YN.Text
		call	sub_4042EC
		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, 0D068h
		mov	eax, offset _str_DqwlRLG.Text
		call	sub_4042EC
		mov	edx, [ebp+var_EC]
		mov	eax, ds:off_40A1A0
		call	sub_401C54
		lea	eax, [ebp+var_F0]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D069h
		mov	eax, offset _str_1WOJGB.Text
		call	sub_4042EC
		mov	edx, [ebp+var_F0]
		mov	eax, ds:off_40A264
		call	sub_401C54
		lea	eax, [ebp+var_F4]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D06Ah
		mov	eax, offset _str_FCNYaPGe.Text
		call	sub_4042EC
		mov	edx, [ebp+var_F4]
		mov	eax, ds:off_40A32C
		call	sub_401C54
		lea	eax, [ebp+var_F8]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D06Bh
		mov	eax, offset _str_FKQ8ND.Text
		call	sub_4042EC
		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, 0D06Ch
		mov	eax, offset _str_iTRiyC.Text
		call	sub_4042EC
		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, 0D06Dh
		mov	eax, offset _str_le7k9FyqGD.Text
		call	sub_4042EC
		mov	edx, [ebp+var_100]
		mov	eax, ds:off_40A2A8
		call	sub_401C54
		lea	eax, [ebp+var_104]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D06Eh
		mov	eax, offset _str_z6ptkCgE0y1vMB.Text
		call	sub_4042EC
		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, 0D06Fh
		mov	eax, offset _str_WSTEDpNY_rMaz2A.Text
		call	sub_4042EC
		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, 0D070h
		mov	eax, offset _str_WWEoQmTpaaAv.Text
		call	sub_4042EC
		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, 0D071h
		mov	eax, offset _str_D2c6SLGCOFaVdQN.Text
		call	sub_4042EC
		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, 0D072h
		mov	eax, offset _str_TGDfsDtgnyxKHDL.Text
		call	sub_4042EC
		mov	edx, [ebp+var_114]
		mov	eax, ds:off_40A23C
		call	sub_401C54
		lea	eax, [ebp+var_118]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D073h
		mov	eax, offset _str_nGivcp3zrsQpuxh.Text
		call	sub_4042EC
		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, 0D074h
		mov	eax, offset _str__WQPYV6ImU40.Text
		call	sub_4042EC
		mov	edx, [ebp+var_11C]
		mov	eax, ds:off_40A1B8
		call	sub_401C54
		lea	eax, [ebp+var_120]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D075h
		mov	eax, offset _str_kOxg.Text
		call	sub_4042EC
		mov	edx, [ebp+var_120]
		mov	eax, ds:off_40A2A4
		call	sub_401C54
		lea	eax, [ebp+var_124]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D076h
		mov	eax, offset _str_4mBASuzMOC.Text
		call	sub_4042EC
		mov	edx, [ebp+var_124]
		mov	eax, ds:off_40A304
		call	sub_401C54
		lea	eax, [ebp+var_128]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D077h
		mov	eax, offset _str__nEu3lH.Text
		call	sub_4042EC
		mov	edx, [ebp+var_128]
		mov	eax, ds:off_40A278
		call	sub_401C54
		lea	eax, [ebp+var_12C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D078h
		mov	eax, offset _str_Ue2uCvWWGOIatUI.Text
		call	sub_4042EC
		mov	edx, [ebp+var_12C]
		mov	eax, ds:off_40A210
		call	sub_401C54
		lea	eax, [ebp+var_130]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D079h
		mov	eax, offset _str_dyHuj0UxFsnW.Text
		call	sub_4042EC
		mov	edx, [ebp+var_130]
		mov	eax, ds:off_40A178
		call	sub_401C54
		lea	eax, [ebp+var_134]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D07Ah
		mov	eax, offset _str__fnjFD.Text
		call	sub_4042EC
		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, 0D07Bh
		mov	eax, offset _str_n6umZzN.Text
		call	sub_4042EC
		mov	edx, [ebp+var_138]
		mov	eax, ds:off_40A2C8
		call	sub_401C54
		lea	eax, [ebp+var_13C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D07Ch
		mov	eax, offset _str_n_rgbFZi.Text
		call	sub_4042EC
		mov	edx, [ebp+var_13C]
		mov	eax, ds:off_40A218
		call	sub_401C54
		lea	eax, [ebp+var_140]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D07Dh
		mov	eax, offset _str_T6UfmvLH2gNKYW7.Text
		call	sub_4042EC
		mov	edx, [ebp+var_140]
		mov	eax, ds:off_40A24C
		call	sub_401C54
		lea	eax, [ebp+var_144]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D07Eh
		mov	eax, offset _str_Hyzm1IjvBA93Z8D.Text
		call	sub_4042EC
		mov	edx, [ebp+var_144]
		mov	eax, ds:off_40A208
		call	sub_401C54
		lea	eax, [ebp+var_148]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D07Fh
		mov	eax, offset _str_MKGVrgMHUcFsr_1.Text
		call	sub_4042EC
		mov	edx, [ebp+var_148]
		mov	eax, ds:off_40A284
		call	sub_401C54
		lea	eax, [ebp+var_14C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D080h
		mov	eax, offset _str_fSiIO8WdxFRb5CD.Text
		call	sub_4042EC
		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, 0D081h
		mov	eax, offset _str_TSwsCw4JgxJV2_J.Text
		call	sub_4042EC
		mov	edx, [ebp+var_150]
		mov	eax, ds:off_40A1F0
		call	sub_401C54
		lea	eax, [ebp+var_154]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D082h
		mov	eax, offset _str_Cqew1bIggQHU8IP.Text
		call	sub_4042EC
		mov	edx, [ebp+var_154]
		mov	eax, ds:off_40A2BC
		call	sub_401C54
		lea	eax, [ebp+var_158]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D083h
		mov	eax, offset _str_fCLnGWxr2UmYoHy.Text
		call	sub_4042EC
		mov	edx, [ebp+var_158]
		mov	eax, ds:off_40A254
		call	sub_401C54
		lea	eax, [ebp+var_15C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D084h
		mov	eax, offset _str_UqMh4WCWPTu093g.Text
		call	sub_4042EC
		mov	edx, [ebp+var_15C]
		mov	eax, ds:off_40A258
		call	sub_401C54
		lea	eax, [ebp+var_160]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D085h
		mov	eax, offset _str_T2tXODNt0BY6eUY.Text
		call	sub_4042EC
		mov	edx, [ebp+var_160]
		mov	eax, ds:off_40A244
		call	sub_401C54
		lea	eax, [ebp+var_164]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D086h
		mov	eax, offset _str_X29SAHwrIpN5aFh.Text
		call	sub_4042EC
		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, 0D087h
		mov	eax, offset _str_TOiGXxPzq88SPgK.Text
		call	sub_4042EC
		mov	edx, [ebp+var_168]
		mov	eax, ds:off_40A274
		call	sub_401C54
		lea	eax, [ebp+var_16C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D088h
		mov	eax, offset _str_TeXpspNAv0S68Zc.Text
		call	sub_4042EC
		mov	edx, [ebp+var_16C]
		mov	eax, ds:off_40A1A8
		call	sub_401C54
		lea	eax, [ebp+var_170]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D089h
		mov	eax, offset _str_De2oeIwhD_a79N1.Text
		call	sub_4042EC
		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, 0D08Ah
		mov	eax, offset _str_WG1TvB4VAxgYY2M.Text
		call	sub_4042EC
		mov	edx, [ebp+var_174]
		mov	eax, ds:off_40A280
		call	sub_401C54
		lea	eax, [ebp+var_178]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D08Bh
		mov	eax, offset _str_Tm_66ZKLJjkC7md.Text
		call	sub_4042EC
		mov	edx, [ebp+var_178]
		mov	eax, ds:off_40A228
		call	sub_401C54
		lea	eax, [ebp+var_17C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D08Ch
		mov	eax, offset _str_j2knLKBkYfiWBHK.Text
		call	sub_4042EC
		mov	edx, [ebp+var_17C]
		mov	eax, ds:off_40A1C8
		call	sub_401C54
		lea	eax, [ebp+var_180]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D08Dh
		mov	eax, offset _str_XizH5F4BFX7E0xa.Text
		call	sub_4042EC
		mov	edx, [ebp+var_180]
		mov	eax, ds:off_40A1E4
		call	sub_401C54
		lea	eax, [ebp+var_184]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D08Eh
		mov	eax, offset _str__vFN.Text
		call	sub_4042EC
		mov	edx, [ebp+var_184]
		mov	eax, ds:off_40A2B8
		call	sub_401C54
		lea	eax, [ebp+var_188]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D08Fh
		mov	eax, offset _str_Xy5NN4WsTsMFHcC.Text
		call	sub_4042EC
		mov	edx, [ebp+var_188]
		mov	eax, ds:off_40A13C
		call	sub_401C54
		lea	eax, [ebp+var_18C]
		push	eax
		xor	ecx, ecx
		mov	edx, 0D090h
		mov	eax, offset _str_X2q5_qb8R4pPaka.Text
		call	sub_4042EC
		mov	edx, [ebp+var_18C]
		mov	eax, ds:off_40A1FC
		call	sub_401C54
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40817F


loc_40815A:				; CODE XREF: sub_407280+EFDj
		lea	eax, [ebp+var_18C]
		mov	edx, 5Fh
		call	sub_401C24
		lea	eax, [ebp+var_C]
		mov	edx, 2
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_408178:				; DATA XREF: sub_407280+16o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40815A
; ---------------------------------------------------------------------------


loc_40817F:				; CODE XREF: sub_407280+EF7j
					; DATA XREF: sub_407280+ED5o
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_407280	endp

; ---------------------------------------------------------------------------
		align 4
_str_o3Ug7B	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+33o
		dd 6			; Len
		db 'o3Ug7B',0           ; Text
		align 4
_str_hb5z7XP	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+58o
		dd 7			; Len
		db 'hb5z7XP',0          ; Text
_str_xW6wl5rGdGKu0ws dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+7Do
		dd 16			; Len
		db 'xW6wl5rGdGKu0wsn',0 ; Text
		align 4
_str_C_8sJj5ViK36j_L dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+9Fo
		dd 20			; Len
		db 'C+8sJj5ViK36j+Luxnv1',0; Text
		align 4
_str_C2BgZM_rQ1EPwYn dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+C1o
		dd 19			; Len
		db 'C2BgZM+rQ1EPwYnNTfH',0; Text
_str_CKS7skSHLqaC33K dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+E3o
		dd 15			; Len
		db 'CKS7skSHLqaC33K',0  ; Text
_str_CCnbeoSVIPS3PFT dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+105o
		dd 22			; Len
		db 'CCnbeoSVIPS3PFTTpkFafC',0; Text
		align 4
_str_CaoB6aFqwdB_0sC dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+127o
		dd 15			; Len
		db 'CaoB6aFqwdB/0sC',0  ; Text
_str_Ce9KsGJ1Da58FWa dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+149o
		dd 18			; Len
		db 'Ce9KsGJ1Da58FWa95C',0; Text
		align 4
_str_DCQZnYfxXv9v3ig dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+16Bo
		dd 90			; Len
		db 'DCQZnYfxXv9v3igiZ2x9r+Mq/8I9q7MVY+psio/vWMymwkm/k67bqM2LKVv33w/7V'; Text
		db 'on7dUz+Mk8axowc1Ov2ssB01C',0; Text
		align 10h
_str_1nVPWJOBs0a_QtV dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+18Do
		dd 68			; Len
		db '1nVPWJOBs0a/QtVZW4qGyhOigDoZl0Q0VE0gPnwEodyP+Nty7vR1f6v3JRN0rqTCA'; Text
		db 'v8K',0              ; Text
		align 10h
_str_DOagFKq19C33s8h dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+1AFo
		dd 80			; Len
		db 'DOagFKq19C33s8hfRa2v5YEmia/PpAGKYkMxbkQ9sT9pP4Xm8FBh79866HbklcrpU'; Text
		db 'cdSrB+L4KrLKmEv',0  ; Text
		align 4
_str_1TPDqrmpZR84hl2 dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+1D1o
		dd 59			; Len
		db '1TPDqrmpZR84hl28ghj79tHXFKw36y5F1IqH8Uh8RqY2cME02ve4UIPWRyG',0; Text
_str_DG9RQ08GrFc4YMX dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+1F3o
		dd 78			; Len
		db 'DG9RQ08GrFc4YMXfkaiDELAn/S1zqFQ7+2XXhm5g1NgGuS9bF83LfpF8c7YWro/qY'; Text
		db 'BhhAiIGLQU+WB',0    ; Text
		align 4
_str_11072155	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+20Fo
		dd 8			; Len
		db '11072155',0         ; Text
		align 4
_str_m		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+21Eo
		dd 1			; Len
		db 'm',0                ; Text
		align 4
_str_V2q5q8BDSbqu_C dd 0FFFFFFFFh	    ; _top ; DATA XREF:	sub_407280+233o
		dd 14			; Len
		db 'V2q5q8BDSbqu/C',0   ; Text
		align 10h
_str_SqkD6q9V	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+255o
		dd 8			; Len
		db 'SqkD6q9V',0         ; Text
		align 4
_str_DuLYKWRq02SQElk dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+2A6o
		dd 32			; Len
		db 'DuLYKWRq02SQElkIHd+1seY6PkvTdXnF',0; Text
		align 10h
_str_y6MA8Q_nJiH dd 0FFFFFFFFh		 ; _top	; DATA XREF: sub_407280+2C8o
		dd 11			; Len
		db 'y6MA8Q+nJiH',0      ; Text
_str_hr2jDylwBIaD4aa dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+2EAo
		dd 19			; Len
		db 'hr2jDylwBIaD4aanJUA',0; Text
_str_inMutSLh9yecy2v dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+30Co
		dd 18			; Len
		db 'inMutSLh9yecy2vs+D',0; Text
		align 4
_str_6S_0baFItraPgqM dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+32Eo
		dd 19			; Len
		db '6S/0baFItraPgqMTvlL',0; Text
_str_mb_oHF0ol9RfXNx dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+350o
		dd 18			; Len
		db 'mb+oHF0ol9RfXNxKnC',0; Text
		align 4
_str_lyFy	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+372o
		dd 4			; Len
		db 'lyFy',0             ; Text
		align 4
_str_nONAC5TYXprlVqG dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+394o
		dd 15			; Len
		db 'nONAC5TYXprlVqG',0  ; Text
_str_jqFbtj0z	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+3B6o
		dd 8			; Len
		db 'jqFbtj0z',0         ; Text
		align 10h
_str_4aYoq1K	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+3D8o
		dd 7			; Len
		db '4aYoq1K',0          ; Text
_str_3eJ8Q6VWDUnTKgU dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+3FAo
		dd 18			; Len
		db '3eJ8Q6VWDUnTKgU6EA',0; Text
		align 4
_str_9OOZ	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+41Co
		dd 4			; Len
		db '9OOZ',0             ; Text
		align 4
_str__vKwID	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+43Eo
		dd 6			; Len
		db '+vKwID',0           ; Text
		align 4
_str_liaQjnk7Hb7FbC dd 0FFFFFFFFh	    ; _top ; DATA XREF:	sub_407280+463o
		dd 14			; Len
		db 'liaQjnk7Hb7FbC',0   ; Text
		align 4
_str_Fm4N1wH3m5xNILd dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+48Bo
		dd 24			; Len
		db 'Fm4N1wH3m5xNILdNVks+ObPN',0; Text
		align 4
_str_nC25NyrLx_WCnRG dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+4B3o
		dd 15			; Len
		db 'nC25NyrLx+WCnRG',0  ; Text
_str_j288AD	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+4DBo
		dd 6			; Len
		db 'j288AD',0           ; Text
		align 10h
_str_HC7s3V6VCmLsoB dd 0FFFFFFFFh	    ; _top ; DATA XREF:	sub_407280+503o
		dd 14			; Len
		db 'HC7s3V6VCmLsoB',0   ; Text
		align 4
_str_HKOn_COpdMWs2B dd 0FFFFFFFFh	    ; _top ; DATA XREF:	sub_407280+52Bo
		dd 14			; Len
		db 'HKOn+COpdMWs2B',0   ; Text
		align 10h
_str_Hyy9T_X1_I00CVr dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+553o
		dd 20			; Len
		db 'Hyy9T+X1/I00CVrnxqd/',0; Text
		align 10h
_str_3e2olMmF1ya_gJz dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+57Bo
		dd 18			; Len
		db '3e2olMmF1ya/gJz3yD',0; Text
		align 4
_str_j_tRE95a	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+5A3o
		dd 8			; Len
		db 'j+tRE95a',0         ; Text
		align 10h
_str_jqRkg1__aqP3OA dd 0FFFFFFFFh	    ; _top ; DATA XREF:	sub_407280+5CBo
		dd 14			; Len
		db 'jqRkg1/+aqP3OA',0   ; Text
		align 4
_str_iqhhCB	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+5F3o
		dd 6			; Len
		db 'iqhhCB',0           ; Text
		align 4
_str_5ebnQJF9qEc8 dd 0FFFFFFFFh		  ; _top ; DATA	XREF: sub_407280+61Bo
		dd 12			; Len
		db '5ebnQJF9qEc8',0     ; Text
		align 10h
_str_5m8cqgomKyIz dd 0FFFFFFFFh		  ; _top ; DATA	XREF: sub_407280+643o
		dd 12			; Len
		db '5m8cqgomKyIz',0     ; Text
		align 4
_str_4OdSmrA	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+66Bo
		dd 7			; Len
		db '4OdSmrA',0          ; Text
_str_zGQC_oPD2D	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+693o
		dd 10			; Len
		db 'zGQC+oPD2D',0       ; Text
		align 4
_str___GOPEH	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+6BBo
		dd 7			; Len
		db '++GOPEH',0          ; Text
_str_4eGsGpB	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+6E3o
		dd 7			; Len
		db '4eGsGpB',0          ; Text
_str_XCiJj0y4vOtj3IZ dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+70Bo
		dd 16			; Len
		db 'XCiJj0y4vOtj3IZv',0 ; Text
		align 4
_str_XaXMhsk7bwYim57 dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+733o
		dd 26			; Len
		db 'XaXMhsk7bwYim57uAJwUkmYp/D',0; Text
		align 4
_str_TestvWuvOXd9 dd 0FFFFFFFFh		  ; _top ; DATA	XREF: sub_407280+75Bo
		dd 12			; Len
		db 'TestvWuvOXd9',0     ; Text
		align 4
_str_my6Yu0H1yr7m4WG dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+783o
		dd 15			; Len
		db 'my6Yu0H1yr7m4WG',0  ; Text
_str_7OuwyQvT3YLoxXi dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+7ABo
		dd 16			; Len
		db '7OuwyQvT3YLoxXic',0 ; Text
		align 4
_str_XiivN9VTTAe_4LG dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+7D3o
		dd 31			; Len
		db 'XiivN9VTTAe+4LGSVTBfthK24igOLnK',0; Text
_str_XmHw5nLh2jIQLnG dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+7FBo
		dd 26			; Len
		db 'XmHw5nLh2jIQLnGQXuXBOooTfC',0; Text
		align 4
_str_GCFja043VVaSBCo dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+823o
		dd 19			; Len
		db 'GCFja043VVaSBCoQwIF',0; Text
_str_zCiZvXyDyHq00YN dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+84Bo
		dd 15			; Len
		db 'zCiZvXyDyHq00YN',0  ; Text
_str_DqwlRLG	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+873o
		dd 7			; Len
		db 'DqwlRLG',0          ; Text
_str_1WOJGB	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+89Bo
		dd 6			; Len
		db '1WOJGB',0           ; Text
		align 4
_str_FCNYaPGe	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+8C3o
		dd 8			; Len
		db 'FCNYaPGe',0         ; Text
		align 4
_str_FKQ8ND	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+8EBo
		dd 6			; Len
		db 'FKQ8ND',0           ; Text
		align 4
_str_iTRiyC	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+913o
		dd 6			; Len
		db 'iTRiyC',0           ; Text
		align 4
_str_le7k9FyqGD	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+93Bo
		dd 10			; Len
		db 'le7k9FyqGD',0       ; Text
		align 10h
_str_z6ptkCgE0y1vMB dd 0FFFFFFFFh	    ; _top ; DATA XREF:	sub_407280+963o
		dd 14			; Len
		db 'z6ptkCgE0y1vMB',0   ; Text
		align 4
_str_WSTEDpNY_rMaz2A dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+98Bo
		dd 19			; Len
		db 'WSTEDpNY/rMaz2ARYGE',0; Text
_str_WWEoQmTpaaAv dd 0FFFFFFFFh		  ; _top ; DATA	XREF: sub_407280+9B3o
		dd 12			; Len
		db 'WWEoQmTpaaAv',0     ; Text
		align 4
_str_D2c6SLGCOFaVdQN dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+9DBo
		dd 15			; Len
		db 'D2c6SLGCOFaVdQN',0  ; Text
_str_TGDfsDtgnyxKHDL dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+A03o
		dd 15			; Len
		db 'TGDfsDtgnyxKHDL',0  ; Text
_str_nGivcp3zrsQpuxh dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+A2Bo
		dd 16			; Len
		db 'nGivcp3zrsQpuxhL',0 ; Text
		align 4
_str__WQPYV6ImU40 dd 0FFFFFFFFh		  ; _top ; DATA	XREF: sub_407280+A53o
		dd 12			; Len
		db '/WQPYV6ImU40',0     ; Text
		align 10h
_str_kOxg	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+A7Bo
		dd 4			; Len
		db 'kOxg',0             ; Text
		align 10h
_str_4mBASuzMOC	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+AA3o
		dd 10			; Len
		db '4mBASuzMOC',0       ; Text
		align 4
_str__nEu3lH	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+ACBo
		dd 7			; Len
		db '/nEu3lH',0          ; Text
_str_Ue2uCvWWGOIatUI dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+AF3o
		dd 15			; Len
		db 'Ue2uCvWWGOIatUI',0  ; Text
_str_dyHuj0UxFsnW dd 0FFFFFFFFh		  ; _top ; DATA	XREF: sub_407280+B1Bo
		dd 12			; Len
		db 'dyHuj0UxFsnW',0     ; Text
		align 4
_str__fnjFD	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+B43o
		dd 6			; Len
		db '+fnjFD',0           ; Text
		align 4
_str_n6umZzN	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+B6Bo
		dd 7			; Len
		db 'n6umZzN',0          ; Text
_str_n_rgbFZi	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+B93o
		dd 8			; Len
		db 'n+rgbFZi',0         ; Text
		align 4
_str_T6UfmvLH2gNKYW7 dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+BBBo
		dd 19			; Len
		db 'T6UfmvLH2gNKYW7HOqB',0; Text
_str_Hyzm1IjvBA93Z8D dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+BE3o
		dd 26			; Len
		db 'Hyzm1IjvBA93Z8DoIAEqKyAf3D',0; Text
		align 4
_str_MKGVrgMHUcFsr_1 dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+C0Bo
		dd 32			; Len
		db 'MKGVrgMHUcFsr/17M5TvwZuUo4Fx363Q',0; Text
		align 4
_str_fSiIO8WdxFRb5CD dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+C33o
		dd 19			; Len
		db 'fSiIO8WdxFRb5CD7cbP',0; Text
_str_TSwsCw4JgxJV2_J dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+C5Bo
		dd 15			; Len
		db 'TSwsCw4JgxJV2+J',0  ; Text
_str_Cqew1bIggQHU8IP dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+C83o
		dd 36			; Len
		db 'Cqew1bIggQHU8IPR9IfvFGhI2gY7vfUPltwg',0; Text
		align 4
_str_fCLnGWxr2UmYoHy dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+CABo
		dd 16			; Len
		db 'fCLnGWxr2UmYoHyK',0 ; Text
		align 4
_str_UqMh4WCWPTu093g dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+CD3o
		dd 18			; Len
		db 'UqMh4WCWPTu093gOgB',0; Text
		align 10h
_str_T2tXODNt0BY6eUY dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+CFBo
		dd 19			; Len
		db 'T2tXODNt0BY6eUYpYZF',0; Text
_str_X29SAHwrIpN5aFh dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+D23o
		dd 16			; Len
		db 'X29SAHwrIpN5aFhv',0 ; Text
		align 4
_str_TOiGXxPzq88SPgK dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+D4Bo
		dd 19			; Len
		db 'TOiGXxPzq88SPgKgg1O',0; Text
_str_TeXpspNAv0S68Zc dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+D73o
		dd 24			; Len
		db 'TeXpspNAv0S68ZcS7qSXuhDQ',0; Text
		align 4
_str_De2oeIwhD_a79N1 dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+D9Bo
		dd 22			; Len
		db 'De2oeIwhD/a79N1Qd4EzAC',0; Text
		align 4
_str_WG1TvB4VAxgYY2M dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+DC3o
		dd 15			; Len
		db 'WG1TvB4VAxgYY2M',0  ; Text
_str_Tm_66ZKLJjkC7md dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+DEBo
		dd 19			; Len
		db 'Tm+66ZKLJjkC7md87zF',0; Text
_str_j2knLKBkYfiWBHK dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+E13o
		dd 15			; Len
		db 'j2knLKBkYfiWBHK',0  ; Text
_str_XizH5F4BFX7E0xa dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+E3Bo
		dd 16			; Len
		db 'XizH5F4BFX7E0xaQ',0 ; Text
		align 10h
_str__vFN	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_407280+E63o
		dd 4			; Len
		db '+vFN',0             ; Text
		align 10h
_str_Xy5NN4WsTsMFHcC dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+E8Bo
		dd 16			; Len
		db 'Xy5NN4WsTsMFHcCf',0 ; Text
		align 4
_str_X2q5_qb8R4pPaka dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_407280+EB3o
		dd 24			; Len
		db 'X2q5+qb8R4pPakatl5Eu16tr',0; Text
		align 10h

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

; Attributes: bp-based frame


sub_408C30	proc near		; CODE XREF: r+25p 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
var_4		= 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_40943F
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, ds:off_40A17C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		call	sub_406A08
		mov	[ebp+var_10], eax
		mov	eax, ds:off_40A188
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		call	sub_406A08
		mov	[ebp+var_4], eax
		mov	eax, ds:off_40A134
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		call	sub_406A08
		mov	[ebp+var_C], eax
		mov	eax, ds:off_40A1D0
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		call	sub_406A08
		mov	[ebp+var_8], eax
		mov	eax, offset loc_4029F4
		mov	edx, ds:off_40A164
		mov	[edx], eax
		mov	eax, ds:off_40A0DC
		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_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A214
		mov	[edx], eax
		mov	eax, ds:off_40A280
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A12C
		mov	[edx], eax
		mov	eax, ds:off_40A324
		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_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A2B4
		mov	[edx], eax
		mov	eax, ds:off_40A1F8
		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_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A19C
		mov	[edx], eax
		mov	eax, ds:off_40A26C
		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_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A2D4
		mov	[edx], eax
		mov	eax, ds:off_40A1E0
		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_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A174
		mov	[edx], eax
		mov	eax, ds:off_40A1DC
		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_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A224
		mov	[edx], eax
		mov	eax, ds:off_40A268
		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_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A2D0
		mov	[edx], eax
		mov	eax, ds:off_40A254
		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_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A104
		mov	[edx], eax
		mov	eax, ds:off_40A258
		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_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A110
		mov	[edx], eax
		mov	eax, ds:off_40A244
		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_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A0FC
		mov	[edx], eax
		mov	eax, ds:off_40A234
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A28C
		mov	[edx], eax
		mov	eax, ds:off_40A294
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A2EC
		mov	[edx], eax
		mov	eax, ds:off_40A2D8
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A318
		mov	[edx], eax
		mov	eax, ds:off_40A270
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A2E0
		mov	[edx], eax
		mov	eax, ds:off_40A11C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A15C
		mov	[edx], eax
		mov	eax, ds:off_40A2F4
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A330
		mov	[edx], eax
		mov	eax, ds:off_40A144
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A198
		mov	[edx], eax
		mov	eax, ds:off_40A2D8
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A318
		mov	[edx], eax
		mov	eax, ds:off_40A234
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A28C
		mov	[edx], eax
		mov	eax, ds:off_40A240
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A298
		mov	[edx], eax
		mov	eax, ds:off_40A2CC
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A30C
		mov	[edx], eax
		mov	eax, ds:off_40A25C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A2C0
		mov	[edx], eax
		mov	eax, ds:off_40A108
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A14C
		mov	[edx], eax
		mov	eax, ds:off_40A294
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A2EC
		mov	[edx], eax
		mov	eax, ds:off_40A1D8
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A20C
		mov	[edx], eax
		mov	eax, ds:off_40A16C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A1C4
		mov	[edx], eax
		mov	eax, ds:off_40A168
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A1C0
		mov	[edx], eax
		mov	eax, ds:off_40A2E4
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A328
		mov	[edx], eax
		mov	eax, ds:off_40A0E4
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A220
		mov	[edx], eax
		mov	eax, ds:off_40A230
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A288
		mov	[edx], 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_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A204
		mov	[edx], eax
		mov	eax, ds:off_40A2B0
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_10]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A2FC
		mov	[edx], eax
		mov	eax, ds:off_40A320
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_10]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A0CC
		mov	[edx], eax
		mov	eax, ds:off_40A1EC
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_10]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A248
		mov	[edx], eax
		mov	eax, ds:off_40A160
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A1B4
		mov	[edx], eax
		mov	eax, ds:off_40A1A0
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A1E8
		mov	[edx], eax
		mov	eax, ds:off_40A140
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A194
		mov	[edx], eax
		mov	eax, ds:off_40A120
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A170
		mov	[edx], eax
		mov	eax, ds:off_40A0E0
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A118
		mov	[edx], eax
		mov	eax, ds:off_40A23C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A290
		mov	[edx], eax
		mov	eax, ds:off_40A178
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A10C
		mov	[edx], eax
		mov	eax, ds:off_40A210
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A1AC
		mov	[edx], eax
		mov	eax, ds:off_40A24C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A2A0
		mov	[edx], eax
		mov	eax, ds:off_40A208
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A260
		mov	[edx], eax
		mov	eax, ds:off_40A0EC
		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_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A31C
		mov	[edx], eax
		mov	ecx, ds:off_40A1B8
		mov	ecx, [ecx]
		mov	edx, ds:off_40A250
		mov	edx, [edx]
		mov	eax, ds:off_40A2C4
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, ds:off_40A1F0
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A18C
		mov	[edx], eax
		mov	eax, ds:off_40A2BC
		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_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A300
		mov	[edx], eax
		mov	eax, ds:off_40A274
		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_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A124
		mov	[edx], eax
		mov	eax, ds:off_40A1A8
		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_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A2F8
		mov	[edx], eax
		mov	eax, ds:off_40A228
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A0F0
		mov	[edx], eax
		mov	eax, ds:off_40A1E4
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A310
		mov	[edx], eax
		mov	eax, ds:off_40A13C
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A29C
		mov	[edx], eax
		mov	eax, ds:off_40A1FC
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A164
		mov	eax, [eax]
		call	eax
		mov	edx, ds:off_40A2AC
		mov	[edx], eax
		lea	eax, [ebp+var_14]
		call	sub_407098
		mov	edx, [ebp+var_14]
		mov	eax, ds:off_40A22C
		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_40A250
		call	sub_401C54
		lea	eax, [ebp+var_1C]
		call	sub_406D9C
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_409446


loc_409431:				; CODE XREF: sub_408C30+814j
		lea	eax, [ebp+var_1C]
		mov	edx, 3
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_40943F:				; DATA XREF: sub_408C30+14o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_409431
; ---------------------------------------------------------------------------


loc_409446:				; CODE XREF: sub_408C30+80Ej
					; DATA XREF: sub_408C30+7FCo
		mov	esp, ebp
		pop	ebp
		retn
sub_408C30	endp

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

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

; Attributes: bp-based frame


sub_40944C	proc near		; CODE XREF: sub_409504+4Dp r+256p

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_4094F4
		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_4094D5
		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_4032B8
		push	[ebp+var_1C]
		mov	eax, [ebp+var_4]
		mov	edx, 3
		call	sub_401EB4
		mov	[ebp+var_D], 1
		jmp	short loc_4094D9
; ---------------------------------------------------------------------------


loc_4094D5:				; CODE XREF: sub_40944C+3Aj
		mov	[ebp+var_D], 0


loc_4094D9:				; CODE XREF: sub_40944C+87j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4094FB


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


loc_4094F4:				; DATA XREF: sub_40944C+1Bo
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4094E6
; ---------------------------------------------------------------------------


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

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

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

; Attributes: bp-based frame


sub_409504	proc near		; CODE XREF: r+3Fp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0
		xor	eax, eax
		push	ebp
		push	offset loc_409585
		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_404DB0
		test	al, al
		jz	short loc_40956F
		mov	edx, ds:off_40A158
		mov	edx, [edx]
		mov	eax, [ebp+var_4]
		call	sub_4032E0
		test	eax, eax
		jl	short loc_40956F
		mov	edx, ds:off_40A158
		mov	edx, [edx]
		lea	eax, [ebp+var_4]
		xor	ecx, ecx
		call	sub_40944C
		test	al, al
		jz	short loc_40956F
		mov	edx, ds:off_40A130
		mov	edx, [edx]
		mov	ecx, [ebp+var_4]
		mov	eax, 80000002h
		call	sub_404BF0


loc_40956F:				; CODE XREF: sub_409504+2Aj
					; sub_409504+3Ej ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40958C


loc_40957C:				; CODE XREF: sub_409504+86j
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_409585:				; DATA XREF: sub_409504+8o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40957C
; ---------------------------------------------------------------------------


loc_40958C:				; CODE XREF: sub_409504+80j
					; DATA XREF: sub_409504+73o
		pop	ecx
		pop	ebp
		retn
sub_409504	endp

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

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

; Attributes: bp-based frame


sub_409590	proc near		; CODE XREF: r+44p

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_4096BE
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		push	0F003Fh
		push	0
		push	0
		mov	eax, ds:off_40A31C
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jbe	loc_4096A3
		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_409696
		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_40A1E8
		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_409689
		mov	eax, ds:off_40A220
		mov	eax, [eax]
		call	eax
		lea	edx, [ebp+var_2C]
		call	sub_4031F4
		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_40A1D4
		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_404B64


loc_409689:				; CODE XREF: sub_409590+9Dj
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A2F8
		mov	eax, [eax]
		call	eax


loc_409696:				; CODE XREF: sub_409590+67j
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, ds:off_40A2F8
		mov	eax, [eax]
		call	eax


loc_4096A3:				; CODE XREF: sub_409590+3Bj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4096C5


loc_4096B0:				; CODE XREF: sub_409590+133j
		lea	eax, [ebp+var_34]
		mov	edx, 4
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_4096BE:				; DATA XREF: sub_409590+17o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4096B0
; ---------------------------------------------------------------------------


loc_4096C5:				; CODE XREF: sub_409590+12Dj
					; DATA XREF: sub_409590+11Bo
		mov	esp, ebp
		pop	ebp
		retn
sub_409590	endp

; ---------------------------------------------------------------------------
		align 4
_str_5_0	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_409590+B6o
		dd 1			; Len
		db '5',0                ; Text
		align 4
_str_i		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_409590+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_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		= byte ptr -34h
var_15		= byte ptr -15h
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_4096EC:				; CODE XREF: r+Dj
		push	0
		push	0
		dec	ecx
		jnz	short loc_4096EC
		push	ecx
		xor	eax, eax
		push	ebp
		push	offset loc_409B48
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	eax, eax
		call	sub_407280
		call	sub_408C30
		call	sub_40562C
		lea	eax, [ebp+var_14]
		mov	edx, ds:off_40A0D8
		mov	edx, [edx]
		call	sub_401C98
		call	sub_409504
		call	sub_409590
		lea	ecx, [ebp+var_4]
		mov	edx, ds:off_40A21C
		mov	edx, [edx]
		mov	eax, 80000002h
		call	sub_404DB0
		test	al, al
		jz	loc_409AA9
		mov	edx, [ebp+var_14]
		mov	eax, [ebp+var_4]
		call	sub_4032E0
		test	eax, eax
		jge	short loc_409771
		push	[ebp+var_14]
		push	offset dword_409B5C
		push	[ebp+var_4]
		lea	eax, [ebp+var_4]
		mov	edx, 3
		call	sub_401EB4


loc_409771:				; CODE XREF: r+73j
		mov	edx, ds:off_40A21C
		mov	edx, [edx]
		mov	ecx, [ebp+var_4]
		mov	eax, 80000002h
		call	sub_404BF0
		test	al, al
		jz	loc_409A4D
		push	0F003Fh
		push	0
		push	0
		mov	eax, ds:off_40A31C
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jbe	loc_40987B
		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_40986E
		lea	eax, [ebp+var_34]
		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_40A1E8
		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_409861
		mov	eax, ds:off_40A220
		mov	eax, [eax]
		call	eax
		lea	edx, [ebp+var_3C]
		call	sub_4031F4
		mov	ecx, [ebp+var_3C]
		lea	eax, [ebp+var_38]
		mov	edx, offset _str_5_1.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_38]
		push	eax
		mov	edx, ds:off_40A1D4
		mov	edx, [edx]
		lea	eax, [ebp+var_44]
		mov	ecx, offset _str_i_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_44]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_40]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_40]
		mov	eax, 80000002h
		pop	ecx
		call	sub_404B64


loc_409861:				; CODE XREF: r+121j
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A2F8
		mov	eax, [eax]
		call	eax


loc_40986E:				; CODE XREF: r+EBj
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A2F8
		mov	eax, [eax]
		call	eax


loc_40987B:				; CODE XREF: r+C3j
		push	0F003Fh
		push	0
		push	0
		mov	eax, ds:off_40A31C
		mov	eax, [eax]
		call	eax
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		setnbe	[ebp+var_15]
		cmp	[ebp+var_15], 0
		jz	loc_4099EE
		push	0
		push	0
		push	0
		push	0
		push	0
		mov	eax, ds:off_40A190
		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_40998F
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A2F8
		mov	eax, [eax]
		call	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A2F8
		mov	eax, [eax]
		call	eax
		lea	eax, [ebp+var_10]
		mov	edx, 0FFh
		call	sub_4020C8
		push	0FFh
		mov	eax, [ebp+var_10]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, ds:dword_40B068
		push	eax
		mov	eax, ds:off_40A2AC
		mov	eax, [eax]
		call	eax
		mov	eax, ds:off_40A1CC
		mov	ecx, [ebp+var_14]
		mov	edx, offset _str__s.Text
		call	sub_40944C
		mov	edx, ds:off_40A1CC
		mov	edx, [edx]
		mov	ecx, [ebp+var_10]
		mov	eax, 80000002h
		call	sub_404C7C
		mov	edx, ds:off_40A1D4
		mov	edx, [edx]
		lea	eax, [ebp+var_4C]
		mov	ecx, offset _str_i_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_4C]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_48]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_48]
		xor	ecx, ecx
		mov	eax, 80000002h
		call	sub_404B64
		jmp	loc_409B15
; ---------------------------------------------------------------------------


loc_40998F:				; CODE XREF: r+1FFj
		mov	eax, ds:off_40A220
		mov	eax, [eax]
		call	eax
		lea	edx, [ebp+var_54]
		call	sub_4031F4
		mov	ecx, [ebp+var_54]
		lea	eax, [ebp+var_50]
		mov	edx, offset _str_1_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_50]
		push	eax
		mov	edx, ds:off_40A1D4
		mov	edx, [edx]
		lea	eax, [ebp+var_5C]
		mov	ecx, offset _str_i_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_5C]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_58]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_58]
		mov	eax, 80000002h
		pop	ecx
		call	sub_404B64
		jmp	loc_409B15
; ---------------------------------------------------------------------------


loc_4099EE:				; CODE XREF: r+1B8j
		mov	eax, ds:off_40A220
		mov	eax, [eax]
		call	eax
		lea	edx, [ebp+var_64]
		call	sub_4031F4
		mov	ecx, [ebp+var_64]
		lea	eax, [ebp+var_60]
		mov	edx, offset _str_2_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_60]
		push	eax
		mov	edx, ds:off_40A1D4
		mov	edx, [edx]
		lea	eax, [ebp+var_6C]
		mov	ecx, offset _str_i_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_6C]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_68]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_68]
		mov	eax, 80000002h
		pop	ecx
		call	sub_404B64
		jmp	loc_409B15
; ---------------------------------------------------------------------------


loc_409A4D:				; CODE XREF: r+A4j
		mov	eax, ds:off_40A220
		mov	eax, [eax]
		call	eax
		lea	edx, [ebp+var_74]
		call	sub_4031F4
		mov	ecx, [ebp+var_74]
		lea	eax, [ebp+var_70]
		mov	edx, offset _str_3_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_70]
		push	eax
		mov	edx, ds:off_40A1D4
		mov	edx, [edx]
		lea	eax, [ebp+var_7C]
		mov	ecx, offset _str_i_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_7C]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_78]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_78]
		mov	eax, 80000002h
		pop	ecx
		call	sub_404B64
		jmp	short loc_409B15
; ---------------------------------------------------------------------------


loc_409AA9:				; CODE XREF: r+60j
		mov	eax, ds:off_40A220
		mov	eax, [eax]
		call	eax
		lea	edx, [ebp+var_84]
		call	sub_4031F4
		mov	ecx, [ebp+var_84]
		lea	eax, [ebp+var_80]
		mov	edx, offset _str_4_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_80]
		push	eax
		mov	edx, ds:off_40A1D4
		mov	edx, [edx]
		lea	eax, [ebp+var_8C]
		mov	ecx, offset _str_i_0.Text
		call	@System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void)
		mov	eax, [ebp+var_8C]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		mov	edx, eax
		lea	eax, [ebp+var_88]
		call	unknown_libname_8 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
		mov	edx, [ebp+var_88]
		mov	eax, 80000002h
		pop	ecx
		call	sub_404B64


loc_409B15:				; CODE XREF: r+2A6j r+305j ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_409B4F


loc_409B22:				; CODE XREF: r+469j
		lea	eax, [ebp+var_8C]
		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_409B48:				; DATA XREF: r+13o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_409B22
; ---------------------------------------------------------------------------


loc_409B4F:				; CODE XREF: r+463j
					; DATA XREF: r+439o
		mov	esp, ebp
		pop	ebp
		retn
r		endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 1
dword_409B5C	dd 0		_str_5_1	dd 0FFFFFFFFh		; _top ; DATA XREF: r+13Ao
		dd 1			; Len
		db '5',0                ; Text
		align 4
_str_i_0	dd 0FFFFFFFFh		; _top ; DATA XREF: r+153o r+27Bo ...
		dd 1			; Len
		db 'i',0                ; Text
		align 4
_str__s		dd 0FFFFFFFFh		; _top ; DATA XREF: r+251o
		dd 2			; Len
		db '%s',0               ; Text
		align 4
_str_1_0	dd 0FFFFFFFFh		; _top ; DATA XREF: r+2C2o
		dd 1			; Len
		db '1',0                ; Text
		align 10h
_str_2_0	dd 0FFFFFFFFh		; _top ; DATA XREF: r+321o
		dd 1			; Len
		db '2',0                ; Text
		align 4
_str_3_0	dd 0FFFFFFFFh		; _top ; DATA XREF: r+380o
		dd 1			; Len
		db '3',0                ; Text
		align 4
_str_4_0	dd 0FFFFFFFFh		; _top ; DATA XREF: r+3E2o
		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_407280
		call	sub_408C30
		call	sub_40562C
		push	offset sub_4071C0
		mov	eax, ds:off_40A0D8
		mov	eax, [eax]
		call	@System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
		push	eax
		mov	eax, ds:off_40A300
		mov	eax, [eax]
		call	eax
		mov	ds:dword_40B328, eax
		cmp	ds:dword_40B328, 0
		jz	short loc_409C40
		mov	eax, ds:off_40A12C
		mov	eax, [eax]
		call	eax
		mov	ecx, 1
		xor	edx, edx
		mov	eax, 2
		call	sub_407160
		xor	ecx, ecx
		xor	edx, edx
		mov	eax, 4
		call	sub_407160
		jmp	short loc_409C2E
; ---------------------------------------------------------------------------


loc_409C1B:				; CODE XREF: ServiceMain+8Aj
		call	sub_406464
		push	927C0h
		mov	eax, ds:off_40A1E8
		mov	eax, [eax]
		call	eax


loc_409C2E:				; CODE XREF: ServiceMain+65j
		cmp	ds:dword_40B32C, 3
		jz	short loc_409C40
		cmp	ds:dword_40B32C, 1
		jnz	short loc_409C1B


loc_409C40:				; CODE XREF: ServiceMain+3Bj
					; ServiceMain+81j
		pop	ebp
		retn	8
ServiceMain	endp

; [00000028 BYTES: COLLAPSED FUNCTION unknown_libname_23. PRESS	KEYPAD "+" TO EXPAND]
dword_409C6C	dd 12h				dd offset off_409C74
off_409C74	dd offset loc_4029E4	; DATA XREF: CODE:00409C70o
		dd offset sub_4029B4
		dd offset sub_402838
		dd offset sub_4027F0
		dd offset sub_402A54
		dd offset sub_402A24
		dd offset sub_402A8C
		dd offset sub_402A5C
		dd offset sub_402AC4
		dd offset sub_402A94
		dd offset unknown_libname_15 ; BDS 2005-2006 and Delphi6-7 Visual Component Library
		dd offset sub_403554
		dd offset sub_40360C
		dd offset sub_4035DC
		dd offset sub_403A1C
		dd offset sub_403614
		dd offset sub_404414
		dd offset sub_4043E4
		dd offset sub_4047EC
		dd offset sub_4047BC
		dd offset sub_404824
		dd offset sub_4047F4
		dd offset sub_40485C
		dd offset sub_40482C
		dd offset sub_404894
		dd offset sub_404864
		dd offset sub_404EC0
		dd offset sub_404E90
		dd offset sub_405624
		dd offset sub_4055F4
		dd offset sub_406A00
		dd offset sub_4069D0
		dd offset sub_407148
		dd offset sub_407118
		align 10h
		dd offset unknown_libname_23 ; 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_409C6C
		call	@Sysinit@@InitLib$qqrv ; Sysinit::__linkproc__ InitLib(void)
		mov	ds:dword_40B06C, offset	sub_407150
		call	sub_401B04
; ---------------------------------------------------------------------------
		align 100h
CODE		ends

; Section 2. (virtual address 0000A000)
; Virtual size			: 00000338 (	824.)
; Section size in file		: 00000400 (   1024.)
; Offset to raw	data for section: 00009200
; 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_4023E0+88r
off_40A004	dd offset nullsub_1	; DATA XREF: sub_4023E0+71r
off_40A008	dd offset nullsub_1	; DATA XREF: sub_4023E0+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_402528	; DATA XREF: sub_401B04+66r
off_40A030	dd offset nullsub_1	; DATA XREF: sub_4027F0:loc_402818r
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_4028EC	; DATA XREF: Sysinit::__linkproc__ InitLib(void)+3Bo
		dd offset sub_40289C
		dd offset sub_40284C
		dd offset sub_4028C4
byte_40A070	db 3Dh			; DATA XREF: sub_4030B4+Ar
		db 8Dh,	40h, 0
dword_40A074	dd 1C001Fh, 2 dup(1E001Fh), 1F001Fh, 2 dup(1F001Eh), 1D001Fh
					; DATA XREF: sub_402D40+2Co
					; sub_402EEC+E6o
		dd 2 dup(1E001Fh), 1F001Fh, 2 dup(1F001Eh)
dword_40A0A4	dd 0							; sub_402B08+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_405FD4+49r
					; sub_407280+A3Br
off_40A0CC	dd offset dword_40B2C0	; DATA XREF: sub_404558+89r
					; sub_408C30+4F8r
off_40A0D0	dd offset dword_40B18C	; DATA XREF: sub_406FB0+34r
					; sub_407280+973r
off_40A0D4	dd offset dword_40B1B4	; DATA XREF: sub_406094+57r
					; sub_406094+F2r ...
off_40A0D8	dd offset dword_40B0CC	; DATA XREF: sub_405878+76r
					; sub_406464+5Ar ...
off_40A0DC	dd offset dword_40B20C	; DATA XREF: sub_407280+DABr
					; sub_408C30+7Cr
off_40A0E0	dd offset dword_40B198	; DATA XREF: sub_407280+9EBr
					; sub_408C30+5AAr
off_40A0E4	dd offset dword_40B200	; DATA XREF: sub_407280+D33r
					; sub_408C30+456r
off_40A0E8	dd offset dword_40B0E8	; DATA XREF: sub_4059F8+7Cr
					; sub_407280+319r
off_40A0EC	dd offset dword_40B1E4	; DATA XREF: sub_407280+C43r
					; sub_408C30+676r
off_40A0F0	dd offset dword_40B310	; DATA XREF: sub_405E84+29r
					; sub_408C30+754r
off_40A0F4	dd offset dword_40B114	; DATA XREF: sub_406D9C+DFr
					; sub_407280+49Br
off_40A0F8	dd offset dword_40B108	; DATA XREF: sub_406D9C+46r
					; sub_407280+429r
off_40A0FC	dd offset dword_40B2F8	; DATA XREF: sub_408C30+1EAr r+1EFr
off_40A100	dd offset dword_40B180	; DATA XREF: sub_405B5C+31r
					; sub_405C7C:loc_405CA8r ...
off_40A104	dd offset dword_40B2F0	; DATA XREF: sub_408C30+1A6r
					; sub_409590+57r ...
off_40A108	dd offset dword_40B134	; DATA XREF: sub_407280+653r
					; sub_408C30+38Ar
off_40A10C	dd offset dword_40B2E0	; DATA XREF: sub_406094+1C3r
					; sub_406094+1DEr ...
off_40A110	dd offset dword_40B2F4	; DATA XREF: sub_408C30+1C8r
					; sub_409590+92r ...
off_40A114	dd offset dword_40B1C8	; DATA XREF: sub_406094+19Er
					; sub_406094+1F0r ...
off_40A118	dd offset dword_40B2D8	; DATA XREF: sub_408C30+5C4r
off_40A11C	dd offset dword_40B11C	; DATA XREF: sub_407280+513r
					; sub_408C30+27Ar
off_40A120	dd offset dword_40B194	; DATA XREF: sub_407280+9C3r
					; sub_408C30+588r
off_40A124	dd offset dword_40B300	; DATA XREF: sub_408C30+710r
					; sub_409590+77r ...
off_40A128	dd offset dword_40B0C4	; DATA XREF: sub_406464+76r
					; sub_406464+441r ...
off_40A12C	dd offset dword_40B30C	; DATA XREF: sub_408C30+B8r
					; ServiceMain+3Dr
off_40A130	dd offset dword_40B0B0	; DATA XREF: sub_407280+178r
					; sub_409504+16r ...
off_40A134	dd offset dword_40B154	; DATA XREF: sub_407280+7BBr
					; sub_408C30+47r
off_40A138	dd offset dword_40B1F0	; DATA XREF: sub_407098+1Fr
					; sub_407098+53r ...
off_40A13C	dd offset dword_40B220	; DATA XREF: sub_407280+E9Br
					; sub_408C30+77Er
off_40A140	dd offset dword_40B190	; DATA XREF: sub_407280+99Br
					; sub_408C30+566r
off_40A144	dd offset dword_40B124	; DATA XREF: sub_407280+563r
					; sub_408C30+2BEr
off_40A148	dd offset dword_40B0F0	; DATA XREF: sub_4059F8+9Cr
					; sub_407280+35Dr
off_40A14C	dd offset dword_40B298	; DATA XREF: sub_404F34+B3r
					; sub_408C30+3A4r
off_40A150	dd offset dword_40B17C	; DATA XREF: sub_405878+83r
					; sub_407280+8FBr
off_40A154	dd offset dword_40B0DC	; DATA XREF: sub_405C7C+70r
					; sub_406464+B6r ...
off_40A158	dd offset dword_40B0C8	; DATA XREF: sub_407280+240r
					; sub_409504+2Cr ...
off_40A15C	dd offset dword_40B280	; DATA XREF: sub_406464+37r
					; sub_408C30+294r
off_40A160	dd offset dword_40B164	; DATA XREF: sub_407280+85Br
					; sub_408C30+522r
off_40A164	dd offset dword_40B320	; DATA XREF: sub_408C30+74r
					; sub_408C30+8Dr ...
off_40A168	dd offset dword_40B140	; DATA XREF: sub_407280+6F3r
					; sub_408C30+412r
off_40A16C	dd offset dword_40B13C	; DATA XREF: sub_407280+6CBr
					; sub_408C30+3F0r
off_40A170	dd offset dword_40B2D4	; DATA XREF: sub_408C30+5A2r
off_40A174	dd offset dword_40B260	; DATA XREF: sub_404A00+C5r
					; sub_404A00+F3r ...
off_40A178	dd offset dword_40B1C4	; DATA XREF: sub_407280+B2Br
					; sub_408C30+5EEr
off_40A17C	dd offset dword_40B150	; DATA XREF: sub_407280+793r
					; sub_408C30+1Fr
off_40A180	dd offset dword_40B2A8	; DATA XREF: sub_406378+B9r
off_40A184	dd offset dword_40B110	; DATA XREF: sub_406C44+3Ar
					; sub_407280+473r
off_40A188	dd offset dword_40B094	; DATA XREF: sub_407280+8Ar
					; sub_408C30+33r
off_40A18C	dd offset dword_40B250	; DATA XREF: sub_408C30+6CCr
off_40A190	dd offset dword_40B0BC	; DATA XREF: sub_407280+1DEr r+1C8r
off_40A194	dd offset dword_40B2D0	; DATA XREF: sub_408C30+580r
off_40A198	dd offset dword_40B288	; DATA XREF: sub_408C30+2D8r
off_40A19C	dd offset dword_40B25C	; DATA XREF: sub_4048D8+B9r
					; sub_4048D8+E5r ...
off_40A1A0	dd offset dword_40B168	; DATA XREF: sub_407280+883r
					; sub_408C30+544r
off_40A1A4	dd offset dword_40B0E0	; DATA XREF: sub_4059F8+3Er
					; sub_4059F8+5Cr ...
off_40A1A8	dd offset dword_40B208	; DATA XREF: sub_407280+D83r
					; sub_408C30+718r
off_40A1AC	dd offset dword_40B2E4	; DATA XREF: sub_406094+20Cr
					; sub_406094+260r ...
off_40A1B0	dd offset dword_40B0E4	; DATA XREF: sub_4059F8+6Cr
					; sub_407280+2F7r
off_40A1B4	dd offset dword_40B2C8	; DATA XREF: sub_40509C+Er
					; sub_408C30+53Cr
off_40A1B8	dd offset dword_40B1B0	; DATA XREF: sub_406464+234r
					; sub_406464+263r ...
off_40A1BC	dd offset dword_40B0F4	; DATA XREF: sub_407280+20Ar
					; sub_407280+289r
off_40A1C0	dd offset dword_40B2A0	; DATA XREF: sub_4051FC+17r
					; sub_408C30+42Cr
off_40A1C4	dd offset dword_40B29C	; DATA XREF: sub_4050B8+38r
					; sub_408C30+40Ar
off_40A1C8	dd offset dword_40B1A4	; DATA XREF: sub_405B5C+44r
					; sub_405C7C+3Fr ...
off_40A1CC	dd offset dword_40B0C0	; DATA XREF: sub_407280+200r r+249r ...
off_40A1D0	dd offset dword_40B0F8	; DATA XREF: sub_407280+3A1r
					; sub_407280+4C3r ...
off_40A1D4	dd offset dword_40B0D4	; DATA XREF: sub_40568C+32r
					; sub_40571C+2Ar ...
off_40A1D8	dd offset dword_40B138	; DATA XREF: sub_407280+6A3r
					; sub_408C30+3CEr
off_40A1DC	dd offset dword_40B0A8	; DATA XREF: sub_407280+134r
					; sub_408C30+148r
off_40A1E0	dd offset dword_40B0A4	; DATA XREF: sub_407280+112r
					; sub_408C30+126r
off_40A1E4	dd offset dword_40B218	; DATA XREF: sub_407280+E4Br
					; sub_408C30+75Cr
off_40A1E8	dd offset dword_40B2CC	; DATA XREF: sub_4071C0+41r
					; sub_408C30+55Er ...
off_40A1EC	dd offset dword_40B160	; DATA XREF: sub_407280+833r
					; sub_408C30+500r
off_40A1F0	dd offset dword_40B1E8	; DATA XREF: sub_407280+C6Br
					; sub_408C30+6B2r
off_40A1F4	dd offset dword_40B10C	; DATA XREF: sub_406D9C+89r
					; sub_407280+44Br
off_40A1F8	dd offset dword_40B09C	; DATA XREF: sub_407280+CEr
					; sub_408C30+E2r
off_40A1FC	dd offset dword_40B224	; DATA XREF: sub_407280+EC3r
					; sub_408C30+7A0r
off_40A200	dd offset dword_40B16C	; DATA XREF: sub_40538C+11r
					; sub_40538C+29r ...
off_40A204	dd offset dword_40B2B8	; DATA XREF: sub_408C30+4B4r
off_40A208	dd offset dword_40B1DC	; DATA XREF: sub_407280+BF3r
					; sub_408C30+654r
off_40A20C	dd offset dword_40B2A4	; DATA XREF: sub_404F34+CCr
					; sub_408C30+3E8r
off_40A210	dd offset dword_40B1CC	; DATA XREF: sub_407280+B03r
					; sub_408C30+610r
off_40A214	dd offset dword_40B308	; DATA XREF: sub_407160+4Dr
					; sub_408C30+96r
off_40A218	dd offset dword_40B1D4	; DATA XREF: sub_406464+2B3r
					; sub_407280+BA3r
off_40A21C	dd offset dword_40B0B8	; DATA XREF: sub_407280+1BCr r+4Cr ...
off_40A220	dd offset dword_40B2FC	; DATA XREF: sub_408C30+470r
					; sub_409590+9Fr ...
off_40A224	dd offset dword_40B268	; DATA XREF: sub_408C30+162r
off_40A228	dd offset dword_40B214	; DATA XREF: sub_407280+DFBr
					; sub_408C30+73Ar
off_40A22C	dd offset dword_40B1A0	; DATA XREF: sub_405B5C+38r
					; sub_405C7C+33r ...
off_40A230	dd offset dword_40B148	; DATA XREF: sub_407280+743r
					; sub_408C30+478r
off_40A234	dd offset dword_40B0FC	; DATA XREF: sub_407280+3C3r
					; sub_407280+5B3r ...
off_40A238	dd offset dword_40B0D8	; DATA XREF: sub_40524C+59r
					; sub_4053DC+56r ...
off_40A23C	dd offset dword_40B19C	; DATA XREF: sub_407280+A13r
					; sub_408C30+5CCr
off_40A240	dd offset dword_40B128	; DATA XREF: sub_407280+5DBr
					; sub_408C30+324r
off_40A244	dd offset dword_40B1FC	; DATA XREF: sub_407280+D0Br
					; sub_408C30+1D0r
off_40A248	dd offset dword_40B2C4	; DATA XREF: sub_404558+C4r
					; sub_404650+4Fr ...
off_40A24C	dd offset dword_40B1D8	; DATA XREF: sub_407280+BCBr
					; sub_408C30+632r
off_40A250	dd offset dword_40B188	; DATA XREF: sub_406378+59r
					; sub_406464+23Cr ...
off_40A254	dd offset dword_40B1F4	; DATA XREF: sub_407280+CBBr
					; sub_408C30+18Cr
off_40A258	dd offset dword_40B1F8	; DATA XREF: sub_407280+CE3r
					; sub_408C30+1AEr
off_40A25C	dd offset dword_40B130	; DATA XREF: sub_407280+62Br
					; sub_408C30+368r
off_40A260	dd offset dword_40B2EC	; DATA XREF: sub_406378+9Cr
					; sub_408C30+66Er
off_40A264	dd offset dword_40B170	; DATA XREF: sub_4059F8+CFr
					; sub_407280+8ABr
off_40A268	dd offset dword_40B0AC	; DATA XREF: sub_407280+156r
					; sub_408C30+16Ar
off_40A26C	dd offset dword_40B0A0	; DATA XREF: sub_407280+F0r
					; sub_408C30+104r
off_40A270	dd offset dword_40B118	; DATA XREF: sub_407280+4EBr
					; sub_408C30+258r
off_40A274	dd offset dword_40B204	; DATA XREF: sub_407280+D5Br
					; sub_408C30+6F6r
off_40A278	dd offset dword_40B1C0	; DATA XREF: sub_406094+104r
					; sub_407280+ADBr
off_40A27C	dd offset dword_40B14C	; DATA XREF: sub_407280+76Br
					; sub_408C30+49Ar
off_40A280	dd offset dword_40B210	; DATA XREF: sub_407280+DD3r
					; sub_408C30+9Er
off_40A284	dd offset dword_40B1E0	; DATA XREF: sub_404558+ABr
					; sub_407280+C1Br
off_40A288	dd offset dword_40B2B4	; DATA XREF: sub_408C30+492r
off_40A28C	dd offset dword_40B274	; DATA XREF: sub_404F34+27r
					; sub_408C30+20Cr ...
off_40A290	dd offset dword_40B2DC	; DATA XREF: sub_408C30+5E6r
off_40A294	dd offset dword_40B100	; DATA XREF: sub_407280+3E5r
					; sub_407280+67Br ...
off_40A298	dd offset dword_40B28C	; DATA XREF: sub_404F34+101r
					; sub_404F34+12Fr ...
off_40A29C	dd offset dword_40B318	; DATA XREF: sub_40562Cr
					; sub_408C30+798r
off_40A2A0	dd offset dword_40B2E8	; DATA XREF: sub_406378+7Br
					; sub_408C30+64Cr
off_40A2A4	dd offset dword_40B1B8	; DATA XREF: sub_406094+80r
					; sub_407280+A8Br
off_40A2A8	dd offset dword_40B184	; DATA XREF: sub_407098+41r
					; sub_407280+94Br
off_40A2AC	dd offset dword_40B31C	; DATA XREF: sub_408C30+7BAr r+240r
off_40A2B0	dd offset dword_40B158	; DATA XREF: sub_407280+7E3r
					; sub_408C30+4BCr
off_40A2B4	dd offset dword_40B258	; DATA XREF: sub_4048D8+75r
					; sub_408C30+DAr
off_40A2B8	dd offset dword_40B21C	; DATA XREF: sub_406094+D4r
					; sub_407280+E73r
off_40A2BC	dd offset dword_40B1EC	; DATA XREF: sub_407280+C93r
					; sub_408C30+6D4r
off_40A2C0	dd offset dword_40B294	; DATA XREF: sub_404F34+A9r
					; sub_408C30+382r
off_40A2C4	dd offset dword_40B1AC	; DATA XREF: sub_405FD4+5Cr
					; sub_406464+35Dr ...
off_40A2C8	dd offset dword_40B1D0	; DATA XREF: sub_406464+255r
					; sub_407280+B7Br
off_40A2CC	dd offset dword_40B12C	; DATA XREF: sub_407280+603r
					; sub_408C30+346r
off_40A2D0	dd offset dword_40B26C	; DATA XREF: sub_404A00+6Br
					; sub_408C30+184r
off_40A2D4	dd offset dword_40B264	; DATA XREF: sub_4048D8+F8r
					; sub_404A00+134r ...
off_40A2D8	dd offset dword_40B104	; DATA XREF: sub_407280+407r
					; sub_407280+58Br ...
off_40A2DC	dd offset dword_40B174	; DATA XREF: sub_405B5C:loc_405B83r
					; sub_406464+F5r ...
off_40A2E0	dd offset dword_40B27C	; DATA XREF: sub_405178+41r
					; sub_4051FC+32r ...
off_40A2E4	dd offset dword_40B144	; DATA XREF: sub_407280+71Br
					; sub_408C30+434r
off_40A2E8	dd offset dword_40B0EC	; DATA XREF: sub_4059F8+8Cr
					; sub_407280+33Br
off_40A2EC	dd offset dword_40B270	; DATA XREF: sub_404F34+67r
					; sub_408C30+22Er ...
off_40A2F0	dd offset dword_40B0D0	; DATA XREF: sub_406464+86r
					; sub_406464+36Dr ...
off_40A2F4	dd offset dword_40B120	; DATA XREF: sub_407280+53Br
					; sub_408C30+29Cr
off_40A2F8	dd offset dword_40B304	; DATA XREF: sub_408C30+732r
					; sub_409590+FDr ...
off_40A2FC	dd offset dword_40B2BC	; DATA XREF: sub_404558+2Dr
					; sub_408C30+4D6r
off_40A300	dd offset dword_40B24C	; DATA XREF: sub_408C30+6EEr
					; ServiceMain+26r
off_40A304	dd offset dword_40B1BC	; DATA XREF: sub_406094+E8r
					; sub_407280+AB3r
off_40A308	dd offset dword_40B2AC	; DATA XREF: sub_406094+14Dr
off_40A30C	dd offset dword_40B290	; DATA XREF: sub_4050B8+1Br
					; sub_405104+44r ...
off_40A310	dd offset dword_40B314	; DATA XREF: sub_405640+Ar
					; sub_408C30+776r
off_40A314	dd offset dword_40B024	; DATA XREF: sub_40562C+9r
off_40A318	dd offset dword_40B278	; DATA XREF: sub_404F34+80r
					; sub_408C30+250r ...
off_40A31C	dd offset dword_40B254	; DATA XREF: sub_408C30+690r
					; sub_409590+2Br ...
off_40A320	dd offset dword_40B15C	; DATA XREF: sub_407280+80Br
					; sub_408C30+4DEr
off_40A324	dd offset dword_40B098	; DATA XREF: sub_407280+ACr
					; sub_408C30+C0r
off_40A328	dd offset dword_40B2B0	; DATA XREF: sub_408C30+44Er
off_40A32C	dd offset dword_40B178	; DATA XREF: sub_405858+6r
					; sub_405878+39r ...
off_40A330	dd offset dword_40B284	; DATA XREF: sub_408C30+2B6r
off_40A334	dd offset dword_40B0B4	; DATA XREF: sub_407280+19Ar
		align 100h
DATA		ends

; Section 3. (virtual address 0000B000)
; Virtual size			: 00000331 (	817.)
; Section size in file		: 00000000 (	  0.)
; Offset to raw	data for section: 00009600
; 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_402838w
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_4027F0+22r
byte_40B05C	db ?			; DATA XREF: sub_402910r
					; Sysinit::__linkproc__	InitLib(void)+Dw
		align 10h
; DWORD	dwTlsIndex
dwTlsIndex	dd ?			; DATA XREF: sub_40284C+Ar
					; sub_40284C+3Cr ...
		align 8
dword_40B068	dd ?							; r+23Ar
dword_40B06C	dd ?							; CODE:00409D14w
dword_40B070	dd ?							; CODE:loc_4029E4w
dword_40B074	dd ?							; sub_402910:loc_402941r
dword_40B078	dd ?							; sub_402A54w
dword_40B07C	dd ?							; sub_402A8Cw
dword_40B080	dd ?							; sub_402AC4w
; HMODULE hLibModule
hLibModule	dd ?			; DATA XREF: sub_403554+19r
					; sub_403554+22r
dword_40B088	dd ?							; unknown_libname_15+11w
dword_40B08C	dd ?		dword_40B090	dd ?							; sub_40360Cw
dword_40B094	dd ?							; DATA:off_40A188o
dword_40B098	dd ?							; DATA:off_40A324o
dword_40B09C	dd ?							; DATA:off_40A1F8o
dword_40B0A0	dd ?							; DATA:off_40A26Co
dword_40B0A4	dd ?							; DATA:off_40A1E0o
dword_40B0A8	dd ?							; DATA:off_40A1DCo
dword_40B0AC	dd ?							; DATA:off_40A268o
dword_40B0B0	dd ?							; DATA:off_40A130o
dword_40B0B4	dd ?							; DATA:off_40A334o
dword_40B0B8	dd ?							; DATA:off_40A21Co
dword_40B0BC	dd ?							; DATA:off_40A190o
dword_40B0C0	dd ?							; DATA:off_40A1CCo
dword_40B0C4	dd ?							; DATA:off_40A128o
dword_40B0C8	dd ?							; DATA:off_40A158o
dword_40B0CC	dd ?							; DATA:off_40A0D8o
dword_40B0D0	dd ?							; DATA:off_40A2F0o
dword_40B0D4	dd ?							; DATA:off_40A1D4o
dword_40B0D8	dd ?		dword_40B0DC	dd ?		dword_40B0E0	dd ?							; DATA:off_40A1A4o
dword_40B0E4	dd ?							; DATA:off_40A1B0o
dword_40B0E8	dd ?							; DATA:off_40A0E8o
dword_40B0EC	dd ?							; DATA:off_40A2E8o
dword_40B0F0	dd ?							; DATA:off_40A148o
dword_40B0F4	dd ?							; DATA:off_40A1BCo
dword_40B0F8	dd ?							; DATA:off_40A1D0o
dword_40B0FC	dd ?							; DATA:off_40A234o
dword_40B100	dd ?							; DATA:off_40A294o
dword_40B104	dd ?							; DATA:off_40A2D8o
dword_40B108	dd ?							; DATA:off_40A0F8o
dword_40B10C	dd ?							; DATA:off_40A1F4o
dword_40B110	dd ?							; DATA:off_40A184o
dword_40B114	dd ?							; DATA:off_40A0F4o
dword_40B118	dd ?							; DATA:off_40A270o
dword_40B11C	dd ?							; DATA:off_40A11Co
dword_40B120	dd ?							; DATA:off_40A2F4o
dword_40B124	dd ?							; DATA:off_40A144o
dword_40B128	dd ?							; DATA:off_40A240o
dword_40B12C	dd ?							; DATA:off_40A2CCo
dword_40B130	dd ?							; DATA:off_40A25Co
dword_40B134	dd ?							; DATA:off_40A108o
dword_40B138	dd ?							; DATA:off_40A1D8o
dword_40B13C	dd ?							; DATA:off_40A16Co
dword_40B140	dd ?							; DATA:off_40A168o
dword_40B144	dd ?							; DATA:off_40A2E4o
dword_40B148	dd ?							; DATA:off_40A230o
dword_40B14C	dd ?							; DATA:off_40A27Co
dword_40B150	dd ?							; DATA:off_40A17Co
dword_40B154	dd ?							; DATA:off_40A134o
dword_40B158	dd ?							; DATA:off_40A2B0o
dword_40B15C	dd ?							; DATA:off_40A320o
dword_40B160	dd ?							; DATA:off_40A1ECo
dword_40B164	dd ?							; DATA:off_40A160o
dword_40B168	dd ?							; DATA:off_40A1A0o
dword_40B16C	dd ?							; sub_403A1C+29w ...
dword_40B170	dd ?							; DATA:off_40A264o
dword_40B174	dd ?		dword_40B178	dd ?							; DATA:off_40A32Co
dword_40B17C	dd ?							; DATA:off_40A150o
dword_40B180	dd ?							; DATA:off_40A100o
dword_40B184	dd ?							; DATA:off_40A2A8o
dword_40B188	dd ?							; DATA:off_40A250o
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_40A23Co
dword_40B1A0	dd ?							; DATA:off_40A22Co
dword_40B1A4	dd ?							; DATA:off_40A1C8o
dword_40B1A8	dd ?							; DATA:off_40A0C8o
dword_40B1AC	dd ?							; DATA:off_40A2C4o
dword_40B1B0	dd ?							; DATA:off_40A1B8o
dword_40B1B4	dd ?							; sub_403A1C+1Fw ...
dword_40B1B8	dd ?							; DATA:off_40A2A4o
dword_40B1BC	dd ?							; DATA:off_40A304o
dword_40B1C0	dd ?							; DATA:off_40A278o
dword_40B1C4	dd ?							; DATA:off_40A178o
dword_40B1C8	dd ?							; DATA:off_40A114o
dword_40B1CC	dd ?							; DATA:off_40A210o
dword_40B1D0	dd ?							; DATA:off_40A2C8o
dword_40B1D4	dd ?							; DATA:off_40A218o
dword_40B1D8	dd ?							; DATA:off_40A24Co
dword_40B1DC	dd ?							; DATA:off_40A208o
dword_40B1E0	dd ?							; DATA:off_40A284o
dword_40B1E4	dd ?							; DATA:off_40A0ECo
dword_40B1E8	dd ?							; DATA:off_40A1F0o
dword_40B1EC	dd ?							; DATA:off_40A2BCo
dword_40B1F0	dd ?							; DATA:off_40A138o
dword_40B1F4	dd ?							; DATA:off_40A254o
dword_40B1F8	dd ?							; DATA:off_40A258o
dword_40B1FC	dd ?							; DATA:off_40A244o
dword_40B200	dd ?							; DATA:off_40A0E4o
dword_40B204	dd ?							; DATA:off_40A274o
dword_40B208	dd ?							; DATA:off_40A1A8o
dword_40B20C	dd ?							; DATA:off_40A0DCo
dword_40B210	dd ?							; DATA:off_40A280o
dword_40B214	dd ?							; DATA:off_40A228o
dword_40B218	dd ?							; DATA:off_40A1E4o
dword_40B21C	dd ?							; DATA:off_40A2B8o
dword_40B220	dd ?							; DATA:off_40A13Co
dword_40B224	dd ?							; DATA:off_40A1FCo
dword_40B228	dd ?							; sub_403A1C+11w
dword_40B22C	dd ?							; sub_404414w
dword_40B230	dd ?							; sub_4047ECw
dword_40B234	dd ?							; sub_404824w
dword_40B238	dd ?							; sub_40485Cw
dword_40B23C	dd ?							; sub_404894w
dword_40B240	dd ?							; sub_404EC0w
dword_40B244	dd ?							; sub_405624w
dword_40B248	dd ?							; sub_406A00w
dword_40B24C	dd ?		dword_40B250	dd ?							; DATA:off_40A18Co
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 ?		dword_40B2AC	dd ?							; sub_406D9C+FBr ...
dword_40B2B0	dd ?							; DATA:off_40A328o
dword_40B2B4	dd ?							; DATA:off_40A288o
dword_40B2B8	dd ?							; DATA:off_40A204o
dword_40B2BC	dd ?		dword_40B2C0	dd ?		dword_40B2C4	dd ?		dword_40B2C8	dd ?		dword_40B2CC	dd ?							; DATA:off_40A1E8o
dword_40B2D0	dd ?							; DATA:off_40A194o
dword_40B2D4	dd ?							; DATA:off_40A170o
dword_40B2D8	dd ?							; DATA:off_40A118o
dword_40B2DC	dd ?							; DATA:off_40A290o
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 ?		dword_40B31C	dd ?		dword_40B320	dd ?							; DATA:off_40A164o
dword_40B324	dd ?							; sub_407148w
dword_40B328	dd ?							; ServiceMain+2Fw ...
dword_40B32C	dd ?							; sub_4071C0+A0r ...
		align 100h
BSS		ends

;
; Imports from kernel32.dll
;
; Section 4. (virtual address 0000C000)
; Virtual size			: 0000026E (	622.)
; Section size in file		: 00000400 (   1024.)
; Offset to raw	data for section: 00009600
; 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
;
; HMODULE __stdcall LoadLibraryW(LPCWSTR lpLibFileName)
		extrn __imp_LoadLibraryW:dword ; DATA XREF: LoadLibraryWr
; FARPROC __stdcall GetProcAddress(HMODULE hModule, LPCSTR lpProcName)
		extrn GetProcAddress:dword ; DATA XREF:	CODE:loc_4029F4r
; BOOL __stdcall FreeLibrary_0(HMODULE hLibModule)
		extrn __imp_FreeLibrary_0:dword	; DATA XREF: FreeLibrary_0r

;
; Imports from kernel32.dll
;
; DWORD	__stdcall GetFileAttributesA(LPCSTR lpFileName)
		extrn __imp_GetFileAttributesA:dword ; DATA XREF: GetFileAttributesAr


		end DllEntryPoint