Function at 0x598505f0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff00
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd4], eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
lea eax, [ebp - 0x48]
mov edx, dword [sym.imp.madDisAsm_.bpl___xp_23Maddisasm_TFunctionInfo]
call sub.rtl120.bpl__System__InitializeRecord_qqrpvt1
xor eax, eax
push ebp
push 0x59851830
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [sym.imp.madBasic_.bpl___xp_20Madtypes_TDACardinal]
call sub.rtl120.bpl__System__DynArrayClear_qqrrpvpv
lea eax, [ebp - 0x60]
push eax
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x59850685
lea eax, [ebp - 0x68]
push eax
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x59850685
push 0
push 0x3e8
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
call sub.rtl120.bpl__System___lldiv_qqrv
push edx
push eax
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
call sub.rtl120.bpl__System___lldiv_qqrv
mov dword [0x5985719c], eax
mov dword [0x598571a0], edx
push 0x59851840
mov eax, dword [0x59857198]
push eax
call fcn.59801964
test eax, eax
setne byte [0x598571a4]
cmp byte [0x598571a4], 0
je 0x598506ac
call fcn.598503b0
call sub.kernel32.dll_GetVersion
cmp al, 6
jb 0x598506cf
push 0x59851880
push 0x59851898
call sub.kernel32.dll_LoadLibraryA
push eax
call fcn.59801964
mov dword [0x598571b4], eax
mov eax, dword [sym.imp.madBasic_.bpl__Madtools_HideLeak_]
mov dword [eax], sym.madExcept_.bpl__Madexcept_HideLeak_qqrui
mov eax, dword [sym.madExcept_.bpl__Madnvassistant_HandleContactFormProc]
mov dword [eax], sym.madExcept_.bpl__Madexcept_HandleContactForm_qqr50System__DelphiInterface_t22Madnvassistant_INVForm_24Madnvassistant_TNVAction5
mov eax, dword [sym.madExcept_.bpl__Madnvassistant_HandleScreenshotFormProc]
mov dword [eax], sym.madExcept_.bpl__Madexcept_HandleScreenshotForm_qqr50System__DelphiInterface_t22Madnvassistant_INVForm_24Madnvassistant_TNVActi
mov eax, 0x5984fbec
mov edx, dword [sym.madExcept_.bpl__Madnvassistant_HandleExceptionHelper]
mov dword [edx], eax
push 0x598518a8
push 0x598518c0
call sub.kernel32.dll_GetModuleHandleW
push eax
call fcn.59801964
mov dword [0x598571c0], eax
push 0x598518dc
push 0x598518f8
call sub.kernel32.dll_GetModuleHandleW
push eax
call fcn.59801964
mov dword [0x598571c4], eax
lea edx, [ebp - 0xd4]
mov eax, dword [0x59857198]
call sym.madExcept_.bpl__Madexcept_MESettings_qqrui
mov edx, dword [ebp - 0xd4]
mov eax, 0x598579dc
call sub.rtl120.bpl__System__IntfCopy_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
mov eax, dword [0x598579dc]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x598507af
mov eax, dword [0x598579dc]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x598507af
mov eax, dword [0x598579dc]
mov edx, dword [eax]
call dword [edx + 0x378]
test al, al
je 0x598507af
mov eax, dword [0x59857198]
call fcn.5984fcf8
mov eax, dword [0x598579dc]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x59857198]
je 0x598507af
mov eax, dword [0x598579dc]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.5984fcf8
call fcn.598502c0
push 0x59858104
call sub.kernel32.dll_InitializeCriticalSection
push 0x598580ec
call sub.kernel32.dll_InitializeCriticalSection
mov eax, dword [0x598579dc]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x598517b3
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xbc]
call fcn.5981a2c0
lea eax, [ebp - 0xdc]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call sub.madBasic_.bpl__Madstrings_IntToHexExA_qqruiic
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xd8]
mov edx, 0x59851918
call sub.rtl120.bpl__System__LStrCat3_qqrv
mov eax, dword [ebp - 0xd8]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
push 0x14
push 0
push 4
lea eax, [ebp - 0xbc]
push eax
push 0xffffffffffffffff
call sub.kernel32.dll_CreateFileMappingA
mov ebx, eax
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x598508e5
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x598571bc], eax
mov eax, dword [0x598571bc]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.5980176c
mov edx, dword [0x598571bc]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.5980176c
mov edx, dword [0x598571bc]
mov dword [edx + 4], eax
mov eax, dword [0x598571bc]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x598571bc]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call sym.madExcept_.bpl__Madexcept_GetThreadList_qqrv
cmp dword [ebp - 4], 0
je 0x598508d7
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [sym.madExcept_.bpl__Madexcept_ProcessMainThreadId], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x5985193c
xor edx, edx
call fcn.5981ad20
jmp 0x5985092f
mov eax, dword [sym.imp.rtl120.bpl__System_MainThreadID]
mov eax, dword [eax]
mov dword [sym.madExcept_.bpl__Madexcept_ProcessMainThreadId], eax
jmp 0x5985092f
test ebx, ebx
je 0x59850915
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x598571bc], eax
push ebx
call sub.kernel32.dll_CloseHandle
mov eax, dword [0x598571bc]
add eax, 0xc
push eax
call sub.kernel32.dll_InterlockedIncrement
jmp 0x5985092f
push 0
push 0x59851954
push 0x59851960
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess
cmp dword [0x598571bc], 0
jne 0x59850952
push 0
push 0x59851954
push 0x59851988
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess
cmp dword [sym.madExcept_.bpl__Madexcept_ProcessMainThreadId], 0
jne 0x598509cc
push 0xffffffffffffffff
mov eax, dword [0x598571bc]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor edx, edx
push ebp
push 0x598509b0
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x598571bc]
mov eax, dword [eax + 8]
test eax, eax
je 0x59850994
mov edx, dword [eax]
mov dword [sym.madExcept_.bpl__Madexcept_ProcessMainThreadId], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x59850985
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x598509b7
mov eax, dword [0x598571bc]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReleaseMutex
ret
push 0
call sub.kernel32.dll_GetModuleHandleW
cmp eax, dword [0x59857198]
je 0x598509e8
cmp byte [0x598571a4], 0
jne 0x598509e8
xor ebx, ebx
jmp 0x598509ea
mov bl, 1
mov eax, dword [0x598579dc]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x598517aa
mov eax, sym.madExcept_.bpl__Madexcept_Forms_TApplication_HandleException
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_Forms_TApplication_ShowException
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_Qforms_TApplication_HandleException
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_Qforms_TApplication_ShowException
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_FMX_TApplication_HandleException
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_FMX_TApplication_ShowException
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_SysUtils_ShowException
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_SysUtils_LoadPackage
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_SysUtils_InitializePackage
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_SysUtils_Exception_RaisingException
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_SysUtils_Exception_GetStackTrace
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_SysUtils_Exception_Destroy
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_Classes_CheckSynchronize
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_CGIApp_TCGIApplication_CGIHandleException
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_ISAPIApp_TISAPIApplication_ISAPIHandleException
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_HttpExtensionProcNext
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_System_InitUnits
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_System_FinalizeUnits
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_System_ExceptionHandler
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_System_runErrMsg
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_BcbExceptionHandler
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_BcbThrowExceptionLDTC
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_BcbInitExceptBlockLDTC
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_BcbOrgMalloc
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_BcbCallTerminate
mov edx, dword [0x59857198]
call fcn.5984fc08
mov eax, sym.madExcept_.bpl__Madexcept_BcbVclClearEH
mov edx, dword [0x59857198]
call fcn.5984fc08
cmp dword [sym.madExcept_.bpl__Madexcept_System_InitUnits], 0
je 0x59850bc7
cmp dword [sym.madExcept_.bpl__Madexcept_Forms_TApplication_HandleException], 0
je 0x59850bc7
cmp dword [sym.madExcept_.bpl__Madexcept_Qforms_TApplication_HandleException], 0
je 0x59850bc7
cmp dword [sym.madExcept_.bpl__Madexcept_FMX_TApplication_HandleException], 0
jne 0x59850f83
test bl, bl
je 0x59850f83
mov esi, 0x59801440
cmp word [esi], 0x25ff
jne 0x59850c04
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov edi, dword [sym.imp.madBasic_.bpl__Madtools_FindModuleA]
mov edi, dword [edi]
lea ecx, [ebp - 8]
lea edx, [ebp - 0x50]
mov eax, esi
call edi
mov eax, dword [ebp - 0x50]
cmp eax, dword [0x59857198]
jne 0x59850c04
xor eax, eax
mov dword [ebp - 0x50], eax
push 0x598519c4
mov ecx, 0x78
mov edx, 0x59851a0c
mov eax, dword [ebp - 0x50]
call fcn.5984ff68
mov esi, eax
cmp dword [ebp - 0x50], 0
jne 0x59850c3c
push 0x59851a1c
mov ecx, 0x78
mov edx, 0x59851a3c
mov eax, esi
call fcn.5984ff68
mov dword [ebp - 0x50], eax
push 0x59851a4c
mov ecx, 0x78
mov edx, 0x59851a94
xor eax, eax
call fcn.5984ff68
mov edi, eax
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [sym.madExcept_.bpl__Madexcept_System_InitUnits], 0
jne 0x59850eec
cmp dword [ebp - 0x50], 0
je 0x59850eec
push 0x59851a9c
mov eax, dword [ebp - 0x50]
push eax
call fcn.59801964
mov dword [sym.madExcept_.bpl__Madexcept_SysUtils_ShowException], eax
cmp dword [sym.madExcept_.bpl__Madexcept_SysUtils_ShowException], 0
je 0x59850ee3
mov eax, dword [sym.madExcept_.bpl__Madexcept_SysUtils_ShowException]
cmp byte [eax], 0xe9
je 0x59850ee3
push 0x59851afc
mov eax, dword [ebp - 0x50]
push eax
call fcn.59801964
mov dword [sym.madExcept_.bpl__Madexcept_SysUtils_LoadPackage], eax
push 0x59851b58
mov eax, dword [ebp - 0x50]
push eax
call fcn.59801964
mov dword [sym.madExcept_.bpl__Madexcept_SysUtils_InitializePackage], eax
push 0x59851b9c
mov eax, dword [ebp - 0x50]
push eax
call fcn.59801964
mov dword [sym.madExcept_.bpl__Madexcept_SysUtils_Exception_RaisingException], eax
push 0x59851c28
mov eax, dword [ebp - 0x50]
push eax
call fcn.59801964
mov dword [sym.madExcept_.bpl__Madexcept_SysUtils_Exception_GetStackTrace], eax
push 0x59851c78
mov eax, dword [ebp - 0x50]
push eax
call fcn.59801964
mov dword [sym.madExcept_.bpl__Madexcept_SysUtils_Exception_Destroy], eax
push 0x59851cb8
mov eax, dword [ebp - 0x50]
push eax
call fcn.59801964
mov dword [sym.madExcept_.bpl__Madexcept_SysUtils_AnsiStrAlloc], eax
push 0x59851cf4
mov eax, dword [ebp - 0x50]
push eax
call fcn.59801964
mov dword [sym.madExcept_.bpl__Madexcept_SysUtils_WideStrAlloc], eax
push 0x59851d30
mov eax, dword [ebp - 0x50]
push eax
call fcn.59801964
mov dword [sym.madExcept_.bpl__Madexcept_Classes_CheckSynchronize], eax
push 0x59851d70
mov eax, dword [ebp - 0x50]
push eax
call fcn.59801964
lea edx, [ebp - 0x8c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
mov byte [ebp - 0x49], 1
jmp 0x59850ec9
cmp dword [ebp - 0x84], 0
je 0x59850ea4
cmp byte [ebp - 0x85], 0
je 0x59850ea4
cmp dword [ebp - 0x78], 4
jne 0x59850ea4
cmp byte [ebp - 0x49], 0
je 0x59850e19
mov byte [ebp - 0x49], 0
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x84]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
jmp 0x59850dfc
cmp word [ebp - 0xae], 0xc7
jne 0x59850dd4
cmp byte [ebp - 0xac], 0x40
jne 0x59850dd4
mov eax, dword [ebp - 0x90]
sub eax, 5
cmp byte [eax], 4
jne 0x59850dd4
mov eax, dword [ebp - 0x90]
sub eax, 4
mov eax, dword [eax]
mov dword [sym.madExcept_.bpl__Madexcept_System_ExceptionHandler], eax
jmp 0x59850ea4
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x90]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
push esi
push edi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0xb0]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp byte [ebp - 0xb0], 0
je 0x59850ea4
cmp word [ebp - 0xae], 0xc3
jne 0x59850d9d
jmp 0x59850ea4
mov eax, dword [ebp - 0x84]
mov dword [sym.madExcept_.bpl__Madexcept_System_InitUnits], eax
lea edx, [ebp - 0x8c]
mov eax, dword [sym.madExcept_.bpl__Madexcept_System_InitUnits]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
jmp 0x59850e8e
cmp dword [ebp - 0x84], 0
je 0x59850e69
cmp word [ebp - 0x8a], 0xe8
jne 0x59850e69
cmp byte [ebp - 0x85], 0
je 0x59850e69
cmp dword [ebp - 0x78], 4
jne 0x59850e69
mov eax, dword [ebp - 0x84]
mov dword [sym.madExcept_.bpl__Madexcept_System_FinalizeUnits], eax
jmp 0x59850eec
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
push esi
push edi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp byte [ebp - 0x8c], 0
je 0x59850eec
cmp word [ebp - 0x8a], 0xc3
jne 0x59850e36
jmp 0x59850eec
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
push esi
push edi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp byte [ebp - 0x8c], 0
je 0x59850eec
cmp word [ebp - 0x8a], 0xc3
jne 0x59850d58
jmp 0x59850eec
xor ebx, ebx
xor eax, eax
mov dword [sym.madExcept_.bpl__Madexcept_SysUtils_ShowException], eax
test bl, bl
je 0x59850f83
cmp dword [sym.madExcept_.bpl__Madexcept_Forms_TApplication_HandleException], 0
jne 0x59850f21
test esi, esi
je 0x59850f21
push 0x59851df8
push esi
call fcn.59801964
mov dword [sym.madExcept_.bpl__Madexcept_Forms_TApplication_HandleException], eax
push 0x59851e6c
push esi
call fcn.59801964
mov dword [sym.madExcept_.bpl__Madexcept_Forms_TApplication_ShowException], eax
cmp dword [sym.madExcept_.bpl__Madexcept_Qforms_TApplication_HandleException], 0
jne 0x59850f4e
test edi, edi
je 0x59850f4e
push 0x59851ee4
push edi
call fcn.59801964
mov dword [sym.madExcept_.bpl__Madexcept_Qforms_TApplication_HandleException], eax
push 0x59851f58
push edi
call fcn.59801964
mov dword [sym.madExcept_.bpl__Madexcept_Qforms_TApplication_ShowException], eax
cmp dword [sym.madExcept_.bpl__Madexcept_FMX_TApplication_HandleException], 0
jne 0x59850f83
cmp dword [ebp - 0x54], 0
je 0x59850f83
push 0x59851fd0
mov eax, dword [ebp - 0x54]
push eax
call fcn.59801964
mov dword [sym.madExcept_.bpl__Madexcept_FMX_TApplication_HandleException], eax
push 0x5985204c
mov eax, dword [ebp - 0x54]
push eax
call fcn.59801964
mov dword [sym.madExcept_.bpl__Madexcept_FMX_TApplication_ShowException], eax
mov eax, dword [sym.imp.rtl120.bpl__System_ExceptObjProc]
mov dword [0x59857b10], eax
cmp dword [sym.madExcept_.bpl__Madexcept_System_ExceptionHandler], 0
je 0x59850fa5
mov edx, 0x5984d2e8
mov eax, dword [sym.madExcept_.bpl__Madexcept_System_ExceptionHandler]
call sym.madExcept_.bpl__Madexcept_PatchJmp_qqrpvt1
cmp dword [sym.madExcept_.bpl__Madexcept_Forms_TApplication_HandleException], 0
je 0x59850fbd
mov edx, 0x5984c90c
mov eax, dword [sym.madExcept_.bpl__Madexcept_Forms_TApplication_HandleException]
call sym.madExcept_.bpl__Madexcept_PatchJmp_qqrpvt1
cmp dword [sym.madExcept_.bpl__Madexcept_Forms_TApplication_ShowException], 0
je 0x59850fd5
mov edx, 0x5984c8e4
mov eax, dword [sym.madExcept_.bpl__Madexcept_Forms_TApplication_ShowException]
call sym.madExcept_.bpl__Madexcept_PatchJmp_qqrpvt1
cmp dword [sym.madExcept_.bpl__Madexcept_Qforms_TApplication_HandleException], 0
je 0x59850fed
mov edx, 0x5984c90c
mov eax, dword [sym.madExcept_.bpl__Madexcept_Qforms_TApplication_HandleException]
call sym.madExcept_.bpl__Madexcept_PatchJmp_qqrpvt1
cmp dword [sym.madExcept_.bpl__Madexcept_Qforms_TApplication_ShowException], 0
je 0x59851005
mov edx, 0x5984c8e4
mov eax, dword [sym.madExcept_.bpl__Madexcept_Qforms_TApplication_ShowException]
call sym.madExcept_.bpl__Madexcept_PatchJmp_qqrpvt1
cmp dword [sym.madExcept_.bpl__Madexcept_FMX_TApplication_HandleException], 0
je 0x5985101d
mov edx, 0x5984c90c
mov eax, dword [sym.madExcept_.bpl__Madexcept_FMX_TApplication_HandleException]
call sym.madExcept_.bpl__Madexcept_PatchJmp_qqrpvt1
cmp dword [sym.madExcept_.bpl__Madexcept_FMX_TApplication_ShowException], 0
je 0x59851035
mov edx, 0x5984c8e4
mov eax, dword [sym.madExcept_.bpl__Madexcept_FMX_TApplication_ShowException]
call sym.madExcept_.bpl__Madexcept_PatchJmp_qqrpvt1
cmp dword [sym.madExcept_.bpl__Madexcept_SysUtils_ShowException], 0
je 0x5985104d
mov edx, 0x5984c8b8
mov eax, dword [sym.madExcept_.bpl__Madexcept_SysUtils_ShowException]
call sym.madExcept_.bpl__Madexcept_PatchJmp_qqrpvt1
cmp dword [sym.madExcept_.bpl__Madexcept_CGIApp_TCGIApplication_CGIHandleException], 0
je 0x59851065
mov edx, 0x5984c950
mov eax, dword [sym.madExcept_.bpl__Madexcept_CGIApp_TCGIApplication_CGIHandleException]
call sym.madExcept_.bpl__Madexcept_PatchJmp_qqrpvt1
cmp dword [sym.madExcept_.bpl__Madexcept_ISAPIApp_TISAPIApplication_ISAPIHandleException], 0
je 0x5985107d
mov edx, 0x5984c978
mov eax, dword [sym.madExcept_.bpl__Madexcept_ISAPIApp_TISAPIApplication_ISAPIHandleException]
call sym.madExcept_.bpl__Madexcept_PatchJmp_qqrpvt1
cmp dword [sym.madExcept_.bpl__Madexcept_HttpExtensionProcNext], 0
je 0x598510a7
mov byte [sym.madExcept_.bpl__Madexcept_AmHttpServer], 1
mov eax, 0x18
call sub.rtl120.bpl__System__GetMem_qqri
mov dword [0x59857b24], eax
mov eax, dword [0x59857b24]
push eax
call sub.kernel32.dll_InitializeCriticalSection
cmp dword [sym.madExcept_.bpl__Madexcept_SysUtils_LoadPackage], 0
je 0x5985117f
cmp dword [sym.madExcept_.bpl__Madexcept_SysUtils_InitializePackage], 0
je 0x5985117f
lea edx, [ebp - 0x48]
mov eax, dword [sym.madExcept_.bpl__Madexcept_SysUtils_LoadPackage]
call sub.madDisAsm_.bpl__Maddisasm_ParseFunction_qqrpv
mov eax, dword [ebp - 0x28]
call sub.rtl120.bpl__System__DynArrayLength_qqrv
dec eax
jne 0x598510e4
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [sym.madExcept_.bpl__Madexcept_SysUtils_LoadPackage], eax
lea edx, [ebp - 0x48]
mov eax, dword [sym.madExcept_.bpl__Madexcept_SysUtils_InitializePackage]
call sub.madDisAsm_.bpl__Maddisasm_ParseFunction_qqrpv
mov eax, dword [ebp - 0x28]
call sub.rtl120.bpl__System__DynArrayLength_qqrv
dec eax
jne 0x59851107
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [sym.madExcept_.bpl__Madexcept_SysUtils_InitializePackage], eax
lea edx, [ebp - 0x8c]
mov eax, dword [sym.madExcept_.bpl__Madexcept_SysUtils_LoadPackage]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
jmp 0x5985116d
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x5985114c
cmp esi, dword [sym.madExcept_.bpl__Madexcept_SysUtils_InitializePackage]
jne 0x5985114c
cmp dword [ebp - 0x78], 4
jne 0x5985117f
cmp byte [ebp - 0x85], 0
je 0x5985117f
mov edx, 0x5984cb68
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call sym.madExcept_.bpl__Madexcept_PatchInt_qqrpvi
jmp 0x5985117f
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x59851119
cmp dword [sym.madExcept_.bpl__Madexcept_Classes_CheckSynchronize], 0
je 0x59851215
mov esi, sub.rtl120.bpl__System_AcquireExceptionObject_qqrv
cmp word [esi], 0x25ff
jne 0x5985119f
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
lea edx, [ebp - 0x8c]
mov eax, dword [sym.madExcept_.bpl__Madexcept_Classes_CheckSynchronize]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
jmp 0x59851203
mov edi, dword [ebp - 0x84]
test edi, edi
je 0x598511e0
cmp esi, edi
jne 0x598511e0
cmp dword [ebp - 0x78], 4
jne 0x59851215
cmp byte [ebp - 0x85], 0
je 0x59851215
mov edx, 0x5984ca28
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call sym.madExcept_.bpl__Madexcept_PatchInt_qqrpvi
jmp 0x59851215
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
push esi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop esi
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x598511b1
call fcn.5984fc24
lea edx, [ebp - 0x8c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
mov byte [ebp - 0x49], 0
jmp 0x59851280
cmp byte [ebp - 0x85], 0
je 0x5985125f
cmp dword [ebp - 0x78], 4
jne 0x5985125f
cmp dword [ebp - 0x84], 0
je 0x5985125f
cmp byte [ebp - 0x49], 0
je 0x5985125b
mov edx, 0x5984ca84
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call sym.madExcept_.bpl__Madexcept_PatchInt_qqrpvi
jmp 0x59851292
mov byte [ebp - 0x49], 1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x5985122b
call fcn.5984fc24
lea edx, [ebp - 0x8c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
jmp 0x598512f8
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x598512d7
cmp esi, dword [sym.madExcept_.bpl__Madexcept_System_FinalizeUnits]
jne 0x598512d7
cmp dword [ebp - 0x78], 4
jne 0x5985130a
cmp byte [ebp - 0x85], 0
je 0x5985130a
mov edx, 0x5984cc4c
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call sym.madExcept_.bpl__Madexcept_PatchInt_qqrpvi
jmp 0x5985130a
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x598512a4
mov esi, dword [sym.madExcept_.bpl__Madexcept_System_InitUnits]
test esi, esi
je 0x5985138e
cmp dword [sym.madExcept_.bpl__Madexcept_System_FinalizeUnits], 0
je 0x5985138e
lea edx, [ebp - 0x8c]
mov eax, esi
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
jmp 0x5985137c
mov eax, dword [ebp - 0x84]
cmp eax, dword [sym.madExcept_.bpl__Madexcept_System_FinalizeUnits]
jne 0x5985135b
cmp dword [ebp - 0x78], 4
jne 0x5985138e
cmp byte [ebp - 0x85], 0
je 0x5985138e
mov edx, 0x5984cc54
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call sym.madExcept_.bpl__Madexcept_PatchInt_qqrpvi
jmp 0x5985138e
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x5985132c
mov esi, dword [sym.madExcept_.bpl__Madexcept_System_FinalizeUnits]
test esi, esi
je 0x59851409
lea edx, [ebp - 0x8c]
mov eax, esi
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
jmp 0x598513f7
mov eax, dword [ebp - 0x84]
cmp eax, dword [sym.madExcept_.bpl__Madexcept_System_FinalizeUnits]
jne 0x598513d6
cmp dword [ebp - 0x78], 4
jne 0x59851409
cmp byte [ebp - 0x85], 0
je 0x59851409
mov edx, 0x5984cc64
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call sym.madExcept_.bpl__Madexcept_PatchInt_qqrpvi
jmp 0x59851409
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x598513a7
call fcn.5984fc60
lea edx, [ebp - 0x8c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
jmp 0x5985143c
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x5985147d
cmp word [ebp - 0x8a], 0x8b
jne 0x5985146b
cmp byte [ebp - 0x88], 0x15
jne 0x5985146b
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [sym.imp.rtl120.bpl__System_ExceptObjProc]
cmp eax, edx
je 0x5985147d
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x5985141b
cmp word [ebp - 0x8a], 0x8b
jne 0x59851498
mov edx, 0x59857b14
mov eax, dword [ebp - 0x70]
add eax, 2
call sym.madExcept_.bpl__Madexcept_PatchInt_qqrpvi
call fcn.5984fc74
lea edx, [ebp - 0x8c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
jmp 0x598514cb
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x5985150c
cmp word [ebp - 0x8a], 0xff
jne 0x598514fa
cmp byte [ebp - 0x88], 0x15
jne 0x598514fa
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [sym.imp.rtl120.bpl__System_ExceptObjProc]
cmp eax, edx
je 0x5985150c
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x598514aa
cmp word [ebp - 0x8a], 0xff
jne 0x59851527
mov edx, 0x59857b18
mov eax, dword [ebp - 0x70]
add eax, 2
call sym.madExcept_.bpl__Madexcept_PatchInt_qqrpvi
mov eax, dword [sym.imp.rtl120.bpl__System_RaiseExceptionProc]
mov eax, dword [eax]
mov dword [0x59857b1c], eax
call fcn.5984fc88
lea edx, [ebp - 0x8c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
jmp 0x59851566
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x59851595
cmp word [ebp - 0x8a], 0xff
jne 0x59851583
cmp byte [ebp - 0x88], 0x25
je 0x59851595
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x59851545
cmp word [ebp - 0x8a], 0xff
jne 0x598515b0
mov edx, 0x59857b20
mov eax, dword [ebp - 0x70]
add eax, 2
call sym.madExcept_.bpl__Madexcept_PatchInt_qqrpvi
call fcn.5984fc4c
mov esi, eax
lea edx, [ebp - 0x8c]
mov eax, esi
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
jmp 0x598515e9
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
push esi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop esi
cmp byte [ebp - 0x8c], 0
je 0x598515fb
cmp byte [ebp - 0x87], 0
je 0x598515c6
mov eax, dword [ebp - 0x84]
mov dword [0x598571f4], eax
mov edx, 0x5984d34c
mov eax, esi
call sym.madExcept_.bpl__Madexcept_PatchJmp_qqrpvt1
lea edx, [ebp - 0x8c]
mov eax, sub.rtl120.bpl__System_TObject_Free_qqrv
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x59851630
mov esi, eax
jmp 0x59851635
mov esi, sub.rtl120.bpl__System_TObject_Free_qqrv
call fcn.5984fc10
lea edx, [ebp - 0x8c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
jmp 0x59851693
cmp esi, dword [ebp - 0x84]
jne 0x59851670
cmp dword [ebp - 0x78], 4
jne 0x598516a5
cmp byte [ebp - 0x85], 0
je 0x598516a5
mov edx, 0x5984d628
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call sym.madExcept_.bpl__Madexcept_PatchInt_qqrpvi
jmp 0x598516a5
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call sub.madDisAsm_.bpl__Maddisasm_ParseCode_qqrpv
push esi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop esi
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x59851647
call fcn.5984fc38
mov edx, 0x5984d638
call sym.madExcept_.bpl__Madexcept_PatchJmp_qqrpvt1
cmp dword [sym.madExcept_.bpl__Madexcept_SysUtils_Exception_RaisingException], 0
je 0x59851707
cmp dword [sym.madExcept_.bpl__Madexcept_SysUtils_Exception_Destroy], 0
je 0x59851707
mov edx, 0x5984bbcc
mov eax, dword [sym.madExcept_.bpl__Madexcept_SysUtils_Exception_RaisingException]
call sym.madExcept_.bpl__Madexcept_PatchJmp_qqrpvt1
mov edx, 0x598021e0
mov eax, dword [sym.madExcept_.bpl__Madexcept_SysUtils_Exception_Destroy]
call sym.madExcept_.bpl__Madexcept_PatchJmp_qqrpvt1
cmp dword [sym.madExcept_.bpl__Madexcept_SysUtils_Exception_GetStackTrace], 0
je 0x598516fc
mov edx, 0x5984bc28
mov eax, dword [sym.madExcept_.bpl__Madexcept_SysUtils_Exception_GetStackTrace]
call sym.madExcept_.bpl__Madexcept_PatchJmp_qqrpvt1
mov eax, dword [sym.imp.madBasic_.bpl__Madtypes_MadException_CleanUpStackInfoProc]
mov dword [eax], 0x5984bb54
push 0
push 0
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_FlushInstructionCache
call fcn.59842a10
call fcn.5982269c
mov esi, 0x59801198
cmp word [esi], 0x25ff
jne 0x59851733
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov dword [0x59857b30], esi
lea edx, [ebp - 0x48]
mov eax, esi
call sub.madDisAsm_.bpl__Maddisasm_ParseFunction_qqrpv
cmp byte [ebp - 0x48], 0
je 0x59851754
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x3c]
mov dword [0x59857b34], eax
push 0
call sub.kernel32.dll_GetModuleHandleW
cmp eax, dword [0x59857198]
je 0x5985176c
cmp byte [0x598571a4], 0
je 0x59851776
mov eax, dword [0x598579dc]
call fcn.5984e1f8
mov eax, ebx
call fcn.5981ccec
mov eax, dword [0x598579dc]
mov edx, dword [eax]
call dword [edx + 0x37c]
test al, al
je 0x598517a5
mov eax, dword [0x598579dc]
mov edx, dword [eax]
call dword [edx + 0x380]
mov dword [0x59857a20], eax
call sym.madExcept_.bpl__Madexcept_InitAntiFreeze_qqrv
call fcn.59842bac
mov eax, 0x5984c568
test eax, eax
jmp 0x598517e3
lea eax, [ebp - 4]
call sym.madExcept_.bpl__Madexcept_GetThreadList_qqrv
cmp dword [ebp - 4], 0
je 0x598517cd
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [sym.madExcept_.bpl__Madexcept_ProcessMainThreadId], eax
jmp 0x598517d9
mov eax, dword [sym.imp.rtl120.bpl__System_MainThreadID]
mov eax, dword [eax]
mov dword [sym.madExcept_.bpl__Madexcept_ProcessMainThreadId], eax
mov eax, 0x598579dc
call sub.rtl120.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x59851837
lea eax, [ebp - 0xdc]
mov edx, 2
call sub.rtl120.bpl__System__LStrArrayClr_qqrpvi
lea eax, [ebp - 0xd4]
call sub.rtl120.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
lea eax, [ebp - 0x48]
mov edx, dword [sym.imp.madDisAsm_.bpl___xp_23Maddisasm_TFunctionInfo]
call sub.rtl120.bpl__System__FinalizeRecord_qqrpvt1
lea eax, [ebp - 8]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 4]
mov edx, dword [sym.imp.madBasic_.bpl___xp_20Madtypes_TDACardinal]
call sub.rtl120.bpl__System__DynArrayClear_qqrrpvpv
ret