Function at 0x42c160
Capabilities:
Create a process with modified i/o handles and window
Create process on windows
Terminate process

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff04
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0xf4]
mov edx, dword [0x4235a8]
call sub.rtl60.bpl__System__InitializeRecord_qqrpvt1
xor eax, eax
push ebp
push 0x42c548
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.kernel32.dll_SetLastError
mov byte [ebp - 1], 0
mov dl, 1
mov eax, dword [sym.imp.rtl60.bpl__Classes_TStringList_]
call sub.rtl60.bpl__System_TObject__bctr_qqrv
mov dword [ebp - 0x28], eax
xor eax, eax
push ebp
push 0x42c4f8
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x42c4be
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0xf8]
mov edx, dword [ebp + 8]
call sub.rtl60.bpl__System__LStrFromPChar_qqrr17System_AnsiStringpc
mov edx, dword [ebp - 0xf8]
lea eax, [ebp - 0x1c]
xor ecx, ecx
call sub.rtl60.bpl__System__LStrCat3_qqrv
mov eax, dword [ebp + 8]
call sub.rtl60.bpl__System__FreeMem_qqrpv
mov eax, dword [0x434a60]
mov eax, dword [eax]
call sub.rtl60.bpl__Sysutils_FileExists_qqrx17System_AnsiString
test al, al
jne 0x42c237
mov eax, dword [0x434dfc]
mov dword [eax], 0xaae61
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
call sub.rtl60.bpl__System__TryFinallyExit_qqrv
jmp 0x42c4ff
lea ecx, [ebp - 0x20]
mov edx, dword [0x434b04]
mov edx, dword [edx]
mov eax, dword [ebp - 0x1c]
call fcn.0042376c
lea ecx, [ebp - 0x24]
mov edx, dword [0x434f68]
mov edx, dword [edx]
mov eax, dword [ebp - 0x1c]
call fcn.0042376c
lea edx, [ebp - 0xf4]
mov eax, dword [ebp - 0x1c]
call fcn.004257fc
mov byte [ebp - 0x39], 0
mov eax, dword [ebp - 0xd8]
mov edx, dword [0x434e28]
mov edx, dword [edx]
call sub.rtl60.bpl__System__LStrCmp_qqrv
jne 0x42c361
mov edx, dword [ebp - 0xcc]
mov eax, 0x42c564
call sub.rtl60.bpl__System__LStrPos_qqrv
test eax, eax
jle 0x42c361
mov byte [ebp - 0x39], 1
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 0xcc]
call fcn.00425e5c
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0xcc]
call fcn.00425f2c
lea edx, [ebp - 0xfc]
mov eax, dword [ebp - 0x44]
call sub.rtl60.bpl__Sysutils_LowerCase_qqrx17System_AnsiString
mov edx, dword [ebp - 0xfc]
lea eax, [ebp - 0x44]
call sub.rtl60.bpl__System__LStrLAsg_qqrpvpxv
mov edx, dword [ebp - 0x44]
mov eax, 0x42c570
call sub.rtl60.bpl__System__LStrPos_qqrv
test eax, eax
jg 0x42c2fe
mov edx, dword [ebp - 0x44]
mov eax, 0x42c580
call sub.rtl60.bpl__System__LStrPos_qqrv
test eax, eax
jle 0x42c337
lea ecx, [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
call fcn.00428ca8
mov eax, dword [ebp - 0x48]
mov edx, dword [0x435138]
mov edx, dword [edx]
call sub.rtl60.bpl__System__LStrCmp_qqrv
jne 0x42c32c
lea ecx, [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
call fcn.00428ca8
lea eax, [ebp - 0x44]
mov edx, dword [ebp - 0x48]
call sub.rtl60.bpl__System__LStrLAsg_qqrpvpxv
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
call fcn.0042b77c
mov eax, dword [0x435078]
push dword [eax]
push dword [ebp - 0x40]
push 0x42c590
lea eax, [ebp - 0xcc]
mov edx, 3
call sub.rtl60.bpl__System__LStrCatN_qqrv
lea eax, [ebp - 0xf4]
mov edx, dword [ebp - 0x28]
call fcn.0042bd4c
xor eax, eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x5c]
mov edx, 0x10
call fcn.00401480
lea eax, [ebp - 0xa0]
mov edx, 0x44
call fcn.00401480
mov dword [ebp - 0xa0], 0x44
mov word [ebp - 0x70], 5
mov dword [ebp - 0x74], 0x101
lea eax, [ebp - 0x18]
mov edx, dword [0x434a60]
mov edx, dword [edx]
call sub.rtl60.bpl__System__LStrLAsg_qqrpvpxv
call sub.rtl60.bpl__Sysutils_Now_qqrv
fstp qword [ebp - 0x30]
wait
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0xa0]
push eax
mov eax, dword [0x434ea8]
mov eax, dword [eax]
call sub.rtl60.bpl__System__LStrToPChar_qqrx17System_AnsiString
push eax
push 0
push 0x30
push 0
push 0
push 0
mov eax, dword [ebp - 0x18]
call sub.rtl60.bpl__System__LStrToPChar_qqrx17System_AnsiString
push eax
push 0
call sub.kernel32.dll_CreateProcessA
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x42c407
mov eax, dword [0x434dfc]
mov dword [eax], 0xaae62
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xc], eax
push 0x2bf20
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_WaitForSingleObject
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x102
jne 0x42c434
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_TerminateProcess
mov dword [ebp - 0x10], 0x98967f
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_GetExitCodeProcess
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
call sub.rtl60.bpl__Sysutils_Now_qqrv
fstp qword [ebp - 0x38]
wait
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CloseHandle
cmp byte [ebp - 0x39], 0
je 0x42c46f
mov eax, dword [ebp - 0x40]
call fcn.0042b9e8
cmp dword [ebp - 0x10], 0x22b8
jne 0x42c48d
push 1
mov cl, 1
mov dl, 1
mov eax, dword [ebp - 0xf0]
call fcn.0042a814
mov byte [ebp - 1], 1
cmp dword [ebp - 0x10], 0x2328
jb 0x42c4b4
cmp dword [ebp - 0x10], 0x270f
jae 0x42c4b4
push 0
mov cl, 1
mov dl, 1
mov eax, dword [ebp - 0xf0]
call fcn.0042a814
mov byte [ebp - 1], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x42c4e2
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x42c4ff
mov eax, dword [ebp - 0x28]
call sub.rtl60.bpl__System_TObject_Free_qqrv
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x42c54f
lea eax, [ebp - 0xfc]
mov edx, 2
call sub.rtl60.bpl__System__LStrArrayClr_qqrpvi
lea eax, [ebp - 0xf4]
mov edx, dword [0x4235a8]
call sub.rtl60.bpl__System__FinalizeRecord_qqrpvt1
lea eax, [ebp - 0x48]
mov edx, 3
call sub.rtl60.bpl__System__LStrArrayClr_qqrpvi
lea eax, [ebp - 0x24]
mov edx, 4
call sub.rtl60.bpl__System__LStrArrayClr_qqrpvi
ret