Function at 0x460c24
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 [0x414110]
call sub.rtl120.bpl__System__InitializeRecord_qqrpvt1
xor eax, eax
push ebp
push 0x461e64
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [0x402cb8]
call sub.rtl120.bpl__System__DynArrayClear_qqrrpvpv
lea eax, [ebp - 0x60]
push eax
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x460cb9
lea eax, [ebp - 0x68]
push eax
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x460cb9
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 [0x58ee9c], eax
mov dword [0x58eea0], edx
push 0x461e74
mov eax, dword [0x58ee98]
push eax
call fcn.00401c48
test eax, eax
setne byte [0x58eea4]
cmp byte [0x58eea4], 0
je 0x460ce0
call fcn.004609e4
call sub.kernel32.dll_GetVersion
cmp al, 6
jb 0x460d03
push 0x461eb4
push 0x461ecc
call sub.kernel32.dll_LoadLibraryA
push eax
call fcn.00401c48
mov dword [0x58eeb4], eax
mov eax, dword [0x59e460]
mov dword [eax], fcn.004600b4
mov eax, dword [0x59e6b8]
mov dword [eax], 0x4361bc
mov eax, dword [0x59ef00]
mov dword [eax], 0x4367d4
mov eax, 0x460220
mov edx, dword [0x59ea9c]
mov dword [edx], eax
push 0x461edc
push 0x461ef4
call sub.kernel32.dll_GetModuleHandleW_1
push eax
call fcn.00401c48
mov dword [0x58eec0], eax
push 0x461f10
push 0x461f2c
call sub.kernel32.dll_GetModuleHandleW_1
push eax
call fcn.00401c48
mov dword [0x58eec4], eax
lea edx, [ebp - 0xd4]
mov eax, dword [0x58ee98]
call fcn.0043ae58
mov edx, dword [ebp - 0xd4]
mov eax, 0x58f6dc
call sub.rtl120.bpl__System__IntfCopy_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
mov eax, dword [0x58f6dc]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x460de3
mov eax, dword [0x58f6dc]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x460de3
mov eax, dword [0x58f6dc]
mov edx, dword [eax]
call dword [edx + 0x378]
test al, al
je 0x460de3
mov eax, dword [0x58ee98]
call fcn.0046032c
mov eax, dword [0x58f6dc]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x58ee98]
je 0x460de3
mov eax, dword [0x58f6dc]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.0046032c
call fcn.004608f4
push 0x5a0244
call sub.kernel32.dll_InitializeCriticalSection
push 0x5a022c
call sub.kernel32.dll_InitializeCriticalSection
mov eax, dword [0x58f6dc]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x461de7
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xbc]
call fcn.0042d4c8
lea eax, [ebp - 0xdc]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.00405844
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xd8]
mov edx, 0x461f4c
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 0x460f19
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x58eebc], eax
mov eax, dword [0x58eebc]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.004019d8
mov edx, dword [0x58eebc]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.004019d8
mov edx, dword [0x58eebc]
mov dword [edx + 4], eax
mov eax, dword [0x58eebc]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x58eebc]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call fcn.0042c214
cmp dword [ebp - 4], 0
je 0x460f0b
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x58ed78], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x461f70
xor edx, edx
call fcn.0042de98
jmp 0x460f63
mov eax, dword [sym.imp.rtl120.bpl__System_MainThreadID]
mov eax, dword [eax]
mov dword [0x58ed78], eax
jmp 0x460f63
test ebx, ebx
je 0x460f49
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x58eebc], eax
push ebx
call sub.kernel32.dll_CloseHandle
mov eax, dword [0x58eebc]
add eax, 0xc
push eax
call sub.kernel32.dll_InterlockedIncrement
jmp 0x460f63
push 0
push 0x461f88
push 0x461f94
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess
cmp dword [0x58eebc], 0
jne 0x460f86
push 0
push 0x461f88
push 0x461fbc
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess
cmp dword [0x58ed78], 0
jne 0x461000
push 0xffffffffffffffff
mov eax, dword [0x58eebc]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor edx, edx
push ebp
push 0x460fe4
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x58eebc]
mov eax, dword [eax + 8]
test eax, eax
je 0x460fc8
mov edx, dword [eax]
mov dword [0x58ed78], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x460fb9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x460feb
mov eax, dword [0x58eebc]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReleaseMutex
ret
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x58ee98]
je 0x46101c
cmp byte [0x58eea4], 0
jne 0x46101c
xor ebx, ebx
jmp 0x46101e
mov bl, 1
mov eax, dword [0x58f6dc]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x461dde
mov eax, 0x58ee24
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee28
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee2c
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee30
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee34
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee38
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee3c
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee40
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee44
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee48
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee4c
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee50
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee5c
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee60
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee64
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee68
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee6c
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee70
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee74
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee78
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee7c
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee80
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee84
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee88
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee8c
mov edx, dword [0x58ee98]
call fcn.0046023c
mov eax, 0x58ee94
mov edx, dword [0x58ee98]
call fcn.0046023c
cmp dword [0x58ee6c], 0
je 0x4611fb
cmp dword [0x58ee24], 0
je 0x4611fb
cmp dword [0x58ee2c], 0
je 0x4611fb
cmp dword [0x58ee34], 0
jne 0x4615b7
test bl, bl
je 0x4615b7
mov esi, sub.rtl120.bpl__System_FreeMemory_qpv
cmp word [esi], 0x25ff
jne 0x461238
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov edi, dword [0x59e714]
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 [0x58ee98]
jne 0x461238
xor eax, eax
mov dword [ebp - 0x50], eax
push 0x461ff8
mov ecx, 0x78
mov edx, 0x462040
mov eax, dword [ebp - 0x50]
call fcn.0046059c
mov esi, eax
cmp dword [ebp - 0x50], 0
jne 0x461270
push 0x462050
mov ecx, 0x78
mov edx, 0x462070
mov eax, esi
call fcn.0046059c
mov dword [ebp - 0x50], eax
push 0x462080
mov ecx, 0x78
mov edx, 0x4620c8
xor eax, eax
call fcn.0046059c
mov edi, eax
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [0x58ee6c], 0
jne 0x461520
cmp dword [ebp - 0x50], 0
je 0x461520
push 0x4620d0
mov eax, dword [ebp - 0x50]
push eax
call fcn.00401c48
mov dword [0x58ee3c], eax
cmp dword [0x58ee3c], 0
je 0x461517
mov eax, dword [0x58ee3c]
cmp byte [eax], 0xe9
je 0x461517
push 0x462130
mov eax, dword [ebp - 0x50]
push eax
call fcn.00401c48
mov dword [0x58ee40], eax
push 0x46218c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00401c48
mov dword [0x58ee44], eax
push 0x4621d0
mov eax, dword [ebp - 0x50]
push eax
call fcn.00401c48
mov dword [0x58ee48], eax
push 0x46225c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00401c48
mov dword [0x58ee4c], eax
push 0x4622ac
mov eax, dword [ebp - 0x50]
push eax
call fcn.00401c48
mov dword [0x58ee50], eax
push 0x4622ec
mov eax, dword [ebp - 0x50]
push eax
call fcn.00401c48
mov dword [0x58ee54], eax
push 0x462328
mov eax, dword [ebp - 0x50]
push eax
call fcn.00401c48
mov dword [0x58ee58], eax
push 0x462364
mov eax, dword [ebp - 0x50]
push eax
call fcn.00401c48
mov dword [0x58ee5c], eax
push 0x4623a4
mov eax, dword [ebp - 0x50]
push eax
call fcn.00401c48
lea edx, [ebp - 0x8c]
call fcn.00418218
mov byte [ebp - 0x49], 1
jmp 0x4614fd
cmp dword [ebp - 0x84], 0
je 0x4614d8
cmp byte [ebp - 0x85], 0
je 0x4614d8
cmp dword [ebp - 0x78], 4
jne 0x4614d8
cmp byte [ebp - 0x49], 0
je 0x46144d
mov byte [ebp - 0x49], 0
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x84]
call fcn.00418218
jmp 0x461430
cmp word [ebp - 0xae], 0xc7
jne 0x461408
cmp byte [ebp - 0xac], 0x40
jne 0x461408
mov eax, dword [ebp - 0x90]
sub eax, 5
cmp byte [eax], 4
jne 0x461408
mov eax, dword [ebp - 0x90]
sub eax, 4
mov eax, dword [eax]
mov dword [0x58ee74], eax
jmp 0x4614d8
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x90]
call fcn.00418218
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 0x4614d8
cmp word [ebp - 0xae], 0xc3
jne 0x4613d1
jmp 0x4614d8
mov eax, dword [ebp - 0x84]
mov dword [0x58ee6c], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x58ee6c]
call fcn.00418218
jmp 0x4614c2
cmp dword [ebp - 0x84], 0
je 0x46149d
cmp word [ebp - 0x8a], 0xe8
jne 0x46149d
cmp byte [ebp - 0x85], 0
je 0x46149d
cmp dword [ebp - 0x78], 4
jne 0x46149d
mov eax, dword [ebp - 0x84]
mov dword [0x58ee70], eax
jmp 0x461520
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00418218
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 0x461520
cmp word [ebp - 0x8a], 0xc3
jne 0x46146a
jmp 0x461520
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00418218
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 0x461520
cmp word [ebp - 0x8a], 0xc3
jne 0x46138c
jmp 0x461520
xor ebx, ebx
xor eax, eax
mov dword [0x58ee3c], eax
test bl, bl
je 0x4615b7
cmp dword [0x58ee24], 0
jne 0x461555
test esi, esi
je 0x461555
push 0x46242c
push esi
call fcn.00401c48
mov dword [0x58ee24], eax
push 0x4624a0
push esi
call fcn.00401c48
mov dword [0x58ee28], eax
cmp dword [0x58ee2c], 0
jne 0x461582
test edi, edi
je 0x461582
push 0x462518
push edi
call fcn.00401c48
mov dword [0x58ee2c], eax
push 0x46258c
push edi
call fcn.00401c48
mov dword [0x58ee30], eax
cmp dword [0x58ee34], 0
jne 0x4615b7
cmp dword [ebp - 0x54], 0
je 0x4615b7
push 0x462604
mov eax, dword [ebp - 0x54]
push eax
call fcn.00401c48
mov dword [0x58ee34], eax
push 0x462680
mov eax, dword [ebp - 0x54]
push eax
call fcn.00401c48
mov dword [0x58ee38], eax
mov eax, dword [sym.imp.rtl120.bpl__System_ExceptObjProc]
mov dword [0x58f810], eax
cmp dword [0x58ee74], 0
je 0x4615d9
mov edx, 0x45df28
mov eax, dword [0x58ee74]
call fcn.0045630c
cmp dword [0x58ee24], 0
je 0x4615f1
mov edx, 0x45d54c
mov eax, dword [0x58ee24]
call fcn.0045630c
cmp dword [0x58ee28], 0
je 0x461609
mov edx, 0x45d524
mov eax, dword [0x58ee28]
call fcn.0045630c
cmp dword [0x58ee2c], 0
je 0x461621
mov edx, 0x45d54c
mov eax, dword [0x58ee2c]
call fcn.0045630c
cmp dword [0x58ee30], 0
je 0x461639
mov edx, 0x45d524
mov eax, dword [0x58ee30]
call fcn.0045630c
cmp dword [0x58ee34], 0
je 0x461651
mov edx, 0x45d54c
mov eax, dword [0x58ee34]
call fcn.0045630c
cmp dword [0x58ee38], 0
je 0x461669
mov edx, 0x45d524
mov eax, dword [0x58ee38]
call fcn.0045630c
cmp dword [0x58ee3c], 0
je 0x461681
mov edx, 0x45d4f8
mov eax, dword [0x58ee3c]
call fcn.0045630c
cmp dword [0x58ee60], 0
je 0x461699
mov edx, 0x45d590
mov eax, dword [0x58ee60]
call fcn.0045630c
cmp dword [0x58ee64], 0
je 0x4616b1
mov edx, 0x45d5b8
mov eax, dword [0x58ee64]
call fcn.0045630c
cmp dword [0x58ee68], 0
je 0x4616db
mov byte [0x58ee0c], 1
mov eax, 0x18
call sub.rtl120.bpl__System__GetMem_qqri
mov dword [0x58f824], eax
mov eax, dword [0x58f824]
push eax
call sub.kernel32.dll_InitializeCriticalSection
cmp dword [0x58ee40], 0
je 0x4617b3
cmp dword [0x58ee44], 0
je 0x4617b3
lea edx, [ebp - 0x48]
mov eax, dword [0x58ee40]
call fcn.00419518
mov eax, dword [ebp - 0x28]
call sub.rtl120.bpl__System__DynArrayLength_qqrv
dec eax
jne 0x461718
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x58ee40], eax
lea edx, [ebp - 0x48]
mov eax, dword [0x58ee44]
call fcn.00419518
mov eax, dword [ebp - 0x28]
call sub.rtl120.bpl__System__DynArrayLength_qqrv
dec eax
jne 0x46173b
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x58ee44], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x58ee40]
call fcn.00418218
jmp 0x4617a1
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x461780
cmp esi, dword [0x58ee44]
jne 0x461780
cmp dword [ebp - 0x78], 4
jne 0x4617b3
cmp byte [ebp - 0x85], 0
je 0x4617b3
mov edx, 0x45d7a8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00456364
jmp 0x4617b3
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00418218
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 0x46174d
cmp dword [0x58ee5c], 0
je 0x461849
mov esi, sub.rtl120.bpl__System_AcquireExceptionObject_qqrv
cmp word [esi], 0x25ff
jne 0x4617d3
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
lea edx, [ebp - 0x8c]
mov eax, dword [0x58ee5c]
call fcn.00418218
jmp 0x461837
mov edi, dword [ebp - 0x84]
test edi, edi
je 0x461814
cmp esi, edi
jne 0x461814
cmp dword [ebp - 0x78], 4
jne 0x461849
cmp byte [ebp - 0x85], 0
je 0x461849
mov edx, 0x45d668
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00456364
jmp 0x461849
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00418218
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 0x4617e5
call fcn.00460258
lea edx, [ebp - 0x8c]
call fcn.00418218
mov byte [ebp - 0x49], 0
jmp 0x4618b4
cmp byte [ebp - 0x85], 0
je 0x461893
cmp dword [ebp - 0x78], 4
jne 0x461893
cmp dword [ebp - 0x84], 0
je 0x461893
cmp byte [ebp - 0x49], 0
je 0x46188f
mov edx, 0x45d6c4
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00456364
jmp 0x4618c6
mov byte [ebp - 0x49], 1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00418218
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 0x46185f
call fcn.00460258
lea edx, [ebp - 0x8c]
call fcn.00418218
jmp 0x46192c
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x46190b
cmp esi, dword [0x58ee70]
jne 0x46190b
cmp dword [ebp - 0x78], 4
jne 0x46193e
cmp byte [ebp - 0x85], 0
je 0x46193e
mov edx, 0x45d88c
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00456364
jmp 0x46193e
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00418218
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 0x4618d8
mov esi, dword [0x58ee6c]
test esi, esi
je 0x4619c2
cmp dword [0x58ee70], 0
je 0x4619c2
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00418218
jmp 0x4619b0
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x58ee70]
jne 0x46198f
cmp dword [ebp - 0x78], 4
jne 0x4619c2
cmp byte [ebp - 0x85], 0
je 0x4619c2
mov edx, 0x45d894
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00456364
jmp 0x4619c2
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00418218
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 0x461960
mov esi, dword [0x58ee70]
test esi, esi
je 0x461a3d
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00418218
jmp 0x461a2b
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x58ee70]
jne 0x461a0a
cmp dword [ebp - 0x78], 4
jne 0x461a3d
cmp byte [ebp - 0x85], 0
je 0x461a3d
mov edx, 0x45d8a4
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00456364
jmp 0x461a3d
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00418218
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 0x4619db
call fcn.00460294
lea edx, [ebp - 0x8c]
call fcn.00418218
jmp 0x461a70
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00418218
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x461ab1
cmp word [ebp - 0x8a], 0x8b
jne 0x461a9f
cmp byte [ebp - 0x88], 0x15
jne 0x461a9f
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 0x461ab1
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x461a4f
cmp word [ebp - 0x8a], 0x8b
jne 0x461acc
mov edx, 0x58f814
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.00456364
call fcn.004602a8
lea edx, [ebp - 0x8c]
call fcn.00418218
jmp 0x461aff
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00418218
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x461b40
cmp word [ebp - 0x8a], 0xff
jne 0x461b2e
cmp byte [ebp - 0x88], 0x15
jne 0x461b2e
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 0x461b40
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x461ade
cmp word [ebp - 0x8a], 0xff
jne 0x461b5b
mov edx, 0x58f818
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.00456364
mov eax, dword [sym.imp.rtl120.bpl__System_RaiseExceptionProc]
mov eax, dword [eax]
mov dword [0x58f81c], eax
call fcn.004602bc
lea edx, [ebp - 0x8c]
call fcn.00418218
jmp 0x461b9a
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00418218
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x461bc9
cmp word [ebp - 0x8a], 0xff
jne 0x461bb7
cmp byte [ebp - 0x88], 0x25
je 0x461bc9
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x461b79
cmp word [ebp - 0x8a], 0xff
jne 0x461be4
mov edx, 0x58f820
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.00456364
call fcn.00460280
mov esi, eax
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00418218
jmp 0x461c1d
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00418218
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 0x461c2f
cmp byte [ebp - 0x87], 0
je 0x461bfa
mov eax, dword [ebp - 0x84]
mov dword [0x58eef4], eax
mov edx, 0x45df8c
mov eax, esi
call fcn.0045630c
lea edx, [ebp - 0x8c]
mov eax, sub.rtl120.bpl__System_TObject_Free_qqrv
call fcn.00418218
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x461c64
mov esi, eax
jmp 0x461c69
mov esi, sub.rtl120.bpl__System_TObject_Free_qqrv
call fcn.00460244
lea edx, [ebp - 0x8c]
call fcn.00418218
jmp 0x461cc7
cmp esi, dword [ebp - 0x84]
jne 0x461ca4
cmp dword [ebp - 0x78], 4
jne 0x461cd9
cmp byte [ebp - 0x85], 0
je 0x461cd9
mov edx, 0x45e268
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00456364
jmp 0x461cd9
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00418218
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 0x461c7b
call fcn.0046026c
mov edx, 0x45e278
call fcn.0045630c
cmp dword [0x58ee48], 0
je 0x461d3b
cmp dword [0x58ee50], 0
je 0x461d3b
mov edx, 0x45c80c
mov eax, dword [0x58ee48]
call fcn.0045630c
mov edx, 0x402e50
mov eax, dword [0x58ee50]
call fcn.0045630c
cmp dword [0x58ee4c], 0
je 0x461d30
mov edx, 0x45c868
mov eax, dword [0x58ee4c]
call fcn.0045630c
mov eax, dword [0x59eb54]
mov dword [eax], 0x45c794
push 0
push 0
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_FlushInstructionCache
call fcn.00454600
call fcn.00435784
mov esi, 0x401260
cmp word [esi], 0x25ff
jne 0x461d67
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov dword [0x58f830], esi
lea edx, [ebp - 0x48]
mov eax, esi
call fcn.00419518
cmp byte [ebp - 0x48], 0
je 0x461d88
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x3c]
mov dword [0x58f834], eax
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x58ee98]
je 0x461da0
cmp byte [0x58eea4], 0
je 0x461daa
mov eax, dword [0x58f6dc]
call fcn.0045ee38
mov eax, ebx
call fcn.0042fdd4
mov eax, dword [0x58f6dc]
mov edx, dword [eax]
call dword [edx + 0x37c]
test al, al
je 0x461dd9
mov eax, dword [0x58f6dc]
mov edx, dword [eax]
call dword [edx + 0x380]
mov dword [0x58f720], eax
call fcn.00435e18
call fcn.0045479c
mov eax, 0x45d1a8
test eax, eax
jmp 0x461e17
lea eax, [ebp - 4]
call fcn.0042c214
cmp dword [ebp - 4], 0
je 0x461e01
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x58ed78], eax
jmp 0x461e0d
mov eax, dword [sym.imp.rtl120.bpl__System_MainThreadID]
mov eax, dword [eax]
mov dword [0x58ed78], eax
mov eax, 0x58f6dc
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 0x461e6b
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 [0x414110]
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 [0x402cb8]
call sub.rtl120.bpl__System__DynArrayClear_qqrrpvpv
ret