Function at 0x44f284
Capabilities:
Accept command line arguments
Create process on windows
Create process suspended
Get common file path
Read file via mapping
Resume thread
Terminate process

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffc6c
push ebx
push esi
xor edx, edx
mov dword [ebp - 0x390], edx
mov dword [ebp - 0x394], edx
mov dword [ebp - 4], edx
mov dword [ebp - 8], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x44f489
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x6c]
mov edx, 0x44
call fcn.00403694
mov dword [ebp - 0x6c], 0x44
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x44f334
test ebx, ebx
jne 0x44f2e8
call sub.kernel32.dll_GetCommandLineW
mov edx, eax
lea eax, [ebp - 4]
call sub.rtl160.bpl__System__UStrFromPWChar_qqrr20System_UnicodeStringpb
jmp 0x44f2f2
lea eax, [ebp - 4]
mov edx, ebx
call sub.rtl160.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
lea eax, [ebp - 0x38c]
push eax
push 0x104
call sub.kernel32.dll_GetCurrentDirectoryW
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x38c]
push eax
push 0
push 4
push 0
push 0
push 0
mov eax, dword [ebp - 4]
call sub.rtl160.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
push 0
call sub.kernel32.dll_CreateProcessW
cmp eax, 1
sbb eax, eax
inc eax
jmp 0x44f39d
test ebx, ebx
jne 0x44f34e
call sub.kernel32.dll_GetCommandLineA
mov edx, eax
lea eax, [ebp - 8]
mov ecx, 0
call sub.rtl160.bpl__System__LStrFromPChar_qqrr27System__AnsiStringT_us_i0__pcus
jmp 0x44f35d
lea eax, [ebp - 8]
mov edx, ebx
mov ecx, 0
call sub.rtl160.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
lea eax, [ebp - 0x181]
push eax
push 0x104
call sub.kernel32.dll_GetCurrentDirectoryA
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x181]
push eax
push 0
push 4
push 0
push 0
push 0
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
push 0
call sub.kernel32.dll_CreateProcessA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x44f44e
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x14]
call fcn.00432aa8
lea eax, [ebp - 0x394]
push eax
mov cl, 0x30
mov edx, 1
mov eax, dword [ebp - 0x74]
call fcn.0040ba28
mov ecx, dword [ebp - 0x394]
lea eax, [ebp - 0x390]
mov edx, 0x44f4a4
call sub.rtl160.bpl__System__LStrCat3_qqrr27System__AnsiStringT_us_i0__x27System__AnsiStringT_us_i0__t2
mov eax, dword [ebp - 0x390]
call sub.rtl160.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
push 0x58
push 0
push 4
lea eax, [ebp - 0x14]
push eax
push 0xffffffffffffffff
call sub.kernel32.dll_CreateFileMappingA
mov esi, eax
push 0
push 0
push 0
push 0xf001f
push esi
call sub.kernel32.dll_MapViewOfFile
mov ebx, eax
test ebx, ebx
je 0x44f445
call sub.kernel32.dll_GetCurrentProcessId
mov dword [ebx], eax
push 2
push 0
push 0
lea eax, [ebx + 4]
push eax
mov eax, dword [ebp - 0x7c]
push eax
push esi
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_DuplicateHandle
lea edx, [ebx + 8]
mov eax, 0x5355d0
mov ecx, 0x50
call sub.rtl160.bpl__System_Move_qqrpxvpvi
mov eax, dword [ebp - 0x78]
push eax
call sub.kernel32.dll_ResumeThread
push 2
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_TerminateProcess
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x44f490
lea eax, [ebp - 0x394]
mov edx, 2
call sub.rtl160.bpl__System__LStrArrayClr_qqrpvi
lea eax, [ebp - 8]
call sub.rtl160.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 4]
call sub.rtl160.bpl__System__UStrClr_qqrpv
ret