Function at 0x470730
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 [0x40ee18]
call sub.rtl250.bpl__System__InitializeRecord_qqrpvt1
xor eax, eax
push ebp
push 0x47197d
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [0x4057b0]
call sub.rtl250.bpl__System__DynArrayClear_qqrrpvpv
lea eax, [ebp - 0x60]
push eax
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x4707c5
lea eax, [ebp - 0x68]
push eax
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x4707c5
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 [0x47a600], eax
mov dword [0x47a604], edx
push 0x47198c
mov eax, dword [0x47a5f8]
push eax
call fcn.00402b90
test eax, eax
setne byte [0x47a608]
cmp byte [0x47a608], 0
je 0x4707ec
call fcn.0047051c
call sub.kernel32.dll_GetVersion
cmp al, 6
jb 0x47080f
push 0x4719cc
push 0x4719e4
call sub.kernel32.dll_LoadLibraryA
push eax
call fcn.00402b90
mov dword [0x47a60c], eax
mov eax, dword [0x47b048]
mov dword [eax], fcn.0046fc08
mov eax, dword [0x47b07c]
mov dword [eax], 0x442cf8
mov eax, dword [0x47b15c]
mov dword [eax], 0x443308
mov eax, 0x46fd74
mov edx, dword [0x47b0ec]
mov dword [edx], eax
push 0x4719f4
push 0x471a0c
call sub.kernel32.dll_GetModuleHandleW
push eax
call fcn.00402b90
mov dword [0x47a618], eax
push 0x471a28
push 0x471a44
call sub.kernel32.dll_GetModuleHandleW
push eax
call fcn.00402b90
mov dword [0x47a61c], eax
lea edx, [ebp - 0xd4]
mov eax, dword [0x47a5f8]
call fcn.00447940
mov edx, dword [ebp - 0xd4]
mov eax, 0x47ae3c
call sub.rtl250.bpl__System__IntfCopy_qqrr44System__DelphiInterface_17System_IInterface_x44System__DelphiInterface_17System_IInterf
mov eax, dword [0x47ae3c]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x4708ef
mov eax, dword [0x47ae3c]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x4708ef
mov eax, dword [0x47ae3c]
mov edx, dword [eax]
call dword [edx + 0x378]
test al, al
je 0x4708ef
mov eax, dword [0x47a5f8]
call fcn.0046fe80
mov eax, dword [0x47ae3c]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x47a5f8]
je 0x4708ef
mov eax, dword [0x47ae3c]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.0046fe80
call fcn.0047042c
push 0x47f4a4
call sub.kernel32.dll_InitializeCriticalSection
push 0x47f48c
call sub.kernel32.dll_InitializeCriticalSection
mov eax, dword [0x47ae3c]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x471900
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xbc]
call fcn.004330bc
lea eax, [ebp - 0xdc]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.00407f08
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xd8]
mov edx, 0x471a64
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 0x470a25
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x47a614], eax
mov eax, dword [0x47a614]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.00402944
mov edx, dword [0x47a614]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.00402944
mov edx, dword [0x47a614]
mov dword [edx + 4], eax
mov eax, dword [0x47a614]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x47a614]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call fcn.00431e2c
cmp dword [ebp - 4], 0
je 0x470a17
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x47a4fc], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x471a88
xor edx, edx
call fcn.00433a34
jmp 0x470a6f
mov eax, dword [sym.imp.rtl250.bpl__System_MainThreadID]
mov eax, dword [eax]
mov dword [0x47a4fc], eax
jmp 0x470a6f
test ebx, ebx
je 0x470a55
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x47a614], eax
push ebx
call sub.kernel32.dll_CloseHandle
mov eax, dword [0x47a614]
add eax, 0xc
push eax
call fcn.00402aa0
jmp 0x470a6f
push 0
push 0x471aa0
push 0x471aac
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess
cmp dword [0x47a614], 0
jne 0x470a92
push 0
push 0x471aa0
push 0x471ad4
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess
cmp dword [0x47a4fc], 0
jne 0x470b0c
push 0xffffffffffffffff
mov eax, dword [0x47a614]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor edx, edx
push ebp
push 0x470af0
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x47a614]
mov eax, dword [eax + 8]
test eax, eax
je 0x470ad4
mov edx, dword [eax]
mov dword [0x47a4fc], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x470ac5
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x470af7
mov eax, dword [0x47a614]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReleaseMutex
ret
push 0
call sub.kernel32.dll_GetModuleHandleW
cmp eax, dword [0x47a5f8]
je 0x470b28
cmp byte [0x47a608], 0
jne 0x470b28
xor ebx, ebx
jmp 0x470b2a
mov bl, 1
mov eax, dword [0x47ae3c]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x4718f7
mov eax, 0x47a584
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a588
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a58c
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a590
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a594
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a598
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a59c
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5a0
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5a4
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5a8
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5ac
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5b0
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5bc
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5c0
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5c4
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5c8
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5cc
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5d0
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5d4
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5d8
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5dc
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5e0
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5e4
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5e8
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5ec
mov edx, dword [0x47a5f8]
call fcn.0046fd90
mov eax, 0x47a5f4
mov edx, dword [0x47a5f8]
call fcn.0046fd90
cmp dword [0x47a5cc], 0
je 0x470d07
cmp dword [0x47a584], 0
je 0x470d07
cmp dword [0x47a58c], 0
je 0x470d07
cmp dword [0x47a594], 0
jne 0x4710d0
test bl, bl
je 0x4710d0
mov esi, 0x401450
cmp word [esi], 0x25ff
jne 0x470d44
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov edi, dword [0x47b084]
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 [0x47a5f8]
jne 0x470d44
xor eax, eax
mov dword [ebp - 0x50], eax
mov esi, 0x140
push 0x471b10
mov ecx, esi
mov edx, 0x471b5c
mov eax, dword [ebp - 0x50]
call fcn.004700f0
mov edi, eax
cmp dword [ebp - 0x50], 0
jne 0x470d7b
push 0x471b6c
mov ecx, esi
mov edx, 0x471b90
mov eax, edi
call fcn.004700f0
mov dword [ebp - 0x50], eax
push 0x471ba0
mov ecx, esi
mov edx, 0x471be8
xor eax, eax
call fcn.004700f0
mov dword [ebp - 0x54], eax
push 0x471bfc
mov ecx, esi
mov edx, 0x471c48
xor eax, eax
call fcn.004700f0
mov esi, eax
cmp dword [0x47a5cc], 0
jne 0x471039
cmp dword [ebp - 0x50], 0
je 0x471039
push 0x471c4c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00402b90
mov dword [0x47a59c], eax
cmp dword [0x47a59c], 0
je 0x471030
mov eax, dword [0x47a59c]
cmp byte [eax], 0xe9
je 0x471030
push 0x471cb8
mov eax, dword [ebp - 0x50]
push eax
call fcn.00402b90
mov dword [0x47a5a0], eax
push 0x471d28
mov eax, dword [ebp - 0x50]
push eax
call fcn.00402b90
mov dword [0x47a5a4], eax
push 0x471d7c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00402b90
mov dword [0x47a5a8], eax
push 0x471e10
mov eax, dword [ebp - 0x50]
push eax
call fcn.00402b90
mov dword [0x47a5ac], eax
push 0x471e6c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00402b90
mov dword [0x47a5b0], eax
push 0x471eb8
mov eax, dword [ebp - 0x50]
push eax
call fcn.00402b90
mov dword [0x47a5b4], eax
push 0x471f00
mov eax, dword [ebp - 0x50]
push eax
call fcn.00402b90
mov dword [0x47a5b8], eax
push 0x471f48
mov eax, dword [ebp - 0x50]
push eax
call fcn.00402b90
mov dword [0x47a5bc], eax
push 0x471f94
mov eax, dword [ebp - 0x50]
push eax
call fcn.00402b90
lea edx, [ebp - 0x8c]
call fcn.00413034
mov byte [ebp - 0x49], 1
jmp 0x471016
cmp dword [ebp - 0x84], 0
je 0x470ff1
cmp byte [ebp - 0x85], 0
je 0x470ff1
cmp dword [ebp - 0x78], 4
jne 0x470ff1
cmp byte [ebp - 0x49], 0
je 0x470f66
mov byte [ebp - 0x49], 0
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x84]
call fcn.00413034
jmp 0x470f49
cmp word [ebp - 0xae], 0xc7
jne 0x470f21
cmp byte [ebp - 0xac], 0x40
jne 0x470f21
mov eax, dword [ebp - 0x90]
sub eax, 5
cmp byte [eax], 4
jne 0x470f21
mov eax, dword [ebp - 0x90]
sub eax, 4
mov eax, dword [eax]
mov dword [0x47a5d4], eax
jmp 0x470ff1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x90]
call fcn.00413034
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 0x470ff1
cmp word [ebp - 0xae], 0xc3
jne 0x470eea
jmp 0x470ff1
mov eax, dword [ebp - 0x84]
mov dword [0x47a5cc], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x47a5cc]
call fcn.00413034
jmp 0x470fdb
cmp dword [ebp - 0x84], 0
je 0x470fb6
cmp word [ebp - 0x8a], 0xe8
jne 0x470fb6
cmp byte [ebp - 0x85], 0
je 0x470fb6
cmp dword [ebp - 0x78], 4
jne 0x470fb6
mov eax, dword [ebp - 0x84]
mov dword [0x47a5d0], eax
jmp 0x471039
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413034
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 0x471039
cmp word [ebp - 0x8a], 0xc3
jne 0x470f83
jmp 0x471039
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413034
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 0x471039
cmp word [ebp - 0x8a], 0xc3
jne 0x470ea5
jmp 0x471039
xor ebx, ebx
xor eax, eax
mov dword [0x47a59c], eax
test bl, bl
je 0x4710d0
cmp dword [0x47a584], 0
jne 0x47106e
test edi, edi
je 0x47106e
push 0x47201c
push edi
call fcn.00402b90
mov dword [0x47a584], eax
push 0x472098
push edi
call fcn.00402b90
mov dword [0x47a588], eax
cmp dword [0x47a58c], 0
jne 0x4710a3
cmp dword [ebp - 0x54], 0
je 0x4710a3
push 0x472124
mov eax, dword [ebp - 0x54]
push eax
call fcn.00402b90
mov dword [0x47a58c], eax
push 0x472198
mov eax, dword [ebp - 0x54]
push eax
call fcn.00402b90
mov dword [0x47a590], eax
cmp dword [0x47a594], 0
jne 0x4710d0
test esi, esi
je 0x4710d0
push 0x472210
push esi
call fcn.00402b90
mov dword [0x47a594], eax
push 0x47228c
push esi
call fcn.00402b90
mov dword [0x47a598], eax
mov eax, dword [sym.imp.rtl250.bpl__System_ExceptObjProc]
mov dword [0x47af70], eax
cmp dword [0x47a5d4], 0
je 0x4710f2
mov edx, 0x46da3c
mov eax, dword [0x47a5d4]
call fcn.00465d6c
cmp dword [0x47a584], 0
je 0x47110a
mov edx, 0x46d060
mov eax, dword [0x47a584]
call fcn.00465d6c
cmp dword [0x47a588], 0
je 0x471122
mov edx, 0x46d038
mov eax, dword [0x47a588]
call fcn.00465d6c
cmp dword [0x47a58c], 0
je 0x47113a
mov edx, 0x46d060
mov eax, dword [0x47a58c]
call fcn.00465d6c
cmp dword [0x47a590], 0
je 0x471152
mov edx, 0x46d038
mov eax, dword [0x47a590]
call fcn.00465d6c
cmp dword [0x47a594], 0
je 0x47116a
mov edx, 0x46d060
mov eax, dword [0x47a594]
call fcn.00465d6c
cmp dword [0x47a598], 0
je 0x471182
mov edx, 0x46d038
mov eax, dword [0x47a598]
call fcn.00465d6c
cmp dword [0x47a59c], 0
je 0x47119a
mov edx, 0x46d00c
mov eax, dword [0x47a59c]
call fcn.00465d6c
cmp dword [0x47a5c0], 0
je 0x4711b2
mov edx, 0x46d0a4
mov eax, dword [0x47a5c0]
call fcn.00465d6c
cmp dword [0x47a5c4], 0
je 0x4711ca
mov edx, 0x46d0cc
mov eax, dword [0x47a5c4]
call fcn.00465d6c
cmp dword [0x47a5c8], 0
je 0x4711f4
mov byte [0x47a574], 1
mov eax, 0x18
call sub.rtl250.bpl__System__GetMem_qqri
mov dword [0x47af84], eax
mov eax, dword [0x47af84]
push eax
call sub.kernel32.dll_InitializeCriticalSection
cmp dword [0x47a5a0], 0
je 0x4712cc
cmp dword [0x47a5a4], 0
je 0x4712cc
lea edx, [ebp - 0x48]
mov eax, dword [0x47a5a0]
call fcn.00414334
mov eax, dword [ebp - 0x28]
call sub.rtl250.bpl__System__DynArrayLength_qqrpxv
dec eax
jne 0x471231
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x47a5a0], eax
lea edx, [ebp - 0x48]
mov eax, dword [0x47a5a4]
call fcn.00414334
mov eax, dword [ebp - 0x28]
call sub.rtl250.bpl__System__DynArrayLength_qqrpxv
dec eax
jne 0x471254
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x47a5a4], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x47a5a0]
call fcn.00413034
jmp 0x4712ba
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x471299
cmp esi, dword [0x47a5a4]
jne 0x471299
cmp dword [ebp - 0x78], 4
jne 0x4712cc
cmp byte [ebp - 0x85], 0
je 0x4712cc
mov edx, 0x46d2bc
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00465dc4
jmp 0x4712cc
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413034
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 0x471266
cmp dword [0x47a5bc], 0
je 0x471362
mov esi, sub.rtl250.bpl__System_AcquireExceptionObject_qqrv
cmp word [esi], 0x25ff
jne 0x4712ec
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
lea edx, [ebp - 0x8c]
mov eax, dword [0x47a5bc]
call fcn.00413034
jmp 0x471350
mov edi, dword [ebp - 0x84]
test edi, edi
je 0x47132d
cmp esi, edi
jne 0x47132d
cmp dword [ebp - 0x78], 4
jne 0x471362
cmp byte [ebp - 0x85], 0
je 0x471362
mov edx, 0x46d17c
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00465dc4
jmp 0x471362
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413034
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 0x4712fe
call fcn.0046fdac
lea edx, [ebp - 0x8c]
call fcn.00413034
mov byte [ebp - 0x49], 0
jmp 0x4713cd
cmp byte [ebp - 0x85], 0
je 0x4713ac
cmp dword [ebp - 0x78], 4
jne 0x4713ac
cmp dword [ebp - 0x84], 0
je 0x4713ac
cmp byte [ebp - 0x49], 0
je 0x4713a8
mov edx, 0x46d1d8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00465dc4
jmp 0x4713df
mov byte [ebp - 0x49], 1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413034
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 0x471378
call fcn.0046fdac
lea edx, [ebp - 0x8c]
call fcn.00413034
jmp 0x471445
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x471424
cmp esi, dword [0x47a5d0]
jne 0x471424
cmp dword [ebp - 0x78], 4
jne 0x471457
cmp byte [ebp - 0x85], 0
je 0x471457
mov edx, 0x46d3a0
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00465dc4
jmp 0x471457
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413034
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 0x4713f1
mov esi, dword [0x47a5cc]
test esi, esi
je 0x4714db
cmp dword [0x47a5d0], 0
je 0x4714db
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00413034
jmp 0x4714c9
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x47a5d0]
jne 0x4714a8
cmp dword [ebp - 0x78], 4
jne 0x4714db
cmp byte [ebp - 0x85], 0
je 0x4714db
mov edx, 0x46d3a8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00465dc4
jmp 0x4714db
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413034
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 0x471479
mov esi, dword [0x47a5d0]
test esi, esi
je 0x471556
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00413034
jmp 0x471544
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x47a5d0]
jne 0x471523
cmp dword [ebp - 0x78], 4
jne 0x471556
cmp byte [ebp - 0x85], 0
je 0x471556
mov edx, 0x46d3b8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00465dc4
jmp 0x471556
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413034
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 0x4714f4
call fcn.0046fde8
lea edx, [ebp - 0x8c]
call fcn.00413034
jmp 0x471589
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413034
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x4715ca
cmp word [ebp - 0x8a], 0x8b
jne 0x4715b8
cmp byte [ebp - 0x88], 0x15
jne 0x4715b8
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 0x4715ca
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x471568
cmp word [ebp - 0x8a], 0x8b
jne 0x4715e5
mov edx, 0x47af74
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.00465dc4
call fcn.0046fdfc
lea edx, [ebp - 0x8c]
call fcn.00413034
jmp 0x471618
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413034
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x471659
cmp word [ebp - 0x8a], 0xff
jne 0x471647
cmp byte [ebp - 0x88], 0x15
jne 0x471647
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 0x471659
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4715f7
cmp word [ebp - 0x8a], 0xff
jne 0x471674
mov edx, 0x47af78
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.00465dc4
mov eax, dword [sym.imp.rtl250.bpl__System_RaiseExceptionProc]
mov eax, dword [eax]
mov dword [0x47af7c], eax
call fcn.0046fe10
lea edx, [ebp - 0x8c]
call fcn.00413034
jmp 0x4716b3
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413034
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x4716e2
cmp word [ebp - 0x8a], 0xff
jne 0x4716d0
cmp byte [ebp - 0x88], 0x25
je 0x4716e2
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x471692
cmp word [ebp - 0x8a], 0xff
jne 0x4716fd
mov edx, 0x47af80
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.00465dc4
call fcn.0046fdd4
mov esi, eax
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00413034
jmp 0x471736
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413034
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 0x471748
cmp byte [ebp - 0x87], 0
je 0x471713
mov eax, dword [ebp - 0x84]
mov dword [0x47a650], eax
mov edx, 0x46daa0
mov eax, esi
call fcn.00465d6c
lea edx, [ebp - 0x8c]
mov eax, sub.rtl250.bpl__System_TObject_Free_qqrv
call fcn.00413034
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x47177d
mov esi, eax
jmp 0x471782
mov esi, sub.rtl250.bpl__System_TObject_Free_qqrv
call fcn.0046fd98
lea edx, [ebp - 0x8c]
call fcn.00413034
jmp 0x4717e0
cmp esi, dword [ebp - 0x84]
jne 0x4717bd
cmp dword [ebp - 0x78], 4
jne 0x4717f2
cmp byte [ebp - 0x85], 0
je 0x4717f2
mov edx, 0x46dd7c
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.00465dc4
jmp 0x4717f2
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00413034
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 0x471794
call fcn.0046fdc0
mov edx, 0x46dd8c
call fcn.00465d6c
cmp dword [0x47a5a8], 0
je 0x471854
cmp dword [0x47a5b0], 0
je 0x471854
mov edx, 0x46c2c0
mov eax, dword [0x47a5a8]
call fcn.00465d6c
mov edx, 0x405bc4
mov eax, dword [0x47a5b0]
call fcn.00465d6c
cmp dword [0x47a5ac], 0
je 0x471849
mov edx, 0x46c31c
mov eax, dword [0x47a5ac]
call fcn.00465d6c
mov eax, dword [0x47b104]
mov dword [eax], 0x46c248
push 0
push 0
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_FlushInstructionCache
call fcn.00463fa0
call fcn.004422e8
mov esi, 0x4011c0
cmp word [esi], 0x25ff
jne 0x471880
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov dword [0x47af90], esi
lea edx, [ebp - 0x48]
mov eax, esi
call fcn.00414334
cmp byte [ebp - 0x48], 0
je 0x4718a1
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x3c]
mov dword [0x47af94], eax
push 0
call sub.kernel32.dll_GetModuleHandleW
cmp eax, dword [0x47a5f8]
je 0x4718b9
cmp byte [0x47a608], 0
je 0x4718c3
mov eax, dword [0x47ae3c]
call fcn.0046e95c
mov eax, ebx
call fcn.004358fc
mov eax, dword [0x47ae3c]
mov edx, dword [eax]
call dword [edx + 0x37c]
test al, al
je 0x4718f2
mov eax, dword [0x47ae3c]
mov edx, dword [eax]
call dword [edx + 0x380]
mov dword [0x47ae80], eax
call fcn.0044297c
call fcn.0046413c
mov eax, 0x46cccc
test eax, eax
jmp 0x471930
lea eax, [ebp - 4]
call fcn.00431e2c
cmp dword [ebp - 4], 0
je 0x47191a
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x47a4fc], eax
jmp 0x471926
mov eax, dword [sym.imp.rtl250.bpl__System_MainThreadID]
mov eax, dword [eax]
mov dword [0x47a4fc], eax
mov eax, 0x47ae3c
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 0x471984
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 [0x40ee18]
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 [0x4057b0]
call sub.rtl250.bpl__System__DynArrayClear_qqrrpvpv
ret