Function at 0x471be0
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 [0x40f7e8]
call sub.rtl250.bpl__System__InitializeRecord_qqrpvt1
xor eax, eax
push ebp
push 0x472e2d
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [0x406180]
call sub.rtl250.bpl__System__DynArrayClear_qqrrpvpv
lea eax, [ebp - 0x60]
push eax
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x471c75
lea eax, [ebp - 0x68]
push eax
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x471c75
push 0
push 0x3e8
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
call sub.rtl250.bpl__System___lldiv_qqrv
push edx
push eax
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
call sub.rtl250.bpl__System___lldiv_qqrv
mov dword [0x4cc610], eax
mov dword [0x4cc614], edx
push 0x472e3c
mov eax, dword [0x4cc60c]
push eax
call fcn.00403508
test eax, eax
setne byte [0x4cc618]
cmp byte [0x4cc618], 0
je 0x471c9c
call fcn.004719cc
call sub.kernel32.dll_GetVersion
cmp al, 6
jb 0x471cbf
push 0x472e7c
push 0x472e94
call sub.kernel32.dll_LoadLibraryA
push eax
call fcn.00403508
mov dword [0x4cc61c], eax
mov eax, dword [0x4cd320]
mov dword [eax], fcn.004710b8
mov eax, dword [0x4cd38c]
mov dword [eax], 0x4440e8
mov eax, dword [0x4cd544]
mov dword [eax], 0x4446f8
mov eax, 0x471224
mov edx, dword [0x4cd44c]
mov dword [edx], eax
push 0x472ea4
push 0x472ebc
call sub.kernel32.dll_GetModuleHandleW
push eax
call fcn.00403508
mov dword [0x4cc628], eax
push 0x472ed8
push 0x472ef4
call sub.kernel32.dll_GetModuleHandleW
push eax
call fcn.00403508
mov dword [0x4cc62c], eax
lea edx, [ebp - 0xd4]
mov eax, dword [0x4cc60c]
call fcn.00448d30
mov edx, dword [ebp - 0xd4]
mov eax, 0x4cce4c
call sub.rtl250.bpl__System__IntfCopy_qqrr44System__DelphiInterface_17System_IInterface_x44System__DelphiInterface_17System_IInterf
mov eax, dword [0x4cce4c]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x471d9f
mov eax, dword [0x4cce4c]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x471d9f
mov eax, dword [0x4cce4c]
mov edx, dword [eax]
call dword [edx + 0x378]
test al, al
je 0x471d9f
mov eax, dword [0x4cc60c]
call fcn.00471330
mov eax, dword [0x4cce4c]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x4cc60c]
je 0x471d9f
mov eax, dword [0x4cce4c]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.00471330
call fcn.004718dc
push 0x4d1500
call sub.kernel32.dll_InitializeCriticalSection
push 0x4d14e8
call sub.kernel32.dll_InitializeCriticalSection
mov eax, dword [0x4cce4c]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x472db0
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xbc]
call fcn.004344ac
lea eax, [ebp - 0xdc]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.004088d8
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xd8]
mov edx, 0x472f14
call sub.rtl250.bpl__System__LStrCat3_qqrr27System__AnsiStringT_us_i0__x27System__AnsiStringT_us_i0__t2
mov eax, dword [ebp - 0xd8]
call sub.rtl250.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 0x471ed5
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x4cc624], eax
mov eax, dword [0x4cc624]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.004032bc
mov edx, dword [0x4cc624]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.004032bc
mov edx, dword [0x4cc624]
mov dword [edx + 4], eax
mov eax, dword [0x4cc624]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x4cc624]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call fcn.0043321c
cmp dword [ebp - 4], 0
je 0x471ec7
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x4cc510], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x472f38
xor edx, edx
call fcn.00434e24
jmp 0x471f1f
mov eax, dword [sym.imp.rtl250.bpl__System_MainThreadID]
mov eax, dword [eax]
mov dword [0x4cc510], eax
jmp 0x471f1f
test ebx, ebx
je 0x471f05
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x4cc624], eax
push ebx
call sub.kernel32.dll_CloseHandle
mov eax, dword [0x4cc624]
add eax, 0xc
push eax
call fcn.00403418
jmp 0x471f1f
push 0
push 0x472f50
push 0x472f5c
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess
cmp dword [0x4cc624], 0
jne 0x471f42
push 0
push 0x472f50
push 0x472f84
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess
cmp dword [0x4cc510], 0
jne 0x471fbc
push 0xffffffffffffffff
mov eax, dword [0x4cc624]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor edx, edx
push ebp
push 0x471fa0
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x4cc624]
mov eax, dword [eax + 8]
test eax, eax
je 0x471f84
mov edx, dword [eax]
mov dword [0x4cc510], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x471f75
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x471fa7
mov eax, dword [0x4cc624]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReleaseMutex
ret
push 0
call sub.kernel32.dll_GetModuleHandleW
cmp eax, dword [0x4cc60c]
je 0x471fd8
cmp byte [0x4cc618], 0
jne 0x471fd8
xor ebx, ebx
jmp 0x471fda
mov bl, 1
mov eax, dword [0x4cce4c]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x472da7
mov eax, 0x4cc598
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc59c
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5a0
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5a4
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5a8
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5ac
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5b0
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5b4
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5b8
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5bc
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5c0
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5c4
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5d0
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5d4
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5d8
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5dc
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5e0
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5e4
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5e8
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5ec
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5f0
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5f4
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5f8
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc5fc
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc600
mov edx, dword [0x4cc60c]
call fcn.00471240
mov eax, 0x4cc608
mov edx, dword [0x4cc60c]
call fcn.00471240
cmp dword [0x4cc5e0], 0
je 0x4721b7
cmp dword [0x4cc598], 0
je 0x4721b7
cmp dword [0x4cc5a0], 0
je 0x4721b7
cmp dword [0x4cc5a8], 0
jne 0x472580
test bl, bl
je 0x472580
mov esi, sub.rtl250.bpl__System_FreeMemory_qpv
cmp word [esi], 0x25ff
jne 0x4721f4
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov edi, dword [0x4cd39c]
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 [0x4cc60c]
jne 0x4721f4
xor eax, eax
mov dword [ebp - 0x50], eax
mov esi, 0x140
push 0x472fc0
mov ecx, esi
mov edx, 0x47300c
mov eax, dword [ebp - 0x50]
call fcn.004715a0
mov edi, eax
cmp dword [ebp - 0x50], 0
jne 0x47222b
push 0x47301c
mov ecx, esi
mov edx, 0x473040
mov eax, edi
call fcn.004715a0
mov dword [ebp - 0x50], eax
push 0x473050
mov ecx, esi
mov edx, 0x473098
xor eax, eax
call fcn.004715a0
mov dword [ebp - 0x54], eax
push 0x4730ac
mov ecx, esi
mov edx, 0x4730f8
xor eax, eax
call fcn.004715a0
mov esi, eax
cmp dword [0x4cc5e0], 0
jne 0x4724e9
cmp dword [ebp - 0x50], 0
je 0x4724e9
push 0x4730fc
mov eax, dword [ebp - 0x50]
push eax
call fcn.00403508
mov dword [0x4cc5b0], eax
cmp dword [0x4cc5b0], 0
je 0x4724e0
mov eax, dword [0x4cc5b0]
cmp byte [eax], 0xe9
je 0x4724e0
push 0x473168
mov eax, dword [ebp - 0x50]
push eax
call fcn.00403508
mov dword [0x4cc5b4], eax
push 0x4731d8
mov eax, dword [ebp - 0x50]
push eax
call fcn.00403508
mov dword [0x4cc5b8], eax
push 0x47322c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00403508
mov dword [0x4cc5bc], eax
push 0x4732c0
mov eax, dword [ebp - 0x50]
push eax
call fcn.00403508
mov dword [0x4cc5c0], eax
push 0x47331c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00403508
mov dword [0x4cc5c4], eax
push 0x473368
mov eax, dword [ebp - 0x50]
push eax
call fcn.00403508
mov dword [0x4cc5c8], eax
push 0x4733b0
mov eax, dword [ebp - 0x50]
push eax
call fcn.00403508
mov dword [0x4cc5cc], eax
push 0x4733f8
mov eax, dword [ebp - 0x50]
push eax
call fcn.00403508
mov dword [0x4cc5d0], eax
push 0x473444
mov eax, dword [ebp - 0x50]
push eax
call fcn.00403508
lea edx, [ebp - 0x8c]
call fcn.00413a04
mov byte [ebp - 0x49], 1
jmp 0x4724c6
cmp dword [ebp - 0x84], 0
je 0x4724a1
cmp byte [ebp - 0x85], 0
je 0x4724a1
cmp dword [ebp - 0x78], 4
jne 0x4724a1
cmp byte [ebp - 0x49], 0
je 0x472416
mov byte [ebp - 0x49], 0
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x84]
call fcn.00413a04
jmp 0x4723f9
cmp word [ebp - 0xae], 0xc7
jne 0x4723d1
cmp byte [ebp - 0xac], 0x40
jne 0x4723d1
mov eax, dword [ebp - 0x90]
sub eax, 5
cmp byte [eax], 4
jne 0x4723d1
mov eax, dword [ebp - 0x90]
sub eax, 4
mov eax, dword [eax]
mov dword [0x4cc5e8], eax
jmp 0x4724a1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x90]
call fcn.00413a04
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 0x4724a1
cmp word [ebp - 0xae], 0xc3
jne 0x47239a
jmp 0x4724a1
mov eax, dword [ebp - 0x84]
mov dword [0x4cc5e0], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x4cc5e0]
call fcn.00413a04
jmp 0x47248b
cmp dword [ebp - 0x84], 0
je 0x472466
cmp word [ebp - 0x8a], 0xe8
jne 0x472466
cmp byte [ebp - 0x85], 0
je 0x472466
cmp dword [ebp - 0x78], 4
jne 0x472466
mov eax, dword [ebp - 0x84]
mov dword [0x4cc5e4], eax
jmp 0x4724e9
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413a04
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 0x4724e9
cmp word [ebp - 0x8a], 0xc3
jne 0x472433
jmp 0x4724e9
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413a04
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 0x4724e9
cmp word [ebp - 0x8a], 0xc3
jne 0x472355
jmp 0x4724e9
xor ebx, ebx
xor eax, eax
mov dword [0x4cc5b0], eax
test bl, bl
je 0x472580
cmp dword [0x4cc598], 0
jne 0x47251e
test edi, edi
je 0x47251e
push 0x4734cc
push edi
call fcn.00403508
mov dword [0x4cc598], eax
push 0x473548
push edi
call fcn.00403508
mov dword [0x4cc59c], eax
cmp dword [0x4cc5a0], 0
jne 0x472553
cmp dword [ebp - 0x54], 0
je 0x472553
push 0x4735d4
mov eax, dword [ebp - 0x54]
push eax
call fcn.00403508
mov dword [0x4cc5a0], eax
push 0x473648
mov eax, dword [ebp - 0x54]
push eax
call fcn.00403508
mov dword [0x4cc5a4], eax
cmp dword [0x4cc5a8], 0
jne 0x472580
test esi, esi
je 0x472580
push 0x4736c0
push esi
call fcn.00403508
mov dword [0x4cc5a8], eax
push 0x47373c
push esi
call fcn.00403508
mov dword [0x4cc5ac], eax
mov eax, dword [sym.imp.rtl250.bpl__System_ExceptObjProc]
mov dword [0x4ccf80], eax
cmp dword [0x4cc5e8], 0
je 0x4725a2
mov edx, 0x46eeec
mov eax, dword [0x4cc5e8]
call fcn.0046721c
cmp dword [0x4cc598], 0
je 0x4725ba
mov edx, 0x46e510
mov eax, dword [0x4cc598]
call fcn.0046721c
cmp dword [0x4cc59c], 0
je 0x4725d2
mov edx, 0x46e4e8
mov eax, dword [0x4cc59c]
call fcn.0046721c
cmp dword [0x4cc5a0], 0
je 0x4725ea
mov edx, 0x46e510
mov eax, dword [0x4cc5a0]
call fcn.0046721c
cmp dword [0x4cc5a4], 0
je 0x472602
mov edx, 0x46e4e8
mov eax, dword [0x4cc5a4]
call fcn.0046721c
cmp dword [0x4cc5a8], 0
je 0x47261a
mov edx, 0x46e510
mov eax, dword [0x4cc5a8]
call fcn.0046721c
cmp dword [0x4cc5ac], 0
je 0x472632
mov edx, 0x46e4e8
mov eax, dword [0x4cc5ac]
call fcn.0046721c
cmp dword [0x4cc5b0], 0
je 0x47264a
mov edx, 0x46e4bc
mov eax, dword [0x4cc5b0]
call fcn.0046721c
cmp dword [0x4cc5d4], 0
je 0x472662
mov edx, 0x46e554
mov eax, dword [0x4cc5d4]
call fcn.0046721c
cmp dword [0x4cc5d8], 0
je 0x47267a
mov edx, 0x46e57c
mov eax, dword [0x4cc5d8]
call fcn.0046721c
cmp dword [0x4cc5dc], 0
je 0x4726a4
mov byte [0x4cc588], 1
mov eax, 0x18
call sub.rtl250.bpl__System__GetMem_qqri
mov dword [0x4ccf94], eax
mov eax, dword [0x4ccf94]
push eax
call sub.kernel32.dll_InitializeCriticalSection
cmp dword [0x4cc5b4], 0
je 0x47277c
cmp dword [0x4cc5b8], 0
je 0x47277c
lea edx, [ebp - 0x48]
mov eax, dword [0x4cc5b4]
call fcn.00414d04
mov eax, dword [ebp - 0x28]
call sub.rtl250.bpl__System__DynArrayLength_qqrpxv
dec eax
jne 0x4726e1
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x4cc5b4], eax
lea edx, [ebp - 0x48]
mov eax, dword [0x4cc5b8]
call fcn.00414d04
mov eax, dword [ebp - 0x28]
call sub.rtl250.bpl__System__DynArrayLength_qqrpxv
dec eax
jne 0x472704
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x4cc5b8], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x4cc5b4]
call fcn.00413a04
jmp 0x47276a
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x472749
cmp esi, dword [0x4cc5b8]
jne 0x472749
cmp dword [ebp - 0x78], 4
jne 0x47277c
cmp byte [ebp - 0x85], 0
je 0x47277c
mov edx, 0x46e76c
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00467274
jmp 0x47277c
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413a04
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 0x472716
cmp dword [0x4cc5d0], 0
je 0x472812
mov esi, sub.rtl250.bpl__System_AcquireExceptionObject_qqrv
cmp word [esi], 0x25ff
jne 0x47279c
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
lea edx, [ebp - 0x8c]
mov eax, dword [0x4cc5d0]
call fcn.00413a04
jmp 0x472800
mov edi, dword [ebp - 0x84]
test edi, edi
je 0x4727dd
cmp esi, edi
jne 0x4727dd
cmp dword [ebp - 0x78], 4
jne 0x472812
cmp byte [ebp - 0x85], 0
je 0x472812
mov edx, 0x46e62c
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00467274
jmp 0x472812
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413a04
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 0x4727ae
call fcn.0047125c
lea edx, [ebp - 0x8c]
call fcn.00413a04
mov byte [ebp - 0x49], 0
jmp 0x47287d
cmp byte [ebp - 0x85], 0
je 0x47285c
cmp dword [ebp - 0x78], 4
jne 0x47285c
cmp dword [ebp - 0x84], 0
je 0x47285c
cmp byte [ebp - 0x49], 0
je 0x472858
mov edx, 0x46e688
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00467274
jmp 0x47288f
mov byte [ebp - 0x49], 1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413a04
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 0x472828
call fcn.0047125c
lea edx, [ebp - 0x8c]
call fcn.00413a04
jmp 0x4728f5
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x4728d4
cmp esi, dword [0x4cc5e4]
jne 0x4728d4
cmp dword [ebp - 0x78], 4
jne 0x472907
cmp byte [ebp - 0x85], 0
je 0x472907
mov edx, 0x46e850
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00467274
jmp 0x472907
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413a04
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 0x4728a1
mov esi, dword [0x4cc5e0]
test esi, esi
je 0x47298b
cmp dword [0x4cc5e4], 0
je 0x47298b
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00413a04
jmp 0x472979
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x4cc5e4]
jne 0x472958
cmp dword [ebp - 0x78], 4
jne 0x47298b
cmp byte [ebp - 0x85], 0
je 0x47298b
mov edx, 0x46e858
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00467274
jmp 0x47298b
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413a04
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 0x472929
mov esi, dword [0x4cc5e4]
test esi, esi
je 0x472a06
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00413a04
jmp 0x4729f4
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x4cc5e4]
jne 0x4729d3
cmp dword [ebp - 0x78], 4
jne 0x472a06
cmp byte [ebp - 0x85], 0
je 0x472a06
mov edx, 0x46e868
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00467274
jmp 0x472a06
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413a04
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 0x4729a4
call fcn.00471298
lea edx, [ebp - 0x8c]
call fcn.00413a04
jmp 0x472a39
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413a04
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x472a7a
cmp word [ebp - 0x8a], 0x8b
jne 0x472a68
cmp byte [ebp - 0x88], 0x15
jne 0x472a68
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [sym.imp.rtl250.bpl__System_ExceptObjProc]
cmp eax, edx
je 0x472a7a
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x472a18
cmp word [ebp - 0x8a], 0x8b
jne 0x472a95
mov edx, 0x4ccf84
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.00467274
call fcn.004712ac
lea edx, [ebp - 0x8c]
call fcn.00413a04
jmp 0x472ac8
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413a04
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x472b09
cmp word [ebp - 0x8a], 0xff
jne 0x472af7
cmp byte [ebp - 0x88], 0x15
jne 0x472af7
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [sym.imp.rtl250.bpl__System_ExceptObjProc]
cmp eax, edx
je 0x472b09
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x472aa7
cmp word [ebp - 0x8a], 0xff
jne 0x472b24
mov edx, 0x4ccf88
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.00467274
mov eax, dword [sym.imp.rtl250.bpl__System_RaiseExceptionProc]
mov eax, dword [eax]
mov dword [0x4ccf8c], eax
call fcn.004712c0
lea edx, [ebp - 0x8c]
call fcn.00413a04
jmp 0x472b63
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413a04
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x472b92
cmp word [ebp - 0x8a], 0xff
jne 0x472b80
cmp byte [ebp - 0x88], 0x25
je 0x472b92
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x472b42
cmp word [ebp - 0x8a], 0xff
jne 0x472bad
mov edx, 0x4ccf90
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.00467274
call fcn.00471284
mov esi, eax
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00413a04
jmp 0x472be6
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413a04
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 0x472bf8
cmp byte [ebp - 0x87], 0
je 0x472bc3
mov eax, dword [ebp - 0x84]
mov dword [0x4cc660], eax
mov edx, 0x46ef50
mov eax, esi
call fcn.0046721c
lea edx, [ebp - 0x8c]
mov eax, sub.rtl250.bpl__System_TObject_Free_qqrv
call fcn.00413a04
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x472c2d
mov esi, eax
jmp 0x472c32
mov esi, sub.rtl250.bpl__System_TObject_Free_qqrv
call fcn.00471248
lea edx, [ebp - 0x8c]
call fcn.00413a04
jmp 0x472c90
cmp esi, dword [ebp - 0x84]
jne 0x472c6d
cmp dword [ebp - 0x78], 4
jne 0x472ca2
cmp byte [ebp - 0x85], 0
je 0x472ca2
mov edx, 0x46f22c
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00467274
jmp 0x472ca2
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413a04
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 0x472c44
call fcn.00471270
mov edx, 0x46f23c
call fcn.0046721c
cmp dword [0x4cc5bc], 0
je 0x472d04
cmp dword [0x4cc5c4], 0
je 0x472d04
mov edx, 0x46d770
mov eax, dword [0x4cc5bc]
call fcn.0046721c
mov edx, 0x406594
mov eax, dword [0x4cc5c4]
call fcn.0046721c
cmp dword [0x4cc5c0], 0
je 0x472cf9
mov edx, 0x46d7cc
mov eax, dword [0x4cc5c0]
call fcn.0046721c
mov eax, dword [0x4cd47c]
mov dword [eax], 0x46d6f8
push 0
push 0
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_FlushInstructionCache
call fcn.00465390
call fcn.004436d8
mov esi, 0x401208
cmp word [esi], 0x25ff
jne 0x472d30
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov dword [0x4ccfa0], esi
lea edx, [ebp - 0x48]
mov eax, esi
call fcn.00414d04
cmp byte [ebp - 0x48], 0
je 0x472d51
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x3c]
mov dword [0x4ccfa4], eax
push 0
call sub.kernel32.dll_GetModuleHandleW
cmp eax, dword [0x4cc60c]
je 0x472d69
cmp byte [0x4cc618], 0
je 0x472d73
mov eax, dword [0x4cce4c]
call fcn.0046fe0c
mov eax, ebx
call fcn.00436cec
mov eax, dword [0x4cce4c]
mov edx, dword [eax]
call dword [edx + 0x37c]
test al, al
je 0x472da2
mov eax, dword [0x4cce4c]
mov edx, dword [eax]
call dword [edx + 0x380]
mov dword [0x4cce90], eax
call fcn.00443d6c
call fcn.0046552c
mov eax, 0x46e17c
test eax, eax
jmp 0x472de0
lea eax, [ebp - 4]
call fcn.0043321c
cmp dword [ebp - 4], 0
je 0x472dca
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x4cc510], eax
jmp 0x472dd6
mov eax, dword [sym.imp.rtl250.bpl__System_MainThreadID]
mov eax, dword [eax]
mov dword [0x4cc510], eax
mov eax, 0x4cce4c
call sub.rtl250.bpl__System__IntfClear_qqrr44System__DelphiInterface_17System_IInterface_
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x472e34
lea eax, [ebp - 0xdc]
mov edx, 2
call sub.rtl250.bpl__System__LStrArrayClr_qqrpvi
lea eax, [ebp - 0xd4]
call sub.rtl250.bpl__System__IntfClear_qqrr44System__DelphiInterface_17System_IInterface_
lea eax, [ebp - 0x48]
mov edx, dword [0x40f7e8]
call sub.rtl250.bpl__System__FinalizeRecord_qqrpvt1
lea eax, [ebp - 8]
call sub.rtl250.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 4]
mov edx, dword [0x406180]
call sub.rtl250.bpl__System__DynArrayClear_qqrrpvpv
ret