Function at 0x598454cc
Capabilities:
Accept command line arguments
Get common file path
Get session user name

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xb3
push 0
push 0
dec ecx
jne 0x598454d4
push ecx
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x598467c3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x1a0], 0
jne 0x59845528
mov dl, 1
mov eax, dword [0x598205f0]
call fcn.59828848
mov ebx, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x1a0
mov edx, ebx
test edx, edx
je 0x59845523
sub edx, 0xffffffc0
call sub.rtl120.bpl__System__IntfCopy_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
mov eax, esi
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
call sub.rtl120.bpl__System__IntfCopy_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x1c4], 0
je 0x59846693
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x1a0]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x59846693
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
call sub.rtl120.bpl__System__IntfCopy_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
lea eax, [ebp - 0x49c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
mov ecx, 0x598467d4
call sub.rtl120.bpl__System__IntfCast_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
mov eax, dword [ebp - 0x49c]
mov edx, dword [eax]
call dword [edx + 0x18]
xor eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x598456f8
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4a4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x224]
mov cx, 0x30
mov edx, 4
call sub.madBasic_.bpl__Madstrings_IntToStrExW_qqruiib
push dword [ebp - 0x4a4]
push 0x598467f0
lea eax, [ebp - 0x4a8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x226]
mov cx, 0x30
mov edx, 2
call sub.madBasic_.bpl__Madstrings_IntToStrExW_qqruiib
push dword [ebp - 0x4a8]
push 0x598467f0
lea eax, [ebp - 0x4ac]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22a]
mov cx, 0x30
mov edx, 2
call sub.madBasic_.bpl__Madstrings_IntToStrExW_qqruiib
push dword [ebp - 0x4ac]
push 0x59846800
lea eax, [ebp - 0x4b0]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22c]
mov cx, 0x30
mov edx, 2
call sub.madBasic_.bpl__Madstrings_IntToStrExW_qqruiib
push dword [ebp - 0x4b0]
push 0x59846814
lea eax, [ebp - 0x4b4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22e]
mov cx, 0x30
mov edx, 2
call sub.madBasic_.bpl__Madstrings_IntToStrExW_qqruiib
push dword [ebp - 0x4b4]
push 0x59846814
lea eax, [ebp - 0x4b8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x230]
mov cx, 0x30
mov edx, 2
call sub.madBasic_.bpl__Madstrings_IntToStrExW_qqruiib
push dword [ebp - 0x4b8]
push 0x59846800
lea eax, [ebp - 0x4bc]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x232]
mov cx, 0x30
mov edx, 1
call sub.madBasic_.bpl__Madstrings_IntToStrExW_qqruiib
push dword [ebp - 0x4bc]
push 0x59846824
lea eax, [ebp - 0x4a0]
mov edx, 0xe
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov edx, dword [ebp - 0x4a0]
mov eax, 0x59846838
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845702
xor eax, eax
push ebp
push 0x59845737
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c0]
call fcn.59819cf8
mov edx, dword [ebp - 0x4c0]
mov eax, 0x59846858
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845741
xor eax, eax
push ebp
push 0x59845776
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c4]
call sym.madExcept_.bpl__Madexcept_GetTSClientName_qqrv
mov edx, dword [ebp - 0x4c4]
mov eax, 0x59846880
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845780
xor eax, eax
push ebp
push 0x5984581f
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x20], 0x104
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x598457c6
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x236]
push eax
call sub.advapi32.dll_GetUserNameW
lea eax, [ebp - 0x10]
lea edx, [ebp - 0x236]
mov ecx, 0x105
call sub.rtl120.bpl__System__UStrFromWArray_qqrr20System_UnicodeStringpbi
jmp 0x598457f0
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x236]
push eax
call sub.advapi32.dll_GetUserNameA
lea eax, [ebp - 0x10]
lea edx, [ebp - 0x236]
mov dword [ebp - 0x4c8], edx
mov edx, dword [ebp - 0x4c8]
call sub.rtl120.bpl__System__UStrFromLStr_qqrr20System_UnicodeStringx27System__AnsiStringT_us_i0__
call sym.madExcept_.bpl__Madexcept_IsUserAdmin_qqrv
test al, al
je 0x59845806
lea eax, [ebp - 0x10]
mov edx, 0x598468ac
call sub.rtl120.bpl__System__UStrCat_qqrr20System_UnicodeStringx20System_UnicodeString
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x598468cc
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845829
xor eax, eax
push ebp
push 0x59845910
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x59845852
lea eax, [ebp - 0x10]
mov edx, 0x598468ec
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x5984585c
lea eax, [ebp - 0x10]
xor edx, edx
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
lea eax, [ebp - 0x14]
push eax
push 0x59846900
push dword [ebp - 0x10]
push 0x59846944
lea eax, [ebp - 0x4cc]
mov edx, 3
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov edx, dword [ebp - 0x4cc]
mov ecx, 0x59846970
mov eax, 0x80000002
call sym.madExcept_.bpl__Madexcept_RegReadStr_qqrp6HKEY__x20System_UnicodeStringt2
lea eax, [ebp - 0x4d0]
push eax
push 0x59846900
push dword [ebp - 0x10]
push 0x59846944
lea eax, [ebp - 0x4d4]
mov edx, 3
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov edx, dword [ebp - 0x4d4]
mov ecx, 0x598469ac
mov eax, 0x80000002
call sym.madExcept_.bpl__Madexcept_RegReadStr_qqrp6HKEY__x20System_UnicodeStringt2
mov edx, dword [ebp - 0x4d0]
lea eax, [ebp - 0x10]
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
cmp dword [ebp - 0x14], 0
je 0x598458f7
push dword [ebp - 0x10]
push 0x598469d8
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, 3
call sub.rtl120.bpl__System__UStrCatN_qqrv
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x598469ec
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5984591a
xor eax, eax
push ebp
push 0x5984594f
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4d8]
call sym.madExcept_.bpl__Madexcept_GetOsVersionString_qqrv
mov edx, dword [ebp - 0x4d8]
mov eax, 0x59846a1c
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845959
xor eax, eax
push ebp
push 0x5984598e
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4dc]
call sym.madExcept_.bpl__Madexcept_GetOsLanguageString_qqrv
mov edx, dword [ebp - 0x4dc]
mov eax, 0x59846a4c
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845998
xor eax, eax
push ebp
push 0x598459cd
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e0]
call sym.madExcept_.bpl__Madexcept_GetSystemUpTime_qqrv
mov edx, dword [ebp - 0x4e0]
mov eax, 0x59846a78
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x598459d7
xor eax, eax
push ebp
push 0x59845a0c
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e4]
call sym.madExcept_.bpl__Madexcept_GetProgramUpTime_qqrv
mov edx, dword [ebp - 0x4e4]
mov eax, 0x59846aa4
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845a16
xor eax, eax
push ebp
push 0x59845aa3
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
call sym.madExcept_.bpl__Madexcept_GetCpuName_qqrv
cmp dword [ebp - 0x10], 0
je 0x59845a99
call sym.madExcept_.bpl__Madexcept_GetCpuCount_qqrv
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 1
jne 0x59845a51
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x59846ad0
call fcn.59845428
pop ecx
jmp 0x59845a99
push ebp
lea eax, [ebp - 0x4ec]
push eax
mov cx, 0x30
mov edx, 1
mov eax, dword [ebp - 0x24]
call sub.madBasic_.bpl__Madstrings_IntToStrExW_qqriib
push dword [ebp - 0x4ec]
push 0x59846af0
push dword [ebp - 0x10]
lea eax, [ebp - 0x4e8]
mov edx, 3
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov edx, dword [ebp - 0x4e8]
mov eax, 0x59846b04
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845aad
xor eax, eax
push ebp
push 0x59845ae2
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f0]
call sym.madExcept_.bpl__Madexcept_GetMemoryStatus_qqrv
mov edx, dword [ebp - 0x4f0]
mov eax, 0x59846b28
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845aec
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
je 0x59845b37
xor eax, eax
push ebp
push 0x59845b2d
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f4]
call sym.madExcept_.bpl__Madexcept_Get9xResourceReport_qqrv
mov edx, dword [ebp - 0x4f4]
mov eax, 0x59846b54
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845b37
xor eax, eax
push ebp
push 0x59845c7c
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x59846b78
push 0x59846ba0
call sub.kernel32.dll_GetModuleHandleW
push eax
call fcn.59801964
mov dword [ebp - 8], eax
push 0x104
lea eax, [ebp - 0x236]
push eax
call sub.kernel32.dll_GetWindowsDirectoryA
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.5981950c
lea eax, [ebp - 0x10]
call sub.rtl120.bpl__System__EnsureUnicodeString_qqrr20System_UnicodeString
movzx eax, byte [eax]
mov ebx, dword [sym.imp.madBasic_.bpl__Madstrings_UpCharA]
mov ebx, dword [ebx]
call ebx
mov ebx, eax
mov esi, dword [sym.imp.madBasic_.bpl__Madstrings_UpCharA]
mov esi, dword [esi]
lea eax, [ebp - 0x236]
movzx eax, byte [eax]
call esi
cmp bl, al
je 0x59845c34
push ebp
push ebp
lea eax, [ebp - 0x500]
lea edx, [ebp - 0x236]
movzx edx, byte [edx]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromChar_qqrr27System__AnsiStringT_us_i0__cus
mov eax, dword [ebp - 0x500]
lea edx, [ebp - 0x4fc]
call fcn.59845294
pop ecx
push dword [ebp - 0x4fc]
push 0x59846bc8
push ebp
lea eax, [ebp - 0x508]
mov edx, dword [ebp - 0x10]
movzx edx, byte [edx]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromChar_qqrr27System__AnsiStringT_us_i0__cus
mov eax, dword [ebp - 0x508]
lea edx, [ebp - 0x504]
call fcn.59845294
pop ecx
push dword [ebp - 0x504]
lea eax, [ebp - 0x4f8]
mov edx, 3
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov edx, dword [ebp - 0x4f8]
mov eax, 0x59846bd8
call fcn.59845428
pop ecx
jmp 0x59845c72
push ebp
push ebp
lea eax, [ebp - 0x510]
lea edx, [ebp - 0x236]
movzx edx, byte [edx]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromChar_qqrr27System__AnsiStringT_us_i0__cus
mov eax, dword [ebp - 0x510]
lea edx, [ebp - 0x50c]
call fcn.59845294
pop ecx
mov edx, dword [ebp - 0x50c]
mov eax, 0x59846bd8
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845c86
xor eax, eax
push ebp
push 0x59845cbb
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x514]
call sym.madExcept_.bpl__Madexcept_GetDisplayModeString_qqrv
mov edx, dword [ebp - 0x514]
mov eax, 0x59846c04
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845cc5
xor eax, eax
push ebp
push 0x59845d09
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x518]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cx, 0x30
mov edx, 1
call sub.madBasic_.bpl__Madstrings_IntToHexExW_qqruiib
mov edx, dword [ebp - 0x518]
mov eax, 0x59846c2c
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845d13
xor eax, eax
push ebp
push 0x59845d48
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x51c]
call sym.madExcept_.bpl__Madexcept_GetAllocatedMemory_qqrv
mov edx, dword [ebp - 0x51c]
mov eax, 0x59846c50
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845d52
xor eax, eax
push ebp
push 0x59845d87
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x520]
call sym.madExcept_.bpl__Madexcept_GetLargestFreeBlock_qqrv
mov edx, dword [ebp - 0x520]
mov eax, 0x59846c80
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845d91
xor eax, eax
push ebp
push 0x59845e27
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [sym.madExcept_.bpl__Madexcept_AddCmdLineToBugRep], 0
je 0x59845e1d
call sub.rtl120.bpl__System_ParamCount_qqrv
test eax, eax
jle 0x59845e1d
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x59845de3
push ebp
call sub.kernel32.dll_GetCommandLineW
mov edx, eax
lea eax, [ebp - 0x524]
call sub.rtl120.bpl__System__UStrFromPWChar_qqrr20System_UnicodeStringpb
mov edx, dword [ebp - 0x524]
mov eax, 0x59846cb4
call fcn.59845428
pop ecx
jmp 0x59845e1d
push ebp
call sub.kernel32.dll_GetCommandLineA
mov edx, eax
lea eax, [ebp - 0x52c]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromPChar_qqrr27System__AnsiStringT_us_i0__pcus
mov edx, dword [ebp - 0x52c]
lea eax, [ebp - 0x528]
call sub.rtl120.bpl__System__UStrFromLStr_qqrr20System_UnicodeStringx27System__AnsiStringT_us_i0__
mov edx, dword [ebp - 0x528]
mov eax, 0x59846cb4
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845e31
xor eax, eax
push ebp
push 0x59845e79
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea edx, [ebp - 0x534]
xor eax, eax
call fcn.5981950c
mov eax, dword [ebp - 0x534]
lea edx, [ebp - 0x530]
call sub.madBasic_.bpl__Madstrings_ExtractFileNameW_qqrx20System_UnicodeString
mov edx, dword [ebp - 0x530]
mov eax, 0x59846cdc
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845e83
xor eax, eax
push ebp
push 0x59845edd
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.kernel32.dll_GetModuleHandleW
cmp eax, dword [0x59857198]
je 0x59845ed3
push ebp
lea edx, [ebp - 0x53c]
mov eax, dword [0x59857198]
call fcn.5981950c
mov eax, dword [ebp - 0x53c]
lea edx, [ebp - 0x538]
call sub.madBasic_.bpl__Madstrings_ExtractFileNameW_qqrx20System_UnicodeString
mov edx, dword [ebp - 0x538]
mov eax, 0x59846d00
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59845ee7
xor edx, edx
push ebp
push 0x5984615f
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [0x598571a4], 0
je 0x59845f0a
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.5981950c
jmp 0x59845f17
lea edx, [ebp - 0x10]
mov eax, dword [0x59857198]
call fcn.5981950c
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x59845f3a
lea eax, [ebp - 0x488]
push eax
mov eax, dword [ebp - 0x10]
call sub.rtl120.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
call sub.kernel32.dll_FindFirstFileW
jmp 0x59845f65
lea eax, [ebp - 0x488]
push eax
lea eax, [ebp - 0x540]
mov edx, dword [ebp - 0x10]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov eax, dword [ebp - 0x540]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
call sub.kernel32.dll_FindFirstFileA
cmp eax, 0xffffffff
je 0x59846155
push eax
call sub.kernel32.dll_FindClose
xor eax, eax
push ebp
push 0x598460e1
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x474]
push eax
lea eax, [ebp - 0x474]
push eax
call sub.kernel32.dll_FileTimeToLocalFileTime
lea eax, [ebp - 0x498]
push eax
lea eax, [ebp - 0x474]
push eax
call sub.kernel32.dll_FileTimeToSystemTime
cmp byte [0x598571a4], 0
jne 0x59845fc0
push 0
call sub.kernel32.dll_GetModuleHandleW
cmp eax, dword [0x59857198]
jne 0x59845fcf
lea eax, [ebp - 0x14]
mov edx, 0x59846d2c
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x59845fdc
lea eax, [ebp - 0x14]
mov edx, 0x59846d44
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
push ebp
lea eax, [ebp - 0x548]
push eax
movzx eax, word [ebp - 0x498]
mov cx, 0x30
mov edx, 4
call sub.madBasic_.bpl__Madstrings_IntToStrExW_qqruiib
push dword [ebp - 0x548]
push 0x598467f0
lea eax, [ebp - 0x54c]
push eax
movzx eax, word [ebp - 0x496]
mov cx, 0x30
mov edx, 2
call sub.madBasic_.bpl__Madstrings_IntToStrExW_qqruiib
push dword [ebp - 0x54c]
push 0x598467f0
lea eax, [ebp - 0x550]
push eax
movzx eax, word [ebp - 0x492]
mov cx, 0x30
mov edx, 2
call sub.madBasic_.bpl__Madstrings_IntToStrExW_qqruiib
push dword [ebp - 0x550]
push 0x59846bc8
lea eax, [ebp - 0x554]
push eax
movzx eax, word [ebp - 0x490]
mov cx, 0x30
mov edx, 2
call sub.madBasic_.bpl__Madstrings_IntToStrExW_qqruiib
push dword [ebp - 0x554]
push 0x59846814
lea eax, [ebp - 0x558]
push eax
movzx eax, word [ebp - 0x48e]
mov cx, 0x30
mov edx, 2
call sub.madBasic_.bpl__Madstrings_IntToStrExW_qqruiib
push dword [ebp - 0x558]
push 0x59846d60
lea eax, [ebp - 0x544]
mov edx, 0xa
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov eax, dword [ebp - 0x544]
push eax
lea eax, [ebp - 0x55c]
mov ecx, 0x59846d74
mov edx, dword [ebp - 0x14]
call sub.rtl120.bpl__System__UStrCat3_qqrr20System_UnicodeStringx20System_UnicodeStringt2
mov eax, dword [ebp - 0x55c]
pop edx
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x598460eb
lea edx, [ebp - 0x560]
mov eax, dword [ebp - 0x1c]
call fcn.59824e00
cmp dword [ebp - 0x560], 0
jne 0x59846135
lea edx, [ebp - 0x564]
mov eax, dword [ebp - 0x10]
call sub.madBasic_.bpl__Madtools_GetFileVersionStr_qqrx20System_UnicodeString
mov edx, dword [ebp - 0x564]
lea eax, [ebp - 0x10]
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
cmp dword [ebp - 0x10], 0
je 0x59846155
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x59846d98
call fcn.59845428
pop ecx
jmp 0x59846155
push ebp
lea edx, [ebp - 0x568]
mov eax, dword [ebp - 0x1c]
call fcn.59824e00
mov edx, dword [ebp - 0x568]
mov eax, 0x59846d98
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59846169
xor eax, eax
push ebp
push 0x598461c6
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x59846da8
call sub.kernel32.dll_GetModuleHandleW
mov ebx, eax
test ebx, ebx
je 0x598461bc
lea edx, [ebp - 0x56c]
mov eax, ebx
call fcn.5981950c
mov eax, dword [ebp - 0x56c]
mov ebx, dword [sym.imp.madBasic_.bpl__Madtools_GetFileVersionStrW]
mov ebx, dword [ebx]
lea edx, [ebp - 0x10]
call ebx
cmp dword [ebp - 0x10], 0
je 0x598461bc
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x59846dcc
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x598461d0
xor eax, eax
push ebp
push 0x59846288
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x5984622a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x59857198]
call sub.madBasic_.bpl__Madtools_GetImageNtHeaders_qqrui
cmp byte [eax + 0x1a], 2
je 0x5984620f
push ebp
mov edx, 0x59846df0
mov eax, 0x59846e10
call fcn.59845428
pop ecx
jmp 0x59846220
push ebp
mov edx, 0x59846e38
mov eax, 0x59846e10
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59846245
push ebp
lea eax, [ebp - 0x574]
mov edx, dword [sym.madExcept_.bpl__Madexcept_CMadExceptVersionString]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromPChar_qqrr27System__AnsiStringT_us_i0__pcus
mov edx, dword [ebp - 0x574]
lea eax, [ebp - 0x570]
call sub.rtl120.bpl__System__UStrFromLStr_qqrr20System_UnicodeStringx27System__AnsiStringT_us_i0__
mov edx, dword [ebp - 0x570]
mov eax, 0x59846e5c
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59846292
lea ecx, [ebp - 0x14]
mov edx, 0x59846e8c
mov eax, dword [ebp - 0x1c]
call fcn.59827210
mov ebx, dword [sym.imp.madBasic_.bpl__Madstrings_SubStrCountW]
mov ebx, dword [ebx]
mov dl, 0x7c
mov eax, dword [ebp - 0x14]
call ebx
test eax, eax
jle 0x5984646b
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 1
xor eax, eax
push ebp
push 0x59846455
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
mov ebx, dword [sym.imp.madBasic_.bpl__Madstrings_SubStrW]
mov ebx, dword [ebx]
mov cl, 0x7c
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
call ebx
mov eax, dword [sym.madExcept_.bpl__Madexcept_Plugins]
call sub.rtl120.bpl__System__DynArrayHigh_qqrv
mov ebx, eax
test ebx, ebx
jl 0x5984644b
inc ebx
mov dword [ebp - 0x28], 0
mov esi, dword [ebp - 0x28]
mov eax, esi
add esi, esi
add esi, esi
add esi, esi
sub esi, eax
mov eax, dword [sym.madExcept_.bpl__Madexcept_Plugins]
mov eax, dword [eax + esi*4]
mov edi, dword [sym.imp.madBasic_.bpl__Madstrings_IsTextEqualW]
mov edi, dword [edi]
mov edx, dword [ebp - 0x10]
call edi
test al, al
je 0x59846441
mov eax, dword [sym.madExcept_.bpl__Madexcept_Plugins]
cmp byte [eax + esi*4 + 0x18], 0
jne 0x5984644b
mov eax, dword [sym.madExcept_.bpl__Madexcept_Plugins]
cmp dword [eax + esi*4 + 8], 0
je 0x59846385
push ebp
mov eax, dword [sym.madExcept_.bpl__Madexcept_Plugins]
mov ebx, dword [eax + esi*4 + 8]
lea eax, [ebp - 0x57c]
call ebx
mov edx, dword [ebp - 0x57c]
lea eax, [ebp - 0x578]
call sub.rtl120.bpl__System__UStrFromLStr_qqrr20System_UnicodeStringx27System__AnsiStringT_us_i0__
mov edx, dword [ebp - 0x578]
mov eax, dword [sym.madExcept_.bpl__Madexcept_Plugins]
mov eax, dword [eax + esi*4]
call fcn.59845428
pop ecx
jmp 0x5984644b
mov eax, dword [sym.madExcept_.bpl__Madexcept_Plugins]
cmp dword [eax + esi*4 + 0xc], 0
je 0x598463bc
push ebp
mov eax, dword [sym.madExcept_.bpl__Madexcept_Plugins]
mov ebx, dword [eax + esi*4 + 0xc]
lea eax, [ebp - 0x580]
call ebx
mov edx, dword [ebp - 0x580]
mov eax, dword [sym.madExcept_.bpl__Madexcept_Plugins]
mov eax, dword [eax + esi*4]
call fcn.59845428
pop ecx
jmp 0x5984644b
mov eax, dword [sym.madExcept_.bpl__Madexcept_Plugins]
cmp dword [eax + esi*4 + 0x10], 0
je 0x5984640d
push ebp
mov eax, dword [sym.madExcept_.bpl__Madexcept_Plugins]
mov ebx, dword [eax + esi*4 + 0x10]
lea edx, [ebp - 0x588]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x598463e4
sub eax, 0xfffffdc0
call ebx
mov edx, dword [ebp - 0x588]
lea eax, [ebp - 0x584]
call sub.rtl120.bpl__System__UStrFromLStr_qqrr20System_UnicodeStringx27System__AnsiStringT_us_i0__
mov edx, dword [ebp - 0x584]
mov eax, dword [sym.madExcept_.bpl__Madexcept_Plugins]
mov eax, dword [eax + esi*4]
call fcn.59845428
pop ecx
jmp 0x5984644b
push ebp
mov eax, dword [sym.madExcept_.bpl__Madexcept_Plugins]
mov ebx, dword [eax + esi*4 + 0x14]
lea edx, [ebp - 0x58c]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x59846429
sub eax, 0xfffffdc0
call ebx
mov edx, dword [ebp - 0x58c]
mov eax, dword [sym.madExcept_.bpl__Madexcept_Plugins]
mov eax, dword [eax + esi*4]
call fcn.59845428
pop ecx
jmp 0x5984644b
inc dword [ebp - 0x28]
dec ebx
jne 0x59846303
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5984645f
inc dword [ebp - 0x24]
dec dword [ebp - 0x2c]
jne 0x598462c3
mov eax, dword [ebp - 0xc]
dec eax
mov dword [ebp - 0x28], eax
xor eax, eax
push ebp
push 0x5984649b
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
mov edx, 0x59846ea0
mov eax, 0x59846edc
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x598464a5
xor eax, eax
push ebp
push 0x598464fd
push dword fs:[eax]
mov dword fs:[eax], esp
add dword [0x59857b08], 1
adc dword [0x59857b0c], 0
push ebp
push dword [0x59857b0c]
push dword [0x59857b08]
lea ecx, [ebp - 0x590]
mov dx, 0x30
mov eax, 1
call sub.madBasic_.bpl__Madstrings_IntToStrExW_qqrjib
mov edx, dword [ebp - 0x590]
mov eax, 0x59846f04
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59846507
xor eax, eax
push ebp
push 0x598465fa
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x4f], 1
je 0x598465d0
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
call fcn.59845098
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
call fcn.59844ff8
push ebp
mov edx, dword [ebp - 0x14]
mov eax, 0x59846f34
call fcn.59845428
pop ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
call sub.rtl120.bpl__System__UStrEqual_qqrv
je 0x598465f0
lea edx, [ebp - 0x594]
mov eax, dword [ebp - 0x10]
call sym.madExcept_.bpl__Madexcept_FormatExceptMessage_qqrx20System_UnicodeString
mov edx, dword [ebp - 0x594]
lea eax, [ebp - 0x10]
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
push 0
mov ebx, dword [sym.imp.madBasic_.bpl__Madstrings_ReplaceStrW]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x59846bc8
mov edx, 0x59846f60
call ebx
push 0
mov ebx, dword [sym.imp.madBasic_.bpl__Madstrings_ReplaceStrW]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x59846bc8
mov edx, 0x59846f70
call ebx
push 1
mov ebx, dword [sym.imp.madBasic_.bpl__Madstrings_ReplaceStrW]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x59846bc8
mov edx, 0x59846f80
call ebx
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x59846f94
call fcn.59845428
pop ecx
jmp 0x598465f0
push ebp
lea edx, [ebp - 0x598]
mov eax, dword [ebp - 0x1c]
call fcn.59824e74
mov edx, dword [ebp - 0x598]
mov eax, 0x59846f94
call fcn.59845428
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59846604
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0xc]
xor eax, eax
push ebp
push 0x59846681
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0x59846650
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 0
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov ecx, dword [eax + edx*8 + 4]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov edx, dword [eax + edx*8]
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax]
call dword [ebx + 0x28]
inc dword [ebp - 0x24]
dec dword [ebp - 0x2c]
jne 0x5984662d
lea eax, [ebp - 0x59c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
mov ecx, 0x598467d4
call sub.rtl120.bpl__System__IntfCast_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
mov eax, dword [ebp - 0x59c]
mov edx, dword [ebp - 0x28]
mov ecx, dword [eax]
call dword [ecx + 0x14]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5984668b
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0x10]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x598467cd
lea eax, [ebp - 0x59c]
call sub.rtl120.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
lea eax, [ebp - 0x598]
mov edx, 4
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x588]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x584]
mov edx, 2
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x57c]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x578]
call sub.rtl120.bpl__System__UStrClr_qqrpv
lea eax, [ebp - 0x574]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x570]
mov edx, 0xc
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x540]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x53c]
mov edx, 4
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x52c]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x528]
mov edx, 6
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x510]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x50c]
call sub.rtl120.bpl__System__UStrClr_qqrpv
lea eax, [ebp - 0x508]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x504]
call sub.rtl120.bpl__System__UStrClr_qqrpv
lea eax, [ebp - 0x500]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x4fc]
mov edx, 0xd
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x4c4]
mov edx, 0xa
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x49c]
call sub.rtl120.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
lea eax, [ebp - 0x18]
call sub.rtl120.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
lea eax, [ebp - 0x14]
mov edx, 2
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 4]
mov edx, dword [0x59845260]
call sub.rtl120.bpl__System__DynArrayClear_qqrrpvpv
ret