; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: 48-377D-7114-93 SRI International, 1 computer, std, 11/2007 | ; +-------------------------------------------------------------------------+ ; ; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: 48-377D-7114-93 SRI International, 1 computer, std, 11/2007 | ; +-------------------------------------------------------------------------+ ; ; Input MD5 : AE9B8CAB067339DB8F21632AC5D57A9D ; File Name : u:\work\ae9b8cab067339db8f21632ac5d57a9d_orig.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 00008F24 ( 36644.) ; Section size in file : 00009000 ( 36864.) ; Offset to raw data for section: 00000400 ; Flags 60000020: Text Executable Readable ; Alignment : default ; OS type : MS Windows ; Application type: Executable DLL 32bit include uni.inc ; see unicode subdir of ida for info on unicode .686p .mmx .model flat ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Execute CODE segment para public 'CODE' use32 assume cs:CODE ;org 401000h assume es:nothing, ss:nothing, ds:CODE, fs:nothing, gs:nothing off_401000 dd offset byte_401004 ; DATA XREF: CODE:004043E6o ; CODE:004043EEo ... byte_401004 db 0Ah ; DATA XREF: CODE:off_401000o ; LString db 6,'String' off_40100C dd offset aTobject ; DATA XREF: CODE:004043B8o ; CODE:00404E64o ; "TObject" dd 7 dup(0) dd offset aTobject ; "TObject" unknown_libname_1 dd 4, 0 ; BDS 2005-2006 and Delphi6-7 Visual Component Library dd offset @System@TObject@SafeCallException$qqrp14System@TObjectpv ; System::TObject::SafeCallException(System::TObject *,void *) dd offset nullsub_2 dd offset nullsub_3 dd offset sub_40149C dd offset nullsub_4 dd offset sub_401388 dd offset sub_40139C dd offset @System@TObject@$bdtr$qqrv ; System::TObject::~TObject(void) aTobject db 7,'TObject' ; DATA XREF: CODE:off_40100Co ; CODE:0040102Co ; [00000006 BYTES: COLLAPSED FUNCTION FreeLibrary. PRESS KEYPAD "+" TO EXPAND] align 4 ; [00000006 BYTES: COLLAPSED FUNCTION LocalAlloc. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION LocalFree. PRESS KEYPAD "+" TO EXPAND] align 4 ; [00000006 BYTES: COLLAPSED FUNCTION TlsAlloc. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION TlsFree. PRESS KEYPAD "+" TO EXPAND] align 4 ; [00000006 BYTES: COLLAPSED FUNCTION TlsGetValue. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION TlsSetValue. PRESS KEYPAD "+" TO EXPAND] align 4 ; [00000006 BYTES: COLLAPSED FUNCTION RaiseException. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION RtlUnwind. PRESS KEYPAD "+" TO EXPAND] align 4 ; [00000006 BYTES: COLLAPSED FUNCTION UnhandledExceptionFilter. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION ExitProcess. PRESS KEYPAD "+" TO EXPAND] align 4 ; [00000006 BYTES: COLLAPSED FUNCTION MultiByteToWideChar. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION WideCharToMultiByte. PRESS KEYPAD "+" TO EXPAND] align 4 ; [00000006 BYTES: COLLAPSED FUNCTION SysAllocStringLen. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION SysFreeString. PRESS KEYPAD "+" TO EXPAND] align 4 ; [00000006 BYTES: COLLAPSED FUNCTION LocalReAlloc. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION LocalSize. PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= ; int __fastcall sub_4010E8(SIZE_T uBytes) sub_4010E8 proc near ; CODE XREF: sub_40114C+4p ; System::__linkproc__ ReallocMem(void *&,int)+3Fp ... push ebx mov ebx, eax push ebx ; uBytes push 0 ; uFlags call LocalAlloc ; LocalAlloc pop ebx retn sub_4010E8 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; int __fastcall sub_4010F8(HLOCAL hMem) sub_4010F8 proc near ; CODE XREF: sub_401164+4p ; System::__linkproc__ ReallocMem(void *&,int)+26p ; DATA XREF: ... push ebx mov ebx, eax push ebx ; hMem call LocalFree ; LocalFree pop ebx retn sub_4010F8 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; int __fastcall sub_401104(HLOCAL hMem, SIZE_T uBytes) sub_401104 proc near ; CODE XREF: System::__linkproc__ ReallocMem(void *&,int)+Dp ; DATA XREF: DATA:off_40A03Co push ebx push esi push edi mov esi, edx mov edi, eax push 0 ; uFlags push esi ; uBytes push edi ; hMem call LocalReAlloc ; LocalReAlloc mov ebx, eax test ebx, ebx jnz short loc_401144 push esi ; uBytes push 0 ; uFlags call LocalAlloc ; LocalAlloc mov ebx, eax test ebx, ebx jz short loc_401144 push edi ; hMem call LocalSize ; LocalSize cmp esi, eax jge short loc_401134 mov eax, esi loc_401134: ; CODE XREF: sub_401104+2Cj mov edx, ebx mov ecx, edi xchg eax, ecx call sub_401210 push edi ; hMem call LocalFree ; LocalFree loc_401144: ; CODE XREF: sub_401104+14j ; sub_401104+22j mov eax, ebx pop edi pop esi pop ebx retn sub_401104 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_40114C proc near ; CODE XREF: sub_401388+4p ; sub_401CC0+8p ... test eax, eax jz short locret_40115A call ds:off_40A034 or eax, eax jz short loc_40115B locret_40115A: ; CODE XREF: sub_40114C+2j retn ; --------------------------------------------------------------------------- loc_40115B: ; CODE XREF: sub_40114C+Cj mov al, 1 jmp loc_4011CC sub_40114C endp ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_401164 proc near ; CODE XREF: sub_40139C+1Dp ; sub_401C00+1Bp ... test eax, eax jz short locret_401172 call ds:off_40A038 or eax, eax jnz short loc_401173 locret_401172: ; CODE XREF: sub_401164+2j retn ; --------------------------------------------------------------------------- loc_401173: ; CODE XREF: sub_401164+Cj mov al, 2 jmp loc_4011CC sub_401164 endp ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 4 ; [00000079 BYTES: COLLAPSED FUNCTION System::__linkproc__ ReallocMem(void *&,int). PRESS KEYPAD "+" TO EXPAND] byte_4011F5 db 0CBh ; DATA XREF: System::__linkproc__ ReallocMem(void *&,int)+61r aRsu db 'ÌÈÉ×ÏÈÍÎÛØÊÙÚÜÝÞßàáã',0 db 0E4h dd 0C08BC3E5h ; =============== S U B R O U T I N E ======================================= sub_401210 proc near ; CODE XREF: sub_401104+35p ; sub_401C54+1Bp ... cmp ecx, 4 jge short loc_401231 jcxz locret_40126F cmp eax, edx jz short locret_40126F push esi push edi mov esi, eax mov edi, edx ja short loc_40122D lea esi, [esi+ecx-1] lea edi, [edi+ecx-1] std loc_40122D: ; CODE XREF: sub_401210+12j rep movsb jmp short loc_40125D ; --------------------------------------------------------------------------- loc_401231: ; CODE XREF: sub_401210+3j cmp eax, edx jz short locret_40126F push esi push edi mov esi, eax mov edi, edx mov eax, ecx ja short loc_40125F and ecx, 3 lea esi, [esi+eax-1] lea edi, [edi+eax-1] std rep movsb sar eax, 2 mov ecx, eax mov eax, 3 sub esi, eax sub edi, eax rep movsd loc_40125D: ; CODE XREF: sub_401210+1Fj cld dec ecx loc_40125F: ; CODE XREF: sub_401210+2Dj sar ecx, 2 js short loc_40126D rep movsd and eax, 3 mov ecx, eax rep movsb loc_40126D: ; CODE XREF: sub_401210+52j pop edi pop esi locret_40126F: ; CODE XREF: sub_401210+5j ; sub_401210+Aj ... retn sub_401210 endp ; [0000000A BYTES: COLLAPSED FUNCTION System::__linkproc__ ROUND(void). PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_40127C proc near ; CODE XREF: sub_402EC0+Bp ; sub_402EE8+Cp ... var_C = word ptr -0Ch var_8 = qword ptr -8 sub esp, 0Ch fstcw [esp+0Ch+var_C] wait fldcw ds:word_40A040 fistp [esp+0Ch+var_8] wait fldcw [esp+0Ch+var_C] pop ecx pop eax pop edx retn sub_40127C endp ; --------------------------------------------------------------------------- align 4 ; [0000002F BYTES: COLLAPSED FUNCTION System::__linkproc__ PStrNCat(void). PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- retn ; =============== S U B R O U T I N E ======================================= sub_4012C8 proc near ; CODE XREF: sub_403C64+DAp ; sub_403C64+13Fp ... xor ecx, ecx push esi push edi mov cl, [edx] mov edi, eax inc ecx mov esi, edx mov eax, ecx shr ecx, 2 and eax, 3 rep movsd mov ecx, eax rep movsb pop edi pop esi retn sub_4012C8 endp ; [0000001F BYTES: COLLAPSED FUNCTION System::__linkproc__ FillChar(void *,int,char). PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_401304 proc near ; CODE XREF: sub_4052F8+1Bp ; sub_405AC8+90p ... imul edx, ds:dword_40B024, 8088405h inc edx mov ds:dword_40B024, edx mul edx mov eax, edx retn sub_401304 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_40131C proc near ; CODE XREF: sub_4030E8p cmp edx, 1 jnb short loc_401322 retn ; --------------------------------------------------------------------------- loc_401322: ; CODE XREF: sub_40131C+3j push ecx test eax, eax jnz short loc_40136B mov eax, [edx-8] ; uBytes test eax, eax jz short loc_401364 push edx call ds:off_40A034 pop edx test eax, eax jz short loc_401360 push edi mov ecx, [edx-8] mov edi, eax push eax xor eax, eax shr ecx, 2 rep stosd mov ecx, [edx-8] and ecx, 3 rep stosb pop eax pop edi mov ecx, [edx-4] test ecx, ecx jl short loc_40135C mov [eax+ecx], edx loc_40135C: ; CODE XREF: sub_40131C+3Bj test eax, eax pop ecx retn ; --------------------------------------------------------------------------- loc_401360: ; CODE XREF: sub_40131C+1Cj xor edx, edx pop ecx retn ; --------------------------------------------------------------------------- loc_401364: ; CODE XREF: sub_40131C+10j xor edx, edx cmp eax, 1 pop ecx retn ; --------------------------------------------------------------------------- loc_40136B: ; CODE XREF: sub_40131C+9j mov ecx, [edx-4] test ecx, ecx jl short loc_401375 mov [eax+ecx], edx loc_401375: ; CODE XREF: sub_40131C+54j xor edx, edx test eax, eax pop ecx retn sub_40131C endp ; --------------------------------------------------------------------------- align 4 ; [0000000A BYTES: COLLAPSED FUNCTION unknown_libname_2. PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_401388 proc near ; DATA XREF: CODE:0040104Co ; CODE:004043D0o ... push eax mov eax, [eax-28h] call sub_40114C mov edx, eax pop eax jmp sub_401400 sub_401388 endp ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_40139C proc near ; DATA XREF: CODE:00401050o ; CODE:004043D4o ... push ebx push esi mov ebx, eax mov esi, eax loc_4013A2: ; CODE XREF: sub_40139C+1Bj mov esi, [esi] mov edx, [esi-40h] mov esi, [esi-24h] test edx, edx jz short loc_4013B5 call sub_4022F0 mov eax, ebx loc_4013B5: ; CODE XREF: sub_40139C+10j test esi, esi jnz short loc_4013A2 call sub_401164 pop esi pop ebx retn sub_40139C endp ; --------------------------------------------------------------------------- align 4 ; [00000020 BYTES: COLLAPSED FUNCTION unknown_libname_3. PRESS KEYPAD "+" TO EXPAND] ; [0000000F BYTES: COLLAPSED FUNCTION System::TObject::~TObject(void). PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_4013F4 proc near ; CODE XREF: sub_40161C+11Ej ; System::__linkproc__ RaiseAgain(void)+30p ... test eax, eax jz short locret_4013FF mov ecx, [eax] mov dl, 1 call dword ptr [ecx-4] locret_4013FF: ; CODE XREF: sub_4013F4+2j retn sub_4013F4 endp ; =============== S U B R O U T I N E ======================================= sub_401400 proc near ; CODE XREF: sub_401388+Cj push ebx push esi push edi mov ebx, eax mov edi, edx stosd mov ecx, [ebx-28h] xor eax, eax push ecx shr ecx, 2 dec ecx rep stosd pop ecx and ecx, 3 rep stosb mov eax, edx mov edx, esp loc_40141E: ; CODE XREF: sub_401400+2Fj mov ecx, [ebx-48h] test ecx, ecx jz short loc_401426 push ecx loc_401426: ; CODE XREF: sub_401400+23j mov ebx, [ebx-24h] test ebx, ebx jz short loc_401431 mov ebx, [ebx] jmp short loc_40141E ; --------------------------------------------------------------------------- loc_401431: ; CODE XREF: sub_401400+2Bj cmp esp, edx jz short loc_401452 loc_401435: ; CODE XREF: sub_401400+50j pop ebx mov ecx, [ebx] add ebx, 4 loc_40143B: ; CODE XREF: sub_401400+4Cj mov esi, [ebx+10h] test esi, esi jz short loc_401448 mov edi, [ebx+14h] mov [eax+edi], esi loc_401448: ; CODE XREF: sub_401400+40j add ebx, 1Ch dec ecx jnz short loc_40143B cmp esp, edx jnz short loc_401435 loc_401452: ; CODE XREF: sub_401400+33j pop edi pop esi pop ebx retn sub_401400 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_401458 proc near ; CODE XREF: sub_40149C+13p push edi xchg eax, ebx jmp short loc_40145E ; --------------------------------------------------------------------------- loc_40145C: ; CODE XREF: sub_401458+1Fj mov ebx, [ebx] loc_40145E: ; CODE XREF: sub_401458+2j mov edi, [ebx-30h] test edi, edi jz short loc_401472 movzx ecx, word ptr [edi] push ecx add edi, 2 repne scasw jz short loc_40147B pop ecx loc_401472: ; CODE XREF: sub_401458+Bj mov ebx, [ebx-24h] test ebx, ebx jnz short loc_40145C pop edi retn ; --------------------------------------------------------------------------- loc_40147B: ; CODE XREF: sub_401458+17j pop eax add eax, eax sub eax, ecx mov ebx, [edi+eax*2-4] pop edi retn sub_401458 endp ; --------------------------------------------------------------------------- align 4 ; [00000006 BYTES: COLLAPSED FUNCTION System::TObject::SafeCallException(System::TObject *,void *). PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_4. PRESS KEYPAD "+" TO EXPAND] align 4 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND] align 4 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_40149C proc near ; DATA XREF: CODE:00401044o ; CODE:004043C8o ... push ebx mov bx, [edx] or bx, bx jz short loc_4014BC cmp bx, 0C000h jnb short loc_4014BC push eax mov eax, [eax] call sub_401458 pop eax jz short loc_4014BC mov ecx, ebx pop ebx jmp ecx ; --------------------------------------------------------------------------- loc_4014BC: ; CODE XREF: sub_40149C+7j ; sub_40149C+Ej ... pop ebx mov ecx, [eax] jmp dword ptr [ecx-10h] sub_40149C endp ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 4 ; [00000029 BYTES: COLLAPSED FUNCTION System::__linkproc__ ClassCreate(System::TMetaClass *,bool). PRESS KEYPAD "+" TO EXPAND] ; [00000005 BYTES: COLLAPSED FUNCTION sub_4014ED. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- mov eax, [esp+2Ch] mov eax, [eax+0Ch] test eax, eax jz short loc_40150B mov ecx, [eax] mov dl, 81h push eax call dword ptr [ecx-4] pop eax call @System@@ClassDestroy$qqrp14System@TObject ; System::__linkproc__ ClassDestroy(System::TObject *) loc_40150B: ; CODE XREF: CODE:004014FBj call @System@@RaiseAgain$qqrv ; System::__linkproc__ RaiseAgain(void) retn ; --------------------------------------------------------------------------- align 4 ; [00000006 BYTES: COLLAPSED FUNCTION System::__linkproc__ ClassDestroy(System::TObject *). PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_40151C proc near ; CODE XREF: unknown_libname_3+10p ; sub_404404+80p push eax mov edx, [eax] call dword ptr [edx-1Ch] pop eax retn sub_40151C endp ; [0000000F BYTES: COLLAPSED FUNCTION System::__linkproc__ BeforeDestruction(System::TObject *,signed char). PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_401534 proc near ; CODE XREF: System::__linkproc__ RaiseAgain(void)+35p cmp ds:byte_40A01C, 1 jbe short locret_40154D push 0 ; lpArguments push 0 ; nNumberOfArguments push 0 ; dwExceptionFlags push 0EEDFADFh ; dwExceptionCode call RaiseException ; RaiseException locret_40154D: ; CODE XREF: sub_401534+7j retn sub_401534 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_401550 proc near ; CODE XREF: sub_40161C+4Dp cmp ds:byte_40A01C, 0 jz short locret_40156F push eax push eax push edx push esp ; lpArguments push 2 ; nNumberOfArguments push 0 ; dwExceptionFlags push 0EEDFAE4h ; dwExceptionCode call RaiseException ; RaiseException add esp, 8 pop eax locret_40156F: ; CODE XREF: sub_401550+7j retn sub_401550 endp ; --------------------------------------------------------------------------- ; [00000014 BYTES: COLLAPSED CHUNK OF FUNCTION unknown_libname_4. PRESS KEYPAD "+" TO EXPAND] ; [00000011 BYTES: COLLAPSED FUNCTION unknown_libname_4. PRESS KEYPAD "+" TO EXPAND] align 4 ; [0000001E BYTES: COLLAPSED FUNCTION unknown_libname_5. PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_4015B8 proc near ; CODE XREF: sub_40161C+151p cmp ds:byte_40A01C, 1 jbe short locret_4015DD push eax push edx push ecx call unknown_libname_5 ; BDS 2005-2006 and Delphi6-7 Visual Component Library push ecx push esp ; lpArguments push 1 ; nNumberOfArguments push 0 ; dwExceptionFlags push 0EEDFAE1h ; dwExceptionCode call RaiseException ; RaiseException pop ecx pop ecx pop edx pop eax locret_4015DD: ; CODE XREF: sub_4015B8+7j retn sub_4015B8 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4015E0 proc near ; CODE XREF: System::__linkproc__ DoneExcept(void)+28p cmp ds:byte_40A01C, 1 jbe short locret_4015FA push edx push esp ; lpArguments push 1 ; nNumberOfArguments push 0 ; dwExceptionFlags push 0EEDFAE2h ; dwExceptionCode call RaiseException ; RaiseException pop edx locret_4015FA: ; CODE XREF: sub_4015E0+7j retn sub_4015E0 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_4015FC proc near ; CODE XREF: CODE:loc_40193Cp push eax push edx cmp ds:byte_40A01C, 1 jbe short loc_401616 push esp ; lpArguments push 2 ; nNumberOfArguments push 0 ; dwExceptionFlags push 0EEDFAE3h ; dwExceptionCode call RaiseException ; RaiseException loc_401616: ; CODE XREF: sub_4015FC+9j pop edx pop eax retn sub_4015FC endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; int __cdecl sub_40161C(struct _EXCEPTION_POINTERS ExceptionInfo, int, int, int, int, int, int, int, int) sub_40161C proc near ; CODE XREF: sub_4014EDj ; sub_4044CC:loc_4045B1j ... ExceptionInfo = _EXCEPTION_POINTERS ptr 4 arg_8 = dword ptr 0Ch arg_24 = dword ptr 28h ; FUNCTION CHUNK AT 00401748 SIZE 00000036 BYTES mov eax, [esp+ExceptionInfo.ExceptionRecord] test dword ptr [eax+4], 6 jnz loc_40173F cmp dword ptr [eax], 0EEDFADEh mov edx, [eax+18h] mov ecx, [eax+14h] jz short loc_4016A9 cld call unknown_libname_2 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov edx, ds:dword_40B008 test edx, edx jz loc_40173F call edx ; dword_40B008 test eax, eax jz loc_40173F mov edx, [esp+arg_8] mov ecx, [esp+ExceptionInfo.ExceptionRecord] cmp dword ptr [ecx], 0EEFFACEh jz short loc_4016A0 call sub_401550 cmp ds:byte_40A020, 0 jbe short loc_4016A0 cmp ds:byte_40A01C, 0 ja short loc_4016A0 lea ecx, [esp+ExceptionInfo] push eax push ecx ; ExceptionInfo call UnhandledExceptionFilter ; UnhandledExceptionFilter cmp eax, 0 pop eax jz loc_40173F mov edx, eax mov eax, [esp+ExceptionInfo.ExceptionRecord] mov ecx, [eax+0Ch] jmp short loc_4016D0 ; --------------------------------------------------------------------------- loc_4016A0: ; CODE XREF: sub_40161C+4Bj ; sub_40161C+59j ... mov edx, eax mov eax, [esp+ExceptionInfo.ExceptionRecord] mov ecx, [eax+0Ch] loc_4016A9: ; CODE XREF: sub_40161C+1Dj cmp ds:byte_40A020, 1 jbe short loc_4016D0 cmp ds:byte_40A01C, 0 ja short loc_4016D0 push eax lea eax, [esp+4+ExceptionInfo] push edx push ecx push eax ; ExceptionInfo call UnhandledExceptionFilter ; UnhandledExceptionFilter cmp eax, 0 pop ecx pop edx pop eax jz short loc_40173F loc_4016D0: ; CODE XREF: sub_40161C+82j ; sub_40161C+94j ... or dword ptr [eax+4], 2 push ebx xor ebx, ebx push esi push edi push ebp mov ebx, fs:[ebx] push ebx push eax push edx push ecx mov edx, [esp+20h+ExceptionInfo.ContextRecord] push 0 push eax push offset loc_4016F3 push edx call RtlUnwind ; RtlUnwind loc_4016F3: ; DATA XREF: sub_40161C+CCo mov edi, [esp+arg_24] call sub_40284C push dword ptr [eax+0] mov [eax+0], esp mov ebp, [edi+8] mov ebx, [edi+4] mov dword ptr [edi+4], offset loc_40171F add ebx, 5 call unknown_libname_4 ; BDS 2005-2006 and Delphi6-7 Visual Component Library jmp ebx ; --------------------------------------------------------------------------- loc_40171F: ; DATA XREF: sub_40161C+F2o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- call sub_40284C mov ecx, [eax+0] mov edx, [ecx] mov [eax+0], edx mov eax, [ecx+8] jmp sub_4013F4 ; --------------------------------------------------------------------------- loc_40173F: ; CODE XREF: sub_40161C+Bj ; sub_40161C+2Dj ... mov eax, 1 retn sub_40161C endp ; --------------------------------------------------------------------------- align 4 ; START OF FUNCTION CHUNK FOR sub_40161C unknown_libname_6: ; CODE XREF: sub_40161C:loc_40171Fj ; sub_40272C:loc_402768j ... mov eax, [esp+ExceptionInfo.ExceptionRecord] ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov edx, [esp+ExceptionInfo.ContextRecord] test dword ptr [eax+4], 6 jz short loc_401778 mov ecx, [edx+4] mov dword ptr [edx+4], offset loc_401778 push ebx push esi push edi push ebp mov ebp, [edx+8] add ecx, 5 call sub_4015B8 call ecx pop ebp pop edi pop esi pop ebx loc_401778: ; CODE XREF: sub_40161C+13Bj ; DATA XREF: sub_40161C+140o mov eax, 1 retn ; END OF FUNCTION CHUNK FOR sub_40161C ; --------------------------------------------------------------------------- align 10h ; [00000051 BYTES: COLLAPSED FUNCTION System::__linkproc__ RaiseAgain(void). PRESS KEYPAD "+" TO EXPAND] align 4 ; [0000002F BYTES: COLLAPSED FUNCTION System::__linkproc__ DoneExcept(void). PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- retn ; [00000015 BYTES: COLLAPSED FUNCTION System::__linkproc__ TryFinallyExit(void). PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_40181C proc near ; CODE XREF: unknown_libname_7+97p mov [esp+0], edx jmp sub_401BF4 sub_40181C endp ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 4 ; [000000A0 BYTES: COLLAPSED FUNCTION unknown_libname_7. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_4018C8: ; DATA XREF: sub_401964+12o mov eax, [esp+4] test dword ptr [eax+4], 6 jnz loc_401961 cmp ds:byte_40A01C, 0 ja short loc_4018F1 lea eax, [esp+4] push eax call UnhandledExceptionFilter ; UnhandledExceptionFilter cmp eax, 0 jz short loc_401961 loc_4018F1: ; CODE XREF: CODE:004018E0j mov eax, [esp+4] cld call unknown_libname_2 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov edx, [esp+8] push 0 push eax push offset loc_40190D push edx call RtlUnwind ; RtlUnwind loc_40190D: ; DATA XREF: CODE:00401902o mov ebx, [esp+4] cmp dword ptr [ebx], 0EEDFADEh mov edx, [ebx+14h] mov eax, [ebx+18h] jz short loc_40193C mov edx, ds:dword_40B008 test edx, edx jz unknown_libname_7 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov eax, ebx call edx ; dword_40B008 test eax, eax jz unknown_libname_7 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov edx, [ebx+0Ch] loc_40193C: ; CODE XREF: CODE:0040191Dj call sub_4015FC mov ecx, ds:dword_40B000 test ecx, ecx jz short loc_40194D call ecx ; dword_40B000 loc_40194D: ; CODE XREF: CODE:00401949j mov ecx, [esp+4] mov eax, 0D9h mov edx, [ecx+14h] mov [esp], edx jmp sub_401BF4 ; --------------------------------------------------------------------------- loc_401961: ; CODE XREF: CODE:004018D3j ; CODE:004018EFj xor eax, eax retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=0FFFFFFA0h sub_401964 proc near ; CODE XREF: System::__linkproc__ StartLib(void)+4Fp arg_4C = byte ptr 54h xor edx, edx push ebp lea ebp, [esp+60h] lea eax, [ebp-60h+arg_4C] mov ecx, fs:[edx] mov fs:[edx], eax mov [eax], ecx mov dword ptr [eax+4], offset loc_4018C8 mov [eax+8], ebp mov ds:dword_40B030, eax pop ebp retn sub_401964 endp ; =============== S U B R O U T I N E ======================================= sub_401988 proc near ; CODE XREF: sub_401B04:loc_401B52p ; DATA XREF: DATA:off_40A010o push ebx push esi push edi push ebp mov edi, offset dword_40B02C mov eax, [edi+8] test eax, eax jz short loc_4019B6 mov ebx, [edi+0Ch] mov esi, [eax+4] test ebx, ebx jle short loc_4019B6 loc_4019A2: ; CODE XREF: sub_401988+2Cj dec ebx mov [edi+0Ch], ebx mov eax, [esi+ebx*8+4] test eax, eax jz short loc_4019B2 mov ebp, eax call ebp loc_4019B2: ; CODE XREF: sub_401988+24j test ebx, ebx jg short loc_4019A2 loc_4019B6: ; CODE XREF: sub_401988+Ej ; sub_401988+18j pop ebp pop edi pop esi pop ebx retn sub_401988 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_4019BC proc near ; CODE XREF: sub_4019BC+43p ; sub_401A10+12p ; DATA XREF: ... push ebx push esi push edi push ebp mov edi, ecx mov ebp, edx mov esi, eax mov eax, offset sub_4019BC cmp eax, ds:off_40A00C setz bl cmp edi, ebp jle short loc_401A0B loc_4019D8: ; CODE XREF: sub_4019BC+4Dj mov eax, [esi+ebp*8] inc ebp mov ds:dword_40B038, ebp test eax, eax jz short loc_4019E8 call eax loc_4019E8: ; CODE XREF: sub_4019BC+28j test bl, bl jz short loc_401A07 mov eax, offset sub_4019BC cmp eax, ds:off_40A00C jz short loc_401A07 mov ecx, edi mov edx, ebp mov eax, esi call ds:off_40A00C jmp short loc_401A0B ; --------------------------------------------------------------------------- loc_401A07: ; CODE XREF: sub_4019BC+2Ej ; sub_4019BC+3Bj cmp edi, ebp jg short loc_4019D8 loc_401A0B: ; CODE XREF: sub_4019BC+1Aj ; sub_4019BC+49j pop ebp pop edi pop esi pop ebx retn sub_4019BC endp ; =============== S U B R O U T I N E ======================================= sub_401A10 proc near ; CODE XREF: System::__linkproc__ StartLib(void)+99p mov eax, ds:dword_40B034 test eax, eax jz short locret_401A28 mov edx, [eax] xor ecx, ecx mov eax, [eax+4] xchg ecx, edx call ds:off_40A00C locret_401A28: ; CODE XREF: sub_401A10+7j retn sub_401A10 endp ; --------------------------------------------------------------------------- align 4 ; [000000A1 BYTES: COLLAPSED FUNCTION System::__linkproc__ StartLib(void). PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 10h ; [00000033 BYTES: COLLAPSED FUNCTION sub_401AD0. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- retn ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_401B04 proc near ; CODE XREF: System::__linkproc__ StartLib(void)+93j ; sub_401BF4-6j ... push ebx push esi push edi push ebp mov ebx, offset dword_40B02C mov esi, offset dword_40B018 mov edi, offset dword_40B01C cmp byte ptr [ebx+24h], 0 jnz short loc_401B33 cmp dword ptr [edi], 0 jz short loc_401B33 loc_401B22: ; CODE XREF: sub_401B04+2Dj mov edx, [edi] mov eax, edx xor edx, edx mov [edi], edx mov ebp, eax call ebp cmp dword ptr [edi], 0 jnz short loc_401B22 loc_401B33: ; CODE XREF: sub_401B04+17j ; sub_401B04+1Cj cmp ds:dword_40B020, 0 jz short loc_401B42 call ds:off_40A044 loc_401B42: ; CODE XREF: sub_401B04+36j ; sub_401B04+B3j cmp byte ptr [ebx+24h], 2 jnz short loc_401B52 cmp dword ptr [esi], 0 jnz short loc_401B52 xor eax, eax mov [ebx+0Ch], eax loc_401B52: ; CODE XREF: sub_401B04+42j ; sub_401B04+47j call ds:off_40A010 cmp byte ptr [ebx+24h], 1 jbe short loc_401B63 cmp dword ptr [esi], 0 jz short loc_401B81 loc_401B63: ; CODE XREF: sub_401B04+58j mov eax, [ebx+10h] test eax, eax jz short loc_401B81 call ds:off_40A02C mov eax, [ebx+10h] mov edx, [eax+10h] cmp edx, [eax+4] jz short loc_401B81 push edx ; hLibModule call FreeLibrary ; FreeLibrary loc_401B81: ; CODE XREF: sub_401B04+5Dj ; sub_401B04+64j ... call ds:off_40A014 cmp byte ptr [ebx+24h], 1 jnz short loc_401B90 call dword ptr [ebx+28h] loc_401B90: ; CODE XREF: sub_401B04+87j cmp byte ptr [ebx+24h], 0 jz short loc_401B9B call sub_401AD0 loc_401B9B: ; CODE XREF: sub_401B04+90j cmp dword ptr [ebx], 0 jnz short loc_401BA8 mov eax, [esi] push eax ; uExitCode call ExitProcess ; ExitProcess ; --------------------------------------------------------------------------- loc_401BA8: ; CODE XREF: sub_401B04+9Aj mov eax, [ebx] push esi mov esi, eax mov edi, ebx mov ecx, 0Bh rep movsd pop esi jmp short loc_401B42 sub_401B04 endp ; sp-analysis failed ; --------------------------------------------------------------------------- aPortionsCopyri db 'Portions Copyright (c) 1983,99 Borland',0 ; --------------------------------------------------------------------------- pop ebp pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- align 4 ; START OF FUNCTION CHUNK FOR sub_401BF4 loc_401BE8: ; CODE XREF: sub_401BF4+6j mov ds:dword_40B018, eax jmp sub_401B04 ; END OF FUNCTION CHUNK FOR sub_401BF4 ; --------------------------------------------------------------------------- retn ; =============== S U B R O U T I N E ======================================= sub_401BF4 proc near ; CODE XREF: System::__linkproc__ ReallocMem(void *&,int):loc_4011F0j ; sub_40181C+3j ... ; FUNCTION CHUNK AT 00401BE8 SIZE 0000000B BYTES pop ds:dword_40B020 jmp loc_401BE8 sub_401BF4 endp ; sp-analysis failed ; --------------------------------------------------------------------------- retn ; =============== S U B R O U T I N E ======================================= sub_401C00 proc near ; CODE XREF: System::__linkproc__ LStrFromPCharLen(System::AnsiString &,char *,int)+23p ; sub_401D14+16p ... mov edx, [eax] test edx, edx jz short locret_401C21 mov dword ptr [eax], 0 mov ecx, [edx-8] dec ecx jl short locret_401C21 dec dword ptr [edx-8] jnz short locret_401C21 push eax lea eax, [edx-8] call sub_401164 pop eax locret_401C21: ; CODE XREF: sub_401C00+4j ; sub_401C00+10j ... retn sub_401C00 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_401C24 proc near ; CODE XREF: sub_40231C+63p ; sub_402B8C+A2p ... push ebx push esi mov ebx, eax mov esi, edx loc_401C2A: ; CODE XREF: sub_401C24+29j mov edx, [ebx] test edx, edx jz short loc_401C49 mov dword ptr [ebx], 0 mov ecx, [edx-8] dec ecx jl short loc_401C49 dec dword ptr [edx-8] jnz short loc_401C49 lea eax, [edx-8] call sub_401164 loc_401C49: ; CODE XREF: sub_401C24+Aj ; sub_401C24+16j ... add ebx, 4 dec esi jnz short loc_401C2A pop esi pop ebx retn sub_401C24 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_401C54 proc near ; CODE XREF: System::__linkproc__ LStrCat(void)+8j ; System::__linkproc__ LStrCat3(void)+6j ... test edx, edx jz short loc_401C7B mov ecx, [edx-8] inc ecx jg short loc_401C78 push eax push edx mov eax, [edx-4] call sub_401CC0 mov edx, eax pop eax push edx mov ecx, [eax-4] call sub_401210 pop edx pop eax jmp short loc_401C7B ; --------------------------------------------------------------------------- loc_401C78: ; CODE XREF: sub_401C54+8j inc dword ptr [edx-8] loc_401C7B: ; CODE XREF: sub_401C54+2j ; sub_401C54+22j xchg edx, [eax] test edx, edx jz short locret_401C94 mov ecx, [edx-8] dec ecx jl short locret_401C94 dec dword ptr [edx-8] jnz short locret_401C94 lea eax, [edx-8] call sub_401164 locret_401C94: ; CODE XREF: sub_401C54+2Bj ; sub_401C54+31j ... retn sub_401C54 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_401C98 proc near ; CODE XREF: sub_403A58+24p ; sub_403EF8+2Bp ... test edx, edx jz short loc_401CA5 mov ecx, [edx-8] inc ecx jle short loc_401CA5 inc dword ptr [edx-8] loc_401CA5: ; CODE XREF: sub_401C98+2j ; sub_401C98+8j xchg edx, [eax] test edx, edx jz short locret_401CBE mov ecx, [edx-8] dec ecx jl short locret_401CBE dec dword ptr [edx-8] jnz short locret_401CBE lea eax, [edx-8] call sub_401164 locret_401CBE: ; CODE XREF: sub_401C98+11j ; sub_401C98+17j ... retn sub_401C98 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_401CC0 proc near ; CODE XREF: sub_401C54+Fp ; System::__linkproc__ LStrFromPCharLen(System::AnsiString &,char *,int)+Bp ... test eax, eax jle short loc_401CE0 push eax add eax, 9 call sub_40114C add eax, 8 pop edx mov [eax-4], edx mov dword ptr [eax-8], 1 mov byte ptr [eax+edx], 0 retn ; --------------------------------------------------------------------------- loc_401CE0: ; CODE XREF: sub_401CC0+2j xor eax, eax retn sub_401CC0 endp ; --------------------------------------------------------------------------- align 4 ; [0000002E BYTES: COLLAPSED FUNCTION System::__linkproc__ LStrFromPCharLen(System::AnsiString &,char *,int). PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_401D14 proc near ; CODE XREF: System::__linkproc__ LStrFromWStr(System::AnsiString &,System::WideString):loc_401DEBj MultiByteStr = byte ptr -810h push ebx push esi push edi push ebp add esp, 0FFFFF800h mov ebx, ecx mov ebp, edx mov edi, eax test ebx, ebx jg short loc_401D31 mov eax, edi call sub_401C00 jmp short loc_401D98 ; --------------------------------------------------------------------------- loc_401D31: ; CODE XREF: sub_401D14+12j cmp ebx, 400h jge short loc_401D65 push 0 ; lpUsedDefaultChar push 0 ; lpDefaultChar push 800h ; cbMultiByte lea eax, [esp+81Ch+MultiByteStr] push eax ; lpMultiByteStr push ebx ; cchWideChar push ebp ; lpWideCharStr push 0 ; dwFlags push 0 ; CodePage call WideCharToMultiByte ; WideCharToMultiByte mov esi, eax test esi, esi jle short loc_401D65 mov edx, esp mov eax, edi mov ecx, esi call @System@@LStrFromPCharLen$qqrr17System@AnsiStringpci ; System::__linkproc__ LStrFromPCharLen(System::AnsiString &,char *,int) jmp short loc_401D98 ; --------------------------------------------------------------------------- loc_401D65: ; CODE XREF: sub_401D14+23j ; sub_401D14+42j push 0 ; lpUsedDefaultChar push 0 ; lpDefaultChar push 0 ; cbMultiByte push 0 ; lpMultiByteStr push ebx ; cchWideChar push ebp ; lpWideCharStr push 0 ; dwFlags push 0 ; CodePage call WideCharToMultiByte ; WideCharToMultiByte mov esi, eax mov eax, edi mov ecx, esi xor edx, edx call @System@@LStrFromPCharLen$qqrr17System@AnsiStringpci ; System::__linkproc__ LStrFromPCharLen(System::AnsiString &,char *,int) push 0 ; lpUsedDefaultChar push 0 ; lpDefaultChar push esi ; cbMultiByte mov eax, [edi] push eax ; lpMultiByteStr push ebx ; cchWideChar push ebp ; lpWideCharStr push 0 ; dwFlags push 0 ; CodePage call WideCharToMultiByte ; WideCharToMultiByte loc_401D98: ; CODE XREF: sub_401D14+1Bj ; sub_401D14+4Fj add esp, 800h pop ebp pop edi pop esi pop ebx retn sub_401D14 endp ; --------------------------------------------------------------------------- align 4 ; [0000002C BYTES: COLLAPSED FUNCTION unknown_libname_8. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 4 ; [0000000A BYTES: COLLAPSED FUNCTION unknown_libname_9. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 10h ; [00000010 BYTES: COLLAPSED FUNCTION System::__linkproc__ LStrFromWStr(System::AnsiString &,System::WideString). PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_401DF4 proc near ; CODE XREF: sub_402B8C+5Cp ; sub_40327C+3p ... test eax, eax jz short locret_401DFB mov eax, [eax-4] locret_401DFB: ; CODE XREF: sub_401DF4+2j retn sub_401DF4 endp ; [00000044 BYTES: COLLAPSED FUNCTION System::__linkproc__ LStrCat(void). PRESS KEYPAD "+" TO EXPAND] ; [00000073 BYTES: COLLAPSED FUNCTION System::__linkproc__ LStrCat3(void). PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- retn ; =============== S U B R O U T I N E ======================================= sub_401EB4 proc near ; CODE XREF: sub_402B8C+7Ep ; sub_404650+72p ... push ebx push esi push edx push eax mov ebx, edx xor eax, eax loc_401EBC: ; CODE XREF: sub_401EB4+14j mov ecx, [esp+edx*4+10h] test ecx, ecx jz short loc_401EC7 add eax, [ecx-4] loc_401EC7: ; CODE XREF: sub_401EB4+Ej dec edx jnz short loc_401EBC call sub_401CC0 push eax mov esi, eax loc_401ED2: ; CODE XREF: sub_401EB4+33j mov eax, [esp+ebx*4+14h] mov edx, esi test eax, eax jz short loc_401EE6 mov ecx, [eax-4] add esi, ecx call sub_401210 loc_401EE6: ; CODE XREF: sub_401EB4+26j dec ebx jnz short loc_401ED2 pop edx pop eax test edx, edx jz short loc_401EF2 dec dword ptr [edx-8] loc_401EF2: ; CODE XREF: sub_401EB4+39j call sub_401C54 pop edx pop esi pop ebx pop eax lea esp, [esp+edx*4] jmp eax sub_401EB4 endp ; sp-analysis failed ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 4 ; [000000A2 BYTES: COLLAPSED FUNCTION System::__linkproc__ LStrCmp(void). PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_401FA8 proc near ; CODE XREF: sub_404404+1Ep ; sub_4050E4+Fp ... test eax, eax jz short locret_401FB5 mov edx, [eax-8] inc edx jle short locret_401FB5 inc dword ptr [eax-8] locret_401FB5: ; CODE XREF: sub_401FA8+2j ; sub_401FA8+8j retn sub_401FA8 endp ; --------------------------------------------------------------------------- align 4 ; [0000000C BYTES: COLLAPSED FUNCTION System::__linkproc__ LStrToPChar(System::AnsiString). PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_401FC4 proc near ; CODE XREF: sub_402038+9p ; sub_403AF8+76p ... mov edx, [eax] test edx, edx jz short loc_401FF5 mov ecx, [edx-8] dec ecx jz short loc_401FF5 push ebx mov ebx, eax mov eax, [edx-4] call sub_401CC0 mov edx, eax mov eax, [ebx] mov [ebx], edx mov ecx, [eax-8] dec ecx jl short loc_401FEA dec dword ptr [eax-8] loc_401FEA: ; CODE XREF: sub_401FC4+21j mov ecx, [eax-4] call sub_401210 mov edx, [ebx] pop ebx loc_401FF5: ; CODE XREF: sub_401FC4+4j ; sub_401FC4+Aj mov eax, edx retn sub_401FC4 endp ; [0000003F BYTES: COLLAPSED FUNCTION System::__linkproc__ LStrCopy(void). PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- retn ; =============== S U B R O U T I N E ======================================= sub_402038 proc near ; CODE XREF: sub_403A58+6Fp ; sub_403EF8+76p push ebx push esi push edi mov ebx, eax mov esi, edx mov edi, ecx call sub_401FC4 mov edx, [ebx] test edx, edx jz short loc_40207C mov ecx, [edx-4] dec esi jl short loc_40207C cmp esi, ecx jge short loc_40207C test edi, edi jle short loc_40207C sub ecx, esi cmp edi, ecx jle short loc_402062 mov edi, ecx loc_402062: ; CODE XREF: sub_402038+26j sub ecx, edi add edx, esi lea eax, [edx+edi] call sub_401210 mov edx, [ebx] mov eax, ebx mov edx, [edx-4] sub edx, edi call sub_4020C8 loc_40207C: ; CODE XREF: sub_402038+12j ; sub_402038+18j ... pop edi pop esi pop ebx retn sub_402038 endp ; [00000045 BYTES: COLLAPSED FUNCTION unknown_libname_10. PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_4020C8 proc near ; CODE XREF: System::__linkproc__ LStrCat(void)+21p ; System::__linkproc__ LStrCat(void):loc_401E34p ... push ebx push esi push edi mov ebx, eax mov esi, edx xor edi, edi test edx, edx jz short loc_40211D mov eax, [ebx] test eax, eax jz short loc_4020FE cmp dword ptr [eax-8], 1 jnz short loc_4020FE sub eax, 8 add edx, 9 push eax mov eax, esp call @System@@ReallocMem$qqrrpvi ; System::__linkproc__ ReallocMem(void *&,int) pop eax add eax, 8 mov [ebx], eax mov [eax-4], esi mov byte ptr [eax+esi], 0 jmp short loc_402126 ; --------------------------------------------------------------------------- loc_4020FE: ; CODE XREF: sub_4020C8+11j ; sub_4020C8+17j mov eax, edx call sub_401CC0 mov edi, eax mov eax, [ebx] test eax, eax jz short loc_40211D mov edx, edi mov ecx, [eax-4] cmp ecx, esi jl short loc_402118 mov ecx, esi loc_402118: ; CODE XREF: sub_4020C8+4Cj call sub_401210 loc_40211D: ; CODE XREF: sub_4020C8+Bj ; sub_4020C8+43j mov eax, ebx call sub_401C00 mov [ebx], edi loc_402126: ; CODE XREF: sub_4020C8+34j pop edi pop esi pop ebx retn sub_4020C8 endp ; --------------------------------------------------------------------------- align 4 ; [00000007 BYTES: COLLAPSED CHUNK OF FUNCTION System::__linkproc__ WStrFromPWCharLen(System::WideString &,wchar_t *,int). PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- retn ; [00000015 BYTES: COLLAPSED FUNCTION System::__linkproc__ WStrClr(void *). PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_40214C proc near ; CODE XREF: System::__linkproc__ WStrFromLStr(System::WideString &,System::AnsiString):loc_4021FDj WideCharStr = word ptr -810h push ebx push esi push edi push ebp add esp, 0FFFFF800h mov ebx, ecx mov ebp, edx mov edi, eax test ebx, ebx jg short loc_402169 mov eax, edi call @System@@WStrClr$qqrpv ; System::__linkproc__ WStrClr(void *) jmp short loc_4021C4 ; --------------------------------------------------------------------------- loc_402169: ; CODE XREF: sub_40214C+12j cmp ebx, 400h jge short loc_402199 push 400h ; cchWideChar lea eax, [esp+814h+WideCharStr] push eax ; lpWideCharStr push ebx ; cbMultiByte push ebp ; lpMultiByteStr push 0 ; dwFlags push 0 ; CodePage call MultiByteToWideChar ; MultiByteToWideChar mov esi, eax test esi, esi jle short loc_402199 mov edx, esp mov eax, edi mov ecx, esi call @System@@WStrFromPWCharLen$qqrr17System@WideStringpbi ; System::__linkproc__ WStrFromPWCharLen(System::WideString &,wchar_t *,int) jmp short loc_4021C4 ; --------------------------------------------------------------------------- loc_402199: ; CODE XREF: sub_40214C+23j ; sub_40214C+3Ej push 0 ; cchWideChar push 0 ; lpWideCharStr push ebx ; cbMultiByte push ebp ; lpMultiByteStr push 0 ; dwFlags push 0 ; CodePage call MultiByteToWideChar ; MultiByteToWideChar mov esi, eax mov eax, edi mov ecx, esi xor edx, edx call @System@@WStrFromPWCharLen$qqrr17System@WideStringpbi ; System::__linkproc__ WStrFromPWCharLen(System::WideString &,wchar_t *,int) push esi ; cchWideChar mov eax, [edi] push eax ; lpWideCharStr push ebx ; cbMultiByte push ebp ; lpMultiByteStr push 0 ; dwFlags push 0 ; CodePage call MultiByteToWideChar ; MultiByteToWideChar loc_4021C4: ; CODE XREF: sub_40214C+1Bj ; sub_40214C+4Bj add esp, 800h pop ebp pop edi pop esi pop ebx retn sub_40214C endp ; --------------------------------------------------------------------------- align 10h ; [00000023 BYTES: COLLAPSED FUNCTION System::__linkproc__ WStrFromPWCharLen(System::WideString &,wchar_t *,int). PRESS KEYPAD "+" TO EXPAND] align 4 ; [0000000E BYTES: COLLAPSED FUNCTION System::__linkproc__ WStrFromLStr(System::WideString &,System::AnsiString). PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 4 ; [0000001F BYTES: COLLAPSED FUNCTION System::__linkproc__ WStrAddRef(System::WideString &). PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_402224 proc near ; CODE XREF: sub_402250+85p xor ecx, ecx push ebx mov cl, [edx+1] push esi push edi mov ebx, eax lea esi, [edx+ecx+0Ah] mov edi, [edx+ecx+6] loc_402236: ; CODE XREF: sub_402224+24j mov edx, [esi] mov eax, [esi+4] add eax, ebx mov edx, [edx] call unknown_libname_11 ; BDS 2005-2006 and Delphi6-7 Visual Component Library add esi, 8 dec edi jg short loc_402236 pop edi pop esi pop ebx retn sub_402224 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_402250 proc near ; CODE XREF: sub_402250+6Fp ; unknown_libname_11+5j ... push ebx push esi push edi mov ebx, eax mov esi, edx mov edi, ecx xor edx, edx mov al, [esi] mov dl, [esi+1] xor ecx, ecx cmp al, 0Ah jz short loc_40228F cmp al, 0Bh jz short loc_40228F cmp al, 0Ch jz short loc_402299 cmp al, 0Dh jz short loc_4022AC cmp al, 0Eh jz short loc_4022CA cmp al, 0Fh jz short loc_40228F cmp al, 11h jz short loc_40228F mov al, 2 pop edi pop esi pop ebx jmp loc_4011CC ; --------------------------------------------------------------------------- loc_40228F: ; CODE XREF: sub_402250+15j ; sub_402250+1Aj ... mov [ebx], ecx add ebx, 4 dec edi jg short loc_40228F jmp short loc_4022DE ; --------------------------------------------------------------------------- loc_402299: ; CODE XREF: sub_402250+1Fj ; sub_402250+58j mov [ebx], ecx mov [ebx+4], ecx mov [ebx+8], ecx mov [ebx+0Ch], ecx add ebx, 10h dec edi jg short loc_402299 jmp short loc_4022DE ; --------------------------------------------------------------------------- loc_4022AC: ; CODE XREF: sub_402250+24j push ebp mov ebp, edx loc_4022AF: ; CODE XREF: sub_402250+75j mov edx, [esi+ebp+0Ah] mov eax, ebx add ebx, [esi+ebp+2] mov ecx, [esi+ebp+6] mov edx, [edx] call sub_402250 dec edi jg short loc_4022AF pop ebp jmp short loc_4022DE ; --------------------------------------------------------------------------- loc_4022CA: ; CODE XREF: sub_402250+29j push ebp mov ebp, edx loc_4022CD: ; CODE XREF: sub_402250+8Bj mov eax, ebx add ebx, [esi+ebp+2] mov edx, esi call sub_402224 dec edi jg short loc_4022CD pop ebp loc_4022DE: ; CODE XREF: sub_402250+47j ; sub_402250+5Aj ... pop edi pop esi pop ebx retn sub_402250 endp ; --------------------------------------------------------------------------- align 4 ; [0000000A BYTES: COLLAPSED FUNCTION unknown_libname_11. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4022F0 proc near ; CODE XREF: sub_40139C+12p ; sub_40231C+BCp xor ecx, ecx push ebx mov cl, [edx+1] push esi push edi mov ebx, eax lea esi, [edx+ecx+0Ah] mov edi, [edx+ecx+6] loc_402302: ; CODE XREF: sub_4022F0+24j mov edx, [esi] mov eax, [esi+4] add eax, ebx mov edx, [edx] call unknown_libname_12 ; BDS 2005-2006 and Delphi6-7 Visual Component Library add esi, 8 dec edi jg short loc_402302 mov eax, ebx pop edi pop esi pop ebx retn sub_4022F0 endp ; =============== S U B R O U T I N E ======================================= sub_40231C proc near ; CODE XREF: sub_40231C+A6p ; unknown_libname_12+5j ... cmp ecx, 0 jz locret_402405 push eax push ebx push esi push edi mov ebx, eax mov esi, edx mov edi, ecx xor edx, edx mov al, [esi] mov dl, [esi+1] cmp al, 0Ah jz short loc_40236C cmp al, 0Bh jz short loc_402386 cmp al, 0Ch jz short loc_40239F cmp al, 0Dh jz short loc_4023AF cmp al, 0Eh jz short loc_4023CD cmp al, 0Fh jz loc_4023E3 cmp al, 11h jz loc_4023F2 pop edi pop esi pop ebx pop eax mov al, 2 jmp loc_4011CC ; --------------------------------------------------------------------------- loc_40236C: ; CODE XREF: sub_40231C+1Dj cmp ecx, 1 mov eax, ebx jg short loc_40237D call sub_401C00 jmp loc_402401 ; --------------------------------------------------------------------------- loc_40237D: ; CODE XREF: sub_40231C+55j mov edx, ecx call sub_401C24 jmp short loc_402401 ; --------------------------------------------------------------------------- loc_402386: ; CODE XREF: sub_40231C+22j cmp ecx, 1 mov eax, ebx jg short loc_402395 call ds:off_40A004 jmp short loc_402401 ; --------------------------------------------------------------------------- loc_402395: ; CODE XREF: sub_40231C+6Fj mov edx, ecx call ds:off_40A008 jmp short loc_402401 ; --------------------------------------------------------------------------- loc_40239F: ; CODE XREF: sub_40231C+27j ; sub_40231C+8Fj mov eax, ebx add ebx, 10h call ds:off_40A000 dec edi jg short loc_40239F jmp short loc_402401 ; --------------------------------------------------------------------------- loc_4023AF: ; CODE XREF: sub_40231C+2Cj push ebp mov ebp, edx loc_4023B2: ; CODE XREF: sub_40231C+ACj mov edx, [esi+ebp+0Ah] mov eax, ebx add ebx, [esi+ebp+2] mov ecx, [esi+ebp+6] mov edx, [edx] call sub_40231C dec edi jg short loc_4023B2 pop ebp jmp short loc_402401 ; --------------------------------------------------------------------------- loc_4023CD: ; CODE XREF: sub_40231C+31j push ebp mov ebp, edx loc_4023D0: ; CODE XREF: sub_40231C+C2j mov eax, ebx add ebx, [esi+ebp+2] mov edx, esi call sub_4022F0 dec edi jg short loc_4023D0 pop ebp jmp short loc_402401 ; --------------------------------------------------------------------------- loc_4023E3: ; CODE XREF: sub_40231C+36j ; sub_40231C+D2j mov eax, ebx add ebx, 4 call @System@@IntfClear$qqrr45System@_DelphiInterface$t17System@IInterface_ ; System::__linkproc__ IntfClear(System::DelphiInterface<System::IInterface> &) dec edi jg short loc_4023E3 jmp short loc_402401 ; --------------------------------------------------------------------------- loc_4023F2: ; CODE XREF: sub_40231C+3Fj ; sub_40231C+E3j mov eax, ebx mov edx, esi add ebx, 4 call sub_402418 dec edi jg short loc_4023F2 loc_402401: ; CODE XREF: sub_40231C+5Cj ; sub_40231C+68j ... pop edi pop esi pop ebx pop eax locret_402405: ; CODE XREF: sub_40231C+3j retn sub_40231C endp ; --------------------------------------------------------------------------- align 4 ; [0000000A BYTES: COLLAPSED FUNCTION unknown_libname_12. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 4 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_402418 proc near ; CODE XREF: sub_40231C+DDp mov ecx, [eax] test ecx, ecx jz short locret_402450 mov dword ptr [eax], 0 dec dword ptr [ecx-8] jnz short locret_402450 push eax mov eax, ecx xor ecx, ecx mov cl, [edx+1] mov edx, [edx+ecx+6] test edx, edx jz short loc_402447 mov ecx, [eax-4] test ecx, ecx jz short loc_402447 mov edx, [edx] call sub_40231C loc_402447: ; CODE XREF: sub_402418+1Fj ; sub_402418+26j sub eax, 8 call sub_401164 pop eax locret_402450: ; CODE XREF: sub_402418+4j ; sub_402418+Fj retn sub_402418 endp ; --------------------------------------------------------------------------- align 4 ; [0000000E BYTES: COLLAPSED FUNCTION System::RegisterModule(System::TLibModule *). PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_402464 proc near ; CODE XREF: sub_401B04+66p ; DATA XREF: DATA:off_40A02Co push ebx push esi mov esi, eax mov ebx, ds:dword_40A028 test ebx, ebx jz short loc_40247E loc_402472: ; CODE XREF: sub_402464+18j mov eax, [esi+4] call dword ptr [ebx+4] mov ebx, [ebx] test ebx, ebx jnz short loc_402472 loc_40247E: ; CODE XREF: sub_402464+Cj pop esi pop ebx retn sub_402464 endp ; --------------------------------------------------------------------------- align 4 ; [00000015 BYTES: COLLAPSED FUNCTION System::__linkproc__ IntfClear(System::DelphiInterface<System::IInterface> &). PRESS KEYPAD "+" TO EXPAND] align 4 ; [00000006 BYTES: COLLAPSED FUNCTION GetCurrentThreadId. PRESS KEYPAD "+" TO EXPAND] align 4 push edx push eax mov eax, [esp+10h] mul dword ptr [esp] mov ecx, eax mov eax, [esp+4] mul dword ptr [esp+0Ch] add ecx, eax mov eax, [esp] mul dword ptr [esp+0Ch] add edx, ecx pop ecx pop ecx retn 8 ; --------------------------------------------------------------------------- push edx push eax mov eax, [esp+10h] mul dword ptr [esp] mov ecx, eax mov eax, [esp+4] mul dword ptr [esp+0Ch] add ecx, eax mov eax, [esp] mul dword ptr [esp+0Ch] add edx, ecx pop ecx pop ecx retn 8 ; =============== S U B R O U T I N E ======================================= sub_4024EA proc near ; CODE XREF: CODE:0040258Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebp push ebx push esi push edi xor edi, edi mov ebx, [esp+10h+arg_0] mov ecx, [esp+10h+arg_4] or ecx, ecx jnz short loc_402504 or edx, edx jz short loc_40255C or ebx, ebx jz short loc_40255C loc_402504: ; CODE XREF: sub_4024EA+10j or edx, edx jns short loc_402512 neg edx neg eax sbb edx, 0 or edi, 1 loc_402512: ; CODE XREF: sub_4024EA+1Cj or ecx, ecx jns short loc_402520 neg ecx neg ebx sbb ecx, 0 xor edi, 1 loc_402520: ; CODE XREF: sub_4024EA+2Aj mov ebp, ecx mov ecx, 40h push edi xor edi, edi xor esi, esi loc_40252C: ; CODE XREF: sub_4024EA:loc_402543j shl eax, 1 rcl edx, 1 rcl esi, 1 rcl edi, 1 cmp edi, ebp jb short loc_402543 ja short loc_40253E cmp esi, ebx jb short loc_402543 loc_40253E: ; CODE XREF: sub_4024EA+4Ej sub esi, ebx sbb edi, ebp inc eax loc_402543: ; CODE XREF: sub_4024EA+4Cj ; sub_4024EA+52j loop loc_40252C pop ebx test ebx, 1 jz short loc_402555 neg edx neg eax sbb edx, 0 loc_402555: ; CODE XREF: sub_4024EA+62j ; sub_4024EA+76j pop edi pop esi pop ebx pop ebp retn 8 ; --------------------------------------------------------------------------- loc_40255C: ; CODE XREF: sub_4024EA+14j ; sub_4024EA+18j div ebx xor edx, edx jmp short loc_402555 sub_4024EA endp ; --------------------------------------------------------------------------- push esi mov esi, [esp+0Ch] and esi, [esp+8] cmp esi, 0FFFFFFFFh jnz short loc_402581 mov esi, eax or esi, edx cmp esi, 80000000h jnz short loc_402581 mov eax, esi pop esi dec eax retn ; --------------------------------------------------------------------------- loc_402581: ; CODE XREF: CODE:0040256Ej ; CODE:0040257Aj pop esi push dword ptr [esp+8] push dword ptr [esp+8] call sub_4024EA and eax, eax retn 8 ; --------------------------------------------------------------------------- push ebp push ebx push esi push edi mov ebx, [esp+14h] mov ecx, [esp+18h] or ecx, ecx jnz short loc_4025AC or edx, edx jz short loc_4025D7 or ebx, ebx jz short loc_4025D7 loc_4025AC: ; CODE XREF: CODE:004025A2j mov ebp, ecx mov ecx, 40h xor edi, edi xor esi, esi loc_4025B7: ; CODE XREF: CODE:loc_4025CEj shl eax, 1 rcl edx, 1 rcl esi, 1 rcl edi, 1 cmp edi, ebp jb short loc_4025CE ja short loc_4025C9 cmp esi, ebx jb short loc_4025CE loc_4025C9: ; CODE XREF: CODE:004025C3j sub esi, ebx sbb edi, ebp inc eax loc_4025CE: ; CODE XREF: CODE:004025C1j ; CODE:004025C7j loop loc_4025B7 loc_4025D0: ; CODE XREF: CODE:004025DBj pop edi pop esi pop ebx pop ebp retn 8 ; --------------------------------------------------------------------------- loc_4025D7: ; CODE XREF: CODE:004025A6j ; CODE:004025AAj div ebx xor edx, edx jmp short loc_4025D0 ; =============== S U B R O U T I N E ======================================= sub_4025DD proc near ; CODE XREF: CODE:0040267Fp ; sub_402EC0+16p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebp push ebx push esi push edi xor edi, edi mov ebx, [esp+10h+arg_0] mov ecx, [esp+10h+arg_4] or ecx, ecx jnz short loc_4025F7 or edx, edx jz short loc_402650 or ebx, ebx jz short loc_402650 loc_4025F7: ; CODE XREF: sub_4025DD+10j or edx, edx jns short loc_402605 neg edx neg eax sbb edx, 0 or edi, 1 loc_402605: ; CODE XREF: sub_4025DD+1Cj or ecx, ecx jns short loc_402610 neg ecx neg ebx sbb ecx, 0 loc_402610: ; CODE XREF: sub_4025DD+2Aj mov ebp, ecx mov ecx, 40h push edi xor edi, edi xor esi, esi loc_40261C: ; CODE XREF: sub_4025DD:loc_402633j shl eax, 1 rcl edx, 1 rcl esi, 1 rcl edi, 1 cmp edi, ebp jb short loc_402633 ja short loc_40262E cmp esi, ebx jb short loc_402633 loc_40262E: ; CODE XREF: sub_4025DD+4Bj sub esi, ebx sbb edi, ebp inc eax loc_402633: ; CODE XREF: sub_4025DD+49j ; sub_4025DD+4Fj loop loc_40261C mov eax, esi mov edx, edi pop ebx test ebx, 1 jz short loc_402649 neg edx neg eax sbb edx, 0 loc_402649: ; CODE XREF: sub_4025DD+63j ; sub_4025DD+78j pop edi pop esi pop ebx pop ebp retn 8 ; --------------------------------------------------------------------------- loc_402650: ; CODE XREF: sub_4025DD+14j ; sub_4025DD+18j div ebx xchg eax, edx xor edx, edx jmp short loc_402649 sub_4025DD endp ; --------------------------------------------------------------------------- push esi mov esi, [esp+0Ch] and esi, [esp+8] cmp esi, 0FFFFFFFFh jnz short loc_402676 mov esi, eax or esi, edx cmp esi, 80000000h jnz short loc_402676 mov eax, esi pop esi dec eax retn ; --------------------------------------------------------------------------- loc_402676: ; CODE XREF: CODE:00402663j ; CODE:0040266Fj pop esi push dword ptr [esp+8] push dword ptr [esp+8] call sub_4025DD and eax, eax retn 8 ; --------------------------------------------------------------------------- push ebp push ebx push esi push edi mov ebx, [esp+14h] mov ecx, [esp+18h] or ecx, ecx jnz short loc_4026A1 or edx, edx jz short loc_4026D0 or ebx, ebx jz short loc_4026D0 loc_4026A1: ; CODE XREF: CODE:00402697j mov ebp, ecx mov ecx, 40h xor edi, edi xor esi, esi loc_4026AC: ; CODE XREF: CODE:loc_4026C3j shl eax, 1 rcl edx, 1 rcl esi, 1 rcl edi, 1 cmp edi, ebp jb short loc_4026C3 ja short loc_4026BE cmp esi, ebx jb short loc_4026C3 loc_4026BE: ; CODE XREF: CODE:004026B8j sub esi, ebx sbb edi, ebp inc eax loc_4026C3: ; CODE XREF: CODE:004026B6j ; CODE:004026BCj loop loc_4026AC mov eax, esi mov edx, edi loc_4026C9: ; CODE XREF: CODE:004026D5j pop edi pop esi pop ebx pop ebp retn 8 ; --------------------------------------------------------------------------- loc_4026D0: ; CODE XREF: CODE:0040269Bj ; CODE:0040269Fj div ebx xchg eax, edx xor edx, edx jmp short loc_4026C9 ; --------------------------------------------------------------------------- cmp cl, 20h jl short loc_4026ED cmp cl, 40h jl short loc_4026E6 xor edx, edx xor eax, eax retn ; --------------------------------------------------------------------------- loc_4026E6: ; CODE XREF: CODE:004026DFj mov edx, eax shl edx, cl xor eax, eax retn ; --------------------------------------------------------------------------- loc_4026ED: ; CODE XREF: CODE:004026DAj shld edx, eax, cl shl eax, cl retn ; --------------------------------------------------------------------------- cmp cl, 20h jl short loc_402709 cmp cl, 40h jl short loc_402703 sar edx, 1Fh mov eax, edx retn ; --------------------------------------------------------------------------- loc_402703: ; CODE XREF: CODE:004026FBj mov eax, edx cdq sar eax, cl retn ; --------------------------------------------------------------------------- loc_402709: ; CODE XREF: CODE:004026F6j shrd eax, edx, cl sar edx, cl retn ; --------------------------------------------------------------------------- cmp cl, 20h jl short loc_402725 cmp cl, 40h jl short loc_40271E xor edx, edx xor eax, eax retn ; --------------------------------------------------------------------------- loc_40271E: ; CODE XREF: CODE:00402717j mov eax, edx xor edx, edx shr eax, cl retn ; --------------------------------------------------------------------------- loc_402725: ; CODE XREF: CODE:00402712j shrd eax, edx, cl shr edx, cl retn ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40272C proc near ; DATA XREF: CODE:00409E80o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_402768 push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B028 jnz short loc_40275A cmp ds:dword_40B058, 0 jz short loc_402754 call ds:dword_40B058 loc_402754: ; CODE XREF: sub_40272C+20j call ds:off_40A030 loc_40275A: ; CODE XREF: sub_40272C+17j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_40276F loc_402767: ; CODE XREF: sub_40272C+41j retn ; --------------------------------------------------------------------------- loc_402768: ; DATA XREF: sub_40272C+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_402767 ; --------------------------------------------------------------------------- loc_40276F: ; CODE XREF: sub_40272C:loc_402767j ; DATA XREF: sub_40272C+36o pop ebp retn sub_40272C endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_402774 proc near ; DATA XREF: CODE:00409E7Co sub ds:dword_40B028, 1 jnb short locret_402787 call GetCurrentThreadId ; GetCurrentThreadId mov ds:dword_40B010, eax locret_402787: ; CODE XREF: sub_402774+7j retn sub_402774 endp ; =============== S U B R O U T I N E ======================================= sub_402788 proc near ; CODE XREF: sub_4027D8:loc_4027F9p ; sub_40284C:loc_402867p ; DATA XREF: ... push ebx mov eax, 8 test eax, eax jz short loc_4027D5 cmp ds:dwTlsIndex, 0 jge short loc_4027A5 mov eax, 0E2h call sub_401BF4 loc_4027A5: ; CODE XREF: sub_402788+11j push 8 ; uBytes push 40h ; uFlags call LocalAlloc ; LocalAlloc mov ebx, eax test ebx, ebx jnz short loc_4027C3 mov eax, 0E2h call sub_401BF4 jmp short loc_4027CF ; --------------------------------------------------------------------------- loc_4027C3: ; CODE XREF: sub_402788+2Dj push ebx ; lpTlsValue mov eax, ds:dwTlsIndex push eax ; dwTlsIndex call TlsSetValue ; TlsSetValue loc_4027CF: ; CODE XREF: sub_402788+39j mov ds:dword_40B074, ebx loc_4027D5: ; CODE XREF: sub_402788+8j pop ebx retn sub_402788 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_4027D8 proc near ; DATA XREF: DATA:0040A064o mov eax, 8 test eax, eax jz short locret_4027FE call TlsAlloc ; TlsAlloc mov ds:dwTlsIndex, eax test eax, eax jge short loc_4027F9 mov eax, 0E2h call sub_401BF4 loc_4027F9: ; CODE XREF: sub_4027D8+15j call sub_402788 locret_4027FE: ; CODE XREF: sub_4027D8+7j retn sub_4027D8 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_402800 proc near ; CODE XREF: sub_402828+9p ; DATA XREF: DATA:0040A06Co mov eax, 8 test eax, eax jz short locret_402827 cmp ds:dwTlsIndex, 0 jl short locret_402827 mov eax, ds:dwTlsIndex push eax ; dwTlsIndex call TlsGetValue ; TlsGetValue test eax, eax jz short locret_402827 push eax ; hMem call LocalFree ; LocalFree locret_402827: ; CODE XREF: sub_402800+7j ; sub_402800+10j ... retn sub_402800 endp ; =============== S U B R O U T I N E ======================================= sub_402828 proc near ; DATA XREF: DATA:off_40A060o mov eax, 8 test eax, eax jz short locret_40284A call sub_402800 cmp ds:dwTlsIndex, 0 jl short locret_40284A mov eax, ds:dwTlsIndex push eax ; dwTlsIndex call TlsFree ; TlsFree locret_40284A: ; CODE XREF: sub_402828+7j ; sub_402828+15j retn sub_402828 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_40284C proc near ; CODE XREF: System::__linkproc__ ReallocMem(void *&,int)+69p ; sub_40161C+DBp ... mov cl, ds:byte_40B05C mov eax, ds:dwTlsIndex test cl, cl jnz short loc_402884 mov edx, large fs:2Ch mov eax, [edx+eax*4] retn ; --------------------------------------------------------------------------- loc_402867: ; CODE XREF: sub_40284C+40j call sub_402788 mov eax, ds:dwTlsIndex push eax ; dwTlsIndex call TlsGetValue ; TlsGetValue test eax, eax jz short loc_40287D retn ; --------------------------------------------------------------------------- loc_40287D: ; CODE XREF: sub_40284C+2Ej mov eax, ds:dword_40B074 retn ; --------------------------------------------------------------------------- loc_402884: ; CODE XREF: sub_40284C+Ej push eax ; dwTlsIndex call TlsGetValue ; TlsGetValue test eax, eax jz short loc_402867 retn sub_40284C endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_402890 proc near ; CODE XREF: Sysinit::__linkproc__ InitLib(void)+2Ep mov eax, ds:dword_40A04C mov ds:dword_40A058, eax mov eax, offset dword_40A048 call @System@RegisterModule$qqrp17System@TLibModule ; System::RegisterModule(System::TLibModule *) retn sub_402890 endp ; --------------------------------------------------------------------------- align 4 ; [00000046 BYTES: COLLAPSED FUNCTION Sysinit::__linkproc__ InitLib(void). PRESS KEYPAD "+" TO EXPAND] align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4028F0 proc near ; DATA XREF: CODE:00409E78o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_402915 push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B070 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_40291C loc_402914: ; CODE XREF: sub_4028F0+2Aj retn ; --------------------------------------------------------------------------- loc_402915: ; DATA XREF: sub_4028F0+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_402914 ; --------------------------------------------------------------------------- loc_40291C: ; CODE XREF: sub_4028F0:loc_402914j ; DATA XREF: sub_4028F0+1Fo pop ebp retn sub_4028F0 endp ; --------------------------------------------------------------------------- align 10h loc_402920: ; DATA XREF: CODE:off_409E74o sub ds:dword_40B070, 1 retn ; [00000006 BYTES: COLLAPSED FUNCTION FreeLibrary_0. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION GetProcAddress. PRESS KEYPAD "+" TO EXPAND] align 4 ; [00000012 BYTES: COLLAPSED FUNCTION Windows::MakeWord(uchar,uchar). PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_40294C proc near ; CODE XREF: sub_404650+39p shr eax, 10h retn sub_40294C endp ; [00000008 BYTES: COLLAPSED FUNCTION Windows::ZeroMemory(void *,uint). PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402958 proc near ; DATA XREF: CODE:00409E88o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_40297D push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B078 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_402984 loc_40297C: ; CODE XREF: sub_402958+2Aj retn ; --------------------------------------------------------------------------- loc_40297D: ; DATA XREF: sub_402958+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_40297C ; --------------------------------------------------------------------------- loc_402984: ; CODE XREF: sub_402958:loc_40297Cj ; DATA XREF: sub_402958+1Fo pop ebp retn sub_402958 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_402988 proc near ; DATA XREF: CODE:00409E84o sub ds:dword_40B078, 1 retn sub_402988 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402990 proc near ; DATA XREF: CODE:00409E90o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_4029B5 push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B07C xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_4029BC loc_4029B4: ; CODE XREF: sub_402990+2Aj retn ; --------------------------------------------------------------------------- loc_4029B5: ; DATA XREF: sub_402990+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4029B4 ; --------------------------------------------------------------------------- loc_4029BC: ; CODE XREF: sub_402990:loc_4029B4j ; DATA XREF: sub_402990+1Fo pop ebp retn sub_402990 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4029C0 proc near ; DATA XREF: CODE:00409E8Co sub ds:dword_40B07C, 1 retn sub_4029C0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4029C8 proc near ; DATA XREF: CODE:00409E98o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_4029ED push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B080 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_4029F4 loc_4029EC: ; CODE XREF: sub_4029C8+2Aj retn ; --------------------------------------------------------------------------- loc_4029ED: ; DATA XREF: sub_4029C8+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4029EC ; --------------------------------------------------------------------------- loc_4029F4: ; CODE XREF: sub_4029C8:loc_4029ECj ; DATA XREF: sub_4029C8+1Fo pop ebp retn sub_4029C8 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_4029F8 proc near ; DATA XREF: CODE:00409E94o sub ds:dword_40B080, 1 retn sub_4029F8 endp ; --------------------------------------------------------------------------- off_402A00 dd offset off_402A0C ; DATA XREF: sub_402B0C+4r dd 28h, 0 off_402A0C dd offset sub_402A58 ; DATA XREF: CODE:off_402A00o dd offset @System@@Dispose$qqrpvt1 ; System::__linkproc__ Dispose(void *,void *) off_402A14 dd offset off_402A20 ; DATA XREF: sub_403094+4r dd 2Ah, 0 off_402A20 dd offset sub_4030B0 ; DATA XREF: CODE:off_402A14o dd offset @System@@Dispose$qqrpvt1_0 ; System::__linkproc__ Dispose(void *,void *) ; [00000006 BYTES: COLLAPSED FUNCTION GetFileAttributesA. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION GetModuleFileNameA. PRESS KEYPAD "+" TO EXPAND] align 4 ; [00000006 BYTES: COLLAPSED FUNCTION LoadLibraryA. PRESS KEYPAD "+" TO EXPAND] align 10h ; =============== S U B R O U T I N E ======================================= sub_402A40 proc near ; CODE XREF: sub_403258p sub_40327C+Bp ... test eax, eax jnz short locret_402A49 mov eax, offset dword_40A0A4 locret_402A49: ; CODE XREF: sub_402A40+2j retn sub_402A40 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_402A4C proc near ; CODE XREF: sub_403264+1p ; sub_403474:loc_40347Fp test edx, edx jnz short locret_402A55 mov edx, offset dword_40A0A4 locret_402A55: ; CODE XREF: sub_402A4C+2j retn sub_402A4C endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402A58 proc near ; DATA XREF: CODE:off_402A0Co var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], eax pop ecx pop ebp retn sub_402A58 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402A64 proc near ; CODE XREF: sub_403108+1p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF0h push ebx mov [ebp+var_C], eax mov eax, [ebp+var_C] cmp word ptr [eax+0Ah], 0 jz short loc_402ADC mov ebx, [ebp+var_C] mov edx, [ebp+var_C] mov eax, [ebx+0Ch] call dword ptr [ebx+8] mov eax, [ebp+var_C] xor edx, edx mov [eax+8], edx mov [eax+0Ch], edx jmp short loc_402ADC ; --------------------------------------------------------------------------- loc_402A91: ; CODE XREF: sub_402A64+8Bj mov eax, [ebp+var_C] mov eax, [eax+10h] mov eax, [eax+1Ch] sub eax, 2 mov [ebp+var_10], eax mov eax, [ebp+var_C] mov eax, [eax+10h] mov edx, [ebp+var_10] call sub_402B50 mov [ebp+var_8], eax mov edx, [ebp+var_10] inc edx mov eax, [ebp+var_C] mov eax, [eax+10h] call sub_402B50 mov [ebp+var_4], eax mov eax, [ebp+var_C] mov eax, [eax+10h] mov ecx, 2 mov edx, [ebp+var_10] call sub_40318C mov eax, [ebp+var_4] call [ebp+var_8] loc_402ADC: ; CODE XREF: sub_402A64+12j ; sub_402A64+2Bj mov eax, [ebp+var_C] cmp dword ptr [eax+10h], 0 jz short loc_402AF1 mov eax, [ebp+var_C] mov eax, [eax+10h] cmp dword ptr [eax+1Ch], 0 jg short loc_402A91 loc_402AF1: ; CODE XREF: sub_402A64+7Fj mov eax, [ebp+var_C] mov eax, [eax+10h] call sub_4030F8 mov eax, [ebp+var_C] xor edx, edx mov [eax+10h], edx pop ebx mov esp, ebp pop ebp retn sub_402A64 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402B0C proc near ; CODE XREF: sub_403434+Bp ; sub_403474+79p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov edx, off_402A00 xor eax, eax call sub_4030E8 mov [ebp+var_4], eax mov eax, [ebp+var_4] mov dword ptr [eax+24h], 4 mov eax, [ebp+var_4] pop ecx pop ebp retn sub_402B0C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402B30 proc near ; CODE XREF: sub_40339C+Dp var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF8h mov [ebp+var_8], edx mov [ebp+var_4], eax mov eax, [ebp+var_4] mov ecx, 1 mov edx, [ebp+var_8] call sub_40318C pop ecx pop ecx pop ebp retn sub_402B30 endp ; =============== S U B R O U T I N E ======================================= sub_402B50 proc near ; CODE XREF: sub_402A64+45p ; sub_402A64+57p ... test edx, edx jl short loc_402B60 cmp edx, [eax+1Ch] jge short loc_402B60 mov eax, [eax+18h] mov eax, [eax+edx*4] retn ; --------------------------------------------------------------------------- loc_402B60: ; CODE XREF: sub_402B50+2j ; sub_402B50+7j xor eax, eax retn sub_402B50 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_402B64 proc near ; CODE XREF: sub_4032DC+2Fp push edi xchg eax, edi xchg eax, edx repne scasb xchg eax, edi pop edi retn sub_402B64 endp ; [0000001F BYTES: COLLAPSED FUNCTION Sysutils::CompareMem(void *,void *,int). PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402B8C proc near ; CODE XREF: sub_409718+4Dp r+249p var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_D = byte ptr -0Dh var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFE4h push ebx xor ebx, ebx mov [ebp+var_18], ebx mov [ebp+var_1C], ebx mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_402C34 push dword ptr fs:[eax] mov fs:[eax], esp mov edx, [ebp+var_4] mov edx, [edx] mov eax, [ebp+var_8] call unknown_libname_10 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov [ebp+var_14], eax cmp [ebp+var_14], 0 jle short loc_402C15 lea eax, [ebp+var_18] push eax mov ecx, [ebp+var_14] dec ecx mov eax, [ebp+var_4] mov eax, [eax] mov edx, 1 call @System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void) push [ebp+var_18] push [ebp+var_C] mov eax, [ebp+var_8] call sub_401DF4 mov edx, eax add edx, [ebp+var_14] lea ecx, [ebp+var_1C] mov eax, [ebp+var_4] mov eax, [eax] call sub_4032B4 push [ebp+var_1C] mov eax, [ebp+var_4] mov edx, 3 call sub_401EB4 mov [ebp+var_D], 1 jmp short loc_402C19 ; --------------------------------------------------------------------------- loc_402C15: ; CODE XREF: sub_402B8C+3Aj mov [ebp+var_D], 0 loc_402C19: ; CODE XREF: sub_402B8C+87j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_402C3B loc_402C26: ; CODE XREF: sub_402B8C+ADj lea eax, [ebp+var_1C] mov edx, 2 call sub_401C24 retn ; --------------------------------------------------------------------------- loc_402C34: ; DATA XREF: sub_402B8C+1Bo jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_402C26 ; --------------------------------------------------------------------------- loc_402C3B: ; CODE XREF: sub_402B8C+A7j ; DATA XREF: sub_402B8C+95o mov al, [ebp+var_D] pop ebx mov esp, ebp pop ebp retn sub_402B8C endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_402C44 proc near ; CODE XREF: sub_4033E0+18p ; sub_4033E0+38p xchg eax, edi xchg eax, edx or ecx, 0FFFFFFFFh xor eax, eax cmp eax, edi jz short loc_402C55 repne scasb dec eax dec eax sub eax, ecx loc_402C55: ; CODE XREF: sub_402C44+9j mov edi, edx retn sub_402C44 endp ; [0000001C BYTES: COLLAPSED FUNCTION unknown_libname_13. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall sub_402C74(int, double) sub_402C74 proc near ; CODE XREF: sub_402CC0+22p var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = word ptr -18h var_16 = word ptr -16h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = qword ptr 0Ch push ebp mov ebp, esp add esp, 0FFFFFFE4h mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax push dword ptr [ebp+arg_4+4] push dword ptr [ebp+arg_4] ; double lea eax, [ebp+var_1C] call sub_402EE8 mov eax, [ebp+var_4] mov dx, [ebp+var_1C] mov [eax], dx mov eax, [ebp+var_8] mov dx, [ebp+var_1A] mov [eax], dx mov eax, [ebp+var_C] mov dx, [ebp+var_16] mov [eax], dx mov eax, [ebp+arg_0] mov dx, [ebp+var_18] mov [eax], dx mov esp, ebp pop ebp retn 0Ch sub_402C74 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall sub_402CC0(double) sub_402CC0 proc near ; CODE XREF: Dateutils::DayOf(System::TDateTime)+15p var_E = dword ptr -0Eh var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = qword ptr 8 push ebp mov ebp, esp add esp, 0FFFFFFF0h mov [ebp+var_E+2], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax push dword ptr [ebp+arg_0+4] push dword ptr [ebp+arg_0] ; double lea eax, [ebp+var_E] push eax ; int mov ecx, [ebp+var_E+2] mov edx, [ebp+var_8] mov eax, [ebp+var_4] call sub_402C74 mov esp, ebp pop ebp retn 8 sub_402CC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402CF0 proc near ; CODE XREF: sub_402D3C+21p ; sub_402EE8+DBp var_5 = byte ptr -5 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF8h mov [ebp+var_4], eax mov eax, [ebp+var_4] and eax, 80000003h jns short loc_402D08 dec eax or eax, 0FFFFFFFCh inc eax loc_402D08: ; CODE XREF: sub_402CF0+11j test eax, eax jnz short loc_402D2A mov eax, [ebp+var_4] mov ecx, 64h cdq idiv ecx test edx, edx jnz short loc_402D2E mov eax, [ebp+var_4] mov ecx, 190h cdq idiv ecx test edx, edx jz short loc_402D2E loc_402D2A: ; CODE XREF: sub_402CF0+1Aj xor eax, eax jmp short loc_402D30 ; --------------------------------------------------------------------------- loc_402D2E: ; CODE XREF: sub_402CF0+29j ; sub_402CF0+38j mov al, 1 loc_402D30: ; CODE XREF: sub_402CF0+3Cj mov [ebp+var_5], al mov al, [ebp+var_5] pop ecx pop ecx pop ebp retn sub_402CF0 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402D3C proc near ; CODE XREF: sub_4055AC+19p var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_9 = byte ptr -9 var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFDCh push ebx mov [ebp+var_8], edx mov [ebp+var_4], eax mov [ebp+var_9], 0 mov eax, [ebp+var_8] xor edx, edx mov [eax], edx mov [eax+4], edx mov eax, [ebp+var_4] movzx eax, word ptr [eax] call sub_402CF0 and eax, 7Fh lea eax, [eax+eax*2] lea eax, dword_40A074[eax*8] mov [ebp+var_18], eax mov eax, [ebp+var_4] cmp word ptr [eax], 270Fh ja loc_402EB3 mov eax, [ebp+var_4] cmp word ptr [eax+2], 0Ch ja loc_402EB3 mov eax, [ebp+var_4] movzx eax, word ptr [eax+2] mov edx, [ebp+var_18] mov ax, [edx+eax*2-2] mov edx, [ebp+var_4] cmp ax, [edx+6] jb loc_402EB3 mov eax, [ebp+var_4] cmp word ptr [eax+8], 18h jnb loc_402EB3 mov eax, [ebp+var_4] cmp word ptr [eax+0Ah], 3Ch jnb loc_402EB3 mov eax, [ebp+var_4] cmp word ptr [eax+0Ch], 3Ch jnb loc_402EB3 mov eax, [ebp+var_4] cmp word ptr [eax+0Eh], 3E8h jnb loc_402EB3 mov eax, [ebp+var_4] movzx eax, word ptr [eax+6] mov [ebp+var_14], eax mov eax, [ebp+var_4] movzx eax, word ptr [eax+2] dec eax test eax, eax jle short loc_402E19 mov [ebp+var_1C], eax mov [ebp+var_10], 1 loc_402E03: ; CODE XREF: sub_402D3C+DBj mov eax, [ebp+var_18] mov edx, [ebp+var_10] movzx eax, word ptr [eax+edx*2-2] add [ebp+var_14], eax inc [ebp+var_10] dec [ebp+var_1C] jnz short loc_402E03 loc_402E19: ; CODE XREF: sub_402D3C+BBj mov eax, [ebp+var_4] movzx eax, word ptr [eax] dec eax mov [ebp+var_10], eax cmp [ebp+var_10], 0 jge short loc_402E2E xor eax, eax mov [ebp+var_10], eax loc_402E2E: ; CODE XREF: sub_402D3C+EBj mov eax, [ebp+var_10] mov ecx, 64h cdq idiv ecx imul ecx, [ebp+var_10], 16Dh mov edx, [ebp+var_10] test edx, edx jns short loc_402E4A add edx, 3 loc_402E4A: ; CODE XREF: sub_402D3C+109j sar edx, 2 add ecx, edx sub ecx, eax mov eax, [ebp+var_10] mov ebx, 190h cdq idiv ebx add ecx, eax add ecx, [ebp+var_14] mov [ebp+var_20], ecx fild [ebp+var_20] mov eax, [ebp+var_4] movzx eax, word ptr [eax+8] imul eax, 36EE80h mov edx, [ebp+var_4] movzx edx, word ptr [edx+0Ah] imul edx, 0EA60h add eax, edx mov edx, [ebp+var_4] movzx edx, word ptr [edx+0Ch] imul edx, 3E8h add eax, edx mov edx, [ebp+var_4] movzx edx, word ptr [edx+0Eh] add eax, edx mov [ebp+var_24], eax fild [ebp+var_24] fdiv flt_402EBC faddp st(1), st mov eax, [ebp+var_8] fstp qword ptr [eax] wait mov [ebp+var_9], 1 loc_402EB3: ; CODE XREF: sub_402D3C+3Ej ; sub_402D3C+4Cj ... mov al, [ebp+var_9] pop ebx mov esp, ebp pop ebp retn sub_402D3C endp ; --------------------------------------------------------------------------- align 4 flt_402EBC dd 8.64e7 ; DATA XREF: sub_402D3C+165r ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall sub_402EC0(double) sub_402EC0 proc near ; CODE XREF: sub_402EE8+145p var_4 = dword ptr -4 arg_0 = qword ptr 8 push ebp mov ebp, esp push ecx push 0 push 7 fld [ebp+arg_0] call sub_40127C add eax, 6 adc edx, 0 call sub_4025DD inc eax mov [ebp+var_4], eax mov eax, [ebp+var_4] pop ecx pop ebp retn 8 sub_402EC0 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall sub_402EE8(double) sub_402EE8 proc near ; CODE XREF: sub_402C74+18p var_20 = word ptr -20h var_1E = word ptr -1Eh var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch var_5 = byte ptr -5 var_4 = dword ptr -4 arg_0 = qword ptr 8 push ebp mov ebp, esp add esp, 0FFFFFFE0h mov [ebp+var_4], eax fld [ebp+arg_0] call sub_40127C mov [ebp+var_C], eax fild [ebp+var_C] fsubr [ebp+arg_0] fmul flt_403090 call @System@@ROUND$qqrv ; System::__linkproc__ ROUND(void) mov [ebp+var_18], eax mov [ebp+var_5], 0 cmp [ebp+var_C], 0 jle loc_403084 dec [ebp+var_C] mov [ebp+var_E], 1 cmp [ebp+var_C], 23AB1h jl short loc_402F46 loc_402F30: ; CODE XREF: sub_402EE8+5Cj sub [ebp+var_C], 23AB1h add [ebp+var_E], 190h cmp [ebp+var_C], 23AB1h jge short loc_402F30 loc_402F46: ; CODE XREF: sub_402EE8+46j lea eax, [ebp+var_12] push eax lea ecx, [ebp+var_14] mov dx, 8EACh mov eax, [ebp+var_C] call unknown_libname_13 ; BDS 2005-2006 and Delphi6-7 Visual Component Library cmp [ebp+var_14], 4 jnz short loc_402F6A dec [ebp+var_14] add [ebp+var_12], 8EACh loc_402F6A: ; CODE XREF: sub_402EE8+76j imul ax, [ebp+var_14], 64h add [ebp+var_E], ax lea eax, [ebp+var_12] push eax lea ecx, [ebp+var_14] movzx eax, [ebp+var_12] mov dx, 5B5h call unknown_libname_13 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov ax, [ebp+var_14] shl eax, 2 add [ebp+var_E], ax lea eax, [ebp+var_12] push eax lea ecx, [ebp+var_14] movzx eax, [ebp+var_12] mov dx, 16Dh call unknown_libname_13 ; BDS 2005-2006 and Delphi6-7 Visual Component Library cmp [ebp+var_14], 4 jnz short loc_402FB7 dec [ebp+var_14] add [ebp+var_12], 16Dh loc_402FB7: ; CODE XREF: sub_402EE8+C3j mov ax, [ebp+var_14] add [ebp+var_E], ax movzx eax, [ebp+var_E] call sub_402CF0 and eax, 7Fh lea eax, [eax+eax*2] lea eax, dword_40A074[eax*8] mov [ebp+var_1C], eax mov [ebp+var_10], 1 loc_402FDE: ; CODE XREF: sub_402EE8+11Cj movzx eax, [ebp+var_10] mov edx, [ebp+var_1C] mov ax, [edx+eax*2-2] mov [ebp+var_14], ax mov ax, [ebp+var_12] cmp ax, [ebp+var_14] jb short loc_403006 mov ax, [ebp+var_14] sub [ebp+var_12], ax inc [ebp+var_10] jmp short loc_402FDE ; --------------------------------------------------------------------------- loc_403006: ; CODE XREF: sub_402EE8+10Ej mov eax, [ebp+var_4] mov dx, [ebp+var_E] mov [eax], dx mov eax, [ebp+var_4] mov dx, [ebp+var_10] mov [eax+2], dx mov ax, [ebp+var_12] inc eax mov edx, [ebp+var_4] mov [edx+6], ax push dword ptr [ebp+arg_0+4] push dword ptr [ebp+arg_0] ; double call sub_402EC0 mov edx, [ebp+var_4] mov [edx+4], ax lea eax, [ebp+var_20] push eax lea ecx, [ebp+var_1E] mov dx, 0EA60h mov eax, [ebp+var_18] call unknown_libname_13 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov eax, [ebp+var_4] add eax, 0Ah push eax mov ecx, [ebp+var_4] add ecx, 8 movzx eax, [ebp+var_1E] mov dx, 3Ch call unknown_libname_13 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov eax, [ebp+var_4] add eax, 0Eh push eax mov ecx, [ebp+var_4] add ecx, 0Ch movzx eax, [ebp+var_20] mov dx, 3E8h call unknown_libname_13 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov [ebp+var_5], 1 loc_403084: ; CODE XREF: sub_402EE8+30j mov al, [ebp+var_5] mov esp, ebp pop ebp retn 8 sub_402EE8 endp ; --------------------------------------------------------------------------- align 10h flt_403090 dd 8.64e7 ; DATA XREF: sub_402EE8+1Ar ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403094 proc near ; CODE XREF: sub_403A10+1Ap ; sub_403A10+24p ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov edx, off_402A14 xor eax, eax call sub_4030E8 mov [ebp+var_4], eax mov eax, [ebp+var_4] pop ecx pop ebp retn sub_403094 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4030B0 proc near ; DATA XREF: CODE:off_402A20o var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] mov dl, ds:byte_40A070 mov [eax+29h], dl pop ecx pop ebp retn sub_4030B0 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4030C8 proc near ; CODE XREF: sub_405E48+50p ; sub_4063E8+1D4p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF8h mov [ebp+var_8], edx mov [ebp+var_4], eax mov eax, [ebp+var_4] xor ecx, ecx mov edx, [ebp+var_8] call sub_403474 pop ecx pop ecx pop ebp retn sub_4030C8 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_4030E8 proc near ; CODE XREF: sub_402B0C+Cp ; sub_403094+Cp call sub_40131C jz short locret_4030F5 push eax mov edx, [eax] call dword ptr [edx] pop eax locret_4030F5: ; CODE XREF: sub_4030E8+5j retn sub_4030E8 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_4030F8 proc near ; CODE XREF: sub_402A64+93p ; sub_40336C+29p ... test eax, eax jz short locret_403107 sub dword ptr [eax+4], 2 jge short locret_403107 mov edx, [eax] push dword ptr [edx+4] locret_403107: ; CODE XREF: sub_4030F8+2j ; sub_4030F8+8j retn sub_4030F8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_403108 proc near ; CODE XREF: System::__linkproc__ Dispose(void *,void *)+7p ; System::__linkproc__ Dispose(void *,void *)+7p push eax call sub_402A64 pop eax xor edx, edx call sub_401164 retn sub_403108 endp ; --------------------------------------------------------------------------- align 4 ; [0000000D BYTES: COLLAPSED FUNCTION System::__linkproc__ Dispose(void *,void *). PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_403128 proc near ; CODE XREF: sub_40315C+1Ep ; sub_403474+A8p cmp edx, [eax+1Ch] jge short loc_403130 mov edx, [eax+1Ch] loc_403130: ; CODE XREF: sub_403128+3j cmp edx, [eax+20h] jz short locret_403143 mov [eax+20h], edx shl edx, 2 lea eax, [eax+18h] call @System@@ReallocMem$qqrrpvi ; System::__linkproc__ ReallocMem(void *&,int) locret_403143: ; CODE XREF: sub_403128+Bj retn sub_403128 endp ; =============== S U B R O U T I N E ======================================= sub_403144 proc near ; CODE XREF: System::__linkproc__ Dispose(void *,void *)+1p push dword ptr [eax+18h] xor edx, edx mov [eax+18h], edx mov [eax+1Ch], edx mov [eax+20h], edx pop eax call sub_401164 retn sub_403144 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_40315C proc near ; CODE XREF: sub_4031C4+6p push edx lea ecx, [eax+1Ch] mov edx, [ecx] inc dword ptr [ecx] push edx cmp edx, [eax+20h] push eax jl short loc_40317F mov ecx, [eax+24h] test ecx, ecx jnz short loc_403178 mov ecx, edx shr ecx, 2 inc ecx loc_403178: ; CODE XREF: sub_40315C+14j add edx, ecx call sub_403128 loc_40317F: ; CODE XREF: sub_40315C+Dj pop ecx pop eax pop edx mov ecx, [ecx+18h] mov [ecx+eax*4], edx retn sub_40315C endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_40318C proc near ; CODE XREF: sub_402A64+6Dp ; sub_402B30+17p test ecx, ecx jle short locret_4031C3 cmp edx, [eax+1Ch] jge short locret_4031C3 push ebx xchg eax, ebx lea eax, [edx+ecx] cmp eax, [ebx+1Ch] jbe short loc_4031A4 mov ecx, [ebx+1Ch] sub ecx, edx loc_4031A4: ; CODE XREF: sub_40318C+11j mov eax, [ebx+18h] push dword ptr [ebx+1Ch] sub [ebx+1Ch], ecx mov ebx, edx lea edx, [eax+edx*4] lea eax, [edx+ecx*4] add ebx, ecx pop ecx sub ecx, ebx shl ecx, 2 call sub_401210 pop ebx locret_4031C3: ; CODE XREF: sub_40318C+2j ; sub_40318C+7j retn sub_40318C endp ; =============== S U B R O U T I N E ======================================= sub_4031C4 proc near ; CODE XREF: sub_403434+36p push ecx push eax push dword ptr [eax+1Ch] push edx call sub_40315C pop edx pop eax sub eax, edx shl eax, 2 mov ecx, eax pop eax mov eax, [eax+18h] lea eax, [eax+edx*4] jl short loc_4031EB push eax lea edx, [eax+4] call sub_401210 pop eax loc_4031EB: ; CODE XREF: sub_4031C4+1Bj pop ecx mov [eax], ecx retn sub_4031C4 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4031F0 proc near ; CODE XREF: sub_404650+44p ; sub_404650+50p ... var_2 = byte ptr -2 xor ecx, ecx push ecx add esp, 0FFFFFFF4h push ebx lea ebx, [esp+13h] push edx cmp eax, ecx pushf jge short loc_403203 neg eax loc_403203: ; CODE XREF: sub_4031F0+Fj mov cl, 0Ah loc_403205: ; CODE XREF: sub_4031F0+21j dec ebx xor edx, edx div ecx add dl, 30h mov [ebx], dl test eax, eax jnz short loc_403205 popf jge short loc_40321A dec ebx mov byte ptr [ebx], 2Dh loc_40321A: ; CODE XREF: sub_4031F0+24j pop eax mov edx, ebx call unknown_libname_8 ; BDS 2005-2006 and Delphi6-7 Visual Component Library pop ebx add esp, 10h retn sub_4031F0 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_403228 proc near ; CODE XREF: sub_403258+5p xchg eax, edx xor eax, eax test edx, edx jz short locret_403257 xor ecx, ecx mov cl, [edx] inc edx cmp cl, 2Dh pushf jz short loc_40323F cmp cl, 2Bh jnz short loc_403242 loc_40323F: ; CODE XREF: sub_403228+10j ; sub_403228+28j mov cl, [edx] inc edx loc_403242: ; CODE XREF: sub_403228+15j sub cl, 30h cmp cl, 9 ja short loc_403252 lea eax, [eax+eax*4] lea eax, [ecx+eax*2] jmp short loc_40323F ; --------------------------------------------------------------------------- loc_403252: ; CODE XREF: sub_403228+20j popf jnz short locret_403257 neg eax locret_403257: ; CODE XREF: sub_403228+5j ; sub_403228+2Bj retn sub_403228 endp ; =============== S U B R O U T I N E ======================================= sub_403258 proc near ; CODE XREF: sub_407128+3Fp ; sub_407128+64p call sub_402A40 call sub_403228 retn sub_403258 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_403264 proc near ; CODE XREF: sub_4032A4+9p xchg eax, edx call sub_402A4C dec edx loc_40326B: ; CODE XREF: sub_403264+10j inc edx movzx ecx, byte ptr [edx] jecxz short loc_403276 cmp cl, 20h jbe short loc_40326B loc_403276: ; CODE XREF: sub_403264+Bj call unknown_libname_8 ; BDS 2005-2006 and Delphi6-7 Visual Component Library retn sub_403264 endp ; =============== S U B R O U T I N E ======================================= sub_40327C proc near ; CODE XREF: sub_4032A4+1p var_C = dword ptr -0Ch push edx push eax push eax call sub_401DF4 xchg eax, [esp+0Ch+var_C] call sub_402A40 pop ecx inc ecx loc_40328E: ; CODE XREF: sub_40327C+1Bj dec ecx mov dl, [eax+ecx] jl short loc_403299 cmp dl, 20h jbe short loc_40328E loc_403299: ; CODE XREF: sub_40327C+16j inc ecx pop eax xor edx, edx inc edx call @System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void) retn sub_40327C endp ; =============== S U B R O U T I N E ======================================= sub_4032A4 proc near ; CODE XREF: sub_406C40+14Ap push edx call sub_40327C pop edx mov eax, [edx] call sub_403264 retn sub_4032A4 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_4032B4 proc near ; CODE XREF: sub_402B8C+6Ep push ecx push eax push edx call sub_401DF4 pop edx test edx, edx jg short loc_4032C4 xor edx, edx inc edx loc_4032C4: ; CODE XREF: sub_4032B4+Bj sub eax, edx mov ecx, eax pop eax jge short loc_4032D2 pop eax jl sub_401C00 loc_4032D2: ; CODE XREF: sub_4032B4+15j inc ecx call @System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void) retn sub_4032B4 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_4032DC proc near ; CODE XREF: sub_409718+37p r+6Bp var_10 = dword ptr -10h push ebx push esi push edi push eax mov eax, edx push edx call sub_401DF4 mov edi, eax pop eax call sub_402A40 mov bl, [eax] xchg eax, [esp+10h+var_10] call sub_402A40 mov esi, eax dec eax loc_4032FD: ; CODE XREF: sub_4032DC+46j inc eax mov dl, bl mov ecx, [esi-4] sub ecx, eax add ecx, esi cmp ecx, edi jl short loc_403329 call sub_402B64 test eax, eax jz short loc_40332B dec eax pop edx push edx mov ecx, edi push eax call @Sysutils@CompareMem$qqrpvt1i ; Sysutils::CompareMem(void *,void *,int) test al, al pop eax jz short loc_4032FD sub eax, esi inc eax jmp short loc_40332C ; --------------------------------------------------------------------------- loc_403329: ; CODE XREF: sub_4032DC+2Dj xor eax, eax loc_40332B: ; CODE XREF: sub_4032DC+36j dec eax loc_40332C: ; CODE XREF: sub_4032DC+4Bj pop edx pop edi pop esi pop ebx retn sub_4032DC endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_403334 proc near ; CODE XREF: sub_406018+168p ; sub_406018+218p ... call sub_402A40 push eax ; lpFileName call GetFileAttributesA ; GetFileAttributesA inc eax jz short locret_403348 dec eax and al, 10h setz al locret_403348: ; CODE XREF: sub_403334+Cj retn sub_403334 endp ; --------------------------------------------------------------------------- align 4 ; [0000000D BYTES: COLLAPSED FUNCTION System::__linkproc__ Dispose(void *,void *). PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= sub_40335C proc near ; CODE XREF: sub_405964+F0p ; sub_405964+10Dp mov ecx, edx mov edx, [eax+1Ch] push edx call sub_403434 pop eax retn sub_40335C endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_40336C proc near ; CODE XREF: System::__linkproc__ Dispose(void *,void *)+1p ; sub_403474+5p ... push ebx xchg eax, ebx mov edx, [ebx+1Ch] loc_403371: ; CODE XREF: sub_40336C+11j dec edx jl short loc_40337F push edx mov eax, ebx call sub_40339C pop edx jmp short loc_403371 ; --------------------------------------------------------------------------- loc_40337F: ; CODE XREF: sub_40336C+6j xor eax, eax mov [ebx+25h], eax xchg eax, [ebx+21h] test eax, eax jz short loc_403392 call sub_401164 xor eax, eax loc_403392: ; CODE XREF: sub_40336C+1Dj xchg eax, [ebx+18h] call sub_4030F8 pop ebx retn sub_40336C endp ; =============== S U B R O U T I N E ======================================= sub_40339C proc near ; CODE XREF: sub_40336C+Bp dec dword ptr [eax+1Ch] push eax mov eax, [eax+18h] mov ecx, [eax+18h] push dword ptr [ecx+edx*4] call sub_402B30 pop eax pop edx mov ecx, [edx+25h] jecxz short loc_4033C1 cmp eax, [edx+21h] jb short loc_4033C1 add ecx, [edx+21h] cmp eax, ecx jb short locret_4033C6 loc_4033C1: ; CODE XREF: sub_40339C+17j ; sub_40339C+1Cj call sub_401164 locret_4033C6: ; CODE XREF: sub_40339C+23j retn sub_40339C endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_4033C8 proc near ; CODE XREF: sub_4052F8+45p ; sub_405E48+74p ... push ecx mov eax, [eax+18h] test eax, eax jz short loc_4033D5 call sub_402B50 loc_4033D5: ; CODE XREF: sub_4033C8+6j xchg eax, edx pop eax jmp unknown_libname_8 ; BDS 2005-2006 and Delphi6-7 Visual Component Library sub_4033C8 endp ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4033E0 proc near ; CODE XREF: sub_4063E8+1E6p push esi push edi mov ecx, [eax+1Ch] mov eax, [eax+18h] push ecx jecxz short loc_4033EE mov esi, [eax+18h] loc_4033EE: ; CODE XREF: sub_4033E0+9j push esi xchg eax, edx xor edx, edx jecxz short loc_40340A push eax loc_4033F5: ; CODE XREF: sub_4033E0+23j push ecx push edx lodsd call sub_402C44 pop edx lea edx, [edx+eax+2] pop ecx loop loc_4033F5 pop eax pop esi xchg edx, ecx push eax loc_40340A: ; CODE XREF: sub_4033E0+12j call @System@@LStrFromPCharLen$qqrr17System@AnsiStringpci ; System::__linkproc__ LStrFromPCharLen(System::AnsiString &,char *,int) pop edi pop ecx jecxz short loc_40342E mov edi, [edi] loc_403415: ; CODE XREF: sub_4033E0+4Aj push ecx lodsd push eax call sub_402C44 xchg eax, ecx pop eax xchg eax, esi rep movsb xchg eax, esi mov ax, 0A0Dh stosw pop ecx loop loc_403415 xchg eax, ecx stosb loc_40342E: ; CODE XREF: sub_4033E0+31j pop edi pop esi retn sub_4033E0 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_403434 proc near ; CODE XREF: sub_40335C+6p push ebx push edx push ecx xchg eax, ebx mov eax, [ebx+18h] test eax, eax jnz short loc_403447 call sub_402B0C mov [ebx+18h], eax loc_403447: ; CODE XREF: sub_403434+9j pop eax push eax call sub_401DF4 inc eax push eax call sub_40114C mov byte ptr [eax], 0 xchg eax, edx pop ecx pop eax push edx test eax, eax jz short loc_403465 call sub_401210 loc_403465: ; CODE XREF: sub_403434+2Aj pop ecx pop edx mov eax, [ebx+18h] call sub_4031C4 inc dword ptr [ebx+1Ch] pop ebx retn sub_403434 endp ; =============== S U B R O U T I N E ======================================= sub_403474 proc near ; CODE XREF: sub_4030C8+14p dec cl jz short loc_40347F pusha call sub_40336C popa loc_40347F: ; CODE XREF: sub_403474+2j call sub_402A4C jz locret_40354D push ebx push edi mov ebx, eax mov edi, [ebx+25h] mov eax, [edx-4] inc eax push eax push edx push dword ptr [ebx+21h] add eax, [ebx+25h] call sub_40114C mov [ebx+21h], eax mov ecx, edi xchg eax, edx pop eax jecxz short loc_4034D4 push eax call sub_401210 pop edx push edx push esi mov esi, [ebx+18h] mov esi, [esi+18h] mov ecx, [ebx+1Ch] loc_4034BD: ; CODE XREF: sub_403474:loc_4034CBj lodsd sub eax, edx cmp eax, [ebx+25h] jnb short loc_4034CB add eax, [ebx+21h] mov [esi-4], eax loc_4034CB: ; CODE XREF: sub_403474+4Fj loop loc_4034BD pop esi pop eax call sub_401164 loc_4034D4: ; CODE XREF: sub_403474+35j pop eax mov edx, edi add edx, [ebx+21h] pop ecx push ecx add [ebx+25h], ecx call sub_401210 add edi, [ebx+21h] mov ecx, [ebx+18h] inc ecx loop loc_4034F5 call sub_402B0C mov [ebx+18h], eax loc_4034F5: ; CODE XREF: sub_403474+77j pop ecx mov edx, [ebx+1Ch] push edi push ecx mov al, 0Dh loc_4034FD: ; CODE XREF: sub_403474+96j ; sub_403474+99j cmp byte ptr [edi], 0 jz short loc_40350F inc edx repne scasb jnz short loc_40350F cmp byte ptr [edi], 0Ah jnz short loc_4034FD inc edi loop loc_4034FD loc_40350F: ; CODE XREF: sub_403474+8Cj ; sub_403474+91j mov [ebx+1Ch], edx mov eax, [ebx+18h] push edx push eax cmp edx, [eax+20h] jle short loc_403521 call sub_403128 loc_403521: ; CODE XREF: sub_403474+A6j pop eax pop ecx xchg ecx, [eax+1Ch] mov edx, [eax+18h] lea edx, [edx+ecx*4] pop ecx pop edi mov eax, 0Dh loc_403533: ; CODE XREF: sub_403474+D2j ; sub_403474+D5j cmp [edi], ah jz short loc_40354B mov [edx], edi add edx, 4 repne scasb jnz short loc_40354B mov [edi-1], ah cmp byte ptr [edi], 0Ah jnz short loc_403533 inc edi loop loc_403533 loc_40354B: ; CODE XREF: sub_403474+C1j ; sub_403474+CAj pop edi pop ebx locret_40354D: ; CODE XREF: sub_403474+10j retn sub_403474 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403550 proc near ; DATA XREF: CODE:00409EA0o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_40359F push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B088 jnz short loc_403591 cmp ds:hLibModule, 0 jz short loc_40357D mov eax, ds:hLibModule push eax ; hLibModule call FreeLibrary_0 loc_40357D: ; CODE XREF: sub_403550+20j mov eax, offset dword_40B08C call sub_401C00 mov eax, offset dword_40A0A4 call sub_401C00 loc_403591: ; CODE XREF: sub_403550+17j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_4035A6 loc_40359E: ; CODE XREF: sub_403550+54j retn ; --------------------------------------------------------------------------- loc_40359F: ; DATA XREF: sub_403550+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_40359E ; --------------------------------------------------------------------------- loc_4035A6: ; CODE XREF: sub_403550:loc_40359Ej ; DATA XREF: sub_403550+49o pop ebp retn sub_403550 endp ; [0000002F BYTES: COLLAPSED FUNCTION unknown_libname_14. PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4035D8 proc near ; DATA XREF: CODE:00409EA8o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_4035FD push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B090 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_403604 loc_4035FC: ; CODE XREF: sub_4035D8+2Aj retn ; --------------------------------------------------------------------------- loc_4035FD: ; DATA XREF: sub_4035D8+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4035FC ; --------------------------------------------------------------------------- loc_403604: ; CODE XREF: sub_4035D8:loc_4035FCj ; DATA XREF: sub_4035D8+1Fo pop ebp retn sub_4035D8 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_403608 proc near ; DATA XREF: CODE:00409EA4o sub ds:dword_40B090, 1 retn sub_403608 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403610 proc near ; DATA XREF: CODE:00409EB0o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_403A05 push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B224 jnz loc_4039F7 mov eax, ds:dword_40B1B4 call sub_4030F8 mov eax, ds:dword_40B16C call sub_4030F8 mov eax, offset dword_40B220 call sub_401C00 mov eax, offset dword_40B21C call sub_401C00 mov eax, offset dword_40B218 call sub_401C00 mov eax, offset dword_40B214 call sub_401C00 mov eax, offset dword_40B210 call sub_401C00 mov eax, offset dword_40B20C call sub_401C00 mov eax, offset dword_40B208 call sub_401C00 mov eax, offset dword_40B204 call sub_401C00 mov eax, offset dword_40B200 call sub_401C00 mov eax, offset dword_40B1FC call sub_401C00 mov eax, offset dword_40B1F8 call sub_401C00 mov eax, offset dword_40B1F4 call sub_401C00 mov eax, offset dword_40B1F0 call sub_401C00 mov eax, offset dword_40B1EC call sub_401C00 mov eax, offset dword_40B1E8 call sub_401C00 mov eax, offset dword_40B1E4 call sub_401C00 mov eax, offset dword_40B1E0 call sub_401C00 mov eax, offset dword_40B1DC call sub_401C00 mov eax, offset dword_40B1D8 call sub_401C00 mov eax, offset dword_40B1D4 call sub_401C00 mov eax, offset dword_40B1D0 call sub_401C00 mov eax, offset dword_40B1CC call sub_401C00 mov eax, offset dword_40B1C8 call sub_401C00 mov eax, offset dword_40B1C4 call sub_401C00 mov eax, offset dword_40B1C0 call sub_401C00 mov eax, offset dword_40B1BC call sub_401C00 mov eax, offset dword_40B1B8 call sub_401C00 mov eax, offset dword_40B1B0 call sub_401C00 mov eax, offset dword_40B1AC call sub_401C00 mov eax, offset dword_40B1A8 call sub_401C00 mov eax, offset dword_40B1A4 call sub_401C00 mov eax, offset dword_40B1A0 call sub_401C00 mov eax, offset dword_40B19C call sub_401C00 mov eax, offset dword_40B198 call sub_401C00 mov eax, offset dword_40B194 call sub_401C00 mov eax, offset dword_40B190 call sub_401C00 mov eax, offset dword_40B18C call sub_401C00 mov eax, offset dword_40B188 call sub_401C00 mov eax, offset dword_40B184 call sub_401C00 mov eax, offset dword_40B180 call sub_401C00 mov eax, offset dword_40B17C call sub_401C00 mov eax, offset dword_40B178 call sub_401C00 mov eax, offset dword_40B170 call sub_401C00 mov eax, offset dword_40B168 call sub_401C00 mov eax, offset dword_40B164 call sub_401C00 mov eax, offset dword_40B160 call sub_401C00 mov eax, offset dword_40B15C call sub_401C00 mov eax, offset dword_40B158 call sub_401C00 mov eax, offset dword_40B154 call sub_401C00 mov eax, offset dword_40B150 call sub_401C00 mov eax, offset dword_40B14C call sub_401C00 mov eax, offset dword_40B148 call sub_401C00 mov eax, offset dword_40B144 call sub_401C00 mov eax, offset dword_40B140 call sub_401C00 mov eax, offset dword_40B13C call sub_401C00 mov eax, offset dword_40B138 call sub_401C00 mov eax, offset dword_40B134 call sub_401C00 mov eax, offset dword_40B130 call sub_401C00 mov eax, offset dword_40B12C call sub_401C00 mov eax, offset dword_40B128 call sub_401C00 mov eax, offset dword_40B124 call sub_401C00 mov eax, offset dword_40B120 call sub_401C00 mov eax, offset dword_40B11C call sub_401C00 mov eax, offset dword_40B118 call sub_401C00 mov eax, offset dword_40B114 call sub_401C00 mov eax, offset dword_40B110 call sub_401C00 mov eax, offset dword_40B10C call sub_401C00 mov eax, offset dword_40B108 call sub_401C00 mov eax, offset dword_40B104 call sub_401C00 mov eax, offset dword_40B100 call sub_401C00 mov eax, offset dword_40B0FC call sub_401C00 mov eax, offset dword_40B0F8 call sub_401C00 mov eax, offset dword_40B0F4 call sub_401C00 mov eax, offset dword_40B0F0 call sub_401C00 mov eax, offset dword_40B0EC call sub_401C00 mov eax, offset dword_40B0E8 call sub_401C00 mov eax, offset dword_40B0E4 call sub_401C00 mov eax, offset dword_40B0E0 call sub_401C00 mov eax, offset dword_40B0D4 call sub_401C00 mov eax, offset dword_40B0D0 call sub_401C00 mov eax, offset dword_40B0CC call sub_401C00 mov eax, offset dword_40B0C8 call sub_401C00 mov eax, offset dword_40B0C4 call sub_401C00 mov eax, offset dword_40B0C0 call sub_401C00 mov eax, offset dword_40B0BC call sub_401C00 mov eax, offset dword_40B0B8 call sub_401C00 mov eax, offset dword_40B0B4 call sub_401C00 mov eax, offset dword_40B0B0 call sub_401C00 mov eax, offset dword_40B0AC call sub_401C00 mov eax, offset dword_40B0A8 call sub_401C00 mov eax, offset dword_40B0A4 call sub_401C00 mov eax, offset dword_40B0A0 call sub_401C00 mov eax, offset dword_40B09C call sub_401C00 mov eax, offset dword_40B098 call sub_401C00 mov eax, offset dword_40B094 call sub_401C00 loc_4039F7: ; CODE XREF: sub_403610+17j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_403A0C loc_403A04: ; CODE XREF: sub_403610+3FAj retn ; --------------------------------------------------------------------------- loc_403A05: ; DATA XREF: sub_403610+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_403A04 ; --------------------------------------------------------------------------- loc_403A0C: ; CODE XREF: sub_403610:loc_403A04j ; DATA XREF: sub_403610+3EFo pop ebp retn sub_403610 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403A10 proc near ; DATA XREF: CODE:00409EACo push ebp mov ebp, esp xor eax, eax push ebp push offset loc_403A4C push dword ptr fs:[eax] mov fs:[eax], esp sub ds:dword_40B224, 1 jnb short loc_403A3E call sub_403094 mov ds:dword_40B1B4, eax call sub_403094 mov ds:dword_40B16C, eax loc_403A3E: ; CODE XREF: sub_403A10+18j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_403A53 loc_403A4B: ; CODE XREF: sub_403A10+41j retn ; --------------------------------------------------------------------------- loc_403A4C: ; DATA XREF: sub_403A10+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_403A4B ; --------------------------------------------------------------------------- loc_403A53: ; CODE XREF: sub_403A10:loc_403A4Bj ; DATA XREF: sub_403A10+36o pop ebp retn sub_403A10 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403A58 proc near ; CODE XREF: sub_403BE0+3Cp var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp xor ecx, ecx push ecx push ecx push ecx push ecx push ecx mov [ebp+var_8], edx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_403AED push dword ptr fs:[eax] mov fs:[eax], esp lea eax, [ebp+var_C] mov edx, [ebp+var_4] call sub_401C98 mov eax, [ebp+var_8] call sub_401C00 jmp short loc_403ACC ; --------------------------------------------------------------------------- loc_403A8B: ; CODE XREF: sub_403A58+78j lea eax, [ebp+var_14] push eax mov ecx, 4 mov edx, 1 mov eax, [ebp+var_C] call @System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void) mov eax, [ebp+var_14] lea edx, [ebp+var_10] call sub_4040EC mov edx, [ebp+var_10] mov eax, [ebp+var_8] call @System@@LStrCat$qqrv ; System::__linkproc__ LStrCat(void) mov eax, [ebp+var_8] lea eax, [ebp+var_C] mov ecx, 4 mov edx, 1 call sub_402038 loc_403ACC: ; CODE XREF: sub_403A58+31j cmp [ebp+var_C], 0 jnz short loc_403A8B xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_403AF4 loc_403ADF: ; CODE XREF: sub_403A58+9Aj lea eax, [ebp+var_14] mov edx, 3 call sub_401C24 retn ; --------------------------------------------------------------------------- loc_403AED: ; DATA XREF: sub_403A58+13o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_403ADF ; --------------------------------------------------------------------------- loc_403AF4: ; CODE XREF: sub_403A58+94j ; DATA XREF: sub_403A58+82o mov esp, ebp pop ebp retn sub_403A58 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403AF8 proc near ; CODE XREF: sub_403BE0+57p var_1E = word ptr -1Eh var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFE0h mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax dec [ebp+var_14] mov eax, [ebp+var_C] mov edx, [ebp+var_4] call sub_401C54 mov [ebp+var_14], 88h mov ax, word ptr [ebp+var_8] mov [ebp+var_10], ax sub [ebp+var_14], 42h mov eax, [ebp+var_C] mov eax, [eax] call sub_401DF4 test ax, ax jbe loc_403BD8 mov [ebp+var_1E], ax mov [ebp+var_E], 1 loc_403B45: ; CODE XREF: sub_403AF8+DAj inc [ebp+var_14] movzx eax, [ebp+var_E] mov edx, [ebp+var_C] mov edx, [edx] movzx eax, byte ptr [edx+eax-1] mov [ebp+var_18], eax sub [ebp+var_14], 13h movzx eax, [ebp+var_10] shr eax, 8 mov [ebp+var_1C], eax sub [ebp+var_14], 54h mov eax, [ebp+var_C] call sub_401FC4 movzx edx, [ebp+var_E] mov cl, byte ptr [ebp+var_18] xor cl, byte ptr [ebp+var_1C] mov [eax+edx-1], cl mov [ebp+var_14], 3C5h dec [ebp+var_14] movzx eax, [ebp+var_E] mov edx, [ebp+var_4] movzx eax, byte ptr [edx+eax-1] movzx edx, [ebp+var_10] add eax, edx mov [ebp+var_18], eax mov [ebp+var_14], 312h imul eax, [ebp+var_18], 0CE6Dh mov [ebp+var_1C], eax inc [ebp+var_14] mov ax, word ptr [ebp+var_1C] mov [ebp+var_10], ax sub [ebp+var_14], 41h add [ebp+var_10], 58BFh sub [ebp+var_14], 2Ch inc [ebp+var_E] dec [ebp+var_1E] jnz loc_403B45 loc_403BD8: ; CODE XREF: sub_403AF8+3Dj add [ebp+var_14], 1Bh mov esp, ebp pop ebp retn sub_403AF8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403BE0 proc near ; CODE XREF: sub_4042E8+3Fp var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFE8h push ebx xor ebx, ebx mov [ebp+var_14], ebx mov [ebp+var_18], ebx mov [ebp+var_10], ebx mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_403C57 push dword ptr fs:[eax] mov fs:[eax], esp lea eax, [ebp+var_18] xor ecx, ecx mov edx, [ebp+var_4] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_18] lea edx, [ebp+var_14] call sub_403A58 mov edx, [ebp+var_14] lea eax, [ebp+var_10] xor ecx, ecx call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov ecx, [ebp+var_C] mov edx, [ebp+var_8] mov eax, [ebp+var_10] call sub_403AF8 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_403C5E loc_403C49: ; CODE XREF: sub_403BE0+7Cj lea eax, [ebp+var_18] mov edx, 3 call sub_401C24 retn ; --------------------------------------------------------------------------- loc_403C57: ; DATA XREF: sub_403BE0+1Eo jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_403C49 ; --------------------------------------------------------------------------- loc_403C5E: ; CODE XREF: sub_403BE0+76j ; DATA XREF: sub_403BE0+64o pop ebx mov esp, ebp pop ebp retn sub_403BE0 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403C64 proc near ; CODE XREF: sub_403EF8+56p var_6C = byte ptr -6Ch var_64 = byte ptr -64h var_60 = byte ptr -60h var_5C = byte ptr -5Ch var_58 = byte ptr -58h var_54 = byte ptr -54h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFF94h mov [ebp+var_8], edx mov [ebp+var_4], eax xor eax, eax mov [ebp+var_10], eax mov [ebp+var_C], 41h loc_403C7C: ; CODE XREF: sub_403C64+2Cj mov eax, [ebp+var_C] mov edx, [ebp+var_10] mov [ebp+edx+var_54], al inc [ebp+var_10] inc [ebp+var_C] cmp [ebp+var_C], 5Bh jnz short loc_403C7C mov [ebp+var_C], 61h loc_403C99: ; CODE XREF: sub_403C64+49j mov eax, [ebp+var_C] mov edx, [ebp+var_10] mov [ebp+edx+var_54], al inc [ebp+var_10] inc [ebp+var_C] cmp [ebp+var_C], 7Bh jnz short loc_403C99 mov [ebp+var_C], 30h loc_403CB6: ; CODE XREF: sub_403C64+66j mov eax, [ebp+var_C] mov edx, [ebp+var_10] mov [ebp+edx+var_54], al inc [ebp+var_10] inc [ebp+var_C] cmp [ebp+var_C], 3Ah jnz short loc_403CB6 mov eax, [ebp+var_10] mov [ebp+eax+var_54], 2Bh inc [ebp+var_10] mov eax, [ebp+var_10] mov [ebp+eax+var_54], 2Fh xor eax, eax mov [ebp+var_C], eax dec [ebp+var_14] mov eax, [ebp+var_4] call sub_401DF4 push eax mov eax, [ebp+var_4] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) lea edx, [ebp+var_C] pop ecx call sub_401210 mov eax, [ebp+var_4] call sub_401DF4 dec eax jz short loc_403D1B dec eax jz short loc_403D80 dec eax jz loc_403E1D jmp loc_403EED ; --------------------------------------------------------------------------- loc_403D1B: ; CODE XREF: sub_403C64+A6j lea eax, [ebp+var_58] mov edx, [ebp+var_C] and edx, 8000003Fh jns short loc_403D2E dec edx or edx, 0FFFFFFC0h inc edx loc_403D2E: ; CODE XREF: sub_403C64+C3j mov dl, [ebp+edx+var_54] mov [eax+1], dl mov byte ptr [eax], 1 lea edx, [ebp+var_58] lea eax, [ebp+var_5C] call sub_4012C8 lea eax, [ebp+var_60] mov edx, [ebp+var_C] shr edx, 6 and edx, 8000003Fh jns short loc_403D59 dec edx or edx, 0FFFFFFC0h inc edx loc_403D59: ; CODE XREF: sub_403C64+EEj mov dl, [ebp+edx+var_54] mov [eax+1], dl mov byte ptr [eax], 1 lea edx, [ebp+var_60] lea eax, [ebp+var_5C] mov cl, 2 call @System@@PStrNCat$qqrv ; System::__linkproc__ PStrNCat(void) lea edx, [ebp+var_5C] mov eax, [ebp+var_8] call unknown_libname_9 ; BDS 2005-2006 and Delphi6-7 Visual Component Library jmp loc_403EED ; --------------------------------------------------------------------------- loc_403D80: ; CODE XREF: sub_403C64+A9j lea eax, [ebp+var_58] mov edx, [ebp+var_C] and edx, 8000003Fh jns short loc_403D93 dec edx or edx, 0FFFFFFC0h inc edx loc_403D93: ; CODE XREF: sub_403C64+128j mov dl, [ebp+edx+var_54] mov [eax+1], dl mov byte ptr [eax], 1 lea edx, [ebp+var_58] lea eax, [ebp+var_5C] call sub_4012C8 lea eax, [ebp+var_60] mov edx, [ebp+var_C] shr edx, 6 and edx, 8000003Fh jns short loc_403DBE dec edx or edx, 0FFFFFFC0h inc edx loc_403DBE: ; CODE XREF: sub_403C64+153j mov dl, [ebp+edx+var_54] mov [eax+1], dl mov byte ptr [eax], 1 lea edx, [ebp+var_60] lea eax, [ebp+var_5C] mov cl, 2 call @System@@PStrNCat$qqrv ; System::__linkproc__ PStrNCat(void) lea edx, [ebp+var_5C] lea eax, [ebp+var_64] call sub_4012C8 lea eax, [ebp+var_60] mov edx, [ebp+var_C] shr edx, 0Ch and edx, 8000003Fh jns short loc_403DF6 dec edx or edx, 0FFFFFFC0h inc edx loc_403DF6: ; CODE XREF: sub_403C64+18Bj mov dl, [ebp+edx+var_54] mov [eax+1], dl mov byte ptr [eax], 1 lea edx, [ebp+var_60] lea eax, [ebp+var_64] mov cl, 3 call @System@@PStrNCat$qqrv ; System::__linkproc__ PStrNCat(void) lea edx, [ebp+var_64] mov eax, [ebp+var_8] call unknown_libname_9 ; BDS 2005-2006 and Delphi6-7 Visual Component Library jmp loc_403EED ; --------------------------------------------------------------------------- loc_403E1D: ; CODE XREF: sub_403C64+ACj lea eax, [ebp+var_58] mov edx, [ebp+var_C] and edx, 8000003Fh jns short loc_403E30 dec edx or edx, 0FFFFFFC0h inc edx loc_403E30: ; CODE XREF: sub_403C64+1C5j mov dl, [ebp+edx+var_54] mov [eax+1], dl mov byte ptr [eax], 1 lea edx, [ebp+var_58] lea eax, [ebp+var_5C] call sub_4012C8 lea eax, [ebp+var_60] mov edx, [ebp+var_C] shr edx, 6 and edx, 8000003Fh jns short loc_403E5B dec edx or edx, 0FFFFFFC0h inc edx loc_403E5B: ; CODE XREF: sub_403C64+1F0j mov dl, [ebp+edx+var_54] mov [eax+1], dl mov byte ptr [eax], 1 lea edx, [ebp+var_60] lea eax, [ebp+var_5C] mov cl, 2 call @System@@PStrNCat$qqrv ; System::__linkproc__ PStrNCat(void) lea edx, [ebp+var_5C] lea eax, [ebp+var_64] call sub_4012C8 lea eax, [ebp+var_60] mov edx, [ebp+var_C] shr edx, 0Ch and edx, 8000003Fh jns short loc_403E93 dec edx or edx, 0FFFFFFC0h inc edx loc_403E93: ; CODE XREF: sub_403C64+228j mov dl, [ebp+edx+var_54] mov [eax+1], dl mov byte ptr [eax], 1 lea edx, [ebp+var_60] lea eax, [ebp+var_64] mov cl, 3 call @System@@PStrNCat$qqrv ; System::__linkproc__ PStrNCat(void) lea edx, [ebp+var_64] lea eax, [ebp+var_6C] call sub_4012C8 lea eax, [ebp+var_60] mov edx, [ebp+var_C] shr edx, 12h and edx, 8000003Fh jns short loc_403ECB dec edx or edx, 0FFFFFFC0h inc edx loc_403ECB: ; CODE XREF: sub_403C64+260j mov dl, [ebp+edx+var_54] mov [eax+1], dl mov byte ptr [eax], 1 lea edx, [ebp+var_60] lea eax, [ebp+var_6C] mov cl, 4 call @System@@PStrNCat$qqrv ; System::__linkproc__ PStrNCat(void) lea edx, [ebp+var_6C] mov eax, [ebp+var_8] call unknown_libname_9 ; BDS 2005-2006 and Delphi6-7 Visual Component Library loc_403EED: ; CODE XREF: sub_403C64+B2j ; sub_403C64+117j ... add [ebp+var_14], 14h mov esp, ebp pop ebp retn sub_403C64 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403EF8 proc near ; CODE XREF: sub_40408C+39p var_18 = dword ptr -18h var_14 = dword ptr -14h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFE8h xor ecx, ecx mov [ebp+var_14], ecx mov [ebp+var_18], ecx mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_403F9C push dword ptr fs:[eax] mov fs:[eax], esp lea eax, [ebp+var_C] mov edx, [ebp+var_4] call sub_401C98 mov eax, [ebp+var_8] call sub_401C00 jmp short loc_403F73 ; --------------------------------------------------------------------------- loc_403F32: ; CODE XREF: sub_403EF8+7Fj lea eax, [ebp+var_18] push eax mov ecx, 3 mov edx, 1 mov eax, [ebp+var_C] call @System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void) mov eax, [ebp+var_18] lea edx, [ebp+var_14] call sub_403C64 mov edx, [ebp+var_14] mov eax, [ebp+var_8] call @System@@LStrCat$qqrv ; System::__linkproc__ LStrCat(void) mov eax, [ebp+var_8] lea eax, [ebp+var_C] mov ecx, 3 mov edx, 1 call sub_402038 loc_403F73: ; CODE XREF: sub_403EF8+38j cmp [ebp+var_C], 0 jnz short loc_403F32 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_403FA3 loc_403F86: ; CODE XREF: sub_403EF8+A9j lea eax, [ebp+var_18] mov edx, 2 call sub_401C24 lea eax, [ebp+var_C] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_403F9C: ; DATA XREF: sub_403EF8+1Ao jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_403F86 ; --------------------------------------------------------------------------- loc_403FA3: ; CODE XREF: sub_403EF8+A3j ; DATA XREF: sub_403EF8+89o mov esp, ebp pop ebp retn sub_403EF8 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403FA8 proc near ; CODE XREF: sub_40408C+2Ep var_1E = word ptr -1Eh var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_6 = word ptr -6 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFE0h mov [ebp+var_C], ecx mov [ebp+var_6], dx mov [ebp+var_4], eax mov [ebp+var_10], 275h mov eax, [ebp+var_C] mov edx, [ebp+var_4] call sub_401C54 add [ebp+var_10], 38h mov ax, [ebp+var_6] mov [ebp+var_14], ax dec [ebp+var_10] mov eax, [ebp+var_C] mov eax, [eax] call sub_401DF4 test ax, ax jbe loc_404080 mov [ebp+var_1E], ax mov [ebp+var_12], 1 loc_403FF6: ; CODE XREF: sub_403FA8+D2j mov [ebp+var_10], 3BFh movzx eax, [ebp+var_12] mov edx, [ebp+var_C] mov edx, [edx] movzx eax, byte ptr [edx+eax-1] mov [ebp+var_18], eax sub [ebp+var_10], 60h movzx eax, [ebp+var_14] shr eax, 8 mov [ebp+var_1C], eax dec [ebp+var_10] mov eax, [ebp+var_C] call sub_401FC4 movzx edx, [ebp+var_12] mov cl, byte ptr [ebp+var_18] xor cl, byte ptr [ebp+var_1C] mov [eax+edx-1], cl sub [ebp+var_10], 24h movzx eax, [ebp+var_12] mov edx, [ebp+var_C] mov edx, [edx] movzx eax, byte ptr [edx+eax-1] movzx edx, [ebp+var_14] add eax, edx mov [ebp+var_18], eax add [ebp+var_10], 4Ch mov [ebp+var_1C], 0CE6Dh sub [ebp+var_10], 0Fh mov ax, word ptr [ebp+var_18] imul word ptr [ebp+var_1C] add ax, 58BFh mov [ebp+var_14], ax dec [ebp+var_10] inc [ebp+var_12] dec [ebp+var_1E] jnz loc_403FF6 loc_404080: ; CODE XREF: sub_403FA8+3Ej mov [ebp+var_10], 21Bh mov esp, ebp pop ebp retn sub_403FA8 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40408C proc near ; CODE XREF: sub_4063E8+ACp ; sub_4063E8+37Fp ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_6 = word ptr -6 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF0h push ebx xor ebx, ebx mov [ebp+var_10], ebx mov [ebp+var_C], ecx mov [ebp+var_6], dx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_4040E0 push dword ptr fs:[eax] mov fs:[eax], esp lea ecx, [ebp+var_10] mov dx, [ebp+var_6] mov eax, [ebp+var_4] call sub_403FA8 mov eax, [ebp+var_10] mov edx, [ebp+var_C] call sub_403EF8 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_4040E7 loc_4040D7: ; CODE XREF: sub_40408C+59j lea eax, [ebp+var_10] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_4040E0: ; DATA XREF: sub_40408C+19o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4040D7 ; --------------------------------------------------------------------------- loc_4040E7: ; CODE XREF: sub_40408C+53j ; DATA XREF: sub_40408C+46o pop ebx mov esp, ebp pop ebp retn sub_40408C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4040EC proc near ; CODE XREF: sub_403A58+4Fp var_111 = byte ptr -111h var_E6 = byte ptr -0E6h var_E2 = byte ptr -0E2h var_11 = byte ptr -11h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFEECh mov [ebp+var_8], edx mov [ebp+var_4], eax mov [ebp+var_11], 0 loc_4040FF: ; CODE XREF: sub_4040EC+27j xor eax, eax mov al, [ebp+var_11] mov [ebp+eax+var_111], 0 inc [ebp+var_11] cmp [ebp+var_11], 0 jnz short loc_4040FF mov [ebp+var_E6], 3Eh mov [ebp+var_E2], 3Fh mov [ebp+var_10], 30h loc_40412A: ; CODE XREF: sub_4040EC+5Aj mov al, byte ptr [ebp+var_10] add al, 4 mov edx, [ebp+var_10] and edx, 0FFh mov [ebp+edx+var_111], al inc [ebp+var_10] cmp [ebp+var_10], 3Ah jnz short loc_40412A mov [ebp+var_10], 42h loc_40414F: ; CODE XREF: sub_4040EC+7Fj mov al, byte ptr [ebp+var_10] sub al, 41h mov edx, [ebp+var_10] and edx, 0FFh mov [ebp+edx+var_111], al inc [ebp+var_10] cmp [ebp+var_10], 5Bh jnz short loc_40414F mov [ebp+var_10], 61h loc_404174: ; CODE XREF: sub_4040EC+A4j mov al, byte ptr [ebp+var_10] sub al, 47h mov edx, [ebp+var_10] and edx, 0FFh mov [ebp+edx+var_111], al inc [ebp+var_10] cmp [ebp+var_10], 7Bh jnz short loc_404174 mov eax, [ebp+var_4] call sub_401DF4 sub eax, 2 jz short loc_4041AE dec eax jz short loc_404203 dec eax jz loc_404269 jmp loc_4042E1 ; --------------------------------------------------------------------------- loc_4041AE: ; CODE XREF: sub_4040EC+B1j mov eax, [ebp+var_4] movzx eax, byte ptr [eax] movzx eax, [ebp+eax+var_111] mov edx, [ebp+var_4] movzx edx, byte ptr [edx+1] movzx edx, [ebp+edx+var_111] shl edx, 6 add eax, edx mov [ebp+var_C], eax mov eax, [ebp+var_8] mov edx, 1 call sub_4020C8 mov eax, [ebp+var_8] mov eax, [eax] call sub_401DF4 push eax mov eax, [ebp+var_8] call sub_401FC4 mov edx, eax lea eax, [ebp+var_C] pop ecx call sub_401210 jmp loc_4042E1 ; --------------------------------------------------------------------------- loc_404203: ; CODE XREF: sub_4040EC+B4j mov eax, [ebp+var_4] movzx eax, byte ptr [eax] movzx eax, [ebp+eax+var_111] mov edx, [ebp+var_4] movzx edx, byte ptr [edx+1] movzx edx, [ebp+edx+var_111] shl edx, 6 add eax, edx mov edx, [ebp+var_4] movzx edx, byte ptr [edx+2] movzx edx, [ebp+edx+var_111] shl edx, 0Ch add eax, edx mov [ebp+var_C], eax mov eax, [ebp+var_8] mov edx, 2 call sub_4020C8 mov eax, [ebp+var_8] mov eax, [eax] call sub_401DF4 push eax mov eax, [ebp+var_8] call sub_401FC4 mov edx, eax lea eax, [ebp+var_C] pop ecx call sub_401210 jmp short loc_4042E1 ; --------------------------------------------------------------------------- loc_404269: ; CODE XREF: sub_4040EC+B7j mov eax, [ebp+var_4] movzx eax, byte ptr [eax] movzx eax, [ebp+eax+var_111] mov edx, [ebp+var_4] movzx edx, byte ptr [edx+1] movzx edx, [ebp+edx+var_111] shl edx, 6 add eax, edx mov edx, [ebp+var_4] movzx edx, byte ptr [edx+2] movzx edx, [ebp+edx+var_111] shl edx, 0Ch add eax, edx mov edx, [ebp+var_4] movzx edx, byte ptr [edx+3] movzx edx, [ebp+edx+var_111] shl edx, 12h add eax, edx mov [ebp+var_C], eax mov eax, [ebp+var_8] mov edx, 3 call sub_4020C8 mov eax, [ebp+var_8] mov eax, [eax] call sub_401DF4 push eax mov eax, [ebp+var_8] call sub_401FC4 mov edx, eax lea eax, [ebp+var_C] pop ecx call sub_401210 loc_4042E1: ; CODE XREF: sub_4040EC+BDj ; sub_4040EC+112j ... mov esp, ebp pop ebp retn sub_4040EC endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4042E8 proc near ; CODE XREF: sub_405BE8+8Bp ; sub_407128+37p ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp add esp, 0FFFFFFF0h push ebx xor ebx, ebx mov [ebp+var_10], ebx mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax lea eax, [ebp+var_C] call @System@@WStrAddRef$qqrr17System@WideString ; System::__linkproc__ WStrAddRef(System::WideString &) xor eax, eax push ebp push offset loc_40434A push dword ptr fs:[eax] mov fs:[eax], esp lea eax, [ebp+var_10] mov edx, [ebp+var_4] call @System@@LStrFromWStr$qqrr17System@AnsiStringx17System@WideString ; System::__linkproc__ LStrFromWStr(System::AnsiString &,System::WideString) mov eax, [ebp+var_10] mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] call sub_403BE0 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_404351 loc_404339: ; CODE XREF: sub_4042E8+67j lea eax, [ebp+var_10] call sub_401C00 lea eax, [ebp+var_C] call @System@@WStrClr$qqrpv ; System::__linkproc__ WStrClr(void *) retn ; --------------------------------------------------------------------------- loc_40434A: ; DATA XREF: sub_4042E8+20o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_404339 ; --------------------------------------------------------------------------- loc_404351: ; CODE XREF: sub_4042E8+61j ; DATA XREF: sub_4042E8+4Co pop ebx mov esp, ebp pop ebp retn 4 sub_4042E8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404358 proc near ; DATA XREF: CODE:00409EB8o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_40437D push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B228 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_404384 loc_40437C: ; CODE XREF: sub_404358+2Aj retn ; --------------------------------------------------------------------------- loc_40437D: ; DATA XREF: sub_404358+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_40437C ; --------------------------------------------------------------------------- loc_404384: ; CODE XREF: sub_404358:loc_40437Cj ; DATA XREF: sub_404358+1Fo pop ebp retn sub_404358 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_404388 proc near ; DATA XREF: CODE:00409EB4o sub ds:dword_40B228, 1 retn sub_404388 endp ; --------------------------------------------------------------------------- off_404390 dd offset dword_4043DC ; DATA XREF: sub_406968+6Er dd 2 dup(0) dd offset dword_4043DC dd 4 dup(0) dd offset aKnbbpgxhtslh ; "knbbpgxhtslh" dd 20h dd offset off_40100C dd offset @System@TObject@SafeCallException$qqrp14System@TObjectpv ; System::TObject::SafeCallException(System::TObject *,void *) dd offset nullsub_2 dd offset nullsub_3 dd offset sub_40149C dd offset nullsub_4 dd offset sub_401388 dd offset sub_40139C dd offset sub_40449C dword_4043DC dd 0Eh, 20000h ; CODE:0040439Co db 2 dup(0) dd offset off_401000 unknown_libname_15 dw 0Ch db 2 dup(0) dd offset off_401000 dw 1Ch db 2 dup(0) aKnbbpgxhtslh db 12,'knbbpgxhtslh' ; DATA XREF: CODE:004043B0o align 4 ; [00000096 BYTES: COLLAPSED FUNCTION sub_404404. PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40449C proc near ; DATA XREF: CODE:004043D8o var_5 = byte ptr -5 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF8h call @System@@BeforeDestruction$qqrp14System@TObjectzc ; System::__linkproc__ BeforeDestruction(System::TObject *,signed char) mov [ebp+var_5], dl mov [ebp+var_4], eax mov eax, [ebp+var_4] mov eax, [eax+18h] call sub_4030F8 cmp [ebp+var_5], 0 jle short loc_4044C6 mov eax, [ebp+var_4] call @System@@ClassDestroy$qqrp14System@TObject ; System::__linkproc__ ClassDestroy(System::TObject *) loc_4044C6: ; CODE XREF: sub_40449C+20j pop ecx pop ecx pop ebp retn sub_40449C endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4044CC proc near ; CODE XREF: sub_404404+4Dp var_8 = byte ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF8h push ebx push esi push edi mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_4045B1 push dword ptr fs:[eax] mov fs:[eax], esp mov eax, [ebp+var_4] add eax, 4 push eax mov eax, [ebp+var_4] mov eax, [eax+1Ch] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, ds:off_40A2F0 mov eax, [eax] call eax mov edx, [ebp+var_4] mov [edx+8], eax mov eax, [ebp+var_4] cmp dword ptr [eax+8], 0 jg short loc_40451E xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp loc_4045BB ; --------------------------------------------------------------------------- loc_40451E: ; CODE XREF: sub_4044CC+43j mov eax, [ebp+var_4] mov edx, [eax+8] mov eax, [ebp+var_4] add eax, 0Ch call sub_4020C8 mov eax, [ebp+var_4] mov eax, [eax+0Ch] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, [ebp+var_4] mov eax, [eax+8] push eax mov eax, [ebp+var_4] mov eax, [eax+4] push eax mov eax, [ebp+var_4] mov eax, [eax+1Ch] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, ds:off_40A0CC mov eax, [eax] call eax test eax, eax jnz short loc_40456C xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_4045BB ; --------------------------------------------------------------------------- loc_40456C: ; CODE XREF: sub_4044CC+94j lea eax, [ebp+var_8] push eax mov eax, [ebp+var_4] add eax, 10h push eax mov eax, ds:off_40A27C mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, [ebp+var_4] mov eax, [eax+0Ch] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, ds:off_40A240 mov eax, [eax] call eax test eax, eax jnz short loc_4045A7 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_4045BB ; --------------------------------------------------------------------------- loc_4045A7: ; CODE XREF: sub_4044CC+CFj xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_4045BB ; --------------------------------------------------------------------------- loc_4045B1: ; DATA XREF: sub_4044CC+Fo jmp sub_40161C ; --------------------------------------------------------------------------- call @System@@DoneExcept$qqrv ; System::__linkproc__ DoneExcept(void) loc_4045BB: ; CODE XREF: sub_4044CC+4Dj ; sub_4044CC+9Ej ... pop edi pop esi pop ebx pop ecx pop ecx pop ebp retn sub_4044CC endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4045C4 proc near ; CODE XREF: sub_404404+55p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF8h push ebx push esi push edi mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_40463A push dword ptr fs:[eax] mov fs:[eax], esp mov eax, [ebp+var_4] mov eax, [eax+0Ch] call sub_401DF4 test eax, eax jnz short loc_4045F7 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_404644 ; --------------------------------------------------------------------------- loc_4045F7: ; CODE XREF: sub_4045C4+27j lea eax, [ebp+var_8] push eax mov eax, [ebp+var_4] add eax, 14h push eax push offset dword_40464C mov eax, [ebp+var_4] mov eax, [eax+0Ch] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, ds:off_40A240 mov eax, [eax] call eax test eax, eax jz short loc_404630 cmp [ebp+var_8], 34h jnb short loc_404630 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_404644 ; --------------------------------------------------------------------------- loc_404630: ; CODE XREF: sub_4045C4+5Aj ; sub_4045C4+60j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_404644 ; --------------------------------------------------------------------------- loc_40463A: ; DATA XREF: sub_4045C4+Fo jmp sub_40161C ; --------------------------------------------------------------------------- call @System@@DoneExcept$qqrv ; System::__linkproc__ DoneExcept(void) loc_404644: ; CODE XREF: sub_4045C4+31j ; sub_4045C4+6Aj ... pop edi pop esi pop ebx pop ecx pop ecx pop ebp retn sub_4045C4 endp ; --------------------------------------------------------------------------- align 4 dword_40464C dd 5Ch ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404650 proc near ; CODE XREF: sub_4046FC+2Ap var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFE8h push ebx xor ebx, ebx mov [ebp+var_10], ebx mov [ebp+var_14], ebx mov [ebp+var_18], ebx mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_4046E2 push dword ptr fs:[eax] mov fs:[eax], esp lea eax, [ebp+var_10] mov edx, offset _str__.Text ; BDS 2005-2006 and Delphi6-7 Visual Component Library call sub_401C98 mov eax, [ebp+var_4] call sub_40294C movzx eax, ax lea edx, [ebp+var_18] call sub_4031F0 lea edx, [ebp+var_14] movzx eax, word ptr [ebp+var_8] call sub_4031F0 push [ebp+var_18] push [ebp+var_10] push [ebp+var_14] push [ebp+var_10] push [ebp+var_18] push [ebp+var_10] push [ebp+var_14] mov eax, [ebp+var_C] mov edx, 7 call sub_401EB4 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_4046E9 loc_4046D4: ; CODE XREF: sub_404650+97j lea eax, [ebp+var_18] mov edx, 3 call sub_401C24 retn ; --------------------------------------------------------------------------- loc_4046E2: ; DATA XREF: sub_404650+1Eo jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4046D4 ; --------------------------------------------------------------------------- loc_4046E9: ; CODE XREF: sub_404650+91j ; DATA XREF: sub_404650+7Fo pop ebx mov esp, ebp pop ebp retn sub_404650 endp ; --------------------------------------------------------------------------- align 10h _str__ dd 0FFFFFFFFh ; _top ; DATA XREF: sub_404650+2Co dd 1 ; Len ; BDS 2005-2006 and Delphi6-7 Visual Component Library db '.',0 ; Text align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4046FC proc near ; CODE XREF: sub_406968+81p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF8h mov [ebp+var_8], edx mov [ebp+var_4], eax mov eax, [ebp+var_4] cmp dword ptr [eax+14h], 0 jz short loc_40472B mov ecx, [ebp+var_8] mov eax, [ebp+var_4] mov eax, [eax+14h] mov edx, [eax+0Ch] mov eax, [ebp+var_4] mov eax, [eax+14h] mov eax, [eax+8] call sub_404650 loc_40472B: ; CODE XREF: sub_4046FC+13j pop ecx pop ecx pop ebp retn sub_4046FC endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404730 proc near ; DATA XREF: CODE:00409EC0o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_404755 push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B22C xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_40475C loc_404754: ; CODE XREF: sub_404730+2Aj retn ; --------------------------------------------------------------------------- loc_404755: ; DATA XREF: sub_404730+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_404754 ; --------------------------------------------------------------------------- loc_40475C: ; CODE XREF: sub_404730:loc_404754j ; DATA XREF: sub_404730+1Fo pop ebp retn sub_404730 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_404760 proc near ; DATA XREF: CODE:00409EBCo sub ds:dword_40B22C, 1 retn sub_404760 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404768 proc near ; DATA XREF: CODE:00409EC8o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_40478D push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B230 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_404794 loc_40478C: ; CODE XREF: sub_404768+2Aj retn ; --------------------------------------------------------------------------- loc_40478D: ; DATA XREF: sub_404768+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_40478C ; --------------------------------------------------------------------------- loc_404794: ; CODE XREF: sub_404768:loc_40478Cj ; DATA XREF: sub_404768+1Fo pop ebp retn sub_404768 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_404798 proc near ; DATA XREF: CODE:00409EC4o sub ds:dword_40B230, 1 retn sub_404798 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4047A0 proc near ; DATA XREF: CODE:00409ED0o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_4047C5 push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B234 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_4047CC loc_4047C4: ; CODE XREF: sub_4047A0+2Aj retn ; --------------------------------------------------------------------------- loc_4047C5: ; DATA XREF: sub_4047A0+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4047C4 ; --------------------------------------------------------------------------- loc_4047CC: ; CODE XREF: sub_4047A0:loc_4047C4j ; DATA XREF: sub_4047A0+1Fo pop ebp retn sub_4047A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4047D0 proc near ; DATA XREF: CODE:00409ECCo sub ds:dword_40B234, 1 retn sub_4047D0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4047D8 proc near ; DATA XREF: CODE:00409ED8o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_4047FD push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B238 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_404804 loc_4047FC: ; CODE XREF: sub_4047D8+2Aj retn ; --------------------------------------------------------------------------- loc_4047FD: ; DATA XREF: sub_4047D8+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4047FC ; --------------------------------------------------------------------------- loc_404804: ; CODE XREF: sub_4047D8:loc_4047FCj ; DATA XREF: sub_4047D8+1Fo pop ebp retn sub_4047D8 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_404808 proc near ; DATA XREF: CODE:00409ED4o sub ds:dword_40B238, 1 retn sub_404808 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404810 proc near ; CODE XREF: sub_40484C+2Cp ; sub_404974+2Cp var_C = dword ptr -0Ch var_8 = dword ptr -8 var_1 = byte ptr -1 push ebp mov ebp, esp add esp, 0FFFFFFF4h mov [ebp+var_8], edx mov [ebp+var_1], al mov eax, [ebp+var_8] call sub_401DF4 cmp eax, 1 jl short loc_404844 mov [ebp+var_C], eax loc_40482C: ; CODE XREF: sub_404810+32j mov eax, [ebp+var_C] mov edx, [ebp+var_8] mov al, [edx+eax-1] cmp al, [ebp+var_1] jz short loc_404844 dec [ebp+var_C] cmp [ebp+var_C], 0 jnz short loc_40482C loc_404844: ; CODE XREF: sub_404810+17j ; sub_404810+29j mov eax, [ebp+var_C] mov esp, ebp pop ebp retn sub_404810 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40484C proc near ; CODE XREF: sub_404AD8+51p ; sub_404B64+53p ... var_20 = dword ptr -20h var_1C = byte ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_D = byte ptr -0Dh var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp add esp, 0FFFFFFE0h push ebx xor ebx, ebx mov [ebp+var_14], ebx mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_404963 push dword ptr fs:[eax] mov fs:[eax], esp mov [ebp+var_D], 0 mov edx, [ebp+var_8] mov al, 5Ch call sub_404810 mov [ebp+var_18], eax cmp [ebp+var_18], 0 jle loc_40494D lea eax, [ebp+var_14] push eax mov ecx, [ebp+var_18] dec ecx mov edx, 1 mov eax, [ebp+var_8] call @System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void) lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_20] push eax push 0 push 20006h push 0 push 0 push 0 mov eax, [ebp+var_14] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, [ebp+var_4] push eax mov eax, ds:off_40A2A8 mov eax, [eax] call eax test eax, eax jnz short loc_40494D lea eax, [ebp+var_14] push eax mov eax, [ebp+var_8] call sub_401DF4 mov ecx, eax sub ecx, [ebp+var_18] mov edx, [ebp+var_18] inc edx mov eax, [ebp+var_8] call @System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void) cmp [ebp+var_14], 0 jnz short loc_404916 mov eax, [ebp+arg_0] push eax mov eax, [ebp+arg_4] push eax mov eax, [ebp+var_C] push eax push 0 push 0 mov eax, [ebp+var_20] push eax mov eax, ds:off_40A198 mov eax, [eax] call eax test eax, eax setz [ebp+var_D] jmp short loc_404940 ; --------------------------------------------------------------------------- loc_404916: ; CODE XREF: sub_40484C+A3j mov eax, [ebp+arg_0] push eax mov eax, [ebp+arg_4] push eax mov eax, [ebp+var_C] push eax push 0 mov eax, [ebp+var_14] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, [ebp+var_20] push eax mov eax, ds:off_40A198 mov eax, [eax] call eax test eax, eax setz [ebp+var_D] loc_404940: ; CODE XREF: sub_40484C+C8j mov eax, [ebp+var_20] push eax mov eax, ds:off_40A2C8 mov eax, [eax] call eax loc_40494D: ; CODE XREF: sub_40484C+38j ; sub_40484C+80j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_40496A loc_40495A: ; CODE XREF: sub_40484C+11Cj lea eax, [ebp+var_14] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_404963: ; DATA XREF: sub_40484C+18o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_40495A ; --------------------------------------------------------------------------- loc_40496A: ; CODE XREF: sub_40484C+116j ; DATA XREF: sub_40484C+109o mov al, [ebp+var_D] pop ebx mov esp, ebp pop ebp retn 8 sub_40484C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404974 proc near ; CODE XREF: sub_404CB0+2Ep ; sub_404D24+2Ep ... var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_D = byte ptr -0Dh var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp add esp, 0FFFFFFD4h push ebx xor ebx, ebx mov [ebp+var_14], ebx mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_404AC7 push dword ptr fs:[eax] mov fs:[eax], esp mov [ebp+var_D], 0 mov edx, [ebp+var_8] mov al, 5Ch call sub_404810 mov [ebp+var_18], eax cmp [ebp+var_18], 0 jle loc_404AB1 lea eax, [ebp+var_14] push eax mov ecx, [ebp+var_18] dec ecx mov edx, 1 mov eax, [ebp+var_8] call @System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void) lea eax, [ebp+var_20] push eax push 20019h push 0 mov eax, [ebp+var_14] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, [ebp+var_4] push eax mov eax, ds:off_40A2C4 mov eax, [eax] call eax test eax, eax jnz loc_404AB1 lea eax, [ebp+var_14] push eax mov eax, [ebp+var_8] call sub_401DF4 mov ecx, eax sub ecx, [ebp+var_18] mov edx, [ebp+var_18] inc edx mov eax, [ebp+var_8] call @System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void) cmp [ebp+var_14], 0 jnz short loc_404A1A xor eax, eax mov [ebp+var_2C], eax jmp short loc_404A25 ; --------------------------------------------------------------------------- loc_404A1A: ; CODE XREF: sub_404974+9Dj mov eax, [ebp+var_14] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) mov [ebp+var_2C], eax loc_404A25: ; CODE XREF: sub_404974+A4j lea eax, [ebp+var_28] push eax push 0 lea eax, [ebp+var_1C] push eax push 0 mov eax, [ebp+var_2C] push eax mov eax, [ebp+var_20] push eax mov eax, ds:off_40A170 mov eax, [eax] call eax test eax, eax jnz short loc_404AA4 mov eax, [ebp+var_28] call sub_40114C mov [ebp+var_24], eax lea eax, [ebp+var_28] push eax mov eax, [ebp+var_24] push eax lea eax, [ebp+var_1C] push eax push 0 mov eax, [ebp+var_2C] push eax mov eax, [ebp+var_20] push eax mov eax, ds:off_40A170 mov eax, [eax] call eax test eax, eax jnz short loc_404A9C mov eax, [ebp+var_C] cmp eax, [ebp+var_1C] jnz short loc_404A92 mov eax, [ebp+arg_4] mov edx, [ebp+var_24] mov [eax], edx mov eax, [ebp+arg_0] mov edx, [ebp+var_28] mov [eax], edx mov [ebp+var_D], 1 jmp short loc_404AA4 ; --------------------------------------------------------------------------- loc_404A92: ; CODE XREF: sub_404974+106j mov eax, [ebp+var_24] call sub_401164 jmp short loc_404AA4 ; --------------------------------------------------------------------------- loc_404A9C: ; CODE XREF: sub_404974+FEj mov eax, [ebp+var_24] call sub_401164 loc_404AA4: ; CODE XREF: sub_404974+D0j ; sub_404974+11Cj ... mov eax, [ebp+var_20] push eax mov eax, ds:off_40A2C8 mov eax, [eax] call eax loc_404AB1: ; CODE XREF: sub_404974+38j ; sub_404974+76j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_404ACE loc_404ABE: ; CODE XREF: sub_404974+158j lea eax, [ebp+var_14] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_404AC7: ; DATA XREF: sub_404974+18o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_404ABE ; --------------------------------------------------------------------------- loc_404ACE: ; CODE XREF: sub_404974+152j ; DATA XREF: sub_404974+145o mov al, [ebp+var_D] pop ebx mov esp, ebp pop ebp retn 8 sub_404974 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404AD8 proc near ; CODE XREF: sub_4055F8+62p ; sub_4057E4+B8p ... var_14 = dword ptr -14h var_D = byte ptr -0Dh var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFECh push ebx xor ebx, ebx mov [ebp+var_14], ebx mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_404B47 push dword ptr fs:[eax] mov fs:[eax], esp lea eax, [ebp+var_14] mov ecx, offset dword_404B60 mov edx, [ebp+var_C] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_14] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, [ebp+var_C] call sub_401DF4 inc eax push eax mov ecx, 1 mov edx, [ebp+var_8] mov eax, [ebp+var_4] call sub_40484C mov [ebp+var_D], al xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_404B4E loc_404B3E: ; CODE XREF: sub_404AD8+74j lea eax, [ebp+var_14] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_404B47: ; DATA XREF: sub_404AD8+18o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_404B3E ; --------------------------------------------------------------------------- loc_404B4E: ; CODE XREF: sub_404AD8+6Ej ; DATA XREF: sub_404AD8+61o mov al, [ebp+var_D] pop ebx mov esp, ebp pop ebp retn sub_404AD8 endp ; --------------------------------------------------------------------------- align 4 dd 0FFFFFFFFh, 1 dword_404B60 dd 0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404B64 proc near ; CODE XREF: sub_409718+66p r+9Cp var_14 = dword ptr -14h var_D = byte ptr -0Dh var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFECh push ebx xor ebx, ebx mov [ebp+var_14], ebx mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_404BD5 push dword ptr fs:[eax] mov fs:[eax], esp lea eax, [ebp+var_14] mov ecx, offset dword_404BEC mov edx, [ebp+var_C] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_14] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, [ebp+var_C] call sub_401DF4 add eax, 2 push eax mov ecx, 7 mov edx, [ebp+var_8] mov eax, [ebp+var_4] call sub_40484C mov [ebp+var_D], al xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_404BDC loc_404BCC: ; CODE XREF: sub_404B64+76j lea eax, [ebp+var_14] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_404BD5: ; DATA XREF: sub_404B64+18o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_404BCC ; --------------------------------------------------------------------------- loc_404BDC: ; CODE XREF: sub_404B64+70j ; DATA XREF: sub_404B64+63o mov al, [ebp+var_D] pop ebx mov esp, ebp pop ebp retn sub_404B64 endp ; --------------------------------------------------------------------------- dd 0FFFFFFFFh, 2 dword_404BEC dd 0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404BF0 proc near ; CODE XREF: r+25Ep var_14 = dword ptr -14h var_D = byte ptr -0Dh var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFECh push ebx xor ebx, ebx mov [ebp+var_14], ebx mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_404C5F push dword ptr fs:[eax] mov fs:[eax], esp lea eax, [ebp+var_14] mov ecx, offset dword_404C78 mov edx, [ebp+var_C] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_14] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, [ebp+var_C] call sub_401DF4 inc eax push eax mov ecx, 2 mov edx, [ebp+var_8] mov eax, [ebp+var_4] call sub_40484C mov [ebp+var_D], al xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_404C66 loc_404C56: ; CODE XREF: sub_404BF0+74j lea eax, [ebp+var_14] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_404C5F: ; DATA XREF: sub_404BF0+18o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_404C56 ; --------------------------------------------------------------------------- loc_404C66: ; CODE XREF: sub_404BF0+6Ej ; DATA XREF: sub_404BF0+61o mov al, [ebp+var_D] pop ebx mov esp, ebp pop ebp retn sub_404BF0 endp ; --------------------------------------------------------------------------- align 10h dd 0FFFFFFFFh, 1 dword_404C78 dd 0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404C7C proc near ; CODE XREF: sub_4057E4+6Ep var_D = byte ptr -0Dh var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp add esp, 0FFFFFFF0h mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax mov eax, [ebp+var_C] push eax mov eax, [ebp+arg_0] inc eax push eax mov ecx, 3 mov edx, [ebp+var_8] mov eax, [ebp+var_4] call sub_40484C mov [ebp+var_D], al mov al, [ebp+var_D] mov esp, ebp pop ebp retn 4 sub_404C7C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404CB0 proc near ; CODE XREF: sub_405688+5Ap var_18 = dword ptr -18h var_14 = dword ptr -14h var_D = byte ptr -0Dh var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFE8h mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax mov [ebp+var_D], 0 mov eax, [ebp+var_C] call sub_401C00 lea eax, [ebp+var_14] push eax lea eax, [ebp+var_18] push eax mov ecx, 1 mov edx, [ebp+var_8] mov eax, [ebp+var_4] call sub_404974 test al, al jz short loc_404D1C dec [ebp+var_18] mov eax, [ebp+var_C] mov edx, [ebp+var_18] call sub_4020C8 cmp [ebp+var_18], 0 jbe short loc_404D10 mov eax, [ebp+var_C] call sub_401FC4 mov edx, eax mov eax, [ebp+var_14] mov ecx, [ebp+var_18] call sub_401210 loc_404D10: ; CODE XREF: sub_404CB0+49j mov eax, [ebp+var_14] call sub_401164 mov [ebp+var_D], 1 loc_404D1C: ; CODE XREF: sub_404CB0+35j mov al, [ebp+var_D] mov esp, ebp pop ebp retn sub_404CB0 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404D24 proc near ; CODE XREF: sub_409718+23p r+58p var_18 = dword ptr -18h var_14 = dword ptr -14h var_D = byte ptr -0Dh var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFE8h mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax mov [ebp+var_D], 0 mov eax, [ebp+var_C] call sub_401C00 lea eax, [ebp+var_14] push eax lea eax, [ebp+var_18] push eax mov ecx, 7 mov edx, [ebp+var_8] mov eax, [ebp+var_4] call sub_404974 test al, al jz short loc_404D90 dec [ebp+var_18] mov eax, [ebp+var_C] mov edx, [ebp+var_18] call sub_4020C8 cmp [ebp+var_18], 0 jbe short loc_404D84 mov eax, [ebp+var_C] call sub_401FC4 mov edx, eax mov eax, [ebp+var_14] mov ecx, [ebp+var_18] call sub_401210 loc_404D84: ; CODE XREF: sub_404D24+49j mov eax, [ebp+var_14] call sub_401164 mov [ebp+var_D], 1 loc_404D90: ; CODE XREF: sub_404D24+35j mov al, [ebp+var_D] mov esp, ebp pop ebp retn sub_404D24 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404D98 proc near ; CODE XREF: sub_405718+52p var_18 = dword ptr -18h var_14 = dword ptr -14h var_D = byte ptr -0Dh var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFE8h mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax mov [ebp+var_D], 0 mov eax, [ebp+var_C] call sub_401C00 lea eax, [ebp+var_14] push eax lea eax, [ebp+var_18] push eax mov ecx, 3 mov edx, [ebp+var_8] mov eax, [ebp+var_4] call sub_404974 test al, al jz short loc_404DFB mov eax, [ebp+var_C] mov edx, [ebp+var_18] call sub_4020C8 mov eax, [ebp+var_C] call sub_401FC4 mov edx, eax mov eax, [ebp+var_14] mov ecx, [ebp+var_18] call sub_401210 mov eax, [ebp+var_14] call sub_401164 mov [ebp+var_D], 1 loc_404DFB: ; CODE XREF: sub_404D98+35j mov al, [ebp+var_D] mov esp, ebp pop ebp retn sub_404D98 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404E04 proc near ; DATA XREF: CODE:00409EE0o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_404E29 push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B23C xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_404E30 loc_404E28: ; CODE XREF: sub_404E04+2Aj retn ; --------------------------------------------------------------------------- loc_404E29: ; DATA XREF: sub_404E04+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_404E28 ; --------------------------------------------------------------------------- loc_404E30: ; CODE XREF: sub_404E04:loc_404E28j ; DATA XREF: sub_404E04+1Fo pop ebp retn sub_404E04 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_404E34 proc near ; DATA XREF: CODE:00409EDCo sub ds:dword_40B23C, 1 retn sub_404E34 endp ; --------------------------------------------------------------------------- off_404E3C dd offset dword_404E88 ; DATA XREF: sub_4051B8+3Er ; sub_405348+33r dd 2 dup(0) dd offset dword_404E88 dd 4 dup(0) dd offset aKahjk ; "kahjk" dd 10h dd offset off_40100C dd offset @System@TObject@SafeCallException$qqrp14System@TObjectpv ; System::TObject::SafeCallException(System::TObject *,void *) dd offset nullsub_2 dd offset nullsub_3 dd offset sub_40149C dd offset nullsub_4 dd offset sub_401388 dd offset sub_40139C dd offset @System@TObject@$bdtr$qqrv ; System::TObject::~TObject(void) dword_404E88 dd 0Eh, 10000h ; CODE:00404E48o db 2 dup(0) dd offset off_401000 db 8 ; Method db 0 db 0 ; Procedure db 0 aKahjk db 5,'kahjk' ; DATA XREF: CODE:00404E5Co ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404EA0 proc near ; CODE XREF: sub_4051B8+6Ep ; sub_405348+6Bp var_24 = word ptr -24h var_22 = word ptr -22h var_20 = dword ptr -20h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_5 = byte ptr -5 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFDCh push ebx push esi push edi mov [ebp+var_14], edx mov [ebp+var_4], eax mov [ebp+var_5], 0 xor eax, eax push ebp push offset loc_404FF4 push dword ptr fs:[eax] mov fs:[eax], esp push 0 push 1 push 2 mov eax, ds:off_40A284 mov eax, [eax] call eax mov edx, [ebp+var_4] mov [edx+4], eax mov eax, [ebp+var_4] cmp dword ptr [eax+4], 0FFFFFFFFh jnz short loc_404EEC xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp loc_404FFE ; --------------------------------------------------------------------------- loc_404EEC: ; CODE XREF: sub_404EA0+3Dj lea eax, [ebp+var_24] mov edx, 10h call @Windows@ZeroMemory$qqrpvui ; Windows::ZeroMemory(void *,uint) mov [ebp+var_24], 2 mov eax, [ebp+var_4] mov ax, [eax+0Ch] push eax mov eax, ds:off_40A2E0 mov eax, [eax] call eax mov [ebp+var_22], ax mov eax, [ebp+var_4] mov eax, [eax+8] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, ds:off_40A30C mov eax, [eax] call eax mov [ebp+var_10], eax cmp [ebp+var_10], 0 jnz short loc_404F3F xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp loc_404FFE ; --------------------------------------------------------------------------- loc_404F3F: ; CODE XREF: sub_404EA0+90j mov eax, [ebp+var_10] mov eax, [eax+0Ch] mov eax, [eax] push dword ptr [eax] mov eax, ds:off_40A2B4 mov eax, [eax] call eax push eax mov eax, ds:off_40A14C mov eax, [eax] call eax mov [ebp+var_20], eax push 10h lea eax, [ebp+var_24] push eax mov eax, [ebp+var_4] mov eax, [eax+4] push eax mov eax, ds:off_40A204 mov eax, [eax] call eax test eax, eax jz short loc_404F83 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_404FFE ; --------------------------------------------------------------------------- loc_404F83: ; CODE XREF: sub_404EA0+D7j mov [ebp+var_C], 7530h push 4 lea eax, [ebp+var_C] push eax push 1005h push 0FFFFh mov eax, [ebp+var_4] mov eax, [eax+4] push eax mov eax, ds:off_40A290 mov eax, [eax] call eax test eax, eax jz short loc_404FB8 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_404FFE ; --------------------------------------------------------------------------- loc_404FB8: ; CODE XREF: sub_404EA0+10Cj push 4 lea eax, [ebp+var_C] push eax push 1006h push 0FFFFh mov eax, [ebp+var_4] mov eax, [eax+4] push eax mov eax, ds:off_40A290 mov eax, [eax] call eax test eax, eax jz short loc_404FE6 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_404FFE ; --------------------------------------------------------------------------- loc_404FE6: ; CODE XREF: sub_404EA0+13Aj mov [ebp+var_5], 1 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_404FFE ; --------------------------------------------------------------------------- loc_404FF4: ; DATA XREF: sub_404EA0+16o jmp sub_40161C ; --------------------------------------------------------------------------- call @System@@DoneExcept$qqrv ; System::__linkproc__ DoneExcept(void) loc_404FFE: ; CODE XREF: sub_404EA0+47j ; sub_404EA0+9Aj ... mov al, [ebp+var_5] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_404EA0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405008 proc near ; CODE XREF: sub_4051B8+F8p ; sub_405348+F5p ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] mov eax, [eax+4] push eax mov eax, ds:off_40A1B0 mov eax, [eax] call eax pop ecx pop ebp retn sub_405008 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405024 proc near ; CODE XREF: sub_405518+15p var_11 = byte ptr -11h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFECh mov [ebp+var_11], dl mov [ebp+var_4], eax push 0 push 4 lea eax, [ebp+var_C] push eax mov eax, [ebp+var_4] mov eax, [eax+4] push eax mov eax, ds:off_40A300 mov eax, [eax] call eax mov [ebp+var_10], eax cmp [ebp+var_10], 4 jz short loc_405058 xor eax, eax mov [ebp+var_8], eax jmp short loc_405068 ; --------------------------------------------------------------------------- loc_405058: ; CODE XREF: sub_405024+2Bj mov eax, [ebp+var_C] push eax mov eax, ds:off_40A1C0 mov eax, [eax] call eax mov [ebp+var_8], eax loc_405068: ; CODE XREF: sub_405024+32j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_405024 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405070 proc near ; CODE XREF: sub_405518+39p var_14 = dword ptr -14h var_D = byte ptr -0Dh var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFECh mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax xor eax, eax mov [ebp+var_14], eax mov [ebp+var_D], 0 mov eax, [ebp+var_C] mov edx, [ebp+var_8] call sub_4020C8 cmp [ebp+var_8], 0 jle short loc_4050D2 loc_405099: ; CODE XREF: sub_405070+60j push 0 mov eax, [ebp+var_8] push eax mov eax, [ebp+var_C] call sub_401FC4 mov edx, [ebp+var_14] add eax, edx push eax mov eax, [ebp+var_4] mov eax, [eax+4] push eax mov eax, ds:off_40A300 mov eax, [eax] call eax mov [ebp+var_14], eax cmp [ebp+var_14], 0FFFFFFFFh jz short loc_4050D2 mov eax, [ebp+var_14] sub [ebp+var_8], eax cmp [ebp+var_8], 0 jg short loc_405099 loc_4050D2: ; CODE XREF: sub_405070+27j ; sub_405070+54j cmp [ebp+var_8], 0 jnz short loc_4050DC mov [ebp+var_D], 1 loc_4050DC: ; CODE XREF: sub_405070+66j mov al, [ebp+var_D] mov esp, ebp pop ebp retn sub_405070 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4050E4 proc near ; CODE XREF: sub_4054B0+40p var_10 = dword ptr -10h var_9 = byte ptr -9 var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF0h mov [ebp+var_8], edx mov [ebp+var_4], eax mov eax, [ebp+var_8] call sub_401FA8 xor eax, eax push ebp push offset loc_405158 push dword ptr fs:[eax] mov fs:[eax], esp mov [ebp+var_9], 0 push 0 mov eax, [ebp+var_8] call sub_401DF4 push eax lea eax, [ebp+var_8] call sub_401FC4 push eax mov eax, [ebp+var_4] mov eax, [eax+4] push eax mov eax, ds:off_40A2D4 mov eax, [eax] call eax mov [ebp+var_10], eax mov eax, [ebp+var_8] call sub_401DF4 cmp eax, [ebp+var_10] jnz short loc_405142 mov [ebp+var_9], 1 loc_405142: ; CODE XREF: sub_4050E4+58j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_40515F loc_40514F: ; CODE XREF: sub_4050E4+79j lea eax, [ebp+var_8] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_405158: ; DATA XREF: sub_4050E4+17o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_40514F ; --------------------------------------------------------------------------- loc_40515F: ; CODE XREF: sub_4050E4+73j ; DATA XREF: sub_4050E4+66o mov al, [ebp+var_9] mov esp, ebp pop ebp retn sub_4050E4 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405168 proc near ; CODE XREF: sub_405484+16p ; sub_405484+23p ... var_11 = byte ptr -11h var_10 = dword ptr -10h var_9 = byte ptr -9 var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFECh mov [ebp+var_11], cl mov [ebp+var_8], edx mov [ebp+var_4], eax mov [ebp+var_9], 0 mov eax, [ebp+var_8] push eax mov eax, ds:off_40A1BC mov eax, [eax] call eax mov [ebp+var_8], eax push 0 push 4 lea eax, [ebp+var_8] push eax mov eax, [ebp+var_4] mov eax, [eax+4] push eax mov eax, ds:off_40A2D4 mov eax, [eax] call eax mov [ebp+var_10], eax cmp [ebp+var_10], 4 jnz short loc_4051B0 mov [ebp+var_9], 1 loc_4051B0: ; CODE XREF: sub_405168+42j mov al, [ebp+var_9] mov esp, ebp pop ebp retn sub_405168 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4051B8 proc near ; CODE XREF: sub_405964+DFp var_15 = byte ptr -15h var_14 = dword ptr -14h var_D = byte ptr -0Dh var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp add esp, 0FFFFFFE8h push ebx push esi push edi mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax mov eax, [ebp+var_4] call sub_401FA8 mov eax, [ebp+var_C] call sub_401FA8 xor eax, eax push ebp push offset loc_4052E3 push dword ptr fs:[eax] mov fs:[eax], esp mov [ebp+var_D], 0 mov eax, [ebp+arg_0] call sub_401C00 mov dl, 1 mov eax, off_404E3C call unknown_libname_3 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov [ebp+var_14], eax mov eax, [ebp+var_14] add eax, 8 mov edx, [ebp+var_4] call sub_401C54 mov eax, ds:off_40A230 mov eax, [eax] mov edx, [ebp+var_14] mov [edx+0Ch], eax mov edx, 1D4C0h mov eax, [ebp+var_14] call sub_404EA0 mov [ebp+var_15], al cmp [ebp+var_15], 0 jz loc_4052C5 xor eax, eax push ebp push offset loc_4052BE push dword ptr fs:[eax] mov fs:[eax], esp xor eax, eax push ebp push offset loc_405296 push dword ptr fs:[eax] mov fs:[eax], esp mov edx, [ebp+var_8] mov eax, [ebp+var_14] call sub_405484 mov edx, [ebp+var_C] mov eax, [ebp+var_14] call sub_4054B0 mov eax, 12Ch call sub_406954 mov edx, [ebp+arg_0] mov eax, [ebp+var_14] call sub_405518 mov [ebp+var_15], al cmp [ebp+var_15], 0 jz short loc_40528C mov [ebp+var_D], 1 loc_40528C: ; CODE XREF: sub_4051B8+CEj xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_4052A0 ; --------------------------------------------------------------------------- loc_405296: ; DATA XREF: sub_4051B8+91o jmp sub_40161C ; --------------------------------------------------------------------------- call @System@@DoneExcept$qqrv ; System::__linkproc__ DoneExcept(void) loc_4052A0: ; CODE XREF: sub_4051B8+DCj xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_4052C5 loc_4052AD: ; CODE XREF: sub_4051B8+10Bj mov eax, [ebp+var_14] call sub_405008 mov eax, [ebp+var_14] call sub_4013F4 retn ; --------------------------------------------------------------------------- loc_4052BE: ; DATA XREF: sub_4051B8+83o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4052AD ; --------------------------------------------------------------------------- loc_4052C5: ; CODE XREF: sub_4051B8+7Aj ; sub_4051B8+105j ; DATA XREF: ... xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_4052EA loc_4052D2: ; CODE XREF: sub_4051B8+130j lea eax, [ebp+var_C] call sub_401C00 lea eax, [ebp+var_4] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_4052E3: ; DATA XREF: sub_4051B8+25o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4052D2 ; --------------------------------------------------------------------------- loc_4052EA: ; CODE XREF: sub_4051B8+12Aj ; DATA XREF: sub_4051B8+115o mov al, [ebp+var_D] pop edi pop esi pop ebx mov esp, ebp pop ebp retn 4 sub_4051B8 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4052F8 proc near ; CODE XREF: sub_405348+43p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF8h mov [ebp+var_4], eax mov eax, [ebp+var_4] call sub_401C00 mov eax, ds:off_40A1F8 mov eax, [eax] mov eax, [eax+1Ch] call sub_401304 mov [ebp+var_8], eax cmp [ebp+var_8], 0 jl short loc_405342 mov eax, ds:off_40A1F8 mov eax, [eax] mov eax, [eax+1Ch] cmp eax, [ebp+var_8] jle short loc_405342 mov ecx, [ebp+var_4] mov eax, ds:off_40A1F8 mov eax, [eax] mov edx, [ebp+var_8] call sub_4033C8 loc_405342: ; CODE XREF: sub_4052F8+27j ; sub_4052F8+36j pop ecx pop ecx pop ebp retn sub_4052F8 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405348 proc near ; CODE XREF: sub_405AC8+63p ; sub_405BE8+61p var_1C = dword ptr -1Ch var_15 = byte ptr -15h var_14 = dword ptr -14h var_D = byte ptr -0Dh var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFE4h push ebx push esi push edi xor ebx, ebx mov [ebp+var_1C], ebx mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax mov eax, [ebp+var_8] call sub_401FA8 xor eax, eax push ebp push offset loc_405470 push dword ptr fs:[eax] mov fs:[eax], esp mov [ebp+var_D], 0 mov dl, 1 mov eax, off_404E3C call unknown_libname_3 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov [ebp+var_14], eax lea eax, [ebp+var_1C] call sub_4052F8 mov edx, [ebp+var_1C] mov eax, [ebp+var_14] add eax, 8 call sub_401C54 mov eax, ds:off_40A230 mov eax, [eax] mov edx, [ebp+var_14] mov [edx+0Ch], eax mov edx, 1D4C0h mov eax, [ebp+var_14] call sub_404EA0 mov [ebp+var_15], al cmp [ebp+var_15], 0 jz loc_405452 xor eax, eax push ebp push offset loc_40544B push dword ptr fs:[eax] mov fs:[eax], esp xor eax, eax push ebp push offset loc_405423 push dword ptr fs:[eax] mov fs:[eax], esp mov edx, [ebp+var_4] mov eax, [ebp+var_14] call sub_405484 mov edx, [ebp+var_8] mov eax, [ebp+var_14] call sub_4054B0 mov eax, 64h call sub_406954 mov edx, [ebp+var_C] mov eax, [ebp+var_14] call sub_405518 mov [ebp+var_15], al cmp [ebp+var_15], 0 jz short loc_405419 mov [ebp+var_D], 1 loc_405419: ; CODE XREF: sub_405348+CBj xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_40542D ; --------------------------------------------------------------------------- loc_405423: ; DATA XREF: sub_405348+8Eo jmp sub_40161C ; --------------------------------------------------------------------------- call @System@@DoneExcept$qqrv ; System::__linkproc__ DoneExcept(void) loc_40542D: ; CODE XREF: sub_405348+D9j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_405452 loc_40543A: ; CODE XREF: sub_405348+108j mov eax, [ebp+var_14] call sub_405008 mov eax, [ebp+var_14] call sub_4013F4 retn ; --------------------------------------------------------------------------- loc_40544B: ; DATA XREF: sub_405348+80o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_40543A ; --------------------------------------------------------------------------- loc_405452: ; CODE XREF: sub_405348+77j ; sub_405348+102j ; DATA XREF: ... xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_405477 loc_40545F: ; CODE XREF: sub_405348+12Dj lea eax, [ebp+var_1C] call sub_401C00 lea eax, [ebp+var_8] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_405470: ; DATA XREF: sub_405348+22o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_40545F ; --------------------------------------------------------------------------- loc_405477: ; CODE XREF: sub_405348+127j ; DATA XREF: sub_405348+112o mov al, [ebp+var_D] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_405348 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405484 proc near ; CODE XREF: sub_4051B8+A2p ; sub_405348+9Fp var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF8h mov [ebp+var_8], edx mov [ebp+var_4], eax mov cl, 1 mov edx, 78E3h mov eax, [ebp+var_4] call sub_405168 mov cl, 1 mov edx, [ebp+var_8] mov eax, [ebp+var_4] call sub_405168 pop ecx pop ecx pop ebp retn sub_405484 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4054B0 proc near ; CODE XREF: sub_4051B8+ADp ; sub_405348+AAp var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF4h mov [ebp+var_8], edx mov [ebp+var_4], eax mov eax, [ebp+var_8] call sub_401FA8 xor eax, eax push ebp push offset loc_40550B push dword ptr fs:[eax] mov fs:[eax], esp mov eax, [ebp+var_8] call sub_401DF4 mov [ebp+var_C], eax mov cl, 1 mov edx, [ebp+var_C] mov eax, [ebp+var_4] call sub_405168 mov edx, [ebp+var_8] mov eax, [ebp+var_4] call sub_4050E4 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_405512 loc_405502: ; CODE XREF: sub_4054B0+60j lea eax, [ebp+var_8] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_40550B: ; DATA XREF: sub_4054B0+17o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_405502 ; --------------------------------------------------------------------------- loc_405512: ; CODE XREF: sub_4054B0+5Aj ; DATA XREF: sub_4054B0+4Do mov esp, ebp pop ebp retn sub_4054B0 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405518 proc near ; CODE XREF: sub_4051B8+C2p ; sub_405348+BFp var_10 = dword ptr -10h var_9 = byte ptr -9 var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF0h mov [ebp+var_8], edx mov [ebp+var_4], eax mov [ebp+var_9], 0 mov dl, 1 mov eax, [ebp+var_4] call sub_405024 mov [ebp+var_10], eax cmp [ebp+var_10], 5B8D80h jle short loc_405548 mov eax, [ebp+var_4] call sub_405008 jmp short loc_405559 ; --------------------------------------------------------------------------- loc_405548: ; CODE XREF: sub_405518+24j mov ecx, [ebp+var_8] mov edx, [ebp+var_10] mov eax, [ebp+var_4] call sub_405070 mov [ebp+var_9], al loc_405559: ; CODE XREF: sub_405518+2Ej mov al, [ebp+var_9] mov esp, ebp pop ebp retn sub_405518 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405560 proc near ; DATA XREF: CODE:00409EE8o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_405585 push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B240 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_40558C loc_405584: ; CODE XREF: sub_405560+2Aj retn ; --------------------------------------------------------------------------- loc_405585: ; DATA XREF: sub_405560+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_405584 ; --------------------------------------------------------------------------- loc_40558C: ; CODE XREF: sub_405560:loc_405584j ; DATA XREF: sub_405560+1Fo pop ebp retn sub_405560 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_405590 proc near ; DATA XREF: CODE:00409EE4o sub ds:dword_40B240, 1 retn sub_405590 endp ; =============== S U B R O U T I N E ======================================= sub_405598 proc near ; CODE XREF: sub_4063E8+3Fp r+29p ... mov eax, ds:off_40A294 mov eax, [eax] call eax mov edx, ds:off_40A308 mov [edx], eax retn sub_405598 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4055AC proc near ; CODE XREF: sub_4055D4+6p ; sub_405718+5Bp ... var_18 = byte ptr -18h var_8 = qword ptr -8 push ebp mov ebp, esp add esp, 0FFFFFFE8h lea eax, [ebp+var_18] push eax mov eax, ds:off_40A304 mov eax, [eax] call eax lea edx, [ebp+var_8] lea eax, [ebp+var_18] call sub_402D3C fld [ebp+var_8] mov esp, ebp pop ebp retn sub_4055AC endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4055D4 proc near ; CODE XREF: sub_4063E8:loc_406500p ; sub_4063E8+3D8p var_10 = qword ptr -10h var_8 = qword ptr -8 push ebp mov ebp, esp add esp, 0FFFFFFF0h call sub_4055AC call sub_40127C mov dword ptr [ebp+var_10], eax mov dword ptr [ebp+var_10+4], edx fild [ebp+var_10] fstp [ebp+var_8] wait fld [ebp+var_8] mov esp, ebp pop ebp retn sub_4055D4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4055F8 proc near ; CODE XREF: sub_4063E8+BAp ; sub_4063E8+38Dp ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF0h xor ecx, ecx mov [ebp+var_C], ecx mov [ebp+var_10], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax mov eax, [ebp+var_4] call sub_401FA8 mov eax, [ebp+var_8] call sub_401FA8 xor eax, eax push ebp push offset loc_40567A push dword ptr fs:[eax] mov fs:[eax], esp mov edx, ds:off_40A1D0 mov edx, [edx] lea eax, [ebp+var_10] mov ecx, [ebp+var_4] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_10] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) mov edx, eax lea eax, [ebp+var_C] call unknown_libname_8 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov edx, [ebp+var_C] mov ecx, [ebp+var_8] mov eax, 80000002h call sub_404AD8 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_405681 loc_40566C: ; CODE XREF: sub_4055F8+87j lea eax, [ebp+var_10] mov edx, 4 call sub_401C24 retn ; --------------------------------------------------------------------------- loc_40567A: ; DATA XREF: sub_4055F8+27o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_40566C ; --------------------------------------------------------------------------- loc_405681: ; CODE XREF: sub_4055F8+81j ; DATA XREF: sub_4055F8+6Fo mov esp, ebp pop ebp retn sub_4055F8 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405688 proc near ; CODE XREF: sub_406F40+26p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF0h xor ecx, ecx mov [ebp+var_C], ecx mov [ebp+var_10], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax mov eax, [ebp+var_4] call sub_401FA8 xor eax, eax push ebp push offset loc_40570A push dword ptr fs:[eax] mov fs:[eax], esp mov edx, ds:off_40A1D0 mov edx, [edx] lea eax, [ebp+var_10] mov ecx, [ebp+var_4] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_10] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) mov edx, eax lea eax, [ebp+var_C] call unknown_libname_8 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov edx, [ebp+var_C] mov ecx, [ebp+var_8] mov eax, 80000002h call sub_404CB0 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_405711 loc_4056F4: ; CODE XREF: sub_405688+87j lea eax, [ebp+var_10] mov edx, 2 call sub_401C24 lea eax, [ebp+var_4] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_40570A: ; DATA XREF: sub_405688+1Fo jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4056F4 ; --------------------------------------------------------------------------- loc_405711: ; CODE XREF: sub_405688+81j ; DATA XREF: sub_405688+67o mov esp, ebp pop ebp retn sub_405688 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405718 proc near ; CODE XREF: sub_4057C4+Dp var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = qword ptr -10h var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFE4h xor edx, edx mov [ebp+var_18], edx mov [ebp+var_1C], edx mov [ebp+var_14], edx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_4057B2 push dword ptr fs:[eax] mov fs:[eax], esp mov edx, ds:off_40A1D0 mov edx, [edx] lea eax, [ebp+var_1C] mov ecx, [ebp+var_4] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_1C] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) mov edx, eax lea eax, [ebp+var_18] call unknown_libname_8 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov edx, [ebp+var_18] lea ecx, [ebp+var_14] mov eax, 80000002h call sub_404D98 test al, al jnz short loc_405784 call sub_4055AC fsub flt_4057C0 fstp [ebp+var_10] wait jmp short loc_405797 ; --------------------------------------------------------------------------- loc_405784: ; CODE XREF: sub_405718+59j mov eax, [ebp+var_14] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) mov edx, [eax] mov dword ptr [ebp+var_10], edx mov edx, [eax+4] mov dword ptr [ebp+var_10+4], edx loc_405797: ; CODE XREF: sub_405718+6Aj xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_4057B9 loc_4057A4: ; CODE XREF: sub_405718+9Fj lea eax, [ebp+var_1C] mov edx, 3 call sub_401C24 retn ; --------------------------------------------------------------------------- loc_4057B2: ; DATA XREF: sub_405718+17o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4057A4 ; --------------------------------------------------------------------------- loc_4057B9: ; CODE XREF: sub_405718+99j ; DATA XREF: sub_405718+87o fld [ebp+var_10] mov esp, ebp pop ebp retn sub_405718 endp ; --------------------------------------------------------------------------- flt_4057C0 dd 1.0e1 ; DATA XREF: sub_405718+60r ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4057C4 proc near ; CODE XREF: sub_4058C8+1Bp var_8 = qword ptr -8 push ebp mov ebp, esp add esp, 0FFFFFFF8h mov eax, ds:off_40A320 mov eax, [eax] call sub_405718 fstp [ebp+var_8] wait fld [ebp+var_8] pop ecx pop ecx pop ebp retn sub_4057C4 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4057E4 proc near ; CODE XREF: sub_4063E8+191p var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = byte ptr -10h var_8 = qword ptr -8 push ebp mov ebp, esp mov ecx, 4 loc_4057EC: ; CODE XREF: sub_4057E4+Dj push 0 push 0 dec ecx jnz short loc_4057EC push ecx xor eax, eax push ebp push offset loc_4058BC push dword ptr fs:[eax] mov fs:[eax], esp call sub_4055AC fstp [ebp+var_8] wait lea edx, [ebp+var_10] lea eax, [ebp+var_8] mov ecx, 8 call sub_401210 push 7 mov ecx, ds:off_40A320 mov ecx, [ecx] mov edx, ds:off_40A1D0 mov edx, [edx] lea eax, [ebp+var_1C] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_1C] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) mov edx, eax lea eax, [ebp+var_18] call unknown_libname_8 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov edx, [ebp+var_18] lea ecx, [ebp+var_10] mov eax, 80000002h call sub_404C7C lea eax, [ebp+var_14] mov edx, ds:off_40A0D8 mov edx, [edx] call sub_401C98 mov ecx, ds:off_40A150 mov ecx, [ecx] mov edx, ds:off_40A1D0 mov edx, [edx] lea eax, [ebp+var_24] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_24] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) mov edx, eax lea eax, [ebp+var_20] call unknown_libname_8 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov edx, [ebp+var_20] mov ecx, [ebp+var_14] mov eax, 80000002h call sub_404AD8 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_4058C3 loc_4058AE: ; CODE XREF: sub_4057E4+DDj lea eax, [ebp+var_24] mov edx, 5 call sub_401C24 retn ; --------------------------------------------------------------------------- loc_4058BC: ; DATA XREF: sub_4057E4+13o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4058AE ; --------------------------------------------------------------------------- loc_4058C3: ; CODE XREF: sub_4057E4+D7j ; DATA XREF: sub_4057E4+C5o mov esp, ebp pop ebp retn sub_4057E4 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4058C8 proc near ; CODE XREF: sub_4063E8:loc_406555p var_38 = qword ptr -38h var_18 = qword ptr -18h var_10 = qword ptr -10h var_1 = byte ptr -1 push ebp mov ebp, esp add esp, 0FFFFFFE8h push ebx push esi push edi mov [ebp+var_1], 0 xor eax, eax push ebp push offset loc_40594B push dword ptr fs:[eax] mov fs:[eax], esp call sub_4057C4 fstp [ebp+var_10] wait call sub_4055AC add esp, 0FFFFFFF8h fstp [esp+38h+var_38] wait push dword ptr [ebp+var_10+4] push dword ptr [ebp+var_10] ; double call sub_40692C fstp [ebp+var_18] wait fld [ebp+var_18] fcomp flt_405960 fnstsw ax sahf jnb short loc_405938 call sub_4055AC add esp, 0FFFFFFF8h fstp [esp+38h+var_38] wait call @Dateutils@DayOf$qqrx16System@TDateTime ; Dateutils::DayOf(System::TDateTime) mov ebx, eax push dword ptr [ebp+var_10+4] push dword ptr [ebp+var_10] ; double call @Dateutils@DayOf$qqrx16System@TDateTime ; Dateutils::DayOf(System::TDateTime) cmp bx, ax jz short loc_40593C loc_405938: ; CODE XREF: sub_4058C8+4Bj xor eax, eax jmp short loc_40593E ; --------------------------------------------------------------------------- loc_40593C: ; CODE XREF: sub_4058C8+6Ej mov al, 1 loc_40593E: ; CODE XREF: sub_4058C8+72j mov [ebp+var_1], al xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_405955 ; --------------------------------------------------------------------------- loc_40594B: ; DATA XREF: sub_4058C8+10o jmp sub_40161C ; --------------------------------------------------------------------------- call @System@@DoneExcept$qqrv ; System::__linkproc__ DoneExcept(void) loc_405955: ; CODE XREF: sub_4058C8+81j mov al, [ebp+var_1] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4058C8 endp ; --------------------------------------------------------------------------- align 10h flt_405960 dd 1.2e1 ; DATA XREF: sub_4058C8+42r ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405964 proc near ; CODE XREF: sub_4063E8+CEp var_44 = dword ptr -44h var_40 = byte ptr -40h var_3C = byte ptr -3Ch var_38 = byte ptr -38h var_34 = byte ptr -34h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFBCh push ebx push esi push edi xor ecx, ecx mov [ebp+var_C], ecx mov [ebp+var_10], ecx mov [ebp+var_14], ecx mov [ebp+var_18], edx mov [ebp+var_4], eax mov ecx, 0Bh lea eax, [ebp+var_44] mov edx, off_401000 call sub_402250 xor eax, eax push ebp push offset loc_405AB8 push dword ptr fs:[eax] mov fs:[eax], esp lea eax, [ebp+var_14] mov edx, ds:off_40A1A0 mov edx, [edx] call sub_401C98 xor eax, eax push ebp push offset loc_405A80 push dword ptr fs:[eax] mov fs:[eax], esp lea eax, [ebp+var_44] mov edx, ds:off_40A1A0 mov edx, [edx] call sub_401C98 lea eax, [ebp+var_40] mov edx, ds:off_40A1AC mov edx, [edx] call sub_401C98 lea eax, [ebp+var_3C] mov edx, ds:off_40A0E8 mov edx, [edx] call sub_401C98 lea eax, [ebp+var_38] mov edx, ds:off_40A2DC mov edx, [edx] call sub_401C98 lea eax, [ebp+var_34] mov edx, ds:off_40A148 mov edx, [edx] call sub_401C98 mov eax, [ebp+var_4] call sub_40336C xor eax, eax mov [ebp+var_8], eax loc_405A1A: ; CODE XREF: sub_405964+FCj lea eax, [ebp+var_C] mov edx, [ebp+var_8] mov edx, [ebp+edx*4+var_44] call sub_401C98 cmp [ebp+var_C], 0 jz short loc_405A59 lea eax, [ebp+var_10] push eax mov ecx, ds:off_40A25C mov ecx, [ecx] mov edx, 4F95h mov eax, [ebp+var_C] call sub_4051B8 cmp [ebp+var_10], 0 jz short loc_405A59 mov eax, [ebp+var_4] mov edx, [ebp+var_C] call sub_40335C loc_405A59: ; CODE XREF: sub_405964+C9j ; sub_405964+E8j inc [ebp+var_8] cmp [ebp+var_8], 6 jnz short loc_405A1A mov eax, [ebp+var_4] cmp dword ptr [eax+1Ch], 0 jnz short loc_405A76 mov eax, [ebp+var_4] mov edx, [ebp+var_14] call sub_40335C loc_405A76: ; CODE XREF: sub_405964+105j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_405A8A ; --------------------------------------------------------------------------- loc_405A80: ; DATA XREF: sub_405964+4Eo jmp sub_40161C ; --------------------------------------------------------------------------- call @System@@DoneExcept$qqrv ; System::__linkproc__ DoneExcept(void) loc_405A8A: ; CODE XREF: sub_405964+11Aj xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_405ABF loc_405A97: ; CODE XREF: sub_405964+159j lea eax, [ebp+var_44] mov ecx, 0Bh mov edx, off_401000 call sub_40231C lea eax, [ebp+var_14] mov edx, 3 call sub_401C24 retn ; --------------------------------------------------------------------------- loc_405AB8: ; DATA XREF: sub_405964+30o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_405A97 ; --------------------------------------------------------------------------- loc_405ABF: ; CODE XREF: sub_405964+153j ; DATA XREF: sub_405964+12Eo pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_405964 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405AC8 proc near ; CODE XREF: sub_4063E8+1C2p var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_5 = byte ptr -5 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFECh xor edx, edx mov [ebp+var_14], edx mov [ebp+var_10], edx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_405B8F push dword ptr fs:[eax] mov fs:[eax], esp mov eax, [ebp+var_4] call sub_401C00 loc_405AEF: ; CODE XREF: sub_405AC8+A7j mov eax, ds:off_40A2D0 cmp byte ptr [eax], 0 jnz short loc_405B74 mov eax, ds:off_40A100 push dword ptr [eax] mov eax, ds:off_40A224 push dword ptr [eax] push offset _str__.Text mov eax, ds:off_40A1C4 push dword ptr [eax] lea eax, [ebp+var_14] mov edx, 4 call sub_401EB4 mov edx, [ebp+var_14] lea ecx, [ebp+var_10] mov eax, 27B3h call sub_405348 mov [ebp+var_5], al cmp [ebp+var_5], 0 jz short loc_405B53 mov eax, [ebp+var_4] mov edx, [ebp+var_10] call sub_401C54 mov eax, [ebp+var_4] mov eax, [eax] call sub_401DF4 cmp eax, 9 jge short loc_405B74 loc_405B53: ; CODE XREF: sub_405AC8+6Fj mov eax, 1Eh call sub_401304 add eax, 28h mov [ebp+var_C], eax imul eax, [ebp+var_C], 3E8h call sub_406954 jmp loc_405AEF ; --------------------------------------------------------------------------- loc_405B74: ; CODE XREF: sub_405AC8+2Fj ; sub_405AC8+89j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_405B96 loc_405B81: ; CODE XREF: sub_405AC8+CCj lea eax, [ebp+var_14] mov edx, 2 call sub_401C24 retn ; --------------------------------------------------------------------------- loc_405B8F: ; DATA XREF: sub_405AC8+14o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_405B81 ; --------------------------------------------------------------------------- loc_405B96: ; CODE XREF: sub_405AC8+C6j ; DATA XREF: sub_405AC8+B4o mov esp, ebp pop ebp retn sub_405AC8 endp ; --------------------------------------------------------------------------- align 4 _str__ dd 0FFFFFFFFh ; _top ; DATA XREF: sub_405AC8+3Fo dd 1 ; Len db '_',0 ; Text align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405BA8 proc near ; CODE XREF: sub_4063E8+FCp ; sub_4063E8+13Dp ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] call sub_401FA8 xor eax, eax push ebp push offset loc_405BDB push dword ptr fs:[eax] mov fs:[eax], esp xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_405BE2 loc_405BD2: ; CODE XREF: sub_405BA8+38j lea eax, [ebp+var_4] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_405BDB: ; DATA XREF: sub_405BA8+12o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_405BD2 ; --------------------------------------------------------------------------- loc_405BE2: ; CODE XREF: sub_405BA8+32j ; DATA XREF: sub_405BA8+25o pop ecx pop ebp retn sub_405BA8 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405BE8 proc near ; CODE XREF: sub_405F58+41p var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_9 = byte ptr -9 var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFE4h xor edx, edx mov [ebp+var_1C], edx mov [ebp+var_18], edx mov [ebp+var_8], edx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_405CC9 push dword ptr fs:[eax] mov fs:[eax], esp mov eax, [ebp+var_4] call sub_401C00 xor eax, eax mov [ebp+var_14], eax loc_405C17: ; CODE XREF: sub_405BE8+B5j mov eax, ds:off_40A100 push dword ptr [eax] mov eax, ds:off_40A224 push dword ptr [eax] push offset _str___0.Text mov eax, ds:off_40A1C4 push dword ptr [eax] lea eax, [ebp+var_18] mov edx, 4 call sub_401EB4 mov edx, [ebp+var_18] lea ecx, [ebp+var_8] mov eax, 2ABAh call sub_405348 mov [ebp+var_9], al cmp [ebp+var_9], 0 jz short loc_405C7A mov eax, [ebp+var_4] push eax lea eax, [ebp+var_1C] mov edx, [ebp+var_8] call @System@@WStrFromLStr$qqrr17System@WideStringx17System@AnsiString ; System::__linkproc__ WStrFromLStr(System::WideString &,System::AnsiString) mov eax, [ebp+var_1C] mov edx, ds:off_40A154 mov edx, [edx] xor ecx, ecx call sub_4042E8 jmp short loc_405CA3 ; --------------------------------------------------------------------------- loc_405C7A: ; CODE XREF: sub_405BE8+6Dj mov eax, 1Eh call sub_401304 add eax, 28h mov [ebp+var_10], eax imul eax, [ebp+var_10], 3E8h call sub_406954 inc [ebp+var_14] cmp [ebp+var_14], 15h jnz loc_405C17 loc_405CA3: ; CODE XREF: sub_405BE8+90j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_405CD0 loc_405CB0: ; CODE XREF: sub_405BE8+E6j lea eax, [ebp+var_1C] call @System@@WStrClr$qqrpv ; System::__linkproc__ WStrClr(void *) lea eax, [ebp+var_18] call sub_401C00 lea eax, [ebp+var_8] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_405CC9: ; DATA XREF: sub_405BE8+17o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_405CB0 ; --------------------------------------------------------------------------- loc_405CD0: ; CODE XREF: sub_405BE8+E0j ; DATA XREF: sub_405BE8+C3o mov esp, ebp pop ebp retn sub_405BE8 endp ; --------------------------------------------------------------------------- _str___0 dd 0FFFFFFFFh ; _top ; DATA XREF: sub_405BE8+3Do dd 1 ; Len db '_',0 ; Text align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405CE0 proc near ; CODE XREF: sub_405E48+98p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF0h mov [ebp+var_8], edx mov [ebp+var_4], eax mov eax, [ebp+var_4] call sub_401FA8 xor eax, eax push ebp push offset loc_405D6B push dword ptr fs:[eax] mov fs:[eax], esp mov eax, [ebp+var_8] call sub_401C00 mov eax, [ebp+var_4] call sub_401DF4 dec eax test eax, eax jle short loc_405D55 mov [ebp+var_10], eax mov [ebp+var_C], 1 loc_405D21: ; CODE XREF: sub_405CE0+73j mov eax, [ebp+var_4] mov edx, [ebp+var_C] cmp byte ptr [eax+edx-1], 3Dh jnz short loc_405D4D mov eax, [ebp+var_8] push eax mov eax, [ebp+var_4] call sub_401DF4 mov ecx, eax sub ecx, [ebp+var_C] mov edx, [ebp+var_C] inc edx mov eax, [ebp+var_4] call @System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void) jmp short loc_405D55 ; --------------------------------------------------------------------------- loc_405D4D: ; CODE XREF: sub_405CE0+4Cj inc [ebp+var_C] dec [ebp+var_10] jnz short loc_405D21 loc_405D55: ; CODE XREF: sub_405CE0+35j ; sub_405CE0+6Bj xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_405D72 loc_405D62: ; CODE XREF: sub_405CE0+90j lea eax, [ebp+var_4] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_405D6B: ; DATA XREF: sub_405CE0+17o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_405D62 ; --------------------------------------------------------------------------- loc_405D72: ; CODE XREF: sub_405CE0+8Aj ; DATA XREF: sub_405CE0+7Do mov esp, ebp pop ebp retn sub_405CE0 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405D78 proc near ; CODE XREF: sub_405E48+7Fp var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF0h mov [ebp+var_8], edx mov [ebp+var_4], eax mov eax, [ebp+var_4] call sub_401FA8 xor eax, eax push ebp push offset loc_405DFB push dword ptr fs:[eax] mov fs:[eax], esp mov eax, [ebp+var_8] call sub_401C00 mov eax, [ebp+var_4] call sub_401DF4 dec eax test eax, eax jle short loc_405DE5 mov [ebp+var_10], eax mov [ebp+var_C], 1 loc_405DB9: ; CODE XREF: sub_405D78+6Bj mov eax, [ebp+var_4] mov edx, [ebp+var_C] cmp byte ptr [eax+edx-1], 3Dh jnz short loc_405DDD mov eax, [ebp+var_8] push eax mov ecx, [ebp+var_C] dec ecx mov edx, 1 mov eax, [ebp+var_4] call @System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void) jmp short loc_405DE5 ; --------------------------------------------------------------------------- loc_405DDD: ; CODE XREF: sub_405D78+4Cj inc [ebp+var_C] dec [ebp+var_10] jnz short loc_405DB9 loc_405DE5: ; CODE XREF: sub_405D78+35j ; sub_405D78+63j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_405E02 loc_405DF2: ; CODE XREF: sub_405D78+88j lea eax, [ebp+var_4] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_405DFB: ; DATA XREF: sub_405D78+17o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_405DF2 ; --------------------------------------------------------------------------- loc_405E02: ; CODE XREF: sub_405D78+82j ; DATA XREF: sub_405D78+75o mov esp, ebp pop ebp retn sub_405D78 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405E08 proc near ; CODE XREF: sub_405E48+A3p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF4h mov [ebp+var_8], edx mov [ebp+var_4], eax push 0FFFFFFFFh mov eax, [ebp+var_8] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax push 0FFFFFFFFh mov eax, [ebp+var_4] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax push 0 push 400h mov eax, ds:off_40A0F0 mov eax, [eax] call eax sub eax, 2 mov [ebp+var_C], eax mov eax, [ebp+var_C] mov esp, ebp pop ebp retn sub_405E08 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405E48 proc near ; CODE XREF: sub_405F58+54p var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFD8h push ebx xor ebx, ebx mov [ebp+var_28], ebx mov [ebp+var_24], ebx mov [ebp+var_18], ebx mov [ebp+var_1C], ebx mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_405F4C push dword ptr fs:[eax] mov fs:[eax], esp mov eax, [ebp+var_C] call sub_401C00 call sub_403094 mov [ebp+var_10], eax xor eax, eax push ebp push offset loc_405F1D push dword ptr fs:[eax] mov fs:[eax], esp mov eax, [ebp+var_10] mov edx, [ebp+var_4] call sub_4030C8 mov eax, [ebp+var_10] mov eax, [eax+1Ch] dec eax test eax, eax jl short loc_405F07 inc eax mov [ebp+var_20], eax mov [ebp+var_14], 0 loc_405EB3: ; CODE XREF: sub_405E48+BDj lea ecx, [ebp+var_24] mov eax, [ebp+var_10] mov edx, [ebp+var_14] call sub_4033C8 mov eax, [ebp+var_24] lea edx, [ebp+var_18] call sub_405D78 lea ecx, [ebp+var_28] mov eax, [ebp+var_10] mov edx, [ebp+var_14] call sub_4033C8 mov eax, [ebp+var_28] lea edx, [ebp+var_1C] call sub_405CE0 mov edx, [ebp+var_8] mov eax, [ebp+var_18] call sub_405E08 test eax, eax jnz short loc_405EFF mov eax, [ebp+var_C] mov edx, [ebp+var_1C] call sub_401C54 loc_405EFF: ; CODE XREF: sub_405E48+AAj inc [ebp+var_14] dec [ebp+var_20] jnz short loc_405EB3 loc_405F07: ; CODE XREF: sub_405E48+5Ej xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_405F24 loc_405F14: ; CODE XREF: sub_405E48+DAj mov eax, [ebp+var_10] call sub_4030F8 retn ; --------------------------------------------------------------------------- loc_405F1D: ; DATA XREF: sub_405E48+3Fo jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_405F14 ; --------------------------------------------------------------------------- loc_405F24: ; CODE XREF: sub_405E48+D4j ; DATA XREF: sub_405E48+C7o xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_405F53 loc_405F31: ; CODE XREF: sub_405E48+109j lea eax, [ebp+var_28] mov edx, 2 call sub_401C24 lea eax, [ebp+var_1C] mov edx, 2 call sub_401C24 retn ; --------------------------------------------------------------------------- loc_405F4C: ; DATA XREF: sub_405E48+21o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_405F31 ; --------------------------------------------------------------------------- loc_405F53: ; CODE XREF: sub_405E48+103j ; DATA XREF: sub_405E48+E4o pop ebx mov esp, ebp pop ebp retn sub_405E48 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405F58 proc near ; CODE XREF: sub_4063E8+1F9p var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_5 = byte ptr -5 var_4 = dword ptr -4 push ebp mov ebp, esp xor ecx, ecx push ecx push ecx push ecx push ecx push ecx push ebx push esi push edi mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_406006 push dword ptr fs:[eax] mov fs:[eax], esp mov eax, [ebp+var_4] mov byte ptr [eax], 0 mov [ebp+var_5], 0 lea eax, [ebp+var_14] call sub_401C00 xor eax, eax push ebp push offset loc_405FE1 push dword ptr fs:[eax] mov fs:[eax], esp lea eax, [ebp+var_14] call sub_405BE8 lea ecx, [ebp+var_C] mov edx, ds:off_40A0C8 mov edx, [edx] mov eax, [ebp+var_14] call sub_405E48 lea edx, [ebp+var_10] mov eax, ds:off_40A2B8 mov eax, [eax] call sub_406968 mov eax, [ebp+var_C] mov edx, [ebp+var_10] call @System@@LStrCmp$qqrv ; System::__linkproc__ LStrCmp(void) jz short loc_405FD3 mov eax, [ebp+var_4] mov byte ptr [eax], 1 loc_405FD3: ; CODE XREF: sub_405F58+73j mov [ebp+var_5], 1 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_405FEB ; --------------------------------------------------------------------------- loc_405FE1: ; DATA XREF: sub_405F58+33o jmp sub_40161C ; --------------------------------------------------------------------------- call @System@@DoneExcept$qqrv ; System::__linkproc__ DoneExcept(void) loc_405FEB: ; CODE XREF: sub_405F58+87j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_40600D loc_405FF8: ; CODE XREF: sub_405F58+B3j lea eax, [ebp+var_14] mov edx, 3 call sub_401C24 retn ; --------------------------------------------------------------------------- loc_406006: ; DATA XREF: sub_405F58+13o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_405FF8 ; --------------------------------------------------------------------------- loc_40600D: ; CODE XREF: sub_405F58+ADj ; DATA XREF: sub_405F58+9Bo mov al, [ebp+var_5] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_405F58 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406018 proc near ; CODE XREF: sub_4063E8+249p ; sub_4063E8+2A7p var_48 = byte ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_A = byte ptr -0Ah var_9 = byte ptr -9 var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov ecx, 8 loc_406021: ; CODE XREF: sub_406018+Ej push 0 push 0 dec ecx jnz short loc_406021 push ecx xchg ecx, [ebp+var_4] push ebx push esi push edi mov [ebp+var_9], cl mov [ebp+var_8], edx mov [ebp+var_4], eax mov eax, [ebp+var_4] call sub_401FA8 mov eax, [ebp+var_8] call sub_401FA8 xor eax, eax push ebp push offset loc_4062D2 push dword ptr fs:[eax] mov fs:[eax], esp mov [ebp+var_18], 1 mov [ebp+var_A], 0 xor eax, eax push ebp push offset loc_40628B push dword ptr fs:[eax] mov fs:[eax], esp mov eax, ds:off_40A0D4 mov eax, [eax] mov eax, [eax+1Ch] dec eax test eax, eax jl loc_4061B0 inc eax mov [ebp+var_24], eax mov [ebp+var_1C], 0 loc_40608D: ; CODE XREF: sub_406018+192j lea eax, [ebp+var_28] call sub_406B8C push [ebp+var_28] mov eax, ds:off_40A29C push dword ptr [eax] lea edx, [ebp+var_2C] mov eax, [ebp+var_1C] call sub_4031F0 push [ebp+var_2C] lea eax, [ebp+var_14] mov edx, 3 call sub_401EB4 push [ebp+var_14] push offset _str___1.Text mov eax, 0DBBA0h call sub_401304 lea edx, [ebp+var_30] call sub_4031F0 push [ebp+var_30] mov eax, 0DBBA0h call sub_401304 lea edx, [ebp+var_34] call sub_4031F0 push [ebp+var_34] mov eax, ds:off_40A2AC push dword ptr [eax] lea eax, [ebp+var_14] mov edx, 5 call sub_401EB4 mov eax, ds:off_40A2F8 push dword ptr [eax] lea ecx, [ebp+var_38] mov eax, ds:off_40A0D4 mov eax, [eax] mov edx, [ebp+var_1C] call sub_4033C8 push [ebp+var_38] mov eax, ds:off_40A270 push dword ptr [eax] push [ebp+var_4] push offset _str_?.Text mov eax, 0DBBA0h call sub_401304 lea edx, [ebp+var_3C] call sub_4031F0 push [ebp+var_3C] lea eax, [ebp+var_10] mov edx, 6 call sub_401EB4 push 0 push 0 mov eax, [ebp+var_14] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, [ebp+var_10] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax push 0 mov eax, ds:off_40A2FC mov eax, [eax] call eax mov [ebp+var_18], eax cmp [ebp+var_18], 0 jnz short loc_40619A cmp [ebp+var_9], 0 jnz short loc_406189 mov eax, [ebp+var_14] call sub_403334 test al, al jnz short loc_4061B0 loc_406189: ; CODE XREF: sub_406018+163j lea edx, [ebp+var_20] mov eax, [ebp+var_14] call sub_406968 cmp [ebp+var_20], 0 jnz short loc_4061B0 loc_40619A: ; CODE XREF: sub_406018+15Dj mov eax, 1388h call sub_406954 inc [ebp+var_1C] dec [ebp+var_24] jnz loc_40608D loc_4061B0: ; CODE XREF: sub_406018+64j ; sub_406018+16Fj ... cmp [ebp+var_18], 0 jnz short loc_40622D mov ecx, ds:off_40A114 mov ecx, [ecx] lea eax, [ebp+var_40] mov edx, [ebp+var_14] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_40] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, [ebp+var_8] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, ds:off_40A10C mov eax, [eax] call eax mov eax, [ebp+var_8] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, [ebp+var_14] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, ds:off_40A10C mov eax, [eax] call eax neg eax sbb eax, eax neg eax mov [ebp+var_A], al mov ecx, ds:off_40A114 mov ecx, [ecx] lea eax, [ebp+var_44] mov edx, [ebp+var_14] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_44] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, ds:off_40A1A8 mov eax, [eax] call eax loc_40622D: ; CODE XREF: sub_406018+19Cj mov eax, [ebp+var_8] call sub_403334 test al, al jz short loc_406281 cmp [ebp+var_9], 0 jnz short loc_40624D mov [ebp+var_A], 1 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_406295 ; --------------------------------------------------------------------------- loc_40624D: ; CODE XREF: sub_406018+225j lea edx, [ebp+var_20] mov eax, [ebp+var_8] call sub_406968 cmp [ebp+var_20], 0 jz short loc_40626F mov [ebp+var_A], 1 lea edx, [ebp+var_48] mov eax, [ebp+var_8] call sub_406E58 jmp short loc_406281 ; --------------------------------------------------------------------------- loc_40626F: ; CODE XREF: sub_406018+244j mov eax, [ebp+var_8] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, ds:off_40A1A8 mov eax, [eax] call eax loc_406281: ; CODE XREF: sub_406018+21Fj ; sub_406018+255j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_406295 ; --------------------------------------------------------------------------- loc_40628B: ; DATA XREF: sub_406018+4Co jmp sub_40161C ; --------------------------------------------------------------------------- call @System@@DoneExcept$qqrv ; System::__linkproc__ DoneExcept(void) loc_406295: ; CODE XREF: sub_406018+233j ; sub_406018+271j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_4062D9 loc_4062A2: ; CODE XREF: sub_406018+2BFj lea eax, [ebp+var_48] mov edx, 9 call sub_401C24 lea eax, [ebp+var_20] call sub_401C00 lea eax, [ebp+var_14] mov edx, 2 call sub_401C24 lea eax, [ebp+var_8] mov edx, 2 call sub_401C24 retn ; --------------------------------------------------------------------------- loc_4062D2: ; DATA XREF: sub_406018+33o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4062A2 ; --------------------------------------------------------------------------- loc_4062D9: ; CODE XREF: sub_406018+2B9j ; DATA XREF: sub_406018+285o mov al, [ebp+var_A] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_406018 endp ; --------------------------------------------------------------------------- align 4 _str___1 dd 0FFFFFFFFh ; _top ; DATA XREF: sub_406018+A5o dd 1 ; Len db '_',0 ; Text align 10h _str_? dd 0FFFFFFFFh ; _top ; DATA XREF: sub_406018+10Eo dd 1 ; Len db '?',0 ; Text align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4062FC proc near ; CODE XREF: sub_4063E8+34Fp var_68 = dword ptr -68h var_3C = dword ptr -3Ch var_38 = word ptr -38h var_24 = dword ptr -24h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_5 = byte ptr -5 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFF98h mov [ebp+var_4], eax mov eax, [ebp+var_4] call sub_401FA8 xor eax, eax push ebp push offset loc_4063DA push dword ptr fs:[eax] mov fs:[eax], esp mov [ebp+var_5], 0 lea eax, [ebp+var_24] mov edx, 10h call @Windows@ZeroMemory$qqrpvui ; Windows::ZeroMemory(void *,uint) lea eax, [ebp+var_68] mov edx, 44h call @Windows@ZeroMemory$qqrpvui ; Windows::ZeroMemory(void *,uint) mov [ebp+var_68], 44h mov [ebp+var_38], 5 mov [ebp+var_3C], 101h lea eax, [ebp+var_24] push eax lea eax, [ebp+var_68] push eax mov eax, ds:off_40A248 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax push 0 push 30h push 0 push 0 push 0 mov eax, [ebp+var_4] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax push 0 mov eax, ds:off_40A298 mov eax, [eax] call eax mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_4063C4 mov eax, [ebp+var_24] mov [ebp+var_10], eax push 0DBBA0Dh mov eax, [ebp+var_10] push eax mov eax, ds:off_40A258 mov eax, [eax] call eax mov [ebp+var_14], eax cmp [ebp+var_14], 102h jnz short loc_4063C0 mov eax, [ebp+var_14] push eax mov eax, [ebp+var_10] push eax mov eax, ds:off_40A17C mov eax, [eax] call eax jmp short loc_4063C4 ; --------------------------------------------------------------------------- loc_4063C0: ; CODE XREF: sub_4062FC+AFj mov [ebp+var_5], 1 loc_4063C4: ; CODE XREF: sub_4062FC+8Bj ; sub_4062FC+C2j xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_4063E1 loc_4063D1: ; CODE XREF: sub_4062FC+E3j lea eax, [ebp+var_4] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_4063DA: ; DATA XREF: sub_4062FC+14o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4063D1 ; --------------------------------------------------------------------------- loc_4063E1: ; CODE XREF: sub_4062FC+DDj ; DATA XREF: sub_4062FC+D0o mov al, [ebp+var_5] mov esp, ebp pop ebp retn sub_4062FC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4063E8 proc near ; CODE XREF: ServiceMain:loc_409E1Bp var_1F8 = dword ptr -1F8h var_1F4 = dword ptr -1F4h var_1F0 = dword ptr -1F0h var_1EC = dword ptr -1ECh var_1E8 = byte ptr -1E8h var_1E4 = dword ptr -1E4h var_1E0 = dword ptr -1E0h var_1DC = dword ptr -1DCh var_1D8 = dword ptr -1D8h var_1D4 = dword ptr -1D4h var_1D0 = dword ptr -1D0h var_1CC = dword ptr -1CCh var_1C8 = dword ptr -1C8h var_1C4 = dword ptr -1C4h var_1C0 = byte ptr -1C0h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_21 = byte ptr -21h var_20 = dword ptr -20h var_1A = byte ptr -1Ah var_19 = byte ptr -19h var_18 = qword ptr -18h var_10 = qword ptr -10h var_4 = dword ptr -4 push ebp mov ebp, esp mov ecx, 3Fh loc_4063F0: ; CODE XREF: sub_4063E8+Dj push 0 push 0 dec ecx jnz short loc_4063F0 push ebx push esi push edi xor eax, eax push ebp push offset loc_40683B push dword ptr fs:[eax] mov fs:[eax], esp xor eax, eax mov [ebp+var_4], eax lea eax, [ebp+var_1C0] push eax xor edx, edx mov al, 2 call @Windows@MakeWord$qqrucuc ; Windows::MakeWord(uchar,uchar) push eax mov eax, ds:off_40A15C mov eax, [eax] call eax call sub_405598 xor eax, eax push ebp push offset loc_406806 push dword ptr fs:[eax] mov fs:[eax], esp lea eax, [ebp+var_1C4] push eax mov eax, ds:off_40A0D8 mov eax, [eax] mov ecx, 2 mov edx, 1 call @System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void) mov ecx, [ebp+var_1C4] mov edx, ds:off_40A128 mov edx, [edx] lea eax, [ebp+var_2C] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov edx, ds:off_40A2E4 mov edx, [edx] lea eax, [ebp+var_30] mov ecx, offset _str_a.Text call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) lea ecx, [ebp+var_1C8] mov edx, ds:off_40A154 mov dx, [edx] mov eax, [ebp+var_30] call sub_40408C mov edx, [ebp+var_1C8] mov eax, [ebp+var_2C] call sub_4055F8 mov edx, ds:off_40A230 mov edx, [edx] mov eax, ds:off_40A1F8 mov eax, [eax] call sub_405964 xor eax, eax mov [ebp+var_4], eax xor eax, eax mov dword ptr [ebp+var_10], eax mov dword ptr [ebp+var_10+4], eax mov eax, ds:off_40A2D0 cmp byte ptr [eax], 0 jz short loc_4064DF xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp loc_406810 ; --------------------------------------------------------------------------- loc_4064DF: ; CODE XREF: sub_4063E8+E8j mov eax, offset _str_1.Text call sub_405BA8 loc_4064E9: ; CODE XREF: sub_4063E8+136j mov eax, ds:off_40A2D0 cmp byte ptr [eax], 0 jz short loc_406500 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp loc_406810 ; --------------------------------------------------------------------------- loc_406500: ; CODE XREF: sub_4063E8+109j call sub_4055D4 fstp [ebp+var_18] wait fld [ebp+var_10] fcomp [ebp+var_18] fnstsw ax sahf jnz short loc_406520 mov eax, 7530h call sub_406954 jmp short loc_4064E9 ; --------------------------------------------------------------------------- loc_406520: ; CODE XREF: sub_4063E8+12Aj mov eax, offset _str_2.Text call sub_405BA8 mov eax, 2710h call sub_401304 add eax, 7D0h call sub_406954 loc_40653E: ; CODE XREF: sub_4063E8+185j mov eax, ds:off_40A2D0 cmp byte ptr [eax], 0 jz short loc_406555 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp loc_406810 ; --------------------------------------------------------------------------- loc_406555: ; CODE XREF: sub_4063E8+15Ej call sub_4058C8 mov [ebp+var_21], al cmp [ebp+var_21], 0 jz short loc_40656F mov eax, 4E21h call sub_406954 jmp short loc_40653E ; --------------------------------------------------------------------------- loc_40656F: ; CODE XREF: sub_4063E8+179j mov eax, offset _str_3.Text call sub_405BA8 call sub_4057E4 mov eax, offset _str_4.Text call sub_405BA8 mov eax, 32h call sub_401304 add eax, 0Ah mov [ebp+var_20], eax imul eax, [ebp+var_20], 3E8h call sub_406954 lea eax, [ebp+var_1CC] call sub_405AC8 mov edx, [ebp+var_1CC] mov eax, ds:off_40A0D4 mov eax, [eax] call sub_4030C8 lea edx, [ebp+var_1D0] mov eax, ds:off_40A0D4 mov eax, [eax] call sub_4033E0 mov eax, [ebp+var_1D0] call sub_405BA8 lea eax, [ebp+var_19] call sub_405F58 mov [ebp+var_1A], al mov eax, offset _str_5.Text call sub_405BA8 cmp [ebp+var_1A], 0 jz loc_4066BD cmp [ebp+var_19], 0 jz loc_4066BD mov ecx, ds:off_40A1B4 mov ecx, [ecx] mov edx, ds:off_40A248 mov edx, [edx] lea eax, [ebp+var_1D4] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov edx, [ebp+var_1D4] mov eax, ds:off_40A2BC mov eax, [eax] mov cl, 1 call sub_406018 mov ecx, ds:off_40A1B4 mov ecx, [ecx] mov edx, ds:off_40A248 mov edx, [edx] lea eax, [ebp+var_1D8] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_1D8] lea edx, [ebp+var_28] call sub_406968 cmp [ebp+var_28], 0 jnz short loc_4066BD mov ecx, ds:off_40A1B4 mov ecx, [ecx] mov edx, ds:off_40A248 mov edx, [edx] lea eax, [ebp+var_1DC] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov edx, [ebp+var_1DC] mov eax, ds:off_40A210 mov eax, [eax] mov cl, 1 call sub_406018 mov ecx, ds:off_40A1B4 mov ecx, [ecx] mov edx, ds:off_40A248 mov edx, [edx] lea eax, [ebp+var_1E0] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_1E0] lea edx, [ebp+var_28] call sub_406968 loc_4066BD: ; CODE XREF: sub_4063E8+20Fj ; sub_4063E8+219j ... mov eax, offset _str_6.Text call sub_405BA8 mov ecx, ds:off_40A1B4 mov ecx, [ecx] mov edx, ds:off_40A248 mov edx, [edx] lea eax, [ebp+var_1E4] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_1E4] lea edx, [ebp+var_28] call sub_406968 cmp [ebp+var_28], 0 jz loc_4067FC mov eax, offset _str_7.Text call sub_405BA8 mov ecx, ds:off_40A1B4 mov ecx, [ecx] mov edx, ds:off_40A248 mov edx, [edx] lea eax, [ebp+var_1EC] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_1EC] lea edx, [ebp+var_1E8] call sub_406E58 mov eax, ds:off_40A2B8 mov eax, [eax] call sub_4062FC test al, al jz short loc_40677C mov edx, ds:off_40A2E4 mov edx, [edx] lea eax, [ebp+var_30] mov ecx, offset _str_T.Text call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) lea ecx, [ebp+var_1F0] mov edx, ds:off_40A154 mov dx, [edx] mov eax, [ebp+var_30] call sub_40408C mov edx, [ebp+var_1F0] mov eax, [ebp+var_2C] call sub_4055F8 jmp short loc_4067B6 ; --------------------------------------------------------------------------- loc_40677C: ; CODE XREF: sub_4063E8+356j mov edx, ds:off_40A2E4 mov edx, [edx] lea eax, [ebp+var_30] mov ecx, offset _str_F.Text call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) lea ecx, [ebp+var_1F4] mov edx, ds:off_40A154 mov dx, [edx] mov eax, [ebp+var_30] call sub_40408C mov edx, [ebp+var_1F4] mov eax, [ebp+var_2C] call sub_4055F8 loc_4067B6: ; CODE XREF: sub_4063E8+392j mov eax, offset _str_8.Text call sub_405BA8 call sub_4055D4 fstp [ebp+var_10] wait lea eax, [ebp+var_1F8] push eax mov eax, ds:off_40A0D8 mov eax, [eax] mov ecx, 2 mov edx, 1 call @System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void) mov ecx, [ebp+var_1F8] mov edx, ds:off_40A128 mov edx, [edx] lea eax, [ebp+var_2C] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) loc_4067FC: ; CODE XREF: sub_4063E8+30Cj xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_406810 ; --------------------------------------------------------------------------- loc_406806: ; DATA XREF: sub_4063E8+47o jmp sub_40161C ; --------------------------------------------------------------------------- call @System@@DoneExcept$qqrv ; System::__linkproc__ DoneExcept(void) loc_406810: ; CODE XREF: sub_4063E8+F2j ; sub_4063E8+113j ... xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_406842 loc_40681D: ; CODE XREF: sub_4063E8+458j lea eax, [ebp+var_1F8] mov edx, 0Eh call sub_401C24 lea eax, [ebp+var_30] mov edx, 3 call sub_401C24 retn ; --------------------------------------------------------------------------- loc_40683B: ; DATA XREF: sub_4063E8+15o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_40681D ; --------------------------------------------------------------------------- loc_406842: ; CODE XREF: sub_4063E8+452j ; DATA XREF: sub_4063E8+430o mov eax, [ebp+var_4] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4063E8 endp ; --------------------------------------------------------------------------- _str_a dd 0FFFFFFFFh ; _top ; DATA XREF: sub_4063E8+90o dd 1 ; Len db 'a',0 ; Text align 4 _str_1 dd 0FFFFFFFFh ; _top ; DATA XREF: sub_4063E8:loc_4064DFo dd 1 ; Len db '1',0 ; Text align 4 _str_2 dd 0FFFFFFFFh ; _top ; DATA XREF: sub_4063E8:loc_406520o dd 1 ; Len db '2',0 ; Text align 10h _str_3 dd 0FFFFFFFFh ; _top ; DATA XREF: sub_4063E8:loc_40656Fo dd 1 ; Len db '3',0 ; Text align 4 _str_4 dd 0FFFFFFFFh ; _top ; DATA XREF: sub_4063E8+196o dd 1 ; Len db '4',0 ; Text align 4 _str_5 dd 0FFFFFFFFh ; _top ; DATA XREF: sub_4063E8+201o dd 1 ; Len db '5',0 ; Text align 4 _str_6 dd 0FFFFFFFFh ; _top ; DATA XREF: sub_4063E8:loc_4066BDo dd 1 ; Len db '6',0 ; Text align 10h _str_7 dd 0FFFFFFFFh ; _top ; DATA XREF: sub_4063E8+312o dd 1 ; Len db '7',0 ; Text align 4 _str_T dd 0FFFFFFFFh ; _top ; DATA XREF: sub_4063E8+363o dd 1 ; Len db 'T',0 ; Text align 4 _str_F dd 0FFFFFFFFh ; _top ; DATA XREF: sub_4063E8+39Fo dd 1 ; Len db 'F',0 ; Text align 4 _str_8 dd 0FFFFFFFFh ; _top ; DATA XREF: sub_4063E8:loc_4067B6o dd 1 ; Len db '8',0 ; Text align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4068D0 proc near ; DATA XREF: CODE:00409EF0o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_4068F5 push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B244 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_4068FC loc_4068F4: ; CODE XREF: sub_4068D0+2Aj retn ; --------------------------------------------------------------------------- loc_4068F5: ; DATA XREF: sub_4068D0+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4068F4 ; --------------------------------------------------------------------------- loc_4068FC: ; CODE XREF: sub_4068D0:loc_4068F4j ; DATA XREF: sub_4068D0+1Fo pop ebp retn sub_4068D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_406900 proc near ; DATA XREF: CODE:00409EECo sub ds:dword_40B244, 1 retn sub_406900 endp ; [00000024 BYTES: COLLAPSED FUNCTION Dateutils::DayOf(System::TDateTime). PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall sub_40692C(double, double) sub_40692C proc near ; CODE XREF: sub_4058C8+36p var_8 = qword ptr -8 arg_0 = qword ptr 8 arg_8 = qword ptr 10h push ebp mov ebp, esp add esp, 0FFFFFFF8h fld [ebp+arg_8] fsub [ebp+arg_0] fabs fmul flt_406950 fstp [ebp+var_8] wait fld [ebp+var_8] pop ecx pop ecx pop ebp retn 10h sub_40692C endp ; --------------------------------------------------------------------------- align 10h flt_406950 dd 2.4e1 ; DATA XREF: sub_40692C+Er ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406954 proc near ; CODE XREF: sub_4051B8+B7p ; sub_405348+B4p ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] push eax call ds:dword_40B2C8 pop ecx pop ebp retn sub_406954 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406968 proc near ; CODE XREF: sub_405F58+63p ; sub_406018+177p ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF4h push ebx push esi push edi mov [ebp+var_8], edx mov [ebp+var_4], eax mov eax, [ebp+var_4] call sub_401FA8 xor eax, eax push ebp push offset loc_406A43 push dword ptr fs:[eax] mov fs:[eax], esp mov eax, [ebp+var_8] call sub_401C00 xor eax, eax mov [ebp+var_C], eax xor eax, eax push ebp push offset loc_406A26 push dword ptr fs:[eax] mov fs:[eax], esp xor eax, eax push ebp push offset loc_4069F8 push dword ptr fs:[eax] mov fs:[eax], esp mov eax, [ebp+var_4] call sub_403334 test al, al jnz short loc_4069D1 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx call @System@@TryFinallyExit$qqrv ; System::__linkproc__ TryFinallyExit(void) jmp short loc_406A2D ; --------------------------------------------------------------------------- loc_4069D1: ; CODE XREF: sub_406968+58j mov ecx, [ebp+var_4] mov dl, 1 mov eax, off_404390 call sub_404404 mov [ebp+var_C], eax mov edx, [ebp+var_8] mov eax, [ebp+var_C] call sub_4046FC xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx jmp short loc_406A0A ; --------------------------------------------------------------------------- loc_4069F8: ; DATA XREF: sub_406968+43o jmp sub_40161C ; --------------------------------------------------------------------------- mov eax, [ebp+var_8] call sub_401C00 call @System@@DoneExcept$qqrv ; System::__linkproc__ DoneExcept(void) loc_406A0A: ; CODE XREF: sub_406968+8Ej xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_406A2D loc_406A17: ; CODE XREF: sub_406968+C3j cmp [ebp+var_C], 0 jz short loc_406A25 mov eax, [ebp+var_C] call sub_4013F4 loc_406A25: ; CODE XREF: sub_406968+B3j retn ; --------------------------------------------------------------------------- loc_406A26: ; DATA XREF: sub_406968+35o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_406A17 ; --------------------------------------------------------------------------- loc_406A2D: ; CODE XREF: sub_406968+67j ; sub_406968:loc_406A25j ; DATA XREF: ... xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_406A4A loc_406A3A: ; CODE XREF: sub_406968+E0j lea eax, [ebp+var_4] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_406A43: ; DATA XREF: sub_406968+1Ao jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_406A3A ; --------------------------------------------------------------------------- loc_406A4A: ; CODE XREF: sub_406968+DAj ; DATA XREF: sub_406968+CDo pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_406968 endp ; --------------------------------------------------------------------------- align 4 ; [00000088 BYTES: COLLAPSED FUNCTION Adaptreq::TBasicActionResponseImpl::HandleResponse(void). PRESS KEYPAD "+" TO EXPAND] _str___2 dd 0FFFFFFFFh ; _top ; DATA XREF: Adaptreq::TBasicActionResponseImpl::HandleResponse(void)+5Ao dd 1 ; Len db '\',0 ; Text align 4 ; [000000A2 BYTES: COLLAPSED FUNCTION sub_406AE8. PRESS KEYPAD "+" TO EXPAND] align 4 ; [000000A7 BYTES: COLLAPSED FUNCTION sub_406B8C. PRESS KEYPAD "+" TO EXPAND] align 4 _str___3 dd 0FFFFFFFFh ; _top ; DATA XREF: sub_406B8C+6Co dd 1 ; Len db '\',0 ; Text align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406C40 proc near ; CODE XREF: sub_408FFC+6F0p var_20 = dword ptr -20h var_1C = dword ptr -1Ch hLibModule = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_6 = byte ptr -6 var_5 = byte ptr -5 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFE0h push ebx xor edx, edx mov [ebp+var_20], edx mov [ebp+var_1C], edx mov [ebp+var_C], edx mov [ebp+var_14], edx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_406DC9 push dword ptr fs:[eax] mov fs:[eax], esp mov eax, [ebp+var_4] call sub_401C00 mov [ebp+var_5], 0 xor eax, eax push ebp push offset loc_406D97 push dword ptr fs:[eax] mov fs:[eax], esp sub [ebp+var_10], 45h lea eax, [ebp+var_C] mov edx, ds:off_40A0F8 mov edx, [edx] call sub_401C98 mov eax, 4E40h call sub_401304 mov ebx, eax add ebx, 2744h mov eax, 1864Dh call sub_401304 add ebx, eax mov eax, ebx lea edx, [ebp+var_1C] call sub_4031F0 mov edx, [ebp+var_1C] lea eax, [ebp+var_C] call @System@@LStrCat$qqrv ; System::__linkproc__ LStrCat(void) lea eax, [ebp+var_C] mov edx, ds:off_40A1F0 mov edx, [edx] call @System@@LStrCat$qqrv ; System::__linkproc__ LStrCat(void) lea eax, [ebp+var_20] call sub_406B8C mov edx, [ebp+var_20] lea eax, [ebp+var_14] mov ecx, [ebp+var_C] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) sub [ebp+var_10], 3Eh mov [ebp+var_5], 0 mov eax, [ebp+var_14] call sub_406AE8 mov [ebp+var_6], al cmp [ebp+var_6], 0 jz short loc_406D60 mov eax, [ebp+var_14] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpLibFileName call LoadLibraryA ; LoadLibraryA mov [ebp+hLibModule], eax cmp [ebp+hLibModule], 0 jz short loc_406D57 dec [ebp+var_10] mov eax, ds:off_40A0F4 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+hLibModule] push eax ; hModule call GetProcAddress ; GetProcAddress mov ds:dword_40B2A8, eax cmp ds:dword_40B2A8, 0 jnz short loc_406D64 sub [ebp+var_10], 0Fh mov [ebp+var_5], 1 mov eax, [ebp+hLibModule] push eax ; hLibModule call FreeLibrary_0 jmp short loc_406D64 ; --------------------------------------------------------------------------- loc_406D57: ; CODE XREF: sub_406C40+DBj inc [ebp+var_10] mov [ebp+var_5], 1 jmp short loc_406D64 ; --------------------------------------------------------------------------- loc_406D60: ; CODE XREF: sub_406C40+C4j mov [ebp+var_5], 1 loc_406D64: ; CODE XREF: sub_406C40+102j ; sub_406C40+115j ... xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_406D9E loc_406D71: ; CODE XREF: sub_406C40+15Cj inc [ebp+var_10] lea eax, [ebp+var_14] mov edx, offset _str______.Text call @System@@LStrCat$qqrv ; System::__linkproc__ LStrCat(void) inc [ebp+var_10] mov edx, [ebp+var_4] mov eax, [ebp+var_14] call sub_4032A4 mov [ebp+var_10], 0B1h retn ; --------------------------------------------------------------------------- loc_406D97: ; DATA XREF: sub_406C40+35o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_406D71 ; --------------------------------------------------------------------------- loc_406D9E: ; CODE XREF: sub_406C40+156j ; DATA XREF: sub_406C40+12Co xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_406DD0 loc_406DAB: ; CODE XREF: sub_406C40+18Ej lea eax, [ebp+var_20] mov edx, 2 call sub_401C24 lea eax, [ebp+var_14] call sub_401C00 lea eax, [ebp+var_C] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_406DC9: ; DATA XREF: sub_406C40+1Bo jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_406DAB ; --------------------------------------------------------------------------- loc_406DD0: ; CODE XREF: sub_406C40+188j ; DATA XREF: sub_406C40+166o pop ebx mov esp, ebp pop ebp retn sub_406C40 endp ; --------------------------------------------------------------------------- align 4 _str______ dd 0FFFFFFFFh ; _top ; DATA XREF: sub_406C40+137o dd 5 ; Len db ' ',0 ; Text align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406DE8 proc near ; CODE XREF: sub_406E58+8Ep var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF4h mov [ebp+var_8], edx mov [ebp+var_4], eax mov [ebp+var_C], 0FFFFFFFFh mov eax, [ebp+var_8] and eax, 3 cmp eax, 2 ja short loc_406E51 mov eax, [ebp+var_8] and eax, 0F0h cmp eax, 40h ja short loc_406E51 push 0 push 80h push 3 push 0 mov eax, [ebp+var_8] and eax, 0F0h shr eax, 4 mov eax, ds:dword_40A0B4[eax*4] push eax mov eax, [ebp+var_8] and eax, 3 mov eax, ds:dword_40A0A8[eax*4] push eax mov eax, [ebp+var_4] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax call ds:dword_40B24C mov [ebp+var_C], eax loc_406E51: ; CODE XREF: sub_406DE8+1Cj ; sub_406DE8+29j mov eax, [ebp+var_C] mov esp, ebp pop ebp retn sub_406DE8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406E58 proc near ; CODE XREF: sub_406018+250p ; sub_4063E8+343p var_15C = dword ptr -15Ch var_158 = byte ptr -158h var_144 = dword ptr -144h var_140 = dword ptr -140h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFEA4h xor ecx, ecx mov [ebp+var_15C], ecx mov [ebp+var_18], edx mov [ebp+var_4], eax mov eax, [ebp+var_4] call sub_401FA8 xor eax, eax push ebp push offset loc_406F35 push dword ptr fs:[eax] mov fs:[eax], esp lea eax, [ebp+var_158] push eax mov ecx, ds:off_40A0D0 mov ecx, [ecx] mov edx, ds:off_40A248 mov edx, [edx] lea eax, [ebp+var_15C] call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_15C] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax call ds:dword_40B2CC mov [ebp+var_8], eax cmp [ebp+var_8], 0FFFFFFFFh jz short loc_406F14 mov eax, [ebp+var_144] mov [ebp+var_14], eax mov eax, [ebp+var_140] mov [ebp+var_10], eax mov eax, [ebp+var_8] push eax call ds:dword_40B2D0 mov edx, 41h mov eax, [ebp+var_4] call sub_406DE8 mov [ebp+var_C], eax cmp [ebp+var_C], 0 jbe short loc_406F14 lea eax, [ebp+var_14] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_14] push eax mov eax, [ebp+var_C] push eax call ds:dword_40B2D4 mov eax, [ebp+var_C] push eax call ds:dword_40B2D8 loc_406F14: ; CODE XREF: sub_406E58+68j ; sub_406E58+9Aj xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_406F3C loc_406F21: ; CODE XREF: sub_406E58+E2j lea eax, [ebp+var_15C] call sub_401C00 lea eax, [ebp+var_4] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_406F35: ; DATA XREF: sub_406E58+22o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_406F21 ; --------------------------------------------------------------------------- loc_406F3C: ; CODE XREF: sub_406E58+DCj ; DATA XREF: sub_406E58+C4o mov esp, ebp pop ebp retn sub_406E58 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406F40 proc near ; CODE XREF: sub_408FFC+6C6p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFF8h xor edx, edx mov [ebp+var_8], edx mov [ebp+var_4], eax xor eax, eax push ebp push offset loc_406FB5 push dword ptr fs:[eax] mov fs:[eax], esp lea edx, [ebp+var_8] mov eax, ds:off_40A138 mov eax, [eax] call sub_405688 cmp [ebp+var_8], 0 jz short loc_406F7E mov eax, [ebp+var_4] mov edx, [ebp+var_8] call sub_401C54 jmp short loc_406F9F ; --------------------------------------------------------------------------- loc_406F7E: ; CODE XREF: sub_406F40+2Fj mov eax, [ebp+var_4] mov edx, ds:off_40A2A0 mov edx, [edx] call sub_401C54 mov edx, [ebp+var_4] mov edx, [edx] mov eax, ds:off_40A138 mov eax, [eax] call sub_4055F8 loc_406F9F: ; CODE XREF: sub_406F40+3Cj xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_406FBC loc_406FAC: ; CODE XREF: sub_406F40+7Aj lea eax, [ebp+var_8] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_406FB5: ; DATA XREF: sub_406F40+11o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_406FAC ; --------------------------------------------------------------------------- loc_406FBC: ; CODE XREF: sub_406F40+74j ; DATA XREF: sub_406F40+67o pop ecx pop ecx pop ebp retn sub_406F40 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406FC0 proc near ; DATA XREF: CODE:00409EF8o push ebp mov ebp, esp xor eax, eax push ebp push offset loc_406FE5 push dword ptr fs:[eax] mov fs:[eax], esp inc ds:dword_40B318 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_406FEC loc_406FE4: ; CODE XREF: sub_406FC0+2Aj retn ; --------------------------------------------------------------------------- loc_406FE5: ; DATA XREF: sub_406FC0+6o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_406FE4 ; --------------------------------------------------------------------------- loc_406FEC: ; CODE XREF: sub_406FC0:loc_406FE4j ; DATA XREF: sub_406FC0+1Fo pop ebp retn sub_406FC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_406FF0 proc near ; DATA XREF: CODE:00409EF4o sub ds:dword_40B318, 1 retn sub_406FF0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406FF8 proc near ; DATA XREF: CODE:00409F14o var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] pop ecx pop ebp retn sub_406FF8 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407008 proc near ; CODE XREF: sub_407068+3Ap ; sub_407068+53p ... var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFD4h mov [ebp+var_C], ecx mov [ebp+var_8], edx mov [ebp+var_4], eax mov [ebp+var_2C], 20h mov eax, [ebp+var_4] mov ds:dword_40B320, eax mov eax, [ebp+var_4] mov [ebp+var_28], eax mov [ebp+var_24], 7 mov eax, [ebp+var_8] mov [ebp+var_20], eax xor eax, eax mov [ebp+var_1C], eax mov eax, [ebp+var_C] mov [ebp+var_18], eax mov [ebp+var_14], 0BB8h lea eax, [ebp+var_2C] push eax mov eax, ds:dword_40B31C push eax mov eax, ds:off_40A20C mov eax, [eax] call eax mov [ebp+var_10], eax mov eax, [ebp+var_10] mov esp, ebp pop ebp retn sub_407008 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407068 proc near ; DATA XREF: ServiceMain+14o arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] cmp eax, 5 ; switch 6 cases ja loc_407122 ; default ; jumptable 00407077 case 0 jmp off_40707E[eax*4] ; switch jump ; --------------------------------------------------------------------------- off_40707E dd offset loc_407122 ; DATA XREF: sub_407068+Fr dd offset loc_407096 ; jump table for switch statement dd offset loc_4070C2 dd offset loc_4070E3 dd offset loc_407104 dd offset loc_407114 ; --------------------------------------------------------------------------- loc_407096: ; CODE XREF: sub_407068+Fj ; DATA XREF: sub_407068:off_40707Eo mov ecx, 1 ; jumptable 00407077 case 1 xor edx, edx mov eax, 3 call sub_407008 push 0Ah mov eax, ds:off_40A1E4 mov eax, [eax] call eax xor ecx, ecx xor edx, edx mov eax, 1 call sub_407008 jmp short loc_407122 ; default ; jumptable 00407077 case 0 ; --------------------------------------------------------------------------- loc_4070C2: ; CODE XREF: sub_407068+Fj ; DATA XREF: sub_407068:off_40707Eo mov ecx, 1 ; jumptable 00407077 case 2 xor edx, edx mov eax, 6 call sub_407008 xor ecx, ecx xor edx, edx mov eax, 7 call sub_407008 jmp short loc_407122 ; default ; jumptable 00407077 case 0 ; --------------------------------------------------------------------------- loc_4070E3: ; CODE XREF: sub_407068+Fj ; DATA XREF: sub_407068:off_40707Eo mov ecx, 1 ; jumptable 00407077 case 3 xor edx, edx mov eax, 5 call sub_407008 xor ecx, ecx xor edx, edx mov eax, 4 call sub_407008 jmp short loc_407122 ; default ; jumptable 00407077 case 0 ; --------------------------------------------------------------------------- loc_407104: ; CODE XREF: sub_407068+Fj ; DATA XREF: sub_407068:off_40707Eo xor ecx, ecx ; jumptable 00407077 case 4 xor edx, edx mov eax, ds:dword_40B320 call sub_407008 jmp short loc_407122 ; default ; jumptable 00407077 case 0 ; --------------------------------------------------------------------------- loc_407114: ; CODE XREF: sub_407068+Fj ; DATA XREF: sub_407068:off_40707Eo xor ecx, ecx ; jumptable 00407077 case 5 xor edx, edx mov eax, 1 call sub_407008 loc_407122: ; CODE XREF: sub_407068+9j ; sub_407068+Fj ... pop ebp ; default ; jumptable 00407077 case 0 retn 4 sub_407068 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407128 proc near ; CODE XREF: r+1Fp ServiceMain+5p var_188 = dword ptr -188h var_184 = dword ptr -184h var_180 = dword ptr -180h var_17C = dword ptr -17Ch var_178 = dword ptr -178h var_174 = dword ptr -174h var_170 = dword ptr -170h var_16C = dword ptr -16Ch var_168 = dword ptr -168h var_164 = dword ptr -164h var_160 = dword ptr -160h var_15C = dword ptr -15Ch var_158 = dword ptr -158h var_154 = dword ptr -154h var_150 = dword ptr -150h var_14C = dword ptr -14Ch var_148 = dword ptr -148h var_144 = dword ptr -144h var_140 = dword ptr -140h var_13C = dword ptr -13Ch var_138 = dword ptr -138h var_134 = dword ptr -134h var_130 = dword ptr -130h var_12C = dword ptr -12Ch var_128 = dword ptr -128h var_124 = dword ptr -124h var_120 = dword ptr -120h var_11C = dword ptr -11Ch var_118 = dword ptr -118h var_114 = dword ptr -114h var_110 = dword ptr -110h var_10C = dword ptr -10Ch var_108 = dword ptr -108h var_104 = dword ptr -104h var_100 = dword ptr -100h var_FC = dword ptr -0FCh var_F8 = dword ptr -0F8h var_F4 = dword ptr -0F4h var_F0 = dword ptr -0F0h var_EC = dword ptr -0ECh var_E8 = dword ptr -0E8h var_E4 = dword ptr -0E4h var_E0 = dword ptr -0E0h var_DC = dword ptr -0DCh var_D8 = dword ptr -0D8h var_D4 = dword ptr -0D4h var_D0 = dword ptr -0D0h var_CC = dword ptr -0CCh var_C8 = dword ptr -0C8h var_C4 = dword ptr -0C4h var_C0 = dword ptr -0C0h var_BC = dword ptr -0BCh var_B8 = dword ptr -0B8h var_B4 = dword ptr -0B4h var_B0 = dword ptr -0B0h var_AC = dword ptr -0ACh var_A8 = dword ptr -0A8h var_A4 = dword ptr -0A4h var_A0 = dword ptr -0A0h var_9C = dword ptr -9Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp mov ecx, 31h loc_407130: ; CODE XREF: sub_407128+Dj push 0 push 0 dec ecx jnz short loc_407130 mov [ebp+var_10], eax xor eax, eax push ebp push offset loc_407FF7 push dword ptr fs:[eax] mov fs:[eax], esp mov [ebp+var_4], 1 lea eax, [ebp+var_8] push eax xor ecx, ecx mov edx, 0CF71h mov eax, offset a3bvald ; "3bvAlD" call sub_4042E8 mov eax, [ebp+var_8] call sub_403258 mov edx, ds:off_40A230 mov [edx], eax lea eax, [ebp+var_C] push eax xor ecx, ecx mov edx, 0CF72h mov eax, offset aNgyMd ; "+ngy+MD" call sub_4042E8 mov eax, [ebp+var_C] call sub_403258 mov edx, ds:off_40A154 mov [edx], eax lea eax, [ebp+var_14] push eax xor ecx, ecx mov edx, 0CF73h mov eax, offset aUco3k7wux882eb ; "uCO3k7wux882Ebmw" call sub_4042E8 mov edx, [ebp+var_14] mov eax, ds:off_40A184 call sub_401C54 lea eax, [ebp+var_18] push eax xor ecx, ecx mov edx, 0CF74h mov eax, offset aDifoh2zro4eio2 ; "difOH2Zro4eIO2UbDyP0" call sub_4042E8 mov edx, [ebp+var_18] mov eax, ds:off_40A318 call sub_401C54 lea eax, [ebp+var_1C] push eax xor ecx, ecx mov edx, 0CF75h mov eax, offset aDmgjufwnxsugjd ; "dmgJUfwnXSUgJDMp/IN" call sub_4042E8 mov edx, [ebp+var_1C] mov eax, ds:off_40A1F4 call sub_401C54 lea eax, [ebp+var_20] push eax xor ecx, ecx mov edx, 0CF76h mov eax, offset aD1uvmvjc94eg2p ; "d+1Uvmvjc94eG2P" call sub_4042E8 mov edx, [ebp+var_20] mov eax, ds:off_40A264 call sub_401C54 lea eax, [ebp+var_24] push eax xor ecx, ecx mov edx, 0CF77h mov eax, offset aDywlnguyXaar4w ; "dyWLNguy+XaaR4Wevt/7ZA" call sub_4042E8 mov edx, [ebp+var_24] mov eax, ds:off_40A1DC call sub_401C54 lea eax, [ebp+var_28] push eax xor ecx, ecx mov edx, 0CF78h mov eax, offset aDkbmeha0iugai2 ; "dKbMEhA0IUgaI2M" call sub_4042E8 mov edx, [ebp+var_28] mov eax, ds:off_40A1D8 call sub_401C54 lea eax, [ebp+var_2C] push eax xor ecx, ecx mov edx, 0CF79h mov eax, offset aDocwpfzjx2wkQb ; "dOcwpfZjx2wk/QBIpA" call sub_4042E8 mov edx, [ebp+var_2C] mov eax, ds:off_40A260 call sub_401C54 lea eax, [ebp+var_30] push eax xor ecx, ecx mov edx, 0CF7Ah mov eax, offset aCmodknob2qkas3 ; "cmODKnOB2Qkas3WVRs1YxysZCEbEqcTFEBoRGxd"... call sub_4042E8 mov edx, [ebp+var_30] mov eax, ds:off_40A130 call sub_401C54 lea eax, [ebp+var_34] push eax xor ecx, ecx mov edx, 0CF7Bh mov eax, offset aQrgzyakggxzvmd ; "qrgZYAKGGXzVmdzJkLzMNhSYNh/OL9/vaO8tLWN"... call sub_4042E8 mov edx, [ebp+var_34] mov eax, ds:off_40A328 call sub_401C54 lea eax, [ebp+var_38] push eax xor ecx, ecx mov edx, 0CF7Ch mov eax, offset aC2wxhmzsyycikz ; "c2wXHMzsYYCIKZh2r092AF/BSI2wp0qNcudzVmX"... call sub_4042E8 mov edx, [ebp+var_38] mov eax, ds:off_40A214 call sub_401C54 lea eax, [ebp+var_3C] push eax xor ecx, ecx mov edx, 0CF7Dh mov eax, offset aQxakbx6ivb1mjr ; "qXaKBx6ivB1MJRwWDOxXYNeHFRuLqlS/fSUDyl+"... call sub_4042E8 mov edx, [ebp+var_3C] mov eax, ds:off_40A18C call sub_401C54 lea eax, [ebp+var_40] push eax xor ecx, ecx mov edx, 0CF7Eh mov eax, offset aCaijfn3c0zmzcs ; "caIjFN3c0zMZcs+lZwbduea2ZoUI6GvV0Vh5SQ0"... call sub_4042E8 mov edx, [ebp+var_40] mov eax, ds:off_40A1C8 call sub_401C54 mov eax, ds:off_40A1B8 mov edx, offset _str_10180721.Text call sub_401C54 mov eax, ds:off_40A128 mov edx, offset _str_m.Text call sub_401C54 lea eax, [ebp+var_44] push eax xor ecx, ecx mov edx, 0CF7Fh mov eax, offset aKyfph1iw740pca ; "KyFph1Iw740pCA" call sub_4042E8 mov edx, [ebp+var_44] mov eax, ds:off_40A158 call sub_401C54 lea eax, [ebp+var_48] push eax xor ecx, ecx mov edx, 0CF80h mov eax, offset aNcrlctbl ; "NCRlCtbl" call sub_4042E8 mov edx, [ebp+var_48] mov eax, ds:off_40A0D8 call sub_401C54 lea eax, [ebp+var_4C] push eax mov eax, ds:off_40A0D8 mov eax, [eax] mov ecx, 2 mov edx, 1 call @System@@LStrCopy$qqrv ; System::__linkproc__ LStrCopy(void) mov edx, [ebp+var_4C] mov ecx, ds:off_40A1B8 mov ecx, [ecx] mov eax, ds:off_40A2E4 call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) lea eax, [ebp+var_50] push eax xor ecx, ecx mov edx, 0CF81h mov eax, offset aCsqnhpAzuvs2sv ; "cSQnHp+AzUvS2SV/BRFsSy2gsqm8y+i9" call sub_4042E8 mov edx, [ebp+var_50] mov eax, ds:off_40A1D0 call sub_401C54 lea eax, [ebp+var_54] push eax xor ecx, ecx mov edx, 0CF82h mov eax, offset aTi6nrFol5c ; "ti6nR+FoL5C" call sub_4042E8 mov edx, [ebp+var_54] mov eax, ds:off_40A1A0 call sub_401C54 lea eax, [ebp+var_58] push eax xor ecx, ecx mov edx, 0CF83h mov eax, offset aRnialtyzi12hps ; "+rNiALTYZI12hPS2wHN" call sub_4042E8 mov edx, [ebp+var_58] mov eax, ds:off_40A1AC call sub_401C54 lea eax, [ebp+var_5C] push eax xor ecx, ecx mov edx, 0CF84h mov eax, offset a939eivv3pogxnv ; "939EIVV3PoGXNV5ELD" call sub_4042E8 mov edx, [ebp+var_5C] mov eax, ds:off_40A0E8 call sub_401C54 lea eax, [ebp+var_60] push eax xor ecx, ecx mov edx, 0CF85h mov eax, offset aLwbdumyysvu9v9 ; "lWbDumyysVu9v9lsnaN" call sub_4042E8 mov edx, [ebp+var_60] mov eax, ds:off_40A2DC call sub_401C54 lea eax, [ebp+var_64] push eax xor ecx, ecx mov edx, 0CF86h mov eax, offset a5b20ovjgt5hoq5 ; "5b20OvjgT5HOq++5fB" call sub_4042E8 mov edx, [ebp+var_64] mov eax, ds:off_40A148 call sub_401C54 lea eax, [ebp+var_68] push eax xor ecx, ecx mov edx, 0CF87h mov eax, offset a6uzj ; "6uzj" call sub_4042E8 mov edx, [ebp+var_68] mov eax, ds:off_40A138 call sub_401C54 lea eax, [ebp+var_6C] push eax xor ecx, ecx mov edx, 0CF88h mov eax, offset a4cKvaucy0ife6e ; "4C/KvaUCy0iFE6E" call sub_4042E8 mov edx, [ebp+var_6C] mov eax, ds:off_40A1CC call sub_401C54 lea eax, [ebp+var_70] push eax xor ecx, ecx mov edx, 0CF89h mov eax, offset a8ourt5o ; "8Ourt+5O" call sub_4042E8 mov edx, [ebp+var_70] mov eax, ds:off_40A22C call sub_401C54 lea eax, [ebp+var_74] push eax xor ecx, ecx mov edx, 0CF8Ah mov eax, offset aNH3qxm ; "n+h3qXM" call sub_4042E8 mov edx, [ebp+var_74] mov eax, ds:off_40A28C call sub_401C54 lea eax, [ebp+var_78] push eax xor ecx, ecx mov edx, 0CF8Bh mov eax, offset aO22villgoziyya ; "o22vilLGOzIYyAQ9vB" call sub_4042E8 mov edx, [ebp+var_78] mov eax, ds:off_40A2CC call sub_401C54 lea eax, [ebp+var_7C] push eax xor ecx, ecx mov edx, 0CF8Ch mov eax, offset aIsxd ; "iSXD" call sub_4042E8 mov edx, [ebp+var_7C] mov eax, ds:off_40A0F8 call sub_401C54 lea eax, [ebp+var_80] push eax xor ecx, ecx mov edx, 0CF8Dh mov eax, offset aHDlb ; "h//dlB" call sub_4042E8 mov edx, [ebp+var_80] mov eax, ds:off_40A1F0 call sub_401C54 lea eax, [ebp+var_84] push eax xor ecx, ecx mov edx, 0CF8Eh mov eax, offset a6wivZ9pgd5qwa ; "6WIv+Z9PgD5qwA" call sub_4042E8 mov edx, [ebp+var_84] mov eax, ds:off_40A180 call sub_401C54 lea eax, [ebp+var_88] push eax xor ecx, ecx mov edx, 0CF8Fh mov eax, offset aAq6vywcs5pelnh ; "aq6vywcS5PeLNh24rbMcasM6" call sub_4042E8 mov edx, [ebp+var_88] mov eax, ds:off_40A0F4 call sub_401C54 lea eax, [ebp+var_8C] push eax xor ecx, ecx mov edx, 0CF90h mov eax, offset a4sob3rmctepeqw ; "4Sob3rmCtEpEqWH" call sub_4042E8 mov edx, [ebp+var_8C] mov eax, ds:off_40A1CC call sub_401C54 lea eax, [ebp+var_90] push eax xor ecx, ecx mov edx, 0CF91h mov eax, offset a8qzrxc ; "8qZrxC" call sub_4042E8 mov edx, [ebp+var_90] mov eax, ds:off_40A268 call sub_401C54 lea eax, [ebp+var_94] push eax xor ecx, ecx mov edx, 0CF92h mov eax, offset aYw53fwb08zkfjd ; "YW53FWB08zKFjD" call sub_4042E8 mov edx, [ebp+var_94] mov eax, ds:off_40A11C call sub_401C54 lea eax, [ebp+var_98] push eax xor ecx, ecx mov edx, 0CF93h mov eax, offset aYacSHx5pkymb ; "Yac/S+HX5PkymB" call sub_4042E8 mov edx, [ebp+var_98] mov eax, ds:off_40A2E8 call sub_401C54 lea eax, [ebp+var_9C] push eax xor ecx, ecx mov edx, 0CF94h mov eax, offset aYczilil7ytz55j ; "YCzILiL7ytZ/55JVbR3U" call sub_4042E8 mov edx, [ebp+var_9C] mov eax, ds:off_40A144 call sub_401C54 lea eax, [ebp+var_A0] push eax xor ecx, ecx mov edx, 0CF95h mov eax, offset aO2nzavl6gpk6tk ; "o2nzAVl6gpK6tkxRrB" call sub_4042E8 mov edx, [ebp+var_A0] mov eax, ds:off_40A2CC call sub_401C54 lea eax, [ebp+var_A4] push eax xor ecx, ecx mov edx, 0CF96h mov eax, offset a8imfxzfi ; "8imFxZFI" call sub_4042E8 mov edx, [ebp+var_A4] mov eax, ds:off_40A22C call sub_401C54 lea eax, [ebp+var_A8] push eax xor ecx, ecx mov edx, 0CF97h mov eax, offset a8orVl2oocosna ; "8Or/VL2OoCOSnA" call sub_4042E8 mov edx, [ebp+var_A8] mov eax, ds:off_40A238 call sub_401C54 lea eax, [ebp+var_AC] push eax xor ecx, ecx mov edx, 0CF98h mov eax, offset a9exlmc ; "9exlMC" call sub_4042E8 mov edx, [ebp+var_AC] mov eax, ds:off_40A2C0 call sub_401C54 lea eax, [ebp+var_B0] push eax xor ecx, ecx mov edx, 0CF99h mov eax, offset aMut3p1x7Jwx ; "mut3P1x7/Jwx" call sub_4042E8 mov edx, [ebp+var_B0] mov eax, ds:off_40A254 call sub_401C54 lea eax, [ebp+var_B4] push eax xor ecx, ecx mov edx, 0CF9Ah mov eax, offset aM2ovcwmcigA ; "m2OvcWMciG+a" call sub_4042E8 mov edx, [ebp+var_B4] mov eax, ds:off_40A108 call sub_401C54 lea eax, [ebp+var_B8] push eax xor ecx, ecx mov edx, 0CF9Bh mov eax, offset aNsvwp1e ; "nSVwP1E" call sub_4042E8 mov edx, [ebp+var_B8] mov eax, ds:off_40A28C call sub_401C54 lea eax, [ebp+var_BC] push eax xor ecx, ecx mov edx, 0CF9Ch mov eax, offset aSijtutktdd ; "siJTUtKTdD" call sub_4042E8 mov edx, [ebp+var_BC] mov eax, ds:off_40A1D4 call sub_401C54 lea eax, [ebp+var_C0] push eax xor ecx, ecx mov edx, 0CF9Dh mov eax, offset aHozfxej ; "hOZfxEJ" call sub_4042E8 mov edx, [ebp+var_C0] mov eax, ds:off_40A168 call sub_401C54 lea eax, [ebp+var_C4] push eax xor ecx, ecx mov edx, 0CF9Eh mov eax, offset aNip17no ; "niP17NO" call sub_4042E8 mov edx, [ebp+var_C4] mov eax, ds:off_40A164 call sub_401C54 lea eax, [ebp+var_C8] push eax xor ecx, ecx mov edx, 0CF9Fh mov eax, offset aI6d3vntdfkht4f ; "I6D3vNtDfKht4F7n" call sub_4042E8 mov edx, [ebp+var_C8] mov eax, ds:off_40A2D8 call sub_401C54 lea eax, [ebp+var_CC] push eax xor ecx, ecx mov edx, 0CFA0h mov eax, offset aIyeUgnxh4vt0p7 ; "IyE+ugnXh4vT0P7J7sy7B/Y7AA" call sub_4042E8 mov edx, [ebp+var_CC] mov eax, ds:off_40A228 call sub_401C54 lea eax, [ebp+var_D0] push eax xor ecx, ecx mov edx, 0CFA1h mov eax, offset aM6fzivtOfT ; "M6FZIVT/Of/t" call sub_4042E8 mov edx, [ebp+var_D0] mov eax, ds:off_40A274 call sub_401C54 lea eax, [ebp+var_D4] push eax xor ecx, ecx mov edx, 0CFA2h mov eax, offset a5yc8ncxbc3gx58 ; "5yC8nCxBC3gx58E" call sub_4042E8 mov edx, [ebp+var_D4] mov eax, ds:off_40A178 call sub_401C54 lea eax, [ebp+var_D8] push eax xor ecx, ecx mov edx, 0CFA3h mov eax, offset aK20fouwyzfgjev ; "k20fOuWyZfGjEv5F" call sub_4042E8 mov edx, [ebp+var_D8] mov eax, ds:off_40A134 call sub_401C54 lea eax, [ebp+var_DC] push eax xor ecx, ecx mov edx, 0CFA4h mov eax, offset aIaa8cwic5nbo2q ; "IaA8CWiC5NbO2QD4J/gMRJZjMNZb+nC" call sub_4042E8 mov edx, [ebp+var_DC] mov eax, ds:off_40A2A4 call sub_401C54 lea eax, [ebp+var_E0] push eax xor ecx, ecx mov edx, 0CFA5h mov eax, offset aIsfcqmqbxifrdb ; "ISFcQmQBxIfrDBiiKdxaw8jfkD" call sub_4042E8 mov edx, [ebp+var_E0] mov eax, ds:off_40A314 call sub_401C54 lea eax, [ebp+var_E4] push eax xor ecx, ecx mov edx, 0CFA6h mov eax, offset aZctr1eyzggrtwr ; "ZCtr1eYzggrtWRHPnHK" call sub_4042E8 mov edx, [ebp+var_E4] mov eax, ds:off_40A1E8 call sub_401C54 lea eax, [ebp+var_E8] push eax xor ecx, ecx mov edx, 0CFA7h mov eax, offset aSqlqzpdnmegkyv ; "sqLQZPDNMegkyVI" call sub_4042E8 mov edx, [ebp+var_E8] mov eax, ds:off_40A160 call sub_401C54 lea eax, [ebp+var_EC] push eax xor ecx, ecx mov edx, 0CFA8h mov eax, offset aCg9y1xp ; "cG9y1xP" call sub_4042E8 mov edx, [ebp+var_EC] mov eax, ds:off_40A19C call sub_401C54 lea eax, [ebp+var_F0] push eax xor ecx, ecx mov edx, 0CFA9h mov eax, offset aQw7trd ; "qW7TRD" call sub_4042E8 mov edx, [ebp+var_F0] mov eax, ds:off_40A25C call sub_401C54 lea eax, [ebp+var_F4] push eax xor ecx, ecx mov edx, 0CFAAh mov eax, offset aA2cekfy4 ; "a2cEKfY4" call sub_4042E8 mov edx, [ebp+var_F4] mov eax, ds:off_40A320 call sub_401C54 lea eax, [ebp+var_F8] push eax xor ecx, ecx mov edx, 0CFABh mov eax, offset aAcEvc ; "aC+EVC" call sub_4042E8 mov edx, [ebp+var_F8] mov eax, ds:off_40A150 call sub_401C54 lea eax, [ebp+var_FC] push eax xor ecx, ecx mov edx, 0CFACh mov eax, offset a9dwija ; "9DwIjA" call sub_4042E8 mov edx, [ebp+var_FC] mov eax, ds:off_40A100 call sub_401C54 lea eax, [ebp+var_100] push eax xor ecx, ecx mov edx, 0CFADh mov eax, offset a6ipvu3uWb ; "6ipvu3U+WB" call sub_4042E8 mov edx, [ebp+var_100] mov eax, ds:off_40A2A0 call sub_401C54 lea eax, [ebp+var_104] push eax xor ecx, ecx mov edx, 0CFAEh mov eax, offset aSsb4ur9kkslybb ; "sSB4UR9kksLYBB" call sub_4042E8 mov edx, [ebp+var_104] mov eax, ds:off_40A0D0 call sub_401C54 lea eax, [ebp+var_108] push eax xor ecx, ecx mov edx, 0CFAFh mov eax, offset aJmnetkrqyelx8o ; "JmnETKRQYeLX8oCaYTF" call sub_4042E8 mov edx, [ebp+var_108] mov eax, ds:off_40A140 call sub_401C54 lea eax, [ebp+var_10C] push eax xor ecx, ecx mov edx, 0CFB0h mov eax, offset aJalkydxttyno ; "JaLKYDXtTYnO" call sub_4042E8 mov edx, [ebp+var_10C] mov eax, ds:off_40A120 call sub_401C54 lea eax, [ebp+var_110] push eax xor ecx, ecx mov edx, 0CFB1h mov eax, offset aCq5tjmgi5ex1gk ; "cq5tjmGi5Ex1gkJ" call sub_4042E8 mov edx, [ebp+var_110] mov eax, ds:off_40A0E0 call sub_401C54 lea eax, [ebp+var_114] push eax xor ecx, ecx mov edx, 0CFB2h mov eax, offset aMuy88x2vyxuuho ; "MuY88x+2VyXUUhO" call sub_4042E8 mov edx, [ebp+var_114] mov eax, ds:off_40A234 call sub_401C54 lea eax, [ebp+var_118] push eax xor ecx, ecx mov edx, 0CFB3h mov eax, offset a42lwmjpg9sj9um ; "42lwmJpg9SJ9umDL" call sub_4042E8 mov edx, [ebp+var_118] mov eax, ds:off_40A0C8 call sub_401C54 lea eax, [ebp+var_11C] push eax xor ecx, ecx mov edx, 0CFB4h mov eax, offset aGsdpujcgoxep ; "gSdpuJcgOXeP" call sub_4042E8 mov edx, [ebp+var_11C] mov eax, ds:off_40A1B4 call sub_401C54 lea eax, [ebp+var_120] push eax xor ecx, ecx mov edx, 0CFB5h mov eax, offset a7wft ; "7WFT" call sub_4042E8 mov edx, [ebp+var_120] mov eax, ds:off_40A29C call sub_401C54 lea eax, [ebp+var_124] push eax xor ecx, ecx mov edx, 0CFB6h mov eax, offset aNkpgr98hC ; "nKpgR98h+C" call sub_4042E8 mov edx, [ebp+var_124] mov eax, ds:off_40A2F8 call sub_401C54 lea eax, [ebp+var_128] push eax xor ecx, ecx mov edx, 0CFB7h mov eax, offset aGnzuezd ; "gnZuEZD" call sub_4042E8 mov edx, [ebp+var_128] mov eax, ds:off_40A270 call sub_401C54 lea eax, [ebp+var_12C] push eax xor ecx, ecx mov edx, 0CFB8h mov eax, offset aLqiul724pPpecg ; "LqIuL724P+PPEcG" call sub_4042E8 mov edx, [ebp+var_12C] mov eax, ds:off_40A208 call sub_401C54 lea eax, [ebp+var_130] push eax xor ecx, ecx mov edx, 0CFB9h mov eax, offset aCsbrkmdgHwo ; "CSBrKmDg+HWo" call sub_4042E8 mov edx, [ebp+var_130] mov eax, ds:off_40A174 call sub_401C54 lea eax, [ebp+var_134] push eax xor ecx, ecx mov edx, 0CFBAh mov eax, offset aHvo21d ; "hvo21D" call sub_4042E8 mov edx, [ebp+var_134] mov eax, ds:off_40A114 call sub_401C54 lea eax, [ebp+var_138] push eax xor ecx, ecx mov edx, 0CFBBh mov eax, offset a42yu7kp ; "42YU7KP" call sub_4042E8 mov edx, [ebp+var_138] mov eax, ds:off_40A2BC call sub_401C54 lea eax, [ebp+var_13C] push eax xor ecx, ecx mov edx, 0CFBCh mov eax, offset a4oedrowy ; "4OEDrOWy" call sub_4042E8 mov edx, [ebp+var_13C] mov eax, ds:off_40A210 call sub_401C54 lea eax, [ebp+var_140] push eax xor ecx, ecx mov edx, 0CFBDh mov eax, offset aMer3curGxyfxrf ; "Mer3Cur+GXYfXrf/pbB" call sub_4042E8 mov edx, [ebp+var_140] mov eax, ds:off_40A244 call sub_401C54 lea eax, [ebp+var_144] push eax xor ecx, ecx mov edx, 0CFBEh mov eax, offset aYcsu7htwnpmint ; "YCSu7hTWnpMintfgNKcswPAX8C" call sub_4042E8 mov edx, [ebp+var_144] mov eax, ds:off_40A200 call sub_401C54 lea eax, [ebp+var_148] push eax xor ecx, ecx mov edx, 0CFBFh mov eax, offset aTg1igt58O0jift ; "TG1igT58+O0jifTlYCtauw8/hstxl79V" call sub_4042E8 mov edx, [ebp+var_148] mov eax, ds:off_40A27C call sub_401C54 lea eax, [ebp+var_14C] push eax xor ecx, ecx mov edx, 0CFC0h mov eax, offset aAovyKNwhbskqcb ; "AOvy/K+nWhbsKqcbklC" call sub_4042E8 mov edx, [ebp+var_14C] mov eax, ds:off_40A0EC call sub_401C54 lea eax, [ebp+var_150] push eax xor ecx, ecx mov edx, 0CFC1h mov eax, offset aM2oiiojif1fuza ; "M2oIIOjIF1FUzaB" call sub_4042E8 mov edx, [ebp+var_150] mov eax, ds:off_40A1EC call sub_401C54 lea eax, [ebp+var_154] push eax xor ecx, ecx mov edx, 0CFC2h mov eax, offset aDaegfaypa13sg2 ; "daegfAYpA13sG2B1f30Rye7+4zOP/f9RDEA9" call sub_4042E8 mov edx, [ebp+var_154] mov eax, ds:off_40A2B0 call sub_401C54 lea eax, [ebp+var_158] push eax xor ecx, ecx mov edx, 0CFC3h mov eax, offset aAPp7cqmo2xpssb ; "A+pp7CQMo/2xpssB" call sub_4042E8 mov edx, [ebp+var_158] mov eax, ds:off_40A24C call sub_401C54 lea eax, [ebp+var_15C] push eax xor ecx, ecx mov edx, 0CFC4h mov eax, offset aLmvJaxszvyouvq ; "Lmv/JaxsZVyOuVqaKD" call sub_4042E8 mov edx, [ebp+var_15C] mov eax, ds:off_40A250 call sub_401C54 lea eax, [ebp+var_160] push eax xor ecx, ecx mov edx, 0CFC5h mov eax, offset aMuehx9qw5tdnqq ; "MuEHX9Qw5TDNQqrMopC" call sub_4042E8 mov edx, [ebp+var_160] mov eax, ds:off_40A23C call sub_401C54 lea eax, [ebp+var_164] push eax xor ecx, ecx mov edx, 0CFC6h mov eax, offset aIi60kloyyocini ; "Ii60kloYyocIniAI" call sub_4042E8 mov edx, [ebp+var_164] mov eax, ds:off_40A0E4 call sub_401C54 lea eax, [ebp+var_168] push eax xor ecx, ecx mov edx, 0CFC7h mov eax, offset aMmrdkrqujpLYof ; "MmrDKrqujP+l/yOFQ7B" call sub_4042E8 mov edx, [ebp+var_168] mov eax, ds:off_40A26C call sub_401C54 lea eax, [ebp+var_16C] push eax xor ecx, ecx mov edx, 0CFC8h mov eax, offset aMimfjxhnkjw2km ; "MiMfJXhNKjW2kmQz2kK/Vrs9" call sub_4042E8 mov edx, [ebp+var_16C] mov eax, ds:off_40A1A4 call sub_401C54 lea eax, [ebp+var_170] push eax xor ecx, ecx mov edx, 0CFC9h mov eax, offset aCytbpk4jopc4if ; "cyTBPk4JOPC4ifjTC42G2C" call sub_4042E8 mov edx, [ebp+var_170] mov eax, ds:off_40A0DC call sub_401C54 lea eax, [ebp+var_174] push eax xor ecx, ecx mov edx, 0CFCAh mov eax, offset aJskfpqauaowhrv ; "JSKFPqaUaowHRvF" call sub_4042E8 mov edx, [ebp+var_174] mov eax, ds:off_40A278 call sub_401C54 lea eax, [ebp+var_178] push eax xor ecx, ecx mov edx, 0CFCBh mov eax, offset aMc2aw51npzrj6z ; "MC2aw51NPzRJ6Z3UjTN" call sub_4042E8 mov edx, [ebp+var_178] mov eax, ds:off_40A220 call sub_401C54 lea eax, [ebp+var_17C] push eax xor ecx, ecx mov edx, 0CFCCh mov eax, offset a8sZrjwimobtuqj ; "8S+ZrJwimOBtuQJ" call sub_4042E8 mov edx, [ebp+var_17C] mov eax, ds:off_40A1C4 call sub_401C54 lea eax, [ebp+var_180] push eax xor ecx, ecx mov edx, 0CFCDh mov eax, offset aIebgig9qms015z ; "IeBgig9qMS015zSd" call sub_4042E8 mov edx, [ebp+var_180] mov eax, ds:off_40A1E0 call sub_401C54 lea eax, [ebp+var_184] push eax xor ecx, ecx mov edx, 0CFCEh mov eax, offset aHfg1 ; "hfG1" call sub_4042E8 mov edx, [ebp+var_184] mov eax, ds:off_40A2AC call sub_401C54 lea eax, [ebp+var_188] push eax xor ecx, ecx mov edx, 0CFCFh mov eax, offset aIqmytcqcs7ijZn ; "IqmYTCQCs7iJ//ZN" call sub_4042E8 mov edx, [ebp+var_188] mov eax, ds:off_40A13C call sub_401C54 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_407FFE loc_407FD9: ; CODE XREF: sub_407128+ED4j lea eax, [ebp+var_188] mov edx, 5Eh call sub_401C24 lea eax, [ebp+var_C] mov edx, 2 call sub_401C24 retn ; --------------------------------------------------------------------------- loc_407FF7: ; DATA XREF: sub_407128+15o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_407FD9 ; --------------------------------------------------------------------------- loc_407FFE: ; CODE XREF: sub_407128+ECEj ; DATA XREF: sub_407128+EACo mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_407128 endp ; --------------------------------------------------------------------------- align 4 unknown_libname_17 dd 0Ch a3bvald: ; DATA XREF: sub_407128+32o unicode 0, <3bvAlD>,0 align 4 dd 0Eh aNgyMd: ; DATA XREF: sub_407128+57o unicode 0, <+ngy+MD>,0 unicode 0, < >,0 aUco3k7wux882eb: ; DATA XREF: sub_407128+7Co unicode 0, <uCO3k7wux882Ebmw>,0 align 4 unicode 0, <(>,0 aDifoh2zro4eio2: ; DATA XREF: sub_407128+9Eo unicode 0, <difOH2Zro4eIO2UbDyP0>,0 align 4 unicode 0, <&>,0 aDmgjufwnxsugjd: ; DATA XREF: sub_407128+C0o unicode 0, <dmgJUfwnXSUgJDMp/IN>,0 dd 1Eh aD1uvmvjc94eg2p: ; DATA XREF: sub_407128+E2o unicode 0, <d+1Uvmvjc94eG2P>,0 unicode 0, <,>,0 aDywlnguyXaar4w: ; DATA XREF: sub_407128+104o unicode 0, <dyWLNguy+XaaR4Wevt/7ZA>,0 align 4 dd 1Eh aDkbmeha0iugai2: ; DATA XREF: sub_407128+126o unicode 0, <dKbMEhA0IUgaI2M>,0 unicode 0, <$>,0 aDocwpfzjx2wkQb: ; DATA XREF: sub_407128+148o unicode 0, <dOcwpfZjx2wk/QBIpA>,0 align 4 db '´',0 align 10h aCmodknob2qkas3: ; DATA XREF: sub_407128+16Ao unicode 0, <cmODKnOB2Qkas3WVRs1YxysZCEbEqcTFEBoRGxd7ijW9l3e9E6NIFF//a> unicode 0, <9j9+IZWgYn4Hh+RfXfLg7WAu+kKx+2QcD>,0 align 4 aI db 'ˆ',0 align 4 aQrgzyakggxzvmd: ; DATA XREF: sub_407128+18Co unicode 0, <qrgZYAKGGXzVmdzJkLzMNhSYNh/OL9/vaO8tLWNkXpBH5GmDoYxW3xP2/> unicode 0, <ar/8LhS65ib>,0 align 4 aA db ' ',0 align 4 aC2wxhmzsyycikz: ; DATA XREF: sub_407128+1AEo unicode 0, <c2wXHMzsYYCIKZh2r092AF/BSI2wp0qNcudzVmX61oOS7wQg0GWJuka6m> unicode 0, <2BQJvHQ51T2+hOyRGpMpoN0>,0 align 10h aV: unicode 0, <v>,0 aQxakbx6ivb1mjr: ; DATA XREF: sub_407128+1D0o unicode 0, <qXaKBx6ivB1MJRwWDOxXYNeHFRuLqlS/fSUDyl+JzXSzBEnQgo0VA9Zjp> unicode 0, <GN>,0 db 'œ',0 align 10h aCaijfn3c0zmzcs: ; DATA XREF: sub_407128+1F2o unicode 0, <caIjFN3c0zMZcs+lZwbduea2ZoUI6GvV0Vh5SQ09dW7bt6ymTPHS5i4B0> unicode 0, <ZNh4WRiczDxmU2YXE0miA>,0 align 10h _str_10180721 dd 0FFFFFFFFh ; _top ; DATA XREF: sub_407128+20Eo dd 8 ; Len db '10180721',0 ; Text align 4 _str_m dd 0FFFFFFFFh ; _top ; DATA XREF: sub_407128+21Do dd 1 ; Len db 'm',0 ; Text align 10h dd 1Ch aKyfph1iw740pca: ; DATA XREF: sub_407128+232o unicode 0, <KyFph1Iw740pCA>,0 align 4 dd 10h aNcrlctbl: ; DATA XREF: sub_407128+254o unicode 0, <NCRlCtbl>,0 align 4 a@: unicode 0, <@>,0 aCsqnhpAzuvs2sv: ; DATA XREF: sub_407128+2A5o unicode 0, <cSQnHp+AzUvS2SV/BRFsSy2gsqm8y+i9>,0 align 4 dd 16h aTi6nrFol5c: ; DATA XREF: sub_407128+2C7o unicode 0, <ti6nR+FoL5C>,0 unicode 0, <&>,0 aRnialtyzi12hps: ; DATA XREF: sub_407128+2E9o unicode 0, <+rNiALTYZI12hPS2wHN>,0 unicode 0, <$>,0 a939eivv3pogxnv: ; DATA XREF: sub_407128+30Bo unicode 0, <939EIVV3PoGXNV5ELD>,0 align 4 unicode 0, <&>,0 aLwbdumyysvu9v9: ; DATA XREF: sub_407128+32Do unicode 0, <lWbDumyysVu9v9lsnaN>,0 unicode 0, <$>,0 a5b20ovjgt5hoq5: ; DATA XREF: sub_407128+34Fo unicode 0, <5b20OvjgT5HOq++5fB>,0 align 10h dw 8 unicode 0, <>,0 a6uzj: ; DATA XREF: sub_407128+371o unicode 0, <6uzj>,0 align 10h dd 1Eh a4cKvaucy0ife6e: ; DATA XREF: sub_407128+393o unicode 0, <4C/KvaUCy0iFE6E>,0 dd 10h a8ourt5o: ; DATA XREF: sub_407128+3B5o unicode 0, <8Ourt+5O>,0 align 4 dd 0Eh aNH3qxm: ; DATA XREF: sub_407128+3D7o unicode 0, <n+h3qXM>,0 unicode 0, <$>,0 aO22villgoziyya: ; DATA XREF: sub_407128+3F9o unicode 0, <o22vilLGOzIYyAQ9vB>,0 align 4 dw 8 unicode 0, <>,0 aIsxd: ; DATA XREF: sub_407128+41Bo unicode 0, <iSXD>,0 align 4 unknown_libname_18 dd 0Ch aHDlb: ; DATA XREF: sub_407128+43Do unicode 0, <h//dlB>,0 align 10h dd 1Ch a6wivZ9pgd5qwa: ; DATA XREF: sub_407128+462o unicode 0, <6WIv+Z9PgD5qwA>,0 align 4 a0: unicode 0, <0>,0 aAq6vywcs5pelnh: ; DATA XREF: sub_407128+48Ao unicode 0, <aq6vywcS5PeLNh24rbMcasM6>,0 align 4 dd 1Eh a4sob3rmctepeqw: ; DATA XREF: sub_407128+4B2o unicode 0, <4Sob3rmCtEpEqWH>,0 unknown_libname_19 dd 0Ch a8qzrxc: ; DATA XREF: sub_407128+4DAo unicode 0, <8qZrxC>,0 align 4 dd 1Ch aYw53fwb08zkfjd: ; DATA XREF: sub_407128+502o unicode 0, <YW53FWB08zKFjD>,0 align 4 dd 1Ch aYacSHx5pkymb: ; DATA XREF: sub_407128+52Ao unicode 0, <Yac/S+HX5PkymB>,0 align 4 unicode 0, <(>,0 aYczilil7ytz55j: ; DATA XREF: sub_407128+552o unicode 0, <YCzILiL7ytZ/55JVbR3U>,0 align 4 unicode 0, <$>,0 aO2nzavl6gpk6tk: ; DATA XREF: sub_407128+57Ao unicode 0, <o2nzAVl6gpK6tkxRrB>,0 align 4 dd 10h a8imfxzfi: ; DATA XREF: sub_407128+5A2o unicode 0, <8imFxZFI>,0 align 10h dd 1Ch a8orVl2oocosna: ; DATA XREF: sub_407128+5CAo unicode 0, <8Or/VL2OoCOSnA>,0 align 4 unknown_libname_20 dd 0Ch a9exlmc: ; DATA XREF: sub_407128+5F2o unicode 0, <9exlMC>,0 align 4 dd 18h aMut3p1x7Jwx: ; DATA XREF: sub_407128+61Ao unicode 0, <mut3P1x7/Jwx>,0 align 4 dd 18h aM2ovcwmcigA: ; DATA XREF: sub_407128+642o unicode 0, <m2OvcWMciG+a>,0 align 4 dd 0Eh aNsvwp1e: ; DATA XREF: sub_407128+66Ao unicode 0, <nSVwP1E>,0 dd 14h aSijtutktdd: ; DATA XREF: sub_407128+692o unicode 0, <siJTUtKTdD>,0 align 4 dd 0Eh aHozfxej: ; DATA XREF: sub_407128+6BAo unicode 0, <hOZfxEJ>,0 dd 0Eh aNip17no: ; DATA XREF: sub_407128+6E2o unicode 0, <niP17NO>,0 unicode 0, < >,0 aI6d3vntdfkht4f: ; DATA XREF: sub_407128+70Ao unicode 0, <I6D3vNtDfKht4F7n>,0 align 4 a4: unicode 0, <4>,0 aIyeUgnxh4vt0p7: ; DATA XREF: sub_407128+732o unicode 0, <IyE+ugnXh4vT0P7J7sy7B/Y7AA>,0 align 4 dd 18h aM6fzivtOfT: ; DATA XREF: sub_407128+75Ao unicode 0, <M6FZIVT/Of/t>,0 align 4 dd 1Eh a5yc8ncxbc3gx58: ; DATA XREF: sub_407128+782o unicode 0, <5yC8nCxBC3gx58E>,0 unicode 0, < >,0 aK20fouwyzfgjev: ; DATA XREF: sub_407128+7AAo unicode 0, <k20fOuWyZfGjEv5F>,0 align 10h dw 3Eh unicode 0, <>,0 aIaa8cwic5nbo2q: ; DATA XREF: sub_407128+7D2o unicode 0, <IaA8CWiC5NbO2QD4J/gMRJZjMNZb+nC>,0 a4_0: unicode 0, <4>,0 aIsfcqmqbxifrdb: ; DATA XREF: sub_407128+7FAo unicode 0, <ISFcQmQBxIfrDBiiKdxaw8jfkD>,0 align 10h unicode 0, <&>,0 aZctr1eyzggrtwr: ; DATA XREF: sub_407128+822o unicode 0, <ZCtr1eYzggrtWRHPnHK>,0 dd 1Eh aSqlqzpdnmegkyv: ; DATA XREF: sub_407128+84Ao unicode 0, <sqLQZPDNMegkyVI>,0 dd 0Eh aCg9y1xp: ; DATA XREF: sub_407128+872o unicode 0, <cG9y1xP>,0 unknown_libname_21 dd 0Ch aQw7trd: ; DATA XREF: sub_407128+89Ao unicode 0, <qW7TRD>,0 align 4 dd 10h aA2cekfy4: ; DATA XREF: sub_407128+8C2o unicode 0, <a2cEKfY4>,0 align 10h dd 0Ch aAcEvc: ; DATA XREF: sub_407128+8EAo unicode 0, <aC+EVC>,0 align 4 unknown_libname_22 dd 0Ch a9dwija: ; DATA XREF: sub_407128+912o unicode 0, <9DwIjA>,0 align 4 dd 14h a6ipvu3uWb: ; DATA XREF: sub_407128+93Ao unicode 0, <6ipvu3U+WB>,0 align 4 dd 1Ch aSsb4ur9kkslybb: ; DATA XREF: sub_407128+962o unicode 0, <sSB4UR9kksLYBB>,0 align 4 unicode 0, <&>,0 aJmnetkrqyelx8o: ; DATA XREF: sub_407128+98Ao unicode 0, <JmnETKRQYeLX8oCaYTF>,0 dd 18h aJalkydxttyno: ; DATA XREF: sub_407128+9B2o unicode 0, <JaLKYDXtTYnO>,0 align 4 dd 1Eh aCq5tjmgi5ex1gk: ; DATA XREF: sub_407128+9DAo unicode 0, <cq5tjmGi5Ex1gkJ>,0 dd 1Eh aMuy88x2vyxuuho: ; DATA XREF: sub_407128+A02o unicode 0, <MuY88x+2VyXUUhO>,0 unicode 0, < >,0 a42lwmjpg9sj9um: ; DATA XREF: sub_407128+A2Ao unicode 0, <42lwmJpg9SJ9umDL>,0 align 4 dd 18h aGsdpujcgoxep: ; DATA XREF: sub_407128+A52o unicode 0, <gSdpuJcgOXeP>,0 align 4 dw 8 unicode 0, <>,0 a7wft: ; DATA XREF: sub_407128+A7Ao unicode 0, <7WFT>,0 align 4 dd 14h aNkpgr98hC: ; DATA XREF: sub_407128+AA2o unicode 0, <nKpgR98h+C>,0 align 10h dd 0Eh aGnzuezd: ; DATA XREF: sub_407128+ACAo unicode 0, <gnZuEZD>,0 dd 1Eh aLqiul724pPpecg: ; DATA XREF: sub_407128+AF2o unicode 0, <LqIuL724P+PPEcG>,0 dd 18h aCsbrkmdgHwo: ; DATA XREF: sub_407128+B1Ao unicode 0, <CSBrKmDg+HWo>,0 align 4 unknown_libname_23 dd 0Ch aHvo21d: ; DATA XREF: sub_407128+B42o unicode 0, <hvo21D>,0 align 4 dd 0Eh a42yu7kp: ; DATA XREF: sub_407128+B6Ao unicode 0, <42YU7KP>,0 dd 10h a4oedrowy: ; DATA XREF: sub_407128+B92o unicode 0, <4OEDrOWy>,0 align 4 unicode 0, <&>,0 aMer3curGxyfxrf: ; DATA XREF: sub_407128+BBAo unicode 0, <Mer3Cur+GXYfXrf/pbB>,0 a4_1: unicode 0, <4>,0 aYcsu7htwnpmint: ; DATA XREF: sub_407128+BE2o unicode 0, <YCSu7hTWnpMintfgNKcswPAX8C>,0 align 10h a@_0: unicode 0, <@>,0 aTg1igt58O0jift: ; DATA XREF: sub_407128+C0Ao unicode 0, <TG1igT58+O0jifTlYCtauw8/hstxl79V>,0 align 4 unicode 0, <&>,0 aAovyKNwhbskqcb: ; DATA XREF: sub_407128+C32o unicode 0, <AOvy/K+nWhbsKqcbklC>,0 dd 1Eh aM2oiiojif1fuza: ; DATA XREF: sub_407128+C5Ao unicode 0, <M2oIIOjIF1FUzaB>,0 unicode 0, <H>,0 aDaegfaypa13sg2: ; DATA XREF: sub_407128+C82o unicode 0, <daegfAYpA13sG2B1f30Rye7+4zOP/f9RDEA9>,0 align 4 unicode 0, < >,0 aAPp7cqmo2xpssb: ; DATA XREF: sub_407128+CAAo unicode 0, <A+pp7CQMo/2xpssB>,0 align 10h unicode 0, <$>,0 aLmvJaxszvyouvq: ; DATA XREF: sub_407128+CD2o unicode 0, <Lmv/JaxsZVyOuVqaKD>,0 align 4 unicode 0, <&>,0 aMuehx9qw5tdnqq: ; DATA XREF: sub_407128+CFAo unicode 0, <MuEHX9Qw5TDNQqrMopC>,0 unicode 0, < >,0 aIi60kloyyocini: ; DATA XREF: sub_407128+D22o unicode 0, <Ii60kloYyocIniAI>,0 align 10h unicode 0, <&>,0 aMmrdkrqujpLYof: ; DATA XREF: sub_407128+D4Ao unicode 0, <MmrDKrqujP+l/yOFQ7B>,0 a0_0: unicode 0, <0>,0 aMimfjxhnkjw2km: ; DATA XREF: sub_407128+D72o unicode 0, <MiMfJXhNKjW2kmQz2kK/Vrs9>,0 align 4 unicode 0, <,>,0 aCytbpk4jopc4if: ; DATA XREF: sub_407128+D9Ao unicode 0, <cyTBPk4JOPC4ifjTC42G2C>,0 align 4 dd 1Eh aJskfpqauaowhrv: ; DATA XREF: sub_407128+DC2o unicode 0, <JSKFPqaUaowHRvF>,0 unicode 0, <&>,0 aMc2aw51npzrj6z: ; DATA XREF: sub_407128+DEAo unicode 0, <MC2aw51NPzRJ6Z3UjTN>,0 dd 1Eh a8sZrjwimobtuqj: ; DATA XREF: sub_407128+E12o unicode 0, <8S+ZrJwimOBtuQJ>,0 unicode 0, < >,0 aIebgig9qms015z: ; DATA XREF: sub_407128+E3Ao unicode 0, <IeBgig9qMS015zSd>,0 align 4 dw 8 unicode 0, <>,0 aHfg1: ; DATA XREF: sub_407128+E62o unicode 0, <hfG1>,0 align 4 unicode 0, < >,0 aIqmytcqcs7ijZn: ; DATA XREF: sub_407128+E8Ao unicode 0, <IqmYTCQCs7iJ//ZN>,0 align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408FFC proc near ; CODE XREF: r+24p ServiceMain+Ap var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 hModule = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFE4h xor eax, eax mov [ebp+var_1C], eax mov [ebp+var_18], eax mov [ebp+var_14], eax xor eax, eax push ebp push offset loc_40970C push dword ptr fs:[eax] mov fs:[eax], esp mov eax, ds:off_40A178 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpLibFileName call LoadLibraryA ; LoadLibraryA mov [ebp+var_10], eax mov eax, ds:off_40A184 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpLibFileName call LoadLibraryA ; LoadLibraryA mov [ebp+hModule], eax mov eax, ds:off_40A134 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpLibFileName call LoadLibraryA ; LoadLibraryA mov [ebp+var_C], eax mov eax, ds:off_40A1CC mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpLibFileName call LoadLibraryA ; LoadLibraryA mov [ebp+var_8], eax mov eax, ds:off_40A0DC mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+hModule] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A20C mov [edx], eax mov eax, ds:off_40A278 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A12C mov [edx], eax mov eax, ds:off_40A318 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+hModule] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A2A8 mov [edx], eax mov eax, ds:off_40A1F4 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+hModule] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A198 mov [edx], eax mov eax, ds:off_40A264 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+hModule] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A2C8 mov [edx], eax mov eax, ds:off_40A1DC mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+hModule] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A170 mov [edx], eax mov eax, ds:off_40A1D8 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+hModule] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A21C mov [edx], eax mov eax, ds:off_40A260 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+hModule] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A2C4 mov [edx], eax mov eax, ds:off_40A24C mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+hModule] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A104 mov [edx], eax mov eax, ds:off_40A250 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+hModule] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A110 mov [edx], eax mov eax, ds:off_40A23C mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+hModule] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A0FC mov [edx], eax mov eax, ds:off_40A22C mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A284 mov [edx], eax mov eax, ds:off_40A28C mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A2E0 mov [edx], eax mov eax, ds:off_40A2CC mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A30C mov [edx], eax mov eax, ds:off_40A268 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A2D4 mov [edx], eax mov eax, ds:off_40A11C mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A15C mov [edx], eax mov eax, ds:off_40A2E8 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A324 mov [edx], eax mov eax, ds:off_40A144 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A194 mov [edx], eax mov eax, ds:off_40A2CC mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A30C mov [edx], eax mov eax, ds:off_40A22C mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A284 mov [edx], eax mov eax, ds:off_40A238 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A290 mov [edx], eax mov eax, ds:off_40A2C0 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A300 mov [edx], eax mov eax, ds:off_40A254 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A2B4 mov [edx], eax mov eax, ds:off_40A108 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A14C mov [edx], eax mov eax, ds:off_40A28C mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A2E0 mov [edx], eax mov eax, ds:off_40A1D4 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A204 mov [edx], eax mov eax, ds:off_40A168 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A1C0 mov [edx], eax mov eax, ds:off_40A164 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A1BC mov [edx], eax mov eax, ds:off_40A2D8 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A31C mov [edx], eax mov eax, ds:off_40A0E4 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A218 mov [edx], eax mov eax, ds:off_40A228 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A280 mov [edx], eax mov eax, ds:off_40A274 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A1FC mov [edx], eax mov eax, ds:off_40A2A4 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_10] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A2F0 mov [edx], eax mov eax, ds:off_40A314 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_10] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A0CC mov [edx], eax mov eax, ds:off_40A1E8 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_10] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A240 mov [edx], eax mov eax, ds:off_40A160 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_8] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A1B0 mov [edx], eax mov eax, ds:off_40A19C mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A1E4 mov [edx], eax mov eax, ds:off_40A140 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A190 mov [edx], eax mov eax, ds:off_40A120 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A16C mov [edx], eax mov eax, ds:off_40A0E0 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A118 mov [edx], eax mov eax, ds:off_40A234 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A288 mov [edx], eax mov eax, ds:off_40A174 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A10C mov [edx], eax mov eax, ds:off_40A208 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A1A8 mov [edx], eax mov eax, ds:off_40A244 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A298 mov [edx], eax mov eax, ds:off_40A200 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A258 mov [edx], eax mov eax, ds:off_40A0EC mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+hModule] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A310 mov [edx], eax mov ecx, ds:off_40A1B4 mov ecx, [ecx] mov edx, ds:off_40A248 mov edx, [edx] mov eax, ds:off_40A2B8 call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, ds:off_40A1EC mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A188 mov [edx], eax mov eax, ds:off_40A2B0 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+hModule] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A2F4 mov [edx], eax mov eax, ds:off_40A26C mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+hModule] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A124 mov [edx], eax mov eax, ds:off_40A1A4 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+hModule] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A2EC mov [edx], eax mov eax, ds:off_40A220 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A0F0 mov [edx], eax mov eax, ds:off_40A1E0 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A304 mov [edx], eax mov eax, ds:off_40A13C mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpProcName mov eax, [ebp+var_C] push eax ; hModule call GetProcAddress ; GetProcAddress mov edx, ds:off_40A294 mov [edx], eax lea eax, [ebp+var_14] call sub_406F40 mov edx, [ebp+var_14] mov eax, ds:off_40A224 call sub_401C54 lea eax, [ebp+var_18] call @Adaptreq@TBasicActionResponseImpl@HandleResponse$qqrv ; Adaptreq::TBasicActionResponseImpl::HandleResponse(void) mov edx, [ebp+var_18] mov eax, ds:off_40A248 call sub_401C54 lea eax, [ebp+var_1C] call sub_406C40 xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_409713 loc_4096FE: ; CODE XREF: sub_408FFC+715j lea eax, [ebp+var_1C] mov edx, 3 call sub_401C24 retn ; --------------------------------------------------------------------------- loc_40970C: ; DATA XREF: sub_408FFC+14o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4096FE ; --------------------------------------------------------------------------- loc_409713: ; CODE XREF: sub_408FFC+70Fj ; DATA XREF: sub_408FFC+6FDo mov esp, ebp pop ebp retn sub_408FFC endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409718 proc near ; CODE XREF: r+3Ep var_4 = dword ptr -4 push ebp mov ebp, esp push 0 xor eax, eax push ebp push offset loc_409799 push dword ptr fs:[eax] mov fs:[eax], esp lea ecx, [ebp+var_4] mov edx, ds:off_40A130 mov edx, [edx] mov eax, 80000002h call sub_404D24 test al, al jz short loc_409783 mov edx, ds:off_40A158 mov edx, [edx] mov eax, [ebp+var_4] call sub_4032DC test eax, eax jl short loc_409783 mov edx, ds:off_40A158 mov edx, [edx] lea eax, [ebp+var_4] xor ecx, ecx call sub_402B8C test al, al jz short loc_409783 mov edx, ds:off_40A130 mov edx, [edx] mov ecx, [ebp+var_4] mov eax, 80000002h call sub_404B64 loc_409783: ; CODE XREF: sub_409718+2Aj ; sub_409718+3Ej ... xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_4097A0 loc_409790: ; CODE XREF: sub_409718+86j lea eax, [ebp+var_4] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_409799: ; DATA XREF: sub_409718+8o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_409790 ; --------------------------------------------------------------------------- loc_4097A0: ; CODE XREF: sub_409718+80j ; DATA XREF: sub_409718+73o pop ecx pop ebp retn sub_409718 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4097A4 proc near ; CODE XREF: r+43p var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = byte ptr -24h var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp add esp, 0FFFFFFCCh xor eax, eax mov [ebp+var_28], eax mov [ebp+var_30], eax mov [ebp+var_34], eax mov [ebp+var_2C], eax xor eax, eax push ebp push offset loc_4098D2 push dword ptr fs:[eax] mov fs:[eax], esp push 0F003Fh push 0 push 0 mov eax, ds:off_40A310 mov eax, [eax] call eax mov [ebp+var_4], eax cmp [ebp+var_4], 0 jbe loc_4098B7 push 0F01FFh mov eax, ds:off_40A158 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, [ebp+var_4] push eax mov eax, ds:off_40A104 mov eax, [eax] call eax mov [ebp+var_8], eax cmp [ebp+var_8], 0 jbe loc_4098AA lea eax, [ebp+var_24] push eax push 1 mov eax, [ebp+var_8] push eax mov eax, ds:off_40A124 mov eax, [eax] call eax push 7D0h mov eax, ds:off_40A1E4 mov eax, [eax] call eax mov eax, [ebp+var_8] push eax mov eax, ds:off_40A110 mov eax, [eax] call eax test eax, eax jnz short loc_40989D mov eax, ds:off_40A218 mov eax, [eax] call eax lea edx, [ebp+var_2C] call sub_4031F0 mov ecx, [ebp+var_2C] lea eax, [ebp+var_28] mov edx, offset _str_5_0.Text call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_28] push eax mov edx, ds:off_40A1D0 mov edx, [edx] lea eax, [ebp+var_34] mov ecx, offset _str_i.Text call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_34] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) mov edx, eax lea eax, [ebp+var_30] call unknown_libname_8 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov edx, [ebp+var_30] mov eax, 80000002h pop ecx call sub_404AD8 loc_40989D: ; CODE XREF: sub_4097A4+9Dj mov eax, [ebp+var_8] push eax mov eax, ds:off_40A2EC mov eax, [eax] call eax loc_4098AA: ; CODE XREF: sub_4097A4+67j mov eax, [ebp+var_4] push eax mov eax, ds:off_40A2EC mov eax, [eax] call eax loc_4098B7: ; CODE XREF: sub_4097A4+3Bj xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_4098D9 loc_4098C4: ; CODE XREF: sub_4097A4+133j lea eax, [ebp+var_34] mov edx, 4 call sub_401C24 retn ; --------------------------------------------------------------------------- loc_4098D2: ; DATA XREF: sub_4097A4+17o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_4098C4 ; --------------------------------------------------------------------------- loc_4098D9: ; CODE XREF: sub_4097A4+12Dj ; DATA XREF: sub_4097A4+11Bo mov esp, ebp pop ebp retn sub_4097A4 endp ; --------------------------------------------------------------------------- align 10h _str_5_0 dd 0FFFFFFFFh ; _top ; DATA XREF: sub_4097A4+B6o dd 1 ; Len db '5',0 ; Text align 4 _str_i dd 0FFFFFFFFh ; _top ; DATA XREF: sub_4097A4+CFo dd 1 ; Len db 'i',0 ; Text align 4 ; Exported entry 2. r ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame public r r proc near var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = byte ptr -30h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp mov ecx, 11h loc_409900: ; CODE XREF: r+Dj push 0 push 0 dec ecx jnz short loc_409900 xor eax, eax push ebp push offset loc_409D49 push dword ptr fs:[eax] mov fs:[eax], esp xor eax, eax call sub_407128 call sub_408FFC call sub_405598 lea eax, [ebp+var_14] mov edx, ds:off_40A0D8 mov edx, [edx] call sub_401C98 call sub_409718 call sub_4097A4 lea ecx, [ebp+var_4] mov edx, ds:off_40A214 mov edx, [edx] mov eax, 80000002h call sub_404D24 test al, al jz loc_409CB0 mov edx, [ebp+var_14] mov eax, [ebp+var_4] call sub_4032DC test eax, eax jge short loc_409984 push [ebp+var_14] push offset dword_409D5C push [ebp+var_4] lea eax, [ebp+var_4] mov edx, 3 call sub_401EB4 loc_409984: ; CODE XREF: r+72j mov edx, ds:off_40A214 mov edx, [edx] mov ecx, [ebp+var_4] mov eax, 80000002h call sub_404B64 test al, al jz loc_409C54 push 0F003Fh push 0 push 0 mov eax, ds:off_40A310 mov eax, [eax] call eax mov [ebp+var_8], eax cmp [ebp+var_8], 0 jbe loc_409A8E push 0F01FFh mov eax, [ebp+var_14] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, [ebp+var_8] push eax mov eax, ds:off_40A104 mov eax, [eax] call eax mov [ebp+var_C], eax cmp [ebp+var_C], 0 jbe loc_409A81 lea eax, [ebp+var_30] push eax push 1 mov eax, [ebp+var_C] push eax mov eax, ds:off_40A124 mov eax, [eax] call eax push 7D0h mov eax, ds:off_40A1E4 mov eax, [eax] call eax mov eax, [ebp+var_C] push eax mov eax, ds:off_40A110 mov eax, [eax] call eax test eax, eax jnz short loc_409A74 mov eax, ds:off_40A218 mov eax, [eax] call eax lea edx, [ebp+var_38] call sub_4031F0 mov ecx, [ebp+var_38] lea eax, [ebp+var_34] mov edx, offset _str_5_1.Text call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_34] push eax mov edx, ds:off_40A1D0 mov edx, [edx] lea eax, [ebp+var_40] mov ecx, offset _str_i_0.Text call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_40] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) mov edx, eax lea eax, [ebp+var_3C] call unknown_libname_8 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov edx, [ebp+var_3C] mov eax, 80000002h pop ecx call sub_404AD8 loc_409A74: ; CODE XREF: r+120j mov eax, [ebp+var_C] push eax mov eax, ds:off_40A2EC mov eax, [eax] call eax loc_409A81: ; CODE XREF: r+EAj mov eax, [ebp+var_8] push eax mov eax, ds:off_40A2EC mov eax, [eax] call eax loc_409A8E: ; CODE XREF: r+C2j push 0F003Fh push 0 push 0 mov eax, ds:off_40A310 mov eax, [eax] call eax mov [ebp+var_8], eax cmp [ebp+var_8], 0 jbe loc_409BF5 push 0 push 0 push 0 push 0 push 0 mov eax, ds:off_40A18C mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax push 1 push 2 push 10h push 0F01FFh push 0 mov eax, [ebp+var_14] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, [ebp+var_8] push eax mov eax, ds:off_40A0FC mov eax, [eax] call eax mov [ebp+var_C], eax cmp [ebp+var_C], 0 jbe loc_409B96 mov eax, [ebp+var_C] push eax mov eax, ds:off_40A2EC mov eax, [eax] call eax mov eax, [ebp+var_8] push eax mov eax, ds:off_40A2EC mov eax, [eax] call eax lea eax, [ebp+var_10] mov edx, 0FFh call sub_4020C8 push 0FFh ; nSize mov eax, [ebp+var_10] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax ; lpFilename mov eax, ds:hModule push eax ; hModule call GetModuleFileNameA ; GetModuleFileNameA mov eax, ds:off_40A1C8 mov ecx, [ebp+var_14] mov edx, offset _str__s.Text call sub_402B8C mov edx, ds:off_40A1C8 mov edx, [edx] mov ecx, [ebp+var_10] mov eax, 80000002h call sub_404BF0 mov edx, ds:off_40A1D0 mov edx, [edx] lea eax, [ebp+var_48] mov ecx, offset _str_i_0.Text call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_48] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) mov edx, eax lea eax, [ebp+var_44] call unknown_libname_8 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov edx, [ebp+var_44] xor ecx, ecx mov eax, 80000002h call sub_404AD8 jmp loc_409D16 ; --------------------------------------------------------------------------- loc_409B96: ; CODE XREF: r+1F6j mov eax, ds:off_40A218 mov eax, [eax] call eax lea edx, [ebp+var_50] call sub_4031F0 mov ecx, [ebp+var_50] lea eax, [ebp+var_4C] mov edx, offset _str_1_0.Text call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_4C] push eax mov edx, ds:off_40A1D0 mov edx, [edx] lea eax, [ebp+var_58] mov ecx, offset _str_i_0.Text call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_58] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) mov edx, eax lea eax, [ebp+var_54] call unknown_libname_8 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov edx, [ebp+var_54] mov eax, 80000002h pop ecx call sub_404AD8 jmp loc_409D16 ; --------------------------------------------------------------------------- loc_409BF5: ; CODE XREF: r+1AFj mov eax, ds:off_40A218 mov eax, [eax] call eax lea edx, [ebp+var_60] call sub_4031F0 mov ecx, [ebp+var_60] lea eax, [ebp+var_5C] mov edx, offset _str_2_0.Text call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_5C] push eax mov edx, ds:off_40A1D0 mov edx, [edx] lea eax, [ebp+var_68] mov ecx, offset _str_i_0.Text call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_68] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) mov edx, eax lea eax, [ebp+var_64] call unknown_libname_8 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov edx, [ebp+var_64] mov eax, 80000002h pop ecx call sub_404AD8 jmp loc_409D16 ; --------------------------------------------------------------------------- loc_409C54: ; CODE XREF: r+A3j mov eax, ds:off_40A218 mov eax, [eax] call eax lea edx, [ebp+var_70] call sub_4031F0 mov ecx, [ebp+var_70] lea eax, [ebp+var_6C] mov edx, offset _str_3_0.Text call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_6C] push eax mov edx, ds:off_40A1D0 mov edx, [edx] lea eax, [ebp+var_78] mov ecx, offset _str_i_0.Text call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_78] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) mov edx, eax lea eax, [ebp+var_74] call unknown_libname_8 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov edx, [ebp+var_74] mov eax, 80000002h pop ecx call sub_404AD8 jmp short loc_409D16 ; --------------------------------------------------------------------------- loc_409CB0: ; CODE XREF: r+5Fj mov eax, ds:off_40A218 mov eax, [eax] call eax lea edx, [ebp+var_80] call sub_4031F0 mov ecx, [ebp+var_80] lea eax, [ebp+var_7C] mov edx, offset _str_4_0.Text call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_7C] push eax mov edx, ds:off_40A1D0 mov edx, [edx] lea eax, [ebp+var_88] mov ecx, offset _str_i_0.Text call @System@@LStrCat3$qqrv ; System::__linkproc__ LStrCat3(void) mov eax, [ebp+var_88] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) mov edx, eax lea eax, [ebp+var_84] call unknown_libname_8 ; BDS 2005-2006 and Delphi6-7 Visual Component Library mov edx, [ebp+var_84] mov eax, 80000002h pop ecx call sub_404AD8 loc_409D16: ; CODE XREF: r+299j r+2F8j ... xor eax, eax pop edx pop ecx pop ecx mov fs:[eax], edx push offset loc_409D50 loc_409D23: ; CODE XREF: r+456j lea eax, [ebp+var_88] mov edx, 16h call sub_401C24 lea eax, [ebp+var_14] mov edx, 2 call sub_401C24 lea eax, [ebp+var_4] call sub_401C00 retn ; --------------------------------------------------------------------------- loc_409D49: ; DATA XREF: r+12o jmp unknown_libname_6 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- jmp short loc_409D23 ; --------------------------------------------------------------------------- loc_409D50: ; CODE XREF: r+450j ; DATA XREF: r+426o mov esp, ebp pop ebp retn r endp ; --------------------------------------------------------------------------- dd 0FFFFFFFFh, 1 dword_409D5C dd 0 _str_5_1 dd 0FFFFFFFFh ; _top ; DATA XREF: r+139o dd 1 ; Len db '5',0 ; Text align 4 _str_i_0 dd 0FFFFFFFFh ; _top ; DATA XREF: r+152o r+26Eo ... dd 1 ; Len db 'i',0 ; Text align 4 _str__s dd 0FFFFFFFFh ; _top ; DATA XREF: r+244o dd 2 ; Len db '%s',0 ; Text align 4 _str_1_0 dd 0FFFFFFFFh ; _top ; DATA XREF: r+2B5o dd 1 ; Len db '1',0 ; Text align 10h _str_2_0 dd 0FFFFFFFFh ; _top ; DATA XREF: r+314o dd 1 ; Len db '2',0 ; Text align 4 _str_3_0 dd 0FFFFFFFFh ; _top ; DATA XREF: r+373o dd 1 ; Len db '3',0 ; Text align 4 _str_4_0 dd 0FFFFFFFFh ; _top ; DATA XREF: r+3CFo dd 1 ; Len db '4',0 ; Text align 4 ; Exported entry 1. ServiceMain ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame public ServiceMain ServiceMain proc near push ebp mov ebp, esp xor eax, eax call sub_407128 call sub_408FFC call sub_405598 push offset sub_407068 mov eax, ds:off_40A0D8 mov eax, [eax] call @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString) push eax mov eax, ds:off_40A2F4 mov eax, [eax] call eax mov ds:dword_40B31C, eax cmp ds:dword_40B31C, 0 jz short loc_409E40 mov eax, ds:off_40A12C mov eax, [eax] call eax mov ecx, 1 xor edx, edx mov eax, 2 call sub_407008 xor ecx, ecx xor edx, edx mov eax, 4 call sub_407008 jmp short loc_409E2E ; --------------------------------------------------------------------------- loc_409E1B: ; CODE XREF: ServiceMain+8Aj call sub_4063E8 push 927C0h mov eax, ds:off_40A1E4 mov eax, [eax] call eax loc_409E2E: ; CODE XREF: ServiceMain+65j cmp ds:dword_40B320, 3 jz short loc_409E40 cmp ds:dword_40B320, 1 jnz short loc_409E1B loc_409E40: ; CODE XREF: ServiceMain+3Bj ; ServiceMain+81j pop ebp retn 8 ServiceMain endp ; [00000028 BYTES: COLLAPSED FUNCTION unknown_libname_24. PRESS KEYPAD "+" TO EXPAND] dword_409E6C dd 12h dd offset off_409E74 off_409E74 dd offset loc_402920 ; DATA XREF: CODE:00409E70o dd offset sub_4028F0 dd offset sub_402774 dd offset sub_40272C dd offset sub_402988 dd offset sub_402958 dd offset sub_4029C0 dd offset sub_402990 dd offset sub_4029F8 dd offset sub_4029C8 dd offset unknown_libname_14 ; BDS 2005-2006 and Delphi6-7 Visual Component Library dd offset sub_403550 dd offset sub_403608 dd offset sub_4035D8 dd offset sub_403A10 dd offset sub_403610 dd offset sub_404388 dd offset sub_404358 dd offset sub_404760 dd offset sub_404730 dd offset sub_404798 dd offset sub_404768 dd offset sub_4047D0 dd offset sub_4047A0 dd offset sub_404808 dd offset sub_4047D8 dd offset sub_404E34 dd offset sub_404E04 dd offset sub_405590 dd offset sub_405560 dd offset sub_406900 dd offset sub_4068D0 dd offset sub_406FF0 dd offset sub_406FC0 align 10h dd offset unknown_libname_24 ; BDS 2005-2006 and Delphi6-7 Visual Component Library ; --------------------------------------------------------------------------- ; BOOL __stdcall DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved) public DllEntryPoint DllEntryPoint: push ebp mov ebp, esp add esp, 0FFFFFFB4h mov eax, offset dword_409E6C call @Sysinit@@InitLib$qqrv ; Sysinit::__linkproc__ InitLib(void) mov ds:dword_40B06C, offset sub_406FF8 call sub_401B04 ; --------------------------------------------------------------------------- align 100h CODE ends ; Section 2. (virtual address 0000A000) ; Virtual size : 0000032C ( 812.) ; Section size in file : 00000400 ( 1024.) ; Offset to raw data for section: 00009400 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write DATA segment para public 'DATA' use32 assume cs:DATA ;org 40A000h off_40A000 dd offset nullsub_1 ; DATA XREF: sub_40231C+88r off_40A004 dd offset nullsub_1 ; DATA XREF: sub_40231C+71r off_40A008 dd offset nullsub_1 ; DATA XREF: sub_40231C+7Br off_40A00C dd offset sub_4019BC ; DATA XREF: sub_4019BC+Fr ; sub_4019BC+35r ... off_40A010 dd offset sub_401988 ; DATA XREF: sub_401B04:loc_401B52r off_40A014 dd offset nullsub_1 ; DATA XREF: sub_401B04:loc_401B81r word_40A018 dw 1332h ; DATA XREF: unknown_libname_2+3r ; System::__linkproc__ StartLib(void)+89w dw 0C08Bh byte_40A01C db 0 ; DATA XREF: sub_401534r sub_401550r ... db 8Dh, 40h, 0 byte_40A020 db 0 ; DATA XREF: sub_40161C+52r ; sub_40161C:loc_4016A9r db 8Dh, 40h, 0 dword_40A024 dd 0 ; System::RegisterModule(System::TLibModule *)+8w dword_40A028 dd 0 off_40A02C dd offset sub_402464 ; DATA XREF: sub_401B04+66r off_40A030 dd offset nullsub_1 ; DATA XREF: sub_40272C:loc_402754r off_40A034 dd offset sub_4010E8 ; DATA XREF: sub_40114C+4r ; System::__linkproc__ ReallocMem(void *&,int)+3Fr ... off_40A038 dd offset sub_4010F8 ; DATA XREF: sub_401164+4r ; System::__linkproc__ ReallocMem(void *&,int)+26r off_40A03C dd offset sub_401104 ; DATA XREF: System::__linkproc__ ReallocMem(void *&,int)+Dr word_40A040 dw 1F32h ; DATA XREF: sub_40127C+8r dw 0C08Bh off_40A044 dd offset nullsub_1 ; DATA XREF: sub_401B04+38r dword_40A048 dd 0 ; Sysinit::__linkproc__ InitLib(void)o dword_40A04C dd 0 dd 2 dup(0) dword_40A058 dd 0 align 10h off_40A060 dd offset sub_402828 ; DATA XREF: Sysinit::__linkproc__ InitLib(void)+3Bo dd offset sub_4027D8 dd offset sub_402788 dd offset sub_402800 byte_40A070 db 3Dh ; DATA XREF: sub_4030B0+Ar db 8Dh, 40h, 0 dword_40A074 dd 1C001Fh, 2 dup(1E001Fh), 1F001Fh, 2 dup(1F001Eh), 1D001Fh ; DATA XREF: sub_402D3C+2Co ; sub_402EE8+E6o dd 2 dup(1E001Fh), 1F001Fh, 2 dup(1F001Eh) dword_40A0A4 dd 0 ; sub_402A4C+4o ... dword_40A0A8 dd 80000000h dd 40000000h, 0C0000000h dword_40A0B4 dd 0 dd 0 dd 1, 2, 3 off_40A0C8 dd offset dword_40B1A8 ; DATA XREF: sub_405F58+49r ; sub_407128+A3Ar off_40A0CC dd offset dword_40B2BC ; DATA XREF: sub_4044CC+89r ; sub_408FFC+467r off_40A0D0 dd offset dword_40B18C ; DATA XREF: sub_406E58+34r ; sub_407128+972r off_40A0D4 dd offset dword_40B1B4 ; DATA XREF: sub_406018+57r ; sub_406018+F2r ... off_40A0D8 dd offset dword_40B0CC ; DATA XREF: sub_4057E4+76r ; sub_4063E8+59r ... off_40A0DC dd offset dword_40B20C ; DATA XREF: sub_407128+DAAr ; sub_408FFC+73r off_40A0E0 dd offset dword_40B198 ; DATA XREF: sub_407128+9EAr ; sub_408FFC+505r off_40A0E4 dd offset dword_40B200 ; DATA XREF: sub_407128+D32r ; sub_408FFC+3D9r off_40A0E8 dd offset dword_40B0E8 ; DATA XREF: sub_405964+7Cr ; sub_407128+318r off_40A0EC dd offset dword_40B1E4 ; DATA XREF: sub_407128+C42r ; sub_408FFC+5B9r off_40A0F0 dd offset dword_40B30C ; DATA XREF: sub_405E08+29r ; sub_408FFC+67Fr off_40A0F4 dd offset dword_40B114 ; DATA XREF: sub_406C40+E0r ; sub_407128+49Ar off_40A0F8 dd offset dword_40B108 ; DATA XREF: sub_406C40+47r ; sub_407128+428r off_40A0FC dd offset dword_40B2F4 ; DATA XREF: sub_408FFC+1B5r r+1E6r off_40A100 dd offset dword_40B180 ; DATA XREF: sub_405AC8+31r ; sub_405BE8:loc_405C17r ... off_40A104 dd offset dword_40B2EC ; DATA XREF: sub_408FFC+179r ; sub_4097A4+57r ... off_40A108 dd offset dword_40B134 ; DATA XREF: sub_407128+652r ; sub_408FFC+325r off_40A10C dd offset dword_40B2DC ; DATA XREF: sub_406018+1C3r ; sub_406018+1DEr ... off_40A110 dd offset dword_40B2F0 ; DATA XREF: sub_408FFC+197r ; sub_4097A4+92r ... off_40A114 dd offset dword_40B1C8 ; DATA XREF: sub_406018+19Er ; sub_406018+1F0r ... off_40A118 dd offset dword_40B2D4 ; DATA XREF: sub_408FFC+51Br off_40A11C dd offset dword_40B11C ; DATA XREF: sub_407128+512r ; sub_408FFC+235r off_40A120 dd offset dword_40B194 ; DATA XREF: sub_407128+9C2r ; sub_408FFC+4E7r off_40A124 dd offset dword_40B2FC ; DATA XREF: sub_408FFC+643r ; sub_4097A4+77r ... off_40A128 dd offset dword_40B0C4 ; DATA XREF: sub_4063E8+75r ; sub_4063E8+404r ... off_40A12C dd offset dword_40B308 ; DATA XREF: sub_408FFC+A7r ; ServiceMain+3Dr off_40A130 dd offset dword_40B0B0 ; DATA XREF: sub_407128+177r ; sub_409718+16r ... off_40A134 dd offset dword_40B154 ; DATA XREF: sub_407128+7BAr ; sub_408FFC+49r off_40A138 dd offset dword_40B1F0 ; DATA XREF: sub_406F40+1Fr ; sub_406F40+53r ... off_40A13C dd offset dword_40B220 ; DATA XREF: sub_407128+E9Ar ; sub_408FFC+6A5r off_40A140 dd offset dword_40B190 ; DATA XREF: sub_407128+99Ar ; sub_408FFC+4C9r off_40A144 dd offset dword_40B124 ; DATA XREF: sub_407128+562r ; sub_408FFC+271r off_40A148 dd offset dword_40B0F0 ; DATA XREF: sub_405964+9Cr ; sub_407128+35Cr off_40A14C dd offset dword_40B294 ; DATA XREF: sub_404EA0+B3r ; sub_408FFC+33Br off_40A150 dd offset dword_40B17C ; DATA XREF: sub_4057E4+83r ; sub_407128+8FAr off_40A154 dd offset dword_40B0DC ; DATA XREF: sub_405BE8+81r ; sub_4063E8+A0r ... off_40A158 dd offset dword_40B0C8 ; DATA XREF: sub_407128+23Fr ; sub_409718+2Cr ... off_40A15C dd offset dword_40B27C ; DATA XREF: sub_4063E8+36r ; sub_408FFC+24Br off_40A160 dd offset dword_40B164 ; DATA XREF: sub_407128+85Ar ; sub_408FFC+48Dr off_40A164 dd offset dword_40B140 ; DATA XREF: sub_407128+6F2r ; sub_408FFC+39Dr off_40A168 dd offset dword_40B13C ; DATA XREF: sub_407128+6CAr ; sub_408FFC+37Fr off_40A16C dd offset dword_40B2D0 ; DATA XREF: sub_408FFC+4FDr off_40A170 dd offset dword_40B25C ; DATA XREF: sub_404974+C5r ; sub_404974+F3r ... off_40A174 dd offset dword_40B1C4 ; DATA XREF: sub_407128+B2Ar ; sub_408FFC+541r off_40A178 dd offset dword_40B150 ; DATA XREF: sub_407128+792r ; sub_408FFC+1Fr off_40A17C dd offset dword_40B2A4 ; DATA XREF: sub_4062FC+B9r off_40A180 dd offset dword_40B110 ; DATA XREF: sub_406AE8+3Ar ; sub_407128+472r off_40A184 dd offset dword_40B094 ; DATA XREF: sub_407128+89r ; sub_408FFC+34r off_40A188 dd offset dword_40B24C ; DATA XREF: sub_408FFC+607r off_40A18C dd offset dword_40B0BC ; DATA XREF: sub_407128+1DDr r+1BFr off_40A190 dd offset dword_40B2CC ; DATA XREF: sub_408FFC+4DFr off_40A194 dd offset dword_40B284 ; DATA XREF: sub_408FFC+287r off_40A198 dd offset dword_40B258 ; DATA XREF: sub_40484C+B9r ; sub_40484C+E5r ... off_40A19C dd offset dword_40B168 ; DATA XREF: sub_407128+882r ; sub_408FFC+4ABr off_40A1A0 dd offset dword_40B0E0 ; DATA XREF: sub_405964+3Er ; sub_405964+5Cr ... off_40A1A4 dd offset dword_40B208 ; DATA XREF: sub_407128+D82r ; sub_408FFC+64Br off_40A1A8 dd offset dword_40B2E0 ; DATA XREF: sub_406018+20Cr ; sub_406018+260r ... off_40A1AC dd offset dword_40B0E4 ; DATA XREF: sub_405964+6Cr ; sub_407128+2F6r off_40A1B0 dd offset dword_40B2C4 ; DATA XREF: sub_405008+Er ; sub_408FFC+4A3r off_40A1B4 dd offset dword_40B1B0 ; DATA XREF: sub_4063E8+21Fr ; sub_4063E8+24Er ... off_40A1B8 dd offset dword_40B0F4 ; DATA XREF: sub_407128+209r ; sub_407128+288r off_40A1BC dd offset dword_40B29C ; DATA XREF: sub_405168+17r ; sub_408FFC+3B3r off_40A1C0 dd offset dword_40B298 ; DATA XREF: sub_405024+38r ; sub_408FFC+395r off_40A1C4 dd offset dword_40B1A4 ; DATA XREF: sub_405AC8+44r ; sub_405BE8+42r ... off_40A1C8 dd offset dword_40B0C0 ; DATA XREF: sub_407128+1FFr r+23Cr ... off_40A1CC dd offset dword_40B0F8 ; DATA XREF: sub_407128+3A0r ; sub_407128+4C2r ... off_40A1D0 dd offset dword_40B0D4 ; DATA XREF: sub_4055F8+32r ; sub_405688+2Ar ... off_40A1D4 dd offset dword_40B138 ; DATA XREF: sub_407128+6A2r ; sub_408FFC+361r off_40A1D8 dd offset dword_40B0A8 ; DATA XREF: sub_407128+133r ; sub_408FFC+127r off_40A1DC dd offset dword_40B0A4 ; DATA XREF: sub_407128+111r ; sub_408FFC+109r off_40A1E0 dd offset dword_40B218 ; DATA XREF: sub_407128+E4Ar ; sub_408FFC+687r off_40A1E4 dd offset dword_40B2C8 ; DATA XREF: sub_407068+41r ; sub_408FFC+4C1r ... off_40A1E8 dd offset dword_40B160 ; DATA XREF: sub_407128+832r ; sub_408FFC+46Fr off_40A1EC dd offset dword_40B1E8 ; DATA XREF: sub_407128+C6Ar ; sub_408FFC+5F1r off_40A1F0 dd offset dword_40B10C ; DATA XREF: sub_406C40+8Ar ; sub_407128+44Ar off_40A1F4 dd offset dword_40B09C ; DATA XREF: sub_407128+CDr ; sub_408FFC+CDr off_40A1F8 dd offset dword_40B16C ; DATA XREF: sub_4052F8+11r ; sub_4052F8+29r ... off_40A1FC dd offset dword_40B2B4 ; DATA XREF: sub_408FFC+42Br off_40A200 dd offset dword_40B1DC ; DATA XREF: sub_407128+BF2r ; sub_408FFC+59Br off_40A204 dd offset dword_40B2A0 ; DATA XREF: sub_404EA0+CCr ; sub_408FFC+377r off_40A208 dd offset dword_40B1CC ; DATA XREF: sub_407128+B02r ; sub_408FFC+55Fr off_40A20C dd offset dword_40B304 ; DATA XREF: sub_407008+4Dr ; sub_408FFC+89r off_40A210 dd offset dword_40B1D4 ; DATA XREF: sub_4063E8+29Er ; sub_407128+BA2r off_40A214 dd offset dword_40B0B8 ; DATA XREF: sub_407128+1BBr r+4Br ... off_40A218 dd offset dword_40B2F8 ; DATA XREF: sub_408FFC+3EFr ; sub_4097A4+9Fr ... off_40A21C dd offset dword_40B264 ; DATA XREF: sub_408FFC+13Dr off_40A220 dd offset dword_40B214 ; DATA XREF: sub_407128+DFAr ; sub_408FFC+669r off_40A224 dd offset dword_40B1A0 ; DATA XREF: sub_405AC8+38r ; sub_405BE8+36r ... off_40A228 dd offset dword_40B148 ; DATA XREF: sub_407128+742r ; sub_408FFC+3F7r off_40A22C dd offset dword_40B0FC ; DATA XREF: sub_407128+3C2r ; sub_407128+5B2r ... off_40A230 dd offset dword_40B0D8 ; DATA XREF: sub_4051B8+59r ; sub_405348+56r ... off_40A234 dd offset dword_40B19C ; DATA XREF: sub_407128+A12r ; sub_408FFC+523r off_40A238 dd offset dword_40B128 ; DATA XREF: sub_407128+5DAr ; sub_408FFC+2CBr off_40A23C dd offset dword_40B1FC ; DATA XREF: sub_407128+D0Ar ; sub_408FFC+19Fr off_40A240 dd offset dword_40B2C0 ; DATA XREF: sub_4044CC+C4r ; sub_4045C4+4Fr ... off_40A244 dd offset dword_40B1D8 ; DATA XREF: sub_407128+BCAr ; sub_408FFC+57Dr off_40A248 dd offset dword_40B188 ; DATA XREF: sub_4062FC+59r ; sub_4063E8+227r ... off_40A24C dd offset dword_40B1F4 ; DATA XREF: sub_407128+CBAr ; sub_408FFC+163r off_40A250 dd offset dword_40B1F8 ; DATA XREF: sub_407128+CE2r ; sub_408FFC+181r off_40A254 dd offset dword_40B130 ; DATA XREF: sub_407128+62Ar ; sub_408FFC+307r off_40A258 dd offset dword_40B2E8 ; DATA XREF: sub_4062FC+9Cr ; sub_408FFC+5B1r off_40A25C dd offset dword_40B170 ; DATA XREF: sub_405964+CFr ; sub_407128+8AAr off_40A260 dd offset dword_40B0AC ; DATA XREF: sub_407128+155r ; sub_408FFC+145r off_40A264 dd offset dword_40B0A0 ; DATA XREF: sub_407128+EFr ; sub_408FFC+EBr off_40A268 dd offset dword_40B118 ; DATA XREF: sub_407128+4EAr ; sub_408FFC+217r off_40A26C dd offset dword_40B204 ; DATA XREF: sub_407128+D5Ar ; sub_408FFC+62Dr off_40A270 dd offset dword_40B1C0 ; DATA XREF: sub_406018+104r ; sub_407128+ADAr off_40A274 dd offset dword_40B14C ; DATA XREF: sub_407128+76Ar ; sub_408FFC+415r off_40A278 dd offset dword_40B210 ; DATA XREF: sub_407128+DD2r ; sub_408FFC+91r off_40A27C dd offset dword_40B1E0 ; DATA XREF: sub_4044CC+ABr ; sub_407128+C1Ar off_40A280 dd offset dword_40B2B0 ; DATA XREF: sub_408FFC+40Dr off_40A284 dd offset dword_40B270 ; DATA XREF: sub_404EA0+27r ; sub_408FFC+1D3r ... off_40A288 dd offset dword_40B2D8 ; DATA XREF: sub_408FFC+539r off_40A28C dd offset dword_40B100 ; DATA XREF: sub_407128+3E4r ; sub_407128+67Ar ... off_40A290 dd offset dword_40B288 ; DATA XREF: sub_404EA0+101r ; sub_404EA0+12Fr ... off_40A294 dd offset dword_40B314 ; DATA XREF: sub_405598r ; sub_408FFC+6BBr off_40A298 dd offset dword_40B2E4 ; DATA XREF: sub_4062FC+7Br ; sub_408FFC+593r off_40A29C dd offset dword_40B1B8 ; DATA XREF: sub_406018+80r ; sub_407128+A8Ar off_40A2A0 dd offset dword_40B184 ; DATA XREF: sub_406F40+41r ; sub_407128+94Ar off_40A2A4 dd offset dword_40B158 ; DATA XREF: sub_407128+7E2r ; sub_408FFC+433r off_40A2A8 dd offset dword_40B254 ; DATA XREF: sub_40484C+75r ; sub_408FFC+C5r off_40A2AC dd offset dword_40B21C ; DATA XREF: sub_406018+D4r ; sub_407128+E72r off_40A2B0 dd offset dword_40B1EC ; DATA XREF: sub_407128+C92r ; sub_408FFC+60Fr off_40A2B4 dd offset dword_40B290 ; DATA XREF: sub_404EA0+A9r ; sub_408FFC+31Dr off_40A2B8 dd offset dword_40B1AC ; DATA XREF: sub_405F58+5Cr ; sub_4063E8+348r ... off_40A2BC dd offset dword_40B1D0 ; DATA XREF: sub_4063E8+240r ; sub_407128+B7Ar off_40A2C0 dd offset dword_40B12C ; DATA XREF: sub_407128+602r ; sub_408FFC+2E9r off_40A2C4 dd offset dword_40B268 ; DATA XREF: sub_404974+6Br ; sub_408FFC+15Br off_40A2C8 dd offset dword_40B260 ; DATA XREF: sub_40484C+F8r ; sub_404974+134r ... off_40A2CC dd offset dword_40B104 ; DATA XREF: sub_407128+406r ; sub_407128+58Ar ... off_40A2D0 dd offset dword_40B174 ; DATA XREF: sub_405AC8:loc_405AEFr ; sub_4063E8+E0r ... off_40A2D4 dd offset dword_40B278 ; DATA XREF: sub_4050E4+41r ; sub_405168+32r ... off_40A2D8 dd offset dword_40B144 ; DATA XREF: sub_407128+71Ar ; sub_408FFC+3BBr off_40A2DC dd offset dword_40B0EC ; DATA XREF: sub_405964+8Cr ; sub_407128+33Ar off_40A2E0 dd offset dword_40B26C ; DATA XREF: sub_404EA0+67r ; sub_408FFC+1F1r ... off_40A2E4 dd offset dword_40B0D0 ; DATA XREF: sub_4063E8+85r ; sub_4063E8+358r ... off_40A2E8 dd offset dword_40B120 ; DATA XREF: sub_407128+53Ar ; sub_408FFC+253r off_40A2EC dd offset dword_40B300 ; DATA XREF: sub_408FFC+661r ; sub_4097A4+FDr ... off_40A2F0 dd offset dword_40B2B8 ; DATA XREF: sub_4044CC+2Dr ; sub_408FFC+449r off_40A2F4 dd offset dword_40B248 ; DATA XREF: sub_408FFC+625r ; ServiceMain+26r off_40A2F8 dd offset dword_40B1BC ; DATA XREF: sub_406018+E8r ; sub_407128+AB2r off_40A2FC dd offset dword_40B2A8 ; DATA XREF: sub_406018+14Dr off_40A300 dd offset dword_40B28C ; DATA XREF: sub_405024+1Br ; sub_405070+44r ... off_40A304 dd offset dword_40B310 ; DATA XREF: sub_4055AC+Ar ; sub_408FFC+69Dr off_40A308 dd offset dword_40B024 ; DATA XREF: sub_405598+9r off_40A30C dd offset dword_40B274 ; DATA XREF: sub_404EA0+80r ; sub_408FFC+20Fr ... off_40A310 dd offset dword_40B250 ; DATA XREF: sub_408FFC+5CFr ; sub_4097A4+2Br ... off_40A314 dd offset dword_40B15C ; DATA XREF: sub_407128+80Ar ; sub_408FFC+451r off_40A318 dd offset dword_40B098 ; DATA XREF: sub_407128+ABr ; sub_408FFC+AFr off_40A31C dd offset dword_40B2AC ; DATA XREF: sub_408FFC+3D1r off_40A320 dd offset dword_40B178 ; DATA XREF: sub_4057C4+6r ; sub_4057E4+39r ... off_40A324 dd offset dword_40B280 ; DATA XREF: sub_408FFC+269r off_40A328 dd offset dword_40B0B4 ; DATA XREF: sub_407128+199r align 100h DATA ends ; Section 3. (virtual address 0000B000) ; Virtual size : 00000325 ( 805.) ; Section size in file : 00000000 ( 0.) ; Offset to raw data for section: 00009800 ; Flags C0000000: Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Regular ; Segment permissions: Read/Write BSS segment para public '' use32 assume cs:BSS ;org 40B000h assume es:nothing, ss:nothing, ds:CODE, fs:nothing, gs:nothing dword_40B000 dd ? dword_40B004 dd ? dword_40B008 dd ? ; CODE:0040191Fr dword_40B00C dd ? dword_40B010 dd ? byte_40B014 db ? ; DATA XREF: System::__linkproc__ StartLib(void)+82w align 4 dword_40B018 dd ? ; sub_401B04+9o ... dword_40B01C dd ? dword_40B020 dd ? ; sub_401BF4w dword_40B024 dd ? dword_40B028 dd ? ; sub_402774w dword_40B02C dd ? ; System::__linkproc__ StartLib(void)+3o ... dword_40B030 dd ? dword_40B034 dd ? ; System::__linkproc__ StartLib(void)+2Aw dword_40B038 dd ? ; System::__linkproc__ StartLib(void):loc_401A75w dword_40B03C dd ? dword_40B040 dd ? ; sub_401AD0+Br dword_40B044 dd ? ; sub_401AD0+5r dword_40B048 dd ? dword_40B04C dd ? byte_40B050 db ? ; DATA XREF: System::__linkproc__ StartLib(void)+58w align 4 dword_40B054 dd ? dword_40B058 dd ? ; sub_40272C+22r byte_40B05C db ? ; DATA XREF: sub_40284Cr ; Sysinit::__linkproc__ InitLib(void)+Dw align 10h ; DWORD dwTlsIndex dwTlsIndex dd ? ; DATA XREF: sub_402788+Ar ; sub_402788+3Cr ... align 8 ; HMODULE hModule hModule dd ? ; DATA XREF: Sysinit::__linkproc__ InitLib(void)+17w ; r+231r dword_40B06C dd ? ; CODE:00409F14w dword_40B070 dd ? ; CODE:loc_402920w dword_40B074 dd ? ; sub_40284C:loc_40287Dr dword_40B078 dd ? ; sub_402988w dword_40B07C dd ? ; sub_4029C0w dword_40B080 dd ? ; sub_4029F8w ; HMODULE hLibModule hLibModule dd ? ; DATA XREF: sub_403550+19r ; sub_403550+22r dword_40B088 dd ? ; unknown_libname_14+11w dword_40B08C dd ? dword_40B090 dd ? ; sub_403608w dword_40B094 dd ? ; DATA:off_40A184o dword_40B098 dd ? ; DATA:off_40A318o dword_40B09C dd ? ; DATA:off_40A1F4o dword_40B0A0 dd ? ; DATA:off_40A264o dword_40B0A4 dd ? ; DATA:off_40A1DCo dword_40B0A8 dd ? ; DATA:off_40A1D8o dword_40B0AC dd ? ; DATA:off_40A260o dword_40B0B0 dd ? ; DATA:off_40A130o dword_40B0B4 dd ? ; DATA:off_40A328o dword_40B0B8 dd ? ; DATA:off_40A214o dword_40B0BC dd ? ; DATA:off_40A18Co dword_40B0C0 dd ? ; DATA:off_40A1C8o dword_40B0C4 dd ? ; DATA:off_40A128o dword_40B0C8 dd ? ; DATA:off_40A158o dword_40B0CC dd ? ; DATA:off_40A0D8o dword_40B0D0 dd ? ; DATA:off_40A2E4o dword_40B0D4 dd ? ; DATA:off_40A1D0o dword_40B0D8 dd ? dword_40B0DC dd ? dword_40B0E0 dd ? ; DATA:off_40A1A0o dword_40B0E4 dd ? ; DATA:off_40A1ACo dword_40B0E8 dd ? ; DATA:off_40A0E8o dword_40B0EC dd ? ; DATA:off_40A2DCo dword_40B0F0 dd ? ; DATA:off_40A148o dword_40B0F4 dd ? ; DATA:off_40A1B8o dword_40B0F8 dd ? ; DATA:off_40A1CCo dword_40B0FC dd ? ; DATA:off_40A22Co dword_40B100 dd ? ; DATA:off_40A28Co dword_40B104 dd ? ; DATA:off_40A2CCo dword_40B108 dd ? ; DATA:off_40A0F8o dword_40B10C dd ? ; DATA:off_40A1F0o dword_40B110 dd ? ; DATA:off_40A180o dword_40B114 dd ? ; DATA:off_40A0F4o dword_40B118 dd ? ; DATA:off_40A268o dword_40B11C dd ? ; DATA:off_40A11Co dword_40B120 dd ? ; DATA:off_40A2E8o dword_40B124 dd ? ; DATA:off_40A144o dword_40B128 dd ? ; DATA:off_40A238o dword_40B12C dd ? ; DATA:off_40A2C0o dword_40B130 dd ? ; DATA:off_40A254o dword_40B134 dd ? ; DATA:off_40A108o dword_40B138 dd ? ; DATA:off_40A1D4o dword_40B13C dd ? ; DATA:off_40A168o dword_40B140 dd ? ; DATA:off_40A164o dword_40B144 dd ? ; DATA:off_40A2D8o dword_40B148 dd ? ; DATA:off_40A228o dword_40B14C dd ? ; DATA:off_40A274o dword_40B150 dd ? ; DATA:off_40A178o dword_40B154 dd ? ; DATA:off_40A134o dword_40B158 dd ? ; DATA:off_40A2A4o dword_40B15C dd ? ; DATA:off_40A314o dword_40B160 dd ? ; DATA:off_40A1E8o dword_40B164 dd ? ; DATA:off_40A160o dword_40B168 dd ? ; DATA:off_40A19Co dword_40B16C dd ? ; sub_403A10+29w ... dword_40B170 dd ? ; DATA:off_40A25Co dword_40B174 dd ? dword_40B178 dd ? ; DATA:off_40A320o dword_40B17C dd ? ; DATA:off_40A150o dword_40B180 dd ? ; DATA:off_40A100o dword_40B184 dd ? ; DATA:off_40A2A0o dword_40B188 dd ? ; DATA:off_40A248o dword_40B18C dd ? ; DATA:off_40A0D0o dword_40B190 dd ? ; DATA:off_40A140o dword_40B194 dd ? ; DATA:off_40A120o dword_40B198 dd ? ; DATA:off_40A0E0o dword_40B19C dd ? ; DATA:off_40A234o dword_40B1A0 dd ? ; DATA:off_40A224o dword_40B1A4 dd ? ; DATA:off_40A1C4o dword_40B1A8 dd ? ; DATA:off_40A0C8o dword_40B1AC dd ? ; DATA:off_40A2B8o dword_40B1B0 dd ? ; DATA:off_40A1B4o dword_40B1B4 dd ? ; sub_403A10+1Fw ... dword_40B1B8 dd ? ; DATA:off_40A29Co dword_40B1BC dd ? ; DATA:off_40A2F8o dword_40B1C0 dd ? ; DATA:off_40A270o dword_40B1C4 dd ? ; DATA:off_40A174o dword_40B1C8 dd ? ; DATA:off_40A114o dword_40B1CC dd ? ; DATA:off_40A208o dword_40B1D0 dd ? ; DATA:off_40A2BCo dword_40B1D4 dd ? ; DATA:off_40A210o dword_40B1D8 dd ? ; DATA:off_40A244o dword_40B1DC dd ? ; DATA:off_40A200o dword_40B1E0 dd ? ; DATA:off_40A27Co dword_40B1E4 dd ? ; DATA:off_40A0ECo dword_40B1E8 dd ? ; DATA:off_40A1ECo dword_40B1EC dd ? ; DATA:off_40A2B0o dword_40B1F0 dd ? ; DATA:off_40A138o dword_40B1F4 dd ? ; DATA:off_40A24Co dword_40B1F8 dd ? ; DATA:off_40A250o dword_40B1FC dd ? ; DATA:off_40A23Co dword_40B200 dd ? ; DATA:off_40A0E4o dword_40B204 dd ? ; DATA:off_40A26Co dword_40B208 dd ? ; DATA:off_40A1A4o dword_40B20C dd ? ; DATA:off_40A0DCo dword_40B210 dd ? ; DATA:off_40A278o dword_40B214 dd ? ; DATA:off_40A220o dword_40B218 dd ? ; DATA:off_40A1E0o dword_40B21C dd ? ; DATA:off_40A2ACo dword_40B220 dd ? ; DATA:off_40A13Co dword_40B224 dd ? ; sub_403A10+11w dword_40B228 dd ? ; sub_404388w dword_40B22C dd ? ; sub_404760w dword_40B230 dd ? ; sub_404798w dword_40B234 dd ? ; sub_4047D0w dword_40B238 dd ? ; sub_404808w dword_40B23C dd ? ; sub_404E34w dword_40B240 dd ? ; sub_405590w dword_40B244 dd ? ; sub_406900w dword_40B248 dd ? dword_40B24C dd ? ; DATA:off_40A188o dword_40B250 dd ? dword_40B254 dd ? dword_40B258 dd ? dword_40B25C dd ? dword_40B260 dd ? dword_40B264 dd ? dword_40B268 dd ? dword_40B26C dd ? dword_40B270 dd ? dword_40B274 dd ? dword_40B278 dd ? dword_40B27C dd ? dword_40B280 dd ? dword_40B284 dd ? dword_40B288 dd ? dword_40B28C dd ? dword_40B290 dd ? dword_40B294 dd ? dword_40B298 dd ? dword_40B29C dd ? dword_40B2A0 dd ? dword_40B2A4 dd ? dword_40B2A8 dd ? ; sub_406C40+FBr ... dword_40B2AC dd ? ; DATA:off_40A31Co dword_40B2B0 dd ? ; DATA:off_40A280o dword_40B2B4 dd ? ; DATA:off_40A1FCo dword_40B2B8 dd ? dword_40B2BC dd ? dword_40B2C0 dd ? dword_40B2C4 dd ? dword_40B2C8 dd ? ; DATA:off_40A1E4o dword_40B2CC dd ? ; DATA:off_40A190o dword_40B2D0 dd ? ; DATA:off_40A16Co dword_40B2D4 dd ? ; DATA:off_40A118o dword_40B2D8 dd ? ; DATA:off_40A288o dword_40B2DC dd ? dword_40B2E0 dd ? dword_40B2E4 dd ? dword_40B2E8 dd ? dword_40B2EC dd ? dword_40B2F0 dd ? dword_40B2F4 dd ? dword_40B2F8 dd ? dword_40B2FC dd ? dword_40B300 dd ? dword_40B304 dd ? dword_40B308 dd ? dword_40B30C dd ? dword_40B310 dd ? dword_40B314 dd ? dword_40B318 dd ? ; sub_406FF0w dword_40B31C dd ? ; ServiceMain+2Fw ... dword_40B320 dd ? ; sub_407068+A0r ... align 100h BSS ends ; ; Imports from kernel32.dll ; ; Section 4. (virtual address 0000C000) ; Virtual size : 00000288 ( 648.) ; Section size in file : 00000400 ( 1024.) ; Offset to raw data for section: 00009800 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Externs ; _idata ; DWORD GetCurrentThreadId(void) extrn __imp_GetCurrentThreadId:dword ; DATA XREF: GetCurrentThreadIdr ; SIZE_T __stdcall LocalSize(HLOCAL hMem) extrn __imp_LocalSize:dword ; DATA XREF: LocalSizer ; HLOCAL __stdcall LocalReAlloc(HLOCAL hMem, SIZE_T uBytes, UINT uFlags) extrn __imp_LocalReAlloc:dword ; DATA XREF: LocalReAllocr ; int __stdcall WideCharToMultiByte(UINT CodePage, DWORD dwFlags, LPCWSTR lpWideCharStr, int cchWideChar, LPSTR lpMultiByteStr, int cbMultiByte, LPCSTR lpDefaultChar, LPBOOL lpUsedDefaultChar) extrn __imp_WideCharToMultiByte:dword ; DATA XREF: WideCharToMultiByter ; int __stdcall MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar) extrn __imp_MultiByteToWideChar:dword ; DATA XREF: MultiByteToWideCharr ; void __stdcall ExitProcess(UINT uExitCode) extrn __imp_ExitProcess:dword ; DATA XREF: ExitProcessr ; LONG __stdcall UnhandledExceptionFilter(struct _EXCEPTION_POINTERS *ExceptionInfo) extrn __imp_UnhandledExceptionFilter:dword ; DATA XREF: UnhandledExceptionFilterr extrn __imp_RtlUnwind:dword ; DATA XREF: RtlUnwindr ; void __stdcall RaiseException(DWORD dwExceptionCode, DWORD dwExceptionFlags, DWORD nNumberOfArguments, const ULONG_PTR *lpArguments) extrn __imp_RaiseException:dword ; DATA XREF: RaiseExceptionr ; BOOL __stdcall TlsSetValue(DWORD dwTlsIndex, LPVOID lpTlsValue) extrn __imp_TlsSetValue:dword ; DATA XREF: TlsSetValuer ; LPVOID __stdcall TlsGetValue(DWORD dwTlsIndex) extrn __imp_TlsGetValue:dword ; DATA XREF: TlsGetValuer ; BOOL __stdcall TlsFree(DWORD dwTlsIndex) extrn __imp_TlsFree:dword ; DATA XREF: TlsFreer ; DWORD TlsAlloc(void) extrn __imp_TlsAlloc:dword ; DATA XREF: TlsAllocr ; HLOCAL __stdcall LocalFree(HLOCAL hMem) extrn __imp_LocalFree:dword ; DATA XREF: LocalFreer ; HLOCAL __stdcall LocalAlloc(UINT uFlags, SIZE_T uBytes) extrn __imp_LocalAlloc:dword ; DATA XREF: LocalAllocr ; BOOL __stdcall FreeLibrary(HMODULE hLibModule) extrn __imp_FreeLibrary:dword ; DATA XREF: FreeLibraryr ; ; Imports from oleaut32.dll ; ; void __stdcall SysFreeString(BSTR) extrn __imp_SysFreeString:dword ; DATA XREF: SysFreeStringr ; BSTR __stdcall SysAllocStringLen(const OLECHAR *, UINT) extrn __imp_SysAllocStringLen:dword ; DATA XREF: SysAllocStringLenr ; ; Imports from kernel32.dll ; ; FARPROC __stdcall GetProcAddress(HMODULE hModule, LPCSTR lpProcName) extrn __imp_GetProcAddress:dword ; DATA XREF: GetProcAddressr ; BOOL __stdcall FreeLibrary_0(HMODULE hLibModule) extrn __imp_FreeLibrary_0:dword ; DATA XREF: FreeLibrary_0r ; ; Imports from kernel32.dll ; ; HMODULE __stdcall LoadLibraryA(LPCSTR lpLibFileName) extrn __imp_LoadLibraryA:dword ; DATA XREF: LoadLibraryAr ; DWORD __stdcall GetModuleFileNameA(HMODULE hModule, LPSTR lpFilename, DWORD nSize) extrn __imp_GetModuleFileNameA:dword ; DATA XREF: GetModuleFileNameAr ; DWORD __stdcall GetFileAttributesA(LPCSTR lpFileName) extrn __imp_GetFileAttributesA:dword ; DATA XREF: GetFileAttributesAr end DllEntryPoint