Function at 0x4074d0
Capabilities:
Check for time delay via gettickcount
Create process on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff94
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov esi, edx
mov dword [ebp - 4], eax
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp - 4]
call sub.rtl120.bpl__System__UStrAddRef_qqrpv
xor eax, eax
push ebp
push 0x407694
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0xc], eax
mov byte [ebp - 0x11], 0
xor eax, eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 4]
call sub.rtl120.bpl__System__EnsureUnicodeString_qqrr20System_UnicodeString
call sub.rtl120.bpl__System__UStrLen_qqrx20System_UnicodeString
mov ebx, eax
inc ebx
mov eax, ebx
call sub.rtl120.bpl__Sysutils_StrAlloc_qqrui
mov dword [ebp - 0x10], eax
mov edx, ebx
add edx, edx
mov eax, dword [ebp - 0x10]
call fcn.00401ba0
mov ecx, ebx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
call sub.rtl120.bpl__Sysutils_StrPLCopy_qqrpbx20System_UnicodeStringui
lea eax, [ebp - 0x5c]
mov edx, 0x44
call fcn.00401ba0
lea eax, [ebp - 0x6c]
mov edx, 0x10
call fcn.00401ba0
mov dword [ebp - 0x5c], 0x44
mov dword [ebp - 0x30], 1
movzx eax, word [ebp - 8]
mov word [ebp - 0x2c], ax
xor edx, edx
push ebp
push 0x407677
push dword fs:[edx]
mov dword fs:[edx], esp
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x5c]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x10]
push eax
push 0
call sub.kernel32.dll_CreateProcessW
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
jne 0x4075b1
call sub.rtl120.bpl__System__TryFinallyExit_qqrv
jmp 0x40767e
test edi, edi
je 0x4075ba
mov eax, dword [ebp - 0x64]
mov dword [edi], eax
test esi, esi
jbe 0x40761e
cmp byte [ebp + 0x10], 0
je 0x407609
call sub.kernel32.dll_GetTickCount
mov edi, eax
push 0
mov eax, dword [ebp - 0x6c]
push eax
call sub.kernel32.dll_WaitForSingleObject
mov ebx, eax
push 0xa
call sub.kernel32.dll_Sleep
mov eax, dword [sym.imp.vcl120.bpl__Forms_Application]
mov eax, dword [eax]
call sub.vcl120.bpl__Forms_TApplication_ProcessMessages_qqrv
cmp ebx, 0xffffffff
jne 0x4075f4
mov byte [ebp - 0x11], 0
call sub.kernel32.dll_GetTickCount
sub eax, edi
cmp esi, eax
jbe 0x40761e
cmp ebx, 0x102
je 0x4075cb
jmp 0x40761e
push esi
mov eax, dword [ebp - 0x6c]
push eax
call sub.kernel32.dll_WaitForSingleObject
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x40761e
mov byte [ebp - 0x11], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40767e
cmp byte [ebp - 0x11], 0
jne 0x407639
call sub.kernel32.dll_GetLastError
mov dword [ebp - 0xc], eax
cmp dword [ebp + 8], 0
je 0x407654
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x6c]
push eax
call sub.kernel32.dll_GetExitCodeProcess
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
mov dword [eax], edx
mov eax, dword [ebp - 0x6c]
test eax, eax
je 0x407661
push eax
call sub.kernel32.dll_CloseHandle
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x40766e
push eax
call sub.kernel32.dll_CloseHandle
mov eax, dword [ebp - 0x10]
call sub.rtl120.bpl__Sysutils_StrDispose_qqrpb
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40769b
lea eax, [ebp - 4]
call sub.rtl120.bpl__System__UStrClr_qqrpv
ret