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