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

; File Name   :	u:\work\a3e18e89b8f7cc1dff6404d5fab5d67e_orig.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00008D30 (  36144.)
; 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+DBp
					; sub_403C6C+140p ...
		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+74p ...
		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:00409C8Co
		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:00409C88o
		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:00409C84o
		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_409C80o
		sub	ds:dword_40B070, 1
		retn
; [00000006 BYTES: COLLAPSED FUNCTION FreeLibrary_0. PRESS KEYPAD "+" TO EXPAND]
		align 4


loc_4029F4:				; DATA XREF: sub_408C3C+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:00409C94o
		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:00409C90o
		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:00409C9Co
		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:00409C98o
		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:00409CA4o
		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:00409CA0o
		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_40728C+40p
					; sub_40728C+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+156p
		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_409458+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_409510+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:00409CACo
		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:00409CB4o
		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:00409CB0o
		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:00409CBCo
		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:00409CB8o
		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
		add	[ebp+var_14], 17h
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_4]
		call	sub_401C54
		dec	[ebp+var_14]
		mov	ax, word ptr [ebp+var_8]
		mov	[ebp+var_10], ax
		add	[ebp+var_14], 3Bh
		mov	eax, [ebp+var_C]
		mov	eax, [eax]
		call	sub_401DF4
		test	ax, ax
		jbe	loc_403BDE
		mov	[ebp+var_1E], ax
		mov	[ebp+var_E], 1


loc_403B4E:				; CODE XREF: sub_403B04+D4j
		add	[ebp+var_14], 43h
		movzx	eax, [ebp+var_E]
		mov	edx, [ebp+var_C]
		mov	edx, [edx]
		movzx	eax, byte ptr [edx+eax-1]
		mov	[ebp+var_18], eax
		sub	[ebp+var_14], 37h
		movzx	eax, [ebp+var_10]
		shr	eax, 8
		mov	[ebp+var_1C], eax
		add	[ebp+var_14], 0Bh
		mov	eax, [ebp+var_C]
		call	sub_401FC4
		movzx	edx, [ebp+var_E]
		mov	cl, byte ptr [ebp+var_18]
		xor	cl, byte ptr [ebp+var_1C]
		mov	[eax+edx-1], cl
		mov	[ebp+var_14], 0Fh
		dec	[ebp+var_14]
		movzx	eax, [ebp+var_E]
		mov	edx, [ebp+var_4]
		movzx	eax, byte ptr [edx+eax-1]
		movzx	edx, [ebp+var_10]
		add	eax, edx
		mov	[ebp+var_18], eax
		add	[ebp+var_14], 3
		imul	eax, [ebp+var_18], 0CE6Dh
		mov	[ebp+var_1C], eax
		sub	[ebp+var_14], 18h
		mov	ax, word ptr [ebp+var_1C]
		mov	[ebp+var_10], ax
		inc	[ebp+var_14]
		add	[ebp+var_10], 58BFh
		dec	[ebp+var_14]
		inc	[ebp+var_E]
		dec	[ebp+var_1E]
		jnz	loc_403B4E


loc_403BDE:				; CODE XREF: sub_403B04+3Aj
		dec	[ebp+var_14]
		mov	esp, ebp
		pop	ebp
		retn
sub_403B04	endp

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

; =============== 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
		sub	[ebp+var_14], 37h
		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_403D24
		dec	eax
		jz	short loc_403D89
		dec	eax
		jz	loc_403E26
		jmp	loc_403EF6
; ---------------------------------------------------------------------------


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


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


loc_403D62:				; CODE XREF: sub_403C6C+EFj
		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_403EF6
; ---------------------------------------------------------------------------


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


loc_403D9C:				; CODE XREF: sub_403C6C+129j
		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_403DC7
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403DC7:				; CODE XREF: sub_403C6C+154j
		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_403DFF
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403DFF:				; CODE XREF: sub_403C6C+18Cj
		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_403EF6
; ---------------------------------------------------------------------------


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


loc_403E39:				; CODE XREF: sub_403C6C+1C6j
		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_403E64
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403E64:				; CODE XREF: sub_403C6C+1F1j
		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_403E9C
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403E9C:				; CODE XREF: sub_403C6C+229j
		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_403ED4
		dec	edx
		or	edx, 0FFFFFFC0h
		inc	edx


loc_403ED4:				; CODE XREF: sub_403C6C+261j
		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_403EF6:				; CODE XREF: sub_403C6C+B3j
					; sub_403C6C+118j ...
		add	[ebp+var_14], 3Ch
		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
		add	[ebp+var_10], 0
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_4]
		call	sub_401C54
		sub	[ebp+var_10], 47h
		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_404087
		mov	[ebp+var_1E], ax
		mov	[ebp+var_12], 1


loc_403FFB:				; CODE XREF: sub_403FB0+D1j
		sub	[ebp+var_10], 32h
		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
		add	[ebp+var_10], 1Bh
		movzx	eax, [ebp+var_14]
		shr	eax, 8
		mov	[ebp+var_1C], eax
		sub	[ebp+var_10], 61h
		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
		mov	[ebp+var_10], 324h
		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], 44h
		mov	[ebp+var_1C], 0CE6Dh
		add	[ebp+var_10], 39h
		mov	ax, word ptr [ebp+var_18]
		imul	word ptr [ebp+var_1C]
		add	ax, 58BFh
		mov	[ebp+var_14], ax
		sub	[ebp+var_10], 15h
		inc	[ebp+var_12]
		dec	[ebp+var_1E]
		jnz	loc_403FFB


loc_404087:				; CODE XREF: sub_403FB0+3Bj
		dec	[ebp+var_10]
		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_40728C+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:00409CC4o
		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:00409CC0o
		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 aTdidkjyutddwx ; "tdidkjyutddwx"
		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)
aTdidkjyutddwx	db 13,'tdidkjyutddwx'   ; DATA XREF: CODE:0040443Co
; [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:00409CCCo
		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:00409CC8o
		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:00409CD4o
		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:00409CD0o
		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:00409CDCo
		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:00409CD8o
		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:00409CE4o
		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:00409CE0o
		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_409510+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_409510+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:00409CECo
		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:00409CE8o
		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 aFyrquwyhus	; "fyrquwyhus"
		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
aFyrquwyhus	db 10,'fyrquwyhus'      ; 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:00409CF4o
		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:00409CF0o
		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_4070A4+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_406FBC
		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_409C27p

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_406FBC
		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:00409CFCo
		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:00409CF8o
		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+D4p
					; sub_408C3C+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_408C3C+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_406F2E
		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_406EFC
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	[ebp+var_10], 343h
		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)
		mov	[ebp+var_10], 51h
		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_406EC3
		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_406EB9
		add	[ebp+var_10], 2Eh
		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_406EC7
		inc	[ebp+var_10]
		mov	[ebp+var_5], 1
		mov	eax, [ebp+hLibModule]
		push	eax		; hLibModule
		call	FreeLibrary_0
		jmp	short loc_406EC7
; ---------------------------------------------------------------------------


loc_406EB9:				; CODE XREF: sub_406D9C+E0j
		add	[ebp+var_10], 4Eh
		mov	[ebp+var_5], 1
		jmp	short loc_406EC7
; ---------------------------------------------------------------------------


loc_406EC3:				; CODE XREF: sub_406D9C+CAj
		mov	[ebp+var_5], 1


loc_406EC7:				; CODE XREF: sub_406D9C+109j
					; sub_406D9C+11Bj ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406F03


loc_406ED4:				; CODE XREF: sub_406D9C+165j
		sub	[ebp+var_10], 13h
		lea	eax, [ebp+var_14]
		mov	edx, offset _str______.Text
		call	@System@@LStrCat$qqrv ;	System::__linkproc__ LStrCat(void)
		mov	[ebp+var_10], 278h
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_14]
		call	sub_4032A8
		sub	[ebp+var_10], 12h
		retn
; ---------------------------------------------------------------------------


loc_406EFC:				; DATA XREF: sub_406D9C+35o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_406ED4
; ---------------------------------------------------------------------------


loc_406F03:				; CODE XREF: sub_406D9C+15Fj
					; DATA XREF: sub_406D9C+133o
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_406F35


loc_406F10:				; CODE XREF: sub_406D9C+197j
		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_406F2E:				; DATA XREF: sub_406D9C+1Bo
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_406F10
; ---------------------------------------------------------------------------


loc_406F35:				; CODE XREF: sub_406D9C+191j
					; DATA XREF: sub_406D9C+16Fo
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_406D9C	endp

; ---------------------------------------------------------------------------
		align 4
_str______	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_406D9C+13Fo
		dd 5			; Len
		db '     ',0            ; Text
		align 4

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

; Attributes: bp-based frame


sub_406F4C	proc near		; CODE XREF: sub_406FBC+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_406FB5
		mov	eax, [ebp+var_8]
		and	eax, 0F0h
		cmp	eax, 40h
		ja	short loc_406FB5
		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_406FB5:				; CODE XREF: sub_406F4C+1Cj
					; sub_406F4C+29j
		mov	eax, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
sub_406F4C	endp


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

; Attributes: bp-based frame


sub_406FBC	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_407099
		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_407078
		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_406F4C
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jbe	short loc_407078
		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_407078:				; CODE XREF: sub_406FBC+68j
					; sub_406FBC+9Aj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4070A0


loc_407085:				; CODE XREF: sub_406FBC+E2j
		lea	eax, [ebp+var_15C]
		call	sub_401C00
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_407099:				; DATA XREF: sub_406FBC+22o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_407085
; ---------------------------------------------------------------------------


loc_4070A0:				; CODE XREF: sub_406FBC+DCj
					; DATA XREF: sub_406FBC+C4o
		mov	esp, ebp
		pop	ebp
		retn
sub_406FBC	endp


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

; Attributes: bp-based frame


sub_4070A4	proc near		; CODE XREF: sub_408C3C+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_407119
		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_4070E2
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_8]
		call	sub_401C54
		jmp	short loc_407103
; ---------------------------------------------------------------------------


loc_4070E2:				; CODE XREF: sub_4070A4+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_407103:				; CODE XREF: sub_4070A4+3Cj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_407120


loc_407110:				; CODE XREF: sub_4070A4+7Aj
		lea	eax, [ebp+var_8]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_407119:				; DATA XREF: sub_4070A4+11o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_407110
; ---------------------------------------------------------------------------


loc_407120:				; CODE XREF: sub_4070A4+74j
					; DATA XREF: sub_4070A4+67o
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_4070A4	endp


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

; Attributes: bp-based frame


sub_407124	proc near		; DATA XREF: CODE:00409D04o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_407149
		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_407150


loc_407148:				; CODE XREF: sub_407124+2Aj
		retn
; ---------------------------------------------------------------------------


loc_407149:				; DATA XREF: sub_407124+6o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_407148
; ---------------------------------------------------------------------------


loc_407150:				; CODE XREF: sub_407124:loc_407148j
					; DATA XREF: sub_407124+1Fo
		pop	ebp
		retn
sub_407124	endp

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

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



sub_407154	proc near		; DATA XREF: CODE:00409D00o
		sub	ds:dword_40B324, 1
		retn
sub_407154	endp


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

; Attributes: bp-based frame


sub_40715C	proc near		; DATA XREF: CODE:00409D20o

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

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

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

; Attributes: bp-based frame


sub_40716C	proc near		; CODE XREF: sub_4071CC+3Ap
					; sub_4071CC+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_40716C	endp


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

; Attributes: bp-based frame


sub_4071CC	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_407286	; default
					; jumptable 004071DB case 0
		jmp	off_4071E2[eax*4] ; switch jump
; ---------------------------------------------------------------------------
off_4071E2	dd offset loc_407286	; DATA XREF: sub_4071CC+Fr
		dd offset loc_4071FA	; jump table for switch	statement
		dd offset loc_407226
		dd offset loc_407247
		dd offset loc_407268
		dd offset loc_407278
; ---------------------------------------------------------------------------


loc_4071FA:				; CODE XREF: sub_4071CC+Fj
					; DATA XREF: sub_4071CC:off_4071E2o
		mov	ecx, 1		; jumptable 004071DB case 1
		xor	edx, edx
		mov	eax, 3
		call	sub_40716C
		push	0Ah
		mov	eax, ds:off_40A1E8
		mov	eax, [eax]
		call	eax
		xor	ecx, ecx
		xor	edx, edx
		mov	eax, 1
		call	sub_40716C
		jmp	short loc_407286 ; default
					; jumptable 004071DB case 0
; ---------------------------------------------------------------------------


loc_407226:				; CODE XREF: sub_4071CC+Fj
					; DATA XREF: sub_4071CC:off_4071E2o
		mov	ecx, 1		; jumptable 004071DB case 2
		xor	edx, edx
		mov	eax, 6
		call	sub_40716C
		xor	ecx, ecx
		xor	edx, edx
		mov	eax, 7
		call	sub_40716C
		jmp	short loc_407286 ; default
					; jumptable 004071DB case 0
; ---------------------------------------------------------------------------


loc_407247:				; CODE XREF: sub_4071CC+Fj
					; DATA XREF: sub_4071CC:off_4071E2o
		mov	ecx, 1		; jumptable 004071DB case 3
		xor	edx, edx
		mov	eax, 5
		call	sub_40716C
		xor	ecx, ecx
		xor	edx, edx
		mov	eax, 4
		call	sub_40716C
		jmp	short loc_407286 ; default
					; jumptable 004071DB case 0
; ---------------------------------------------------------------------------


loc_407268:				; CODE XREF: sub_4071CC+Fj
					; DATA XREF: sub_4071CC:off_4071E2o
		xor	ecx, ecx	; jumptable 004071DB case 4
		xor	edx, edx
		mov	eax, ds:dword_40B32C
		call	sub_40716C
		jmp	short loc_407286 ; default
					; jumptable 004071DB case 0
; ---------------------------------------------------------------------------


loc_407278:				; CODE XREF: sub_4071CC+Fj
					; DATA XREF: sub_4071CC:off_4071E2o
		xor	ecx, ecx	; jumptable 004071DB case 5
		xor	edx, edx
		mov	eax, 1
		call	sub_40716C


loc_407286:				; CODE XREF: sub_4071CC+9j
					; sub_4071CC+Fj ...
		pop	ebp		; default
					; jumptable 004071DB case 0
		retn	4
sub_4071CC	endp

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

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

; Attributes: bp-based frame


sub_40728C	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_407294:				; CODE XREF: sub_40728C+Dj
		push	0
		push	0
		dec	ecx
		jnz	short loc_407294
		push	ecx
		mov	[ebp+var_10], eax
		xor	eax, eax
		push	ebp
		push	offset loc_408184
		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, 0B6C8h
		mov	eax, offset _str_O_65IC.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, 0B6C9h
		mov	eax, offset _str_HSv2BJH.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, 0B6CAh
		mov	eax, offset _str_XLXntNy8L__HsoD.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, 0B6CBh
		mov	eax, offset _str_kXwHF5FYs3xayQv.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, 0B6CCh
		mov	eax, offset _str_kvk4rjtPuW8Zy_2.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, 0B6CDh
		mov	eax, offset _str_kjZU48t_D62zAkE.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, 0B6CEh
		mov	eax, offset _str_k7a6cPiw1Eg13IH.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, 0B6CFh
		mov	eax, offset _str_kzvahE4br1f5RBH.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, 0B6D0h
		mov	eax, offset _str_k3wlD256xuWLy6L.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, 0B6D1h
		mov	eax, offset _str_lr0E0X72yR53MEP.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, 0B6D2h
		mov	eax, offset _str_Te_agJdTHHX_cmG.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, 0B6D3h
		mov	eax, offset _str_l3_vIJM2D0Cs_co.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, 0B6D4h
		mov	eax, offset _str_TKQ2shCKjUmkp7_.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, 0B6D5h
		mov	eax, offset _str_lfmc__aOvLsSMi9.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_11020947.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, 0B6D6h
		mov	eax, offset _str_zHy3JiQEPdrYHC.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, 0B6D7h
		mov	eax, offset _str_0DY_OO34.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, 0B6D8h
		mov	eax, offset _str_lXOznu8bX_5j3_2.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, 0B6D9h
		mov	eax, offset _str_UX6I5I_j9wC.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, 0B6DAh
		mov	eax, offset _str_HyknsrbflnFoCtJ.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, 0B6DBh
		mov	eax, offset _str_E6eLPLEJYmFjtkT.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, 0B6DCh
		mov	eax, offset _str_cHNBNcu8VKgLtEC.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, 0B6DDh
		mov	eax, offset _str_AeXwBPgYmgAGDVS.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, 0B6DEh
		mov	eax, offset _str_D_3A.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, 0B6DFh
		mov	eax, offset _str_BTTPiFD33PiJcvF.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, 0B6E0h
		mov	eax, offset _str_F_jVXeyV.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, 0B6E1h
		mov	eax, offset _str_ePDWoTK.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, 0B6E2h
		mov	eax, offset _str_RzfeuXyYdSBvhEw.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, 0B6E3h
		mov	eax, offset _str_bzwS.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, 0B6E4h
		mov	eax, offset _str_YSS2wD.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, 0B6E5h
		mov	eax, offset _str_Dn8Jk9GTJfAMyC.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, 0B6E6h
		mov	eax, offset _str_jXwa9chO2mmZgD1.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, 0B6E7h
		mov	eax, offset _str_BjsEcE2wQcwyAxH.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, 0B6E8h
		mov	eax, offset _str_FbKeIA.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, 0B6E9h
		mov	eax, offset _str_hbXo64pZhLtO1D.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, 0B6EAh
		mov	eax, offset _str_hfKv6uutSia0YD.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, 0B6EBh
		mov	eax, offset _str_hH5mSogbV9r0jfL.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, 0B6ECh
		mov	eax, offset _str_R_Mum7ky6M_0OPm.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, 0B6EDh
		mov	eax, offset _str_FTqH_CTh.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, 0B6EEh
		mov	eax, offset _str_Fzfe1DYyezhMIA.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, 0B6EFh
		mov	eax, offset _str_EzvbeD.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, 0B6F0h
		mov	eax, offset _str_fPUohSA_QyWW.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, 0B6F1h
		mov	eax, offset _str_fL5dvWd9PmPl.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, 0B6F2h
		mov	eax, offset _str_ejYbsuM.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, 0B6F3h
		mov	eax, offset _str_Vf_pA2aKCD.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, 0B6F4h
		mov	eax, offset _str_Yb73TQG.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, 0B6F5h
		mov	eax, offset _str_ePhFR7L.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, 0B6F6h
		mov	eax, offset _str_x3uJ2az5zE_CX_p.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, 0B6F7h
		mov	eax, offset _str_xPThbDqIWt9vsTi.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, 0B6F8h
		mov	eax, offset _str_1HTKtkEOMbsV.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, 0B6F9h
		mov	eax, offset _str_AXRFISIGkk8oSFO.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, 0B6FAh
		mov	eax, offset _str_dTs7PHBNO0K0L22.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, 0B6FBh
		mov	eax, offset _str_xXvvzkqQKOB6YCp.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, 0B6FCh
		mov	eax, offset _str_xvTHpP6C3xP7GIQ.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, 0B6FDh
		mov	eax, offset _str_gLRw2AcvJIyytkx.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, 0B6FEh
		mov	eax, offset _str_VvQaq_O_90Xx4IM.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, 0B6FFh
		mov	eax, offset _str_lDX3zEI.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, 0B700h
		mov	eax, offset _str_Sr_S7D.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, 0B701h
		mov	eax, offset _str_i7DqV1ne.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, 0B702h
		mov	eax, offset _str_iDnyqB.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, 0B703h
		mov	eax, offset _str_FO8FyC.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, 0B704h
		mov	eax, offset _str_CLISBiDJvD.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, 0B705h
		mov	eax, offset _str_UH1eh1HOD4DoAA.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, 0B706h
		mov	eax, offset _str_xfQ7N0joWNKOQtt.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, 0B707h
		mov	eax, offset _str_xTlWrbdW_mUT.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, 0B708h
		mov	eax, offset _str_kXvvzkqQKGBmeFA.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, 0B709h
		mov	eax, offset _str_0ny40UZMq9bQx2A.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, 0B70Ah
		mov	eax, offset _str_AjUoafnNr4TgC6N.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, 0B70Bh
		mov	eax, offset _str_Y7TqqNvA8s5s.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, 0B70Ch
		mov	eax, offset _str_DDUK.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, 0B70Dh
		mov	eax, offset _str_fTOYYonaTB.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, 0B70Eh
		mov	eax, offset _str_YyyUoVK.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, 0B70Fh
		mov	eax, offset _str_zjSr0g_ZOqc2ZzI.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, 0B710h
		mov	eax, offset _str_67K1YgQ7tlZk.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, 0B711h
		mov	eax, offset _str_ZejqwB.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, 0B712h
		mov	eax, offset _str_Af7fwtD.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, 0B713h
		mov	eax, offset _str_Ablrb3RN.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, 0B714h
		mov	eax, offset _str_0blEgf8jXhwzRot.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, 0B715h
		mov	eax, offset _str_gPrlzXA54y7H9YQ.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, 0B716h
		mov	eax, offset _str_rnCl07lO9q4mfbR.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, 0B717h
		mov	eax, offset _str_4nb4kOn8Bv8Ehwe.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, 0B718h
		mov	eax, offset _str_0_iCbcbde7dbu5J.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, 0B719h
		mov	eax, offset _str_lbnWUETeh2Wja2G.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, 0B71Ah
		mov	eax, offset _str_4TUmOCu5f5zQgm9.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, 0B71Bh
		mov	eax, offset _str_z_5nCzKD35CDOE2.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, 0B71Ch
		mov	eax, offset _str_0X__jyi9PUM2yJo.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, 0B71Dh
		mov	eax, offset _str_wnEdSGz7cPOfYOt.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, 0B71Eh
		mov	eax, offset _str_0vl5iiciG_sKAS6.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, 0B71Fh
		mov	eax, offset _str_072Gr6OWCP55Uod.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, 0B720h
		mov	eax, offset _str_k_IcoTghcK1bdja.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, 0B721h
		mov	eax, offset _str_xbE_MSgDkf0OKTE.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, 0B722h
		mov	eax, offset _str_0HgMrk7v2To9cJk.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, 0B723h
		mov	eax, offset _str_E7PZJNbyF3w_k_K.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, 0B724h
		mov	eax, offset _str_wTL9EILi_0NDDoD.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, 0B725h
		mov	eax, offset _str_ZqxH.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, 0B726h
		mov	eax, offset _str_wvwGDSSXf2xmuqW.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, 0B727h
		mov	eax, offset _str_wn1maor03KRrKek.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_40818B


loc_408166:				; CODE XREF: sub_40728C+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_408184:				; DATA XREF: sub_40728C+16o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_408166
; ---------------------------------------------------------------------------


loc_40818B:				; CODE XREF: sub_40728C+EF7j
					; DATA XREF: sub_40728C+ED5o
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_40728C	endp

; ---------------------------------------------------------------------------
		align 4
_str_O_65IC	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+33o
		dd 6			; Len
		db 'O+65IC',0           ; Text
		align 4
_str_HSv2BJH	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+58o
		dd 7			; Len
		db 'HSv2BJH',0          ; Text
_str_XLXntNy8L__HsoD dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+7Do
		dd 16			; Len
		db 'XLXntNy8L//HsoDd',0 ; Text
		align 10h
_str_kXwHF5FYs3xayQv dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+9Fo
		dd 20			; Len
		db 'kXwHF5FYs3xayQvozhkm',0; Text
		align 10h
_str_kvk4rjtPuW8Zy_2 dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+C1o
		dd 19			; Len
		db 'kvk4rjtPuW8Zy+25QGK',0; Text
_str_kjZU48t_D62zAkE dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+E3o
		dd 15			; Len
		db 'kjZU48t+D62zAkE',0  ; Text
_str_k7a6cPiw1Eg13IH dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+105o
		dd 22			; Len
		db 'k7a6cPiw1Eg13IHuy8TuTB',0; Text
		align 4
_str_kzvahE4br1f5RBH dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+127o
		dd 15			; Len
		db 'kzvahE4br1f5RBH',0  ; Text
_str_k3wlD256xuWLy6L dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+149o
		dd 18			; Len
		db 'k3wlD256xuWLy6L4JA',0; Text
		align 4
_str_lr0E0X72yR53MEP dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+16Bo
		dd 90			; Len
		db 'lr0E0X72yR53MEPBbvwB1CFj9GWwhd059oBG0d629pQufXCupkhq0t/2EgomjTMI7'; Text
		db 'L312oZb3tkO2hfUTnBaW3JgUC',0; Text
		align 4
_str_Te_agJdTHHX_cmG dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+18Do
		dd 68			; Len
		db 'Te+agJdTHHX/cmGOzH7gOLdALA8I4BNiz3Py5/f2EFgA21hjyCvWU3XVmDGl/m3LN'; Text
		db 'kC8',0              ; Text
		align 4
_str_l3_vIJM2D0Cs_co dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+1AFo
		dd 80			; Len
		db 'l3+vIJM2D0Cs/coy2r9pURTYViLVdGh12eW8tlukeeyB/eBmXgMTJMgTxJYH4ECwv'; Text
		db 'ZajK2fl9eJsxro7',0  ; Text
		align 4
_str_TKQ2shCKjUmkp7_ dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+1D1o
		dd 59			; Len
		db 'TKQ2shCKjUmkp7+lsC6fXAu8McI17FZb3Fhnr9phzZy+sxmKLmnG5sskmpD',0; Text
_str_lfmc__aOvLsSMi9 dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+1F3o
		dd 78			; Len
		db 'lfmc//aOvLsSMi9En7tkWjIqsRK8AM/ALXGrCFEm1yUS3+kovJzs6XLH6sQNU8qt5'; Text
		db 'lLT3C91PpnzjC',0    ; Text
		align 4
_str_11020947	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+20Fo
		dd 8			; Len
		db '11020947',0         ; Text
		align 4
_str_m		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+21Eo
		dd 1			; Len
		db 'm',0                ; Text
		align 4
_str_zHy3JiQEPdrYHC dd 0FFFFFFFFh	    ; _top ; DATA XREF:	sub_40728C+233o
		dd 14			; Len
		db 'zHy3JiQEPdrYHC',0   ; Text
		align 4
_str_0DY_OO34	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+255o
		dd 8			; Len
		db '0DY/OO34',0         ; Text
		align 10h
_str_lXOznu8bX_5j3_2 dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+2A6o
		dd 32			; Len
		db 'lXOznu8bX/5j3+2UpMrCv4LawfSfGCVy',0; Text
		align 4
_str_UX6I5I_j9wC dd 0FFFFFFFFh		 ; _top	; DATA XREF: sub_40728C+2C8o
		dd 11			; Len
		db 'UX6I5I/j9wC',0      ; Text
_str_HyknsrbflnFoCtJ dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+2EAo
		dd 19			; Len
		db 'HyknsrbflnFoCtJmwTE',0; Text
_str_E6eLPLEJYmFjtkT dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+30Co
		dd 18			; Len
		db 'E6eLPLEJYmFjtkT2rB',0; Text
		align 4
_str_cHNBNcu8VKgLtEC dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+32Eo
		dd 19			; Len
		db 'cHNBNcu8VKgLtECoaLO',0; Text
_str_AeXwBPgYmgAGDVS dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+350o
		dd 18			; Len
		db 'AeXwBPgYmgAGDVSEjA',0; Text
		align 10h
_str_D_3A	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+372o
		dd 4			; Len
		db 'D/3A',0             ; Text
		align 10h
_str_BTTPiFD33PiJcvF dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+394o
		dd 15			; Len
		db 'BTTPiFD33PiJcvF',0  ; Text
_str_F_jVXeyV	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+3B6o
		dd 8			; Len
		db 'F/jVXeyV',0         ; Text
		align 4
_str_ePDWoTK	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+3D8o
		dd 7			; Len
		db 'ePDWoTK',0          ; Text
_str_RzfeuXyYdSBvhEw dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+3FAo
		dd 18			; Len
		db 'RzfeuXyYdSBvhEwAjD',0; Text
		align 4
_str_bzwS	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+41Co
		dd 4			; Len
		db 'bzwS',0             ; Text
		align 4
_str_YSS2wD	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+43Eo
		dd 6			; Len
		db 'YSS2wD',0           ; Text
		align 4
_str_Dn8Jk9GTJfAMyC dd 0FFFFFFFFh	    ; _top ; DATA XREF:	sub_40728C+463o
		dd 14			; Len
		db 'Dn8Jk9GTJfAMyC',0   ; Text
		align 10h
_str_jXwa9chO2mmZgD1 dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+48Bo
		dd 24			; Len
		db 'jXwa9chO2mmZgD1zoLABtVS3',0; Text
		align 4
_str_BjsEcE2wQcwyAxH dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+4B3o
		dd 15			; Len
		db 'BjsEcE2wQcwyAxH',0  ; Text
_str_FbKeIA	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+4DBo
		dd 6			; Len
		db 'FbKeIA',0           ; Text
		align 4
_str_hbXo64pZhLtO1D dd 0FFFFFFFFh	    ; _top ; DATA XREF:	sub_40728C+503o
		dd 14			; Len
		db 'hbXo64pZhLtO1D',0   ; Text
		align 4
_str_hfKv6uutSia0YD dd 0FFFFFFFFh	    ; _top ; DATA XREF:	sub_40728C+52Bo
		dd 14			; Len
		db 'hfKv6uutSia0YD',0   ; Text
		align 4
_str_hH5mSogbV9r0jfL dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+553o
		dd 20			; Len
		db 'hH5mSogbV9r0jfL4NQZ0',0; Text
		align 4
_str_R_Mum7ky6M_0OPm dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+57Bo
		dd 18			; Len
		db 'R/Mum7ky6M/0OPmUvA',0; Text
		align 4
_str_FTqH_CTh	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+5A3o
		dd 8			; Len
		db 'FTqH+CTh',0         ; Text
		align 4
_str_Fzfe1DYyezhMIA dd 0FFFFFFFFh	    ; _top ; DATA XREF:	sub_40728C+5CBo
		dd 14			; Len
		db 'Fzfe1DYyezhMIA',0   ; Text
		align 4
_str_EzvbeD	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+5F3o
		dd 6			; Len
		db 'EzvbeD',0           ; Text
		align 4
_str_fPUohSA_QyWW dd 0FFFFFFFFh		  ; _top ; DATA	XREF: sub_40728C+61Bo
		dd 12			; Len
		db 'fPUohSA/QyWW',0     ; Text
		align 4
_str_fL5dvWd9PmPl dd 0FFFFFFFFh		  ; _top ; DATA	XREF: sub_40728C+643o
		dd 12			; Len
		db 'fL5dvWd9PmPl',0     ; Text
		align 4
_str_ejYbsuM	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+66Bo
		dd 7			; Len
		db 'ejYbsuM',0          ; Text
_str_Vf_pA2aKCD	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+693o
		dd 10			; Len
		db 'Vf+pA2aKCD',0       ; Text
		align 4
_str_Yb73TQG	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+6BBo
		dd 7			; Len
		db 'Yb73TQG',0          ; Text
_str_ePhFR7L	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+6E3o
		dd 7			; Len
		db 'ePhFR7L',0          ; Text
_str_x3uJ2az5zE_CX_p dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+70Bo
		dd 16			; Len
		db 'x3uJ2az5zE/CX+pX',0 ; Text
		align 4
_str_xPThbDqIWt9vsTi dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+733o
		dd 26			; Len
		db 'xPThbDqIWt9vsTiXFhd9jRl/HD',0; Text
		align 4
_str_1HTKtkEOMbsV dd 0FFFFFFFFh		  ; _top ; DATA	XREF: sub_40728C+75Bo
		dd 12			; Len
		db '1HTKtkEOMbsV',0     ; Text
		align 10h
_str_AXRFISIGkk8oSFO dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+783o
		dd 15			; Len
		db 'AXRFISIGkk8oSFO',0  ; Text
_str_dTs7PHBNO0K0L22 dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+7ABo
		dd 16			; Len
		db 'dTs7PHBNO0K0L22e',0 ; Text
		align 4
_str_xXvvzkqQKOB6YCp dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+7D3o
		dd 31			; Len
		db 'xXvvzkqQKOB6YCpQAks7VtGpS87e8AM',0; Text
_str_xvTHpP6C3xP7GIQ dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+7FBo
		dd 26			; Len
		db 'xvTHpP6C3xP7GIQkJPUVORMaUB',0; Text
		align 10h
_str_gLRw2AcvJIyytkx dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+823o
		dd 19			; Len
		db 'gLRw2AcvJIyytkx11aL',0; Text
_str_VvQaq_O_90Xx4IM dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+84Bo
		dd 15			; Len
		db 'VvQaq+O+90Xx4IM',0  ; Text
_str_lDX3zEI	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+873o
		dd 7			; Len
		db 'lDX3zEI',0          ; Text
_str_Sr_S7D	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+89Bo
		dd 6			; Len
		db 'Sr/S7D',0           ; Text
		align 4
_str_i7DqV1ne	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+8C3o
		dd 8			; Len
		db 'i7DqV1ne',0         ; Text
		align 4
_str_iDnyqB	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+8EBo
		dd 6			; Len
		db 'iDnyqB',0           ; Text
		align 4
_str_FO8FyC	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+913o
		dd 6			; Len
		db 'FO8FyC',0           ; Text
		align 4
_str_CLISBiDJvD	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+93Bo
		dd 10			; Len
		db 'CLISBiDJvD',0       ; Text
		align 4
_str_UH1eh1HOD4DoAA dd 0FFFFFFFFh	    ; _top ; DATA XREF:	sub_40728C+963o
		dd 14			; Len
		db 'UH1eh1HOD4DoAA',0   ; Text
		align 4
_str_xfQ7N0joWNKOQtt dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+98Bo
		dd 19			; Len
		db 'xfQ7N0joWNKOQttg+4B',0; Text
_str_xTlWrbdW_mUT dd 0FFFFFFFFh		  ; _top ; DATA	XREF: sub_40728C+9B3o
		dd 12			; Len
		db 'xTlWrbdW/mUT',0     ; Text
		align 4
_str_kXvvzkqQKGBmeFA dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+9DBo
		dd 15			; Len
		db 'kXvvzkqQKGBmeFA',0  ; Text
_str_0ny40UZMq9bQx2A dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+A03o
		dd 15			; Len
		db '0ny40UZMq9bQx2A',0  ; Text
_str_AjUoafnNr4TgC6N dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+A2Bo
		dd 16			; Len
		db 'AjUoafnNr4TgC6Np',0 ; Text
		align 4
_str_Y7TqqNvA8s5s dd 0FFFFFFFFh		  ; _top ; DATA	XREF: sub_40728C+A53o
		dd 12			; Len
		db 'Y7TqqNvA8s5s',0     ; Text
		align 4
_str_DDUK	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+A7Bo
		dd 4			; Len
		db 'DDUK',0             ; Text
		align 4
_str_fTOYYonaTB	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+AA3o
		dd 10			; Len
		db 'fTOYYonaTB',0       ; Text
		align 10h
_str_YyyUoVK	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+ACBo
		dd 7			; Len
		db 'YyyUoVK',0          ; Text
_str_zjSr0g_ZOqc2ZzI dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+AF3o
		dd 15			; Len
		db 'zjSr0g+ZOqc2ZzI',0  ; Text
_str_67K1YgQ7tlZk dd 0FFFFFFFFh		  ; _top ; DATA	XREF: sub_40728C+B1Bo
		dd 12			; Len
		db '67K1YgQ7tlZk',0     ; Text
		align 10h
_str_ZejqwB	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+B43o
		dd 6			; Len
		db 'ZejqwB',0           ; Text
		align 10h
_str_Af7fwtD	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+B6Bo
		dd 7			; Len
		db 'Af7fwtD',0          ; Text
_str_Ablrb3RN	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+B93o
		dd 8			; Len
		db 'Ablrb3RN',0         ; Text
		align 4
_str_0blEgf8jXhwzRot dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+BBBo
		dd 19			; Len
		db '0blEgf8jXhwzRotapQM',0; Text
_str_gPrlzXA54y7H9YQ dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+BE3o
		dd 26			; Len
		db 'gPrlzXA54y7H9YQr4Ak3g0KaIC',0; Text
		align 4
_str_rnCl07lO9q4mfbR dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+C0Bo
		dd 32			; Len
		db 'rnCl07lO9q4mfbR6/QDl1Bq7j0yKoFuR',0; Text
		align 10h
_str_4nb4kOn8Bv8Ehwe dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+C33o
		dd 19			; Len
		db '4nb4kOn8Bv8Ehwe60vL',0; Text
_str_0_iCbcbde7dbu5J dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+C5Bo
		dd 15			; Len
		db '0/iCbcbde7dbu5J',0  ; Text
_str_lbnWUETeh2Wja2G dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+C83o
		dd 36			; Len
		db 'lbnWUETeh2Wja2GO9FHa+quBlK7M0uZUGO5D',0; Text
		align 4
_str_4TUmOCu5f5zQgm9 dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+CABo
		dd 16			; Len
		db '4TUmOCu5f5zQgm9a',0 ; Text
		align 10h
_str_z_5nCzKD35CDOE2 dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+CD3o
		dd 18			; Len
		db 'z/5nCzKD35CDOE2yaD',0; Text
		align 4
_str_0X__jyi9PUM2yJo dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+CFBo
		dd 19			; Len
		db '0X+/jyi9PUM2yJojJ9E',0; Text
_str_wnEdSGz7cPOfYOt dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+D23o
		dd 16			; Len
		db 'wnEdSGz7cPOfYOty',0 ; Text
		align 4
_str_0vl5iiciG_sKAS6 dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+D4Bo
		dd 19			; Len
		db '0vl5iiciG/sKAS6mM0C',0; Text
_str_072Gr6OWCP55Uod dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+D73o
		dd 24			; Len
		db '072Gr6OWCP55UodzbrMxrPm0',0; Text
		align 4
_str_k_IcoTghcK1bdja dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+D9Bo
		dd 22			; Len
		db 'k/IcoTghcK1bdja9n+notC',0; Text
		align 4
_str_xbE_MSgDkf0OKTE dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+DC3o
		dd 15			; Len
		db 'xbE/MSgDkf0OKTE',0  ; Text
_str_0HgMrk7v2To9cJk dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+DEBo
		dd 19			; Len
		db '0HgMrk7v2To9cJk5OBI',0; Text
_str_E7PZJNbyF3w_k_K dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+E13o
		dd 15			; Len
		db 'E7PZJNbyF3w+k+K',0  ; Text
_str_wTL9EILi_0NDDoD dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+E3Bo
		dd 16			; Len
		db 'wTL9EILi/0NDDoDq',0 ; Text
		align 4
_str_ZqxH	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40728C+E63o
		dd 4			; Len
		db 'ZqxH',0             ; Text
		align 4
_str_wvwGDSSXf2xmuqW dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+E8Bo
		dd 16			; Len
		db 'wvwGDSSXf2xmuqW/',0 ; Text
		align 4
_str_wn1maor03KRrKek dd	0FFFFFFFFh	     ; _top ; DATA XREF: sub_40728C+EB3o
		dd 24			; Len
		db 'wn1maor03KRrKekOmq7mFp8H',0; Text
		align 4

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

; Attributes: bp-based frame


sub_408C3C	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_40944B
		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_4070A4
		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_409452


loc_40943D:				; CODE XREF: sub_408C3C+814j
		lea	eax, [ebp+var_1C]
		mov	edx, 3
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_40944B:				; DATA XREF: sub_408C3C+14o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_40943D
; ---------------------------------------------------------------------------


loc_409452:				; CODE XREF: sub_408C3C+80Ej
					; DATA XREF: sub_408C3C+7FCo
		mov	esp, ebp
		pop	ebp
		retn
sub_408C3C	endp

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

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

; Attributes: bp-based frame


sub_409458	proc near		; CODE XREF: sub_409510+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_409500
		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_4094E1
		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_4094E5
; ---------------------------------------------------------------------------


loc_4094E1:				; CODE XREF: sub_409458+3Aj
		mov	[ebp+var_D], 0


loc_4094E5:				; CODE XREF: sub_409458+87j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_409507


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


loc_409500:				; DATA XREF: sub_409458+1Bo
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4094F2
; ---------------------------------------------------------------------------


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

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

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

; Attributes: bp-based frame


sub_409510	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_409591
		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_40957B
		mov	edx, ds:off_40A158
		mov	edx, [edx]
		mov	eax, [ebp+var_4]
		call	sub_4032E0
		test	eax, eax
		jl	short loc_40957B
		mov	edx, ds:off_40A158
		mov	edx, [edx]
		lea	eax, [ebp+var_4]
		xor	ecx, ecx
		call	sub_409458
		test	al, al
		jz	short loc_40957B
		mov	edx, ds:off_40A130
		mov	edx, [edx]
		mov	ecx, [ebp+var_4]
		mov	eax, 80000002h
		call	sub_404BF0


loc_40957B:				; CODE XREF: sub_409510+2Aj
					; sub_409510+3Ej ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_409598


loc_409588:				; CODE XREF: sub_409510+86j
		lea	eax, [ebp+var_4]
		call	sub_401C00
		retn
; ---------------------------------------------------------------------------


loc_409591:				; DATA XREF: sub_409510+8o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_409588
; ---------------------------------------------------------------------------


loc_409598:				; CODE XREF: sub_409510+80j
					; DATA XREF: sub_409510+73o
		pop	ecx
		pop	ebp
		retn
sub_409510	endp

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

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

; Attributes: bp-based frame


sub_40959C	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_4096CA
		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_4096AF
		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_4096A2
		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_409695
		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_409695:				; CODE XREF: sub_40959C+9Dj
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A2F8
		mov	eax, [eax]
		call	eax


loc_4096A2:				; CODE XREF: sub_40959C+67j
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, ds:off_40A2F8
		mov	eax, [eax]
		call	eax


loc_4096AF:				; CODE XREF: sub_40959C+3Bj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4096D1


loc_4096BC:				; CODE XREF: sub_40959C+133j
		lea	eax, [ebp+var_34]
		mov	edx, 4
		call	sub_401C24
		retn
; ---------------------------------------------------------------------------


loc_4096CA:				; DATA XREF: sub_40959C+17o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_4096BC
; ---------------------------------------------------------------------------


loc_4096D1:				; CODE XREF: sub_40959C+12Dj
					; DATA XREF: sub_40959C+11Bo
		mov	esp, ebp
		pop	ebp
		retn
sub_40959C	endp

; ---------------------------------------------------------------------------
		align 4
_str_5_0	dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40959C+B6o
		dd 1			; Len
		db '5',0                ; Text
		align 4
_str_i		dd 0FFFFFFFFh		; _top ; DATA XREF: sub_40959C+CFo
		dd 1			; Len
		db 'i',0                ; Text
		align 10h
; 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_4096F8:				; CODE XREF: r+Dj
		push	0
		push	0
		dec	ecx
		jnz	short loc_4096F8
		push	ecx
		xor	eax, eax
		push	ebp
		push	offset loc_409B54
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	eax, eax
		call	sub_40728C
		call	sub_408C3C
		call	sub_40562C
		lea	eax, [ebp+var_14]
		mov	edx, ds:off_40A0D8
		mov	edx, [edx]
		call	sub_401C98
		call	sub_409510
		call	sub_40959C
		lea	ecx, [ebp+var_4]
		mov	edx, ds:off_40A21C
		mov	edx, [edx]
		mov	eax, 80000002h
		call	sub_404DB0
		test	al, al
		jz	loc_409AB5
		mov	edx, [ebp+var_14]
		mov	eax, [ebp+var_4]
		call	sub_4032E0
		test	eax, eax
		jge	short loc_40977D
		push	[ebp+var_14]
		push	offset dword_409B68
		push	[ebp+var_4]
		lea	eax, [ebp+var_4]
		mov	edx, 3
		call	sub_401EB4


loc_40977D:				; 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_409A59
		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_409887
		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_40987A
		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_40986D
		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_40986D:				; CODE XREF: r+121j
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, ds:off_40A2F8
		mov	eax, [eax]
		call	eax


loc_40987A:				; CODE XREF: r+EBj
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, ds:off_40A2F8
		mov	eax, [eax]
		call	eax


loc_409887:				; 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_4099FA
		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_40999B
		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_409458
		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_409B21
; ---------------------------------------------------------------------------


loc_40999B:				; 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_409B21
; ---------------------------------------------------------------------------


loc_4099FA:				; 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_409B21
; ---------------------------------------------------------------------------


loc_409A59:				; 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_409B21
; ---------------------------------------------------------------------------


loc_409AB5:				; 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_409B21:				; CODE XREF: r+2A6j r+305j ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_409B5B


loc_409B2E:				; 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_409B54:				; DATA XREF: r+13o
		jmp	unknown_libname_6 ; BDS	2005-2006 and Delphi6-7	Visual Component Library
; ---------------------------------------------------------------------------
		jmp	short loc_409B2E
; ---------------------------------------------------------------------------


loc_409B5B:				; CODE XREF: r+463j
					; DATA XREF: r+439o
		mov	esp, ebp
		pop	ebp
		retn
r		endp

; ---------------------------------------------------------------------------
		align 10h
		dd 0FFFFFFFFh, 1
dword_409B68	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 10h
_str_1_0	dd 0FFFFFFFFh		; _top ; DATA XREF: r+2C2o
		dd 1			; Len
		db '1',0                ; Text
		align 4
_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 10h
; 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_40728C
		call	sub_408C3C
		call	sub_40562C
		push	offset sub_4071CC
		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_409C4C
		mov	eax, ds:off_40A12C
		mov	eax, [eax]
		call	eax
		mov	ecx, 1
		xor	edx, edx
		mov	eax, 2
		call	sub_40716C
		xor	ecx, ecx
		xor	edx, edx
		mov	eax, 4
		call	sub_40716C
		jmp	short loc_409C3A
; ---------------------------------------------------------------------------


loc_409C27:				; CODE XREF: ServiceMain+8Aj
		call	sub_406464
		push	927C0h
		mov	eax, ds:off_40A1E8
		mov	eax, [eax]
		call	eax


loc_409C3A:				; CODE XREF: ServiceMain+65j
		cmp	ds:dword_40B32C, 3
		jz	short loc_409C4C
		cmp	ds:dword_40B32C, 1
		jnz	short loc_409C27


loc_409C4C:				; CODE XREF: ServiceMain+3Bj
					; ServiceMain+81j
		pop	ebp
		retn	8
ServiceMain	endp

; [00000028 BYTES: COLLAPSED FUNCTION unknown_libname_23. PRESS	KEYPAD "+" TO EXPAND]
dword_409C78	dd 12h				dd offset off_409C80
off_409C80	dd offset loc_4029E4	; DATA XREF: CODE:00409C7Co
		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_407154
		dd offset sub_407124
		dd 0
		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_409C78
		call	@Sysinit@@InitLib$qqrv ; Sysinit::__linkproc__ InitLib(void)
		mov	ds:dword_40B06C, offset	sub_40715C
		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_40728C+A3Br
off_40A0CC	dd offset dword_40B2C0	; DATA XREF: sub_404558+89r
					; sub_408C3C+4F8r
off_40A0D0	dd offset dword_40B18C	; DATA XREF: sub_406FBC+34r
					; sub_40728C+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_40728C+DABr
					; sub_408C3C+7Cr
off_40A0E0	dd offset dword_40B198	; DATA XREF: sub_40728C+9EBr
					; sub_408C3C+5AAr
off_40A0E4	dd offset dword_40B200	; DATA XREF: sub_40728C+D33r
					; sub_408C3C+456r
off_40A0E8	dd offset dword_40B0E8	; DATA XREF: sub_4059F8+7Cr
					; sub_40728C+319r
off_40A0EC	dd offset dword_40B1E4	; DATA XREF: sub_40728C+C43r
					; sub_408C3C+676r
off_40A0F0	dd offset dword_40B310	; DATA XREF: sub_405E84+29r
					; sub_408C3C+754r
off_40A0F4	dd offset dword_40B114	; DATA XREF: sub_406D9C+E6r
					; sub_40728C+49Br
off_40A0F8	dd offset dword_40B108	; DATA XREF: sub_406D9C+4Ar
					; sub_40728C+429r
off_40A0FC	dd offset dword_40B2F8	; DATA XREF: sub_408C3C+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_408C3C+1A6r
					; sub_40959C+57r ...
off_40A108	dd offset dword_40B134	; DATA XREF: sub_40728C+653r
					; sub_408C3C+38Ar
off_40A10C	dd offset dword_40B2E0	; DATA XREF: sub_406094+1C3r
					; sub_406094+1DEr ...
off_40A110	dd offset dword_40B2F4	; DATA XREF: sub_408C3C+1C8r
					; sub_40959C+92r ...
off_40A114	dd offset dword_40B1C8	; DATA XREF: sub_406094+19Er
					; sub_406094+1F0r ...
off_40A118	dd offset dword_40B2D8	; DATA XREF: sub_408C3C+5C4r
off_40A11C	dd offset dword_40B11C	; DATA XREF: sub_40728C+513r
					; sub_408C3C+27Ar
off_40A120	dd offset dword_40B194	; DATA XREF: sub_40728C+9C3r
					; sub_408C3C+588r
off_40A124	dd offset dword_40B300	; DATA XREF: sub_408C3C+710r
					; sub_40959C+77r ...
off_40A128	dd offset dword_40B0C4	; DATA XREF: sub_406464+76r
					; sub_406464+441r ...
off_40A12C	dd offset dword_40B30C	; DATA XREF: sub_408C3C+B8r
					; ServiceMain+3Dr
off_40A130	dd offset dword_40B0B0	; DATA XREF: sub_40728C+178r
					; sub_409510+16r ...
off_40A134	dd offset dword_40B154	; DATA XREF: sub_40728C+7BBr
					; sub_408C3C+47r
off_40A138	dd offset dword_40B1F0	; DATA XREF: sub_4070A4+1Fr
					; sub_4070A4+53r ...
off_40A13C	dd offset dword_40B220	; DATA XREF: sub_40728C+E9Br
					; sub_408C3C+77Er
off_40A140	dd offset dword_40B190	; DATA XREF: sub_40728C+99Br
					; sub_408C3C+566r
off_40A144	dd offset dword_40B124	; DATA XREF: sub_40728C+563r
					; sub_408C3C+2BEr
off_40A148	dd offset dword_40B0F0	; DATA XREF: sub_4059F8+9Cr
					; sub_40728C+35Dr
off_40A14C	dd offset dword_40B298	; DATA XREF: sub_404F34+B3r
					; sub_408C3C+3A4r
off_40A150	dd offset dword_40B17C	; DATA XREF: sub_405878+83r
					; sub_40728C+8FBr
off_40A154	dd offset dword_40B0DC	; DATA XREF: sub_405C7C+70r
					; sub_406464+B6r ...
off_40A158	dd offset dword_40B0C8	; DATA XREF: sub_40728C+240r
					; sub_409510+2Cr ...
off_40A15C	dd offset dword_40B280	; DATA XREF: sub_406464+37r
					; sub_408C3C+294r
off_40A160	dd offset dword_40B164	; DATA XREF: sub_40728C+85Br
					; sub_408C3C+522r
off_40A164	dd offset dword_40B320	; DATA XREF: sub_408C3C+74r
					; sub_408C3C+8Dr ...
off_40A168	dd offset dword_40B140	; DATA XREF: sub_40728C+6F3r
					; sub_408C3C+412r
off_40A16C	dd offset dword_40B13C	; DATA XREF: sub_40728C+6CBr
					; sub_408C3C+3F0r
off_40A170	dd offset dword_40B2D4	; DATA XREF: sub_408C3C+5A2r
off_40A174	dd offset dword_40B260	; DATA XREF: sub_404A00+C5r
					; sub_404A00+F3r ...
off_40A178	dd offset dword_40B1C4	; DATA XREF: sub_40728C+B2Br
					; sub_408C3C+5EEr
off_40A17C	dd offset dword_40B150	; DATA XREF: sub_40728C+793r
					; sub_408C3C+1Fr
off_40A180	dd offset dword_40B2A8	; DATA XREF: sub_406378+B9r
off_40A184	dd offset dword_40B110	; DATA XREF: sub_406C44+3Ar
					; sub_40728C+473r
off_40A188	dd offset dword_40B094	; DATA XREF: sub_40728C+8Ar
					; sub_408C3C+33r
off_40A18C	dd offset dword_40B250	; DATA XREF: sub_408C3C+6CCr
off_40A190	dd offset dword_40B0BC	; DATA XREF: sub_40728C+1DEr r+1C8r
off_40A194	dd offset dword_40B2D0	; DATA XREF: sub_408C3C+580r
off_40A198	dd offset dword_40B288	; DATA XREF: sub_408C3C+2D8r
off_40A19C	dd offset dword_40B25C	; DATA XREF: sub_4048D8+B9r
					; sub_4048D8+E5r ...
off_40A1A0	dd offset dword_40B168	; DATA XREF: sub_40728C+883r
					; sub_408C3C+544r
off_40A1A4	dd offset dword_40B0E0	; DATA XREF: sub_4059F8+3Er
					; sub_4059F8+5Cr ...
off_40A1A8	dd offset dword_40B208	; DATA XREF: sub_40728C+D83r
					; sub_408C3C+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_40728C+2F7r
off_40A1B4	dd offset dword_40B2C8	; DATA XREF: sub_40509C+Er
					; sub_408C3C+53Cr
off_40A1B8	dd offset dword_40B1B0	; DATA XREF: sub_406464+234r
					; sub_406464+263r ...
off_40A1BC	dd offset dword_40B0F4	; DATA XREF: sub_40728C+20Ar
					; sub_40728C+289r
off_40A1C0	dd offset dword_40B2A0	; DATA XREF: sub_4051FC+17r
					; sub_408C3C+42Cr
off_40A1C4	dd offset dword_40B29C	; DATA XREF: sub_4050B8+38r
					; sub_408C3C+40Ar
off_40A1C8	dd offset dword_40B1A4	; DATA XREF: sub_405B5C+44r
					; sub_405C7C+3Fr ...
off_40A1CC	dd offset dword_40B0C0	; DATA XREF: sub_40728C+200r r+249r ...
off_40A1D0	dd offset dword_40B0F8	; DATA XREF: sub_40728C+3A1r
					; sub_40728C+4C3r ...
off_40A1D4	dd offset dword_40B0D4	; DATA XREF: sub_40568C+32r
					; sub_40571C+2Ar ...
off_40A1D8	dd offset dword_40B138	; DATA XREF: sub_40728C+6A3r
					; sub_408C3C+3CEr
off_40A1DC	dd offset dword_40B0A8	; DATA XREF: sub_40728C+134r
					; sub_408C3C+148r
off_40A1E0	dd offset dword_40B0A4	; DATA XREF: sub_40728C+112r
					; sub_408C3C+126r
off_40A1E4	dd offset dword_40B218	; DATA XREF: sub_40728C+E4Br
					; sub_408C3C+75Cr
off_40A1E8	dd offset dword_40B2CC	; DATA XREF: sub_4071CC+41r
					; sub_408C3C+55Er ...
off_40A1EC	dd offset dword_40B160	; DATA XREF: sub_40728C+833r
					; sub_408C3C+500r
off_40A1F0	dd offset dword_40B1E8	; DATA XREF: sub_40728C+C6Br
					; sub_408C3C+6B2r
off_40A1F4	dd offset dword_40B10C	; DATA XREF: sub_406D9C+8Dr
					; sub_40728C+44Br
off_40A1F8	dd offset dword_40B09C	; DATA XREF: sub_40728C+CEr
					; sub_408C3C+E2r
off_40A1FC	dd offset dword_40B224	; DATA XREF: sub_40728C+EC3r
					; sub_408C3C+7A0r
off_40A200	dd offset dword_40B16C	; DATA XREF: sub_40538C+11r
					; sub_40538C+29r ...
off_40A204	dd offset dword_40B2B8	; DATA XREF: sub_408C3C+4B4r
off_40A208	dd offset dword_40B1DC	; DATA XREF: sub_40728C+BF3r
					; sub_408C3C+654r
off_40A20C	dd offset dword_40B2A4	; DATA XREF: sub_404F34+CCr
					; sub_408C3C+3E8r
off_40A210	dd offset dword_40B1CC	; DATA XREF: sub_40728C+B03r
					; sub_408C3C+610r
off_40A214	dd offset dword_40B308	; DATA XREF: sub_40716C+4Dr
					; sub_408C3C+96r
off_40A218	dd offset dword_40B1D4	; DATA XREF: sub_406464+2B3r
					; sub_40728C+BA3r
off_40A21C	dd offset dword_40B0B8	; DATA XREF: sub_40728C+1BCr r+4Cr ...
off_40A220	dd offset dword_40B2FC	; DATA XREF: sub_408C3C+470r
					; sub_40959C+9Fr ...
off_40A224	dd offset dword_40B268	; DATA XREF: sub_408C3C+162r
off_40A228	dd offset dword_40B214	; DATA XREF: sub_40728C+DFBr
					; sub_408C3C+73Ar
off_40A22C	dd offset dword_40B1A0	; DATA XREF: sub_405B5C+38r
					; sub_405C7C+33r ...
off_40A230	dd offset dword_40B148	; DATA XREF: sub_40728C+743r
					; sub_408C3C+478r
off_40A234	dd offset dword_40B0FC	; DATA XREF: sub_40728C+3C3r
					; sub_40728C+5B3r ...
off_40A238	dd offset dword_40B0D8	; DATA XREF: sub_40524C+59r
					; sub_4053DC+56r ...
off_40A23C	dd offset dword_40B19C	; DATA XREF: sub_40728C+A13r
					; sub_408C3C+5CCr
off_40A240	dd offset dword_40B128	; DATA XREF: sub_40728C+5DBr
					; sub_408C3C+324r
off_40A244	dd offset dword_40B1FC	; DATA XREF: sub_40728C+D0Br
					; sub_408C3C+1D0r
off_40A248	dd offset dword_40B2C4	; DATA XREF: sub_404558+C4r
					; sub_404650+4Fr ...
off_40A24C	dd offset dword_40B1D8	; DATA XREF: sub_40728C+BCBr
					; sub_408C3C+632r
off_40A250	dd offset dword_40B188	; DATA XREF: sub_406378+59r
					; sub_406464+23Cr ...
off_40A254	dd offset dword_40B1F4	; DATA XREF: sub_40728C+CBBr
					; sub_408C3C+18Cr
off_40A258	dd offset dword_40B1F8	; DATA XREF: sub_40728C+CE3r
					; sub_408C3C+1AEr
off_40A25C	dd offset dword_40B130	; DATA XREF: sub_40728C+62Br
					; sub_408C3C+368r
off_40A260	dd offset dword_40B2EC	; DATA XREF: sub_406378+9Cr
					; sub_408C3C+66Er
off_40A264	dd offset dword_40B170	; DATA XREF: sub_4059F8+CFr
					; sub_40728C+8ABr
off_40A268	dd offset dword_40B0AC	; DATA XREF: sub_40728C+156r
					; sub_408C3C+16Ar
off_40A26C	dd offset dword_40B0A0	; DATA XREF: sub_40728C+F0r
					; sub_408C3C+104r
off_40A270	dd offset dword_40B118	; DATA XREF: sub_40728C+4EBr
					; sub_408C3C+258r
off_40A274	dd offset dword_40B204	; DATA XREF: sub_40728C+D5Br
					; sub_408C3C+6F6r
off_40A278	dd offset dword_40B1C0	; DATA XREF: sub_406094+104r
					; sub_40728C+ADBr
off_40A27C	dd offset dword_40B14C	; DATA XREF: sub_40728C+76Br
					; sub_408C3C+49Ar
off_40A280	dd offset dword_40B210	; DATA XREF: sub_40728C+DD3r
					; sub_408C3C+9Er
off_40A284	dd offset dword_40B1E0	; DATA XREF: sub_404558+ABr
					; sub_40728C+C1Br
off_40A288	dd offset dword_40B2B4	; DATA XREF: sub_408C3C+492r
off_40A28C	dd offset dword_40B274	; DATA XREF: sub_404F34+27r
					; sub_408C3C+20Cr ...
off_40A290	dd offset dword_40B2DC	; DATA XREF: sub_408C3C+5E6r
off_40A294	dd offset dword_40B100	; DATA XREF: sub_40728C+3E5r
					; sub_40728C+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_408C3C+798r
off_40A2A0	dd offset dword_40B2E8	; DATA XREF: sub_406378+7Br
					; sub_408C3C+64Cr
off_40A2A4	dd offset dword_40B1B8	; DATA XREF: sub_406094+80r
					; sub_40728C+A8Br
off_40A2A8	dd offset dword_40B184	; DATA XREF: sub_4070A4+41r
					; sub_40728C+94Br
off_40A2AC	dd offset dword_40B31C	; DATA XREF: sub_408C3C+7BAr r+240r
off_40A2B0	dd offset dword_40B158	; DATA XREF: sub_40728C+7E3r
					; sub_408C3C+4BCr
off_40A2B4	dd offset dword_40B258	; DATA XREF: sub_4048D8+75r
					; sub_408C3C+DAr
off_40A2B8	dd offset dword_40B21C	; DATA XREF: sub_406094+D4r
					; sub_40728C+E73r
off_40A2BC	dd offset dword_40B1EC	; DATA XREF: sub_40728C+C93r
					; sub_408C3C+6D4r
off_40A2C0	dd offset dword_40B294	; DATA XREF: sub_404F34+A9r
					; sub_408C3C+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_40728C+B7Br
off_40A2CC	dd offset dword_40B12C	; DATA XREF: sub_40728C+603r
					; sub_408C3C+346r
off_40A2D0	dd offset dword_40B26C	; DATA XREF: sub_404A00+6Br
					; sub_408C3C+184r
off_40A2D4	dd offset dword_40B264	; DATA XREF: sub_4048D8+F8r
					; sub_404A00+134r ...
off_40A2D8	dd offset dword_40B104	; DATA XREF: sub_40728C+407r
					; sub_40728C+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_40728C+71Br
					; sub_408C3C+434r
off_40A2E8	dd offset dword_40B0EC	; DATA XREF: sub_4059F8+8Cr
					; sub_40728C+33Br
off_40A2EC	dd offset dword_40B270	; DATA XREF: sub_404F34+67r
					; sub_408C3C+22Er ...
off_40A2F0	dd offset dword_40B0D0	; DATA XREF: sub_406464+86r
					; sub_406464+36Dr ...
off_40A2F4	dd offset dword_40B120	; DATA XREF: sub_40728C+53Br
					; sub_408C3C+29Cr
off_40A2F8	dd offset dword_40B304	; DATA XREF: sub_408C3C+732r
					; sub_40959C+FDr ...
off_40A2FC	dd offset dword_40B2BC	; DATA XREF: sub_404558+2Dr
					; sub_408C3C+4D6r
off_40A300	dd offset dword_40B24C	; DATA XREF: sub_408C3C+6EEr
					; ServiceMain+26r
off_40A304	dd offset dword_40B1BC	; DATA XREF: sub_406094+E8r
					; sub_40728C+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_408C3C+776r
off_40A314	dd offset dword_40B024	; DATA XREF: sub_40562C+9r
off_40A318	dd offset dword_40B278	; DATA XREF: sub_404F34+80r
					; sub_408C3C+250r ...
off_40A31C	dd offset dword_40B254	; DATA XREF: sub_408C3C+690r
					; sub_40959C+2Br ...
off_40A320	dd offset dword_40B15C	; DATA XREF: sub_40728C+80Br
					; sub_408C3C+4DEr
off_40A324	dd offset dword_40B098	; DATA XREF: sub_40728C+ACr
					; sub_408C3C+C0r
off_40A328	dd offset dword_40B2B0	; DATA XREF: sub_408C3C+44Er
off_40A32C	dd offset dword_40B178	; DATA XREF: sub_405858+6r
					; sub_405878+39r ...
off_40A330	dd offset dword_40B284	; DATA XREF: sub_408C3C+2B6r
off_40A334	dd offset dword_40B0B4	; DATA XREF: sub_40728C+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:00409D20w
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+102r ...
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_407154w
dword_40B328	dd ?							; ServiceMain+2Fw ...
dword_40B32C	dd ?							; sub_4071CC+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