Function at 0x1000c4b0
Capabilities:
Create a process with modified i/o handles and window
Create pipe
Create process on windows
Create thread
Create two anonymous pipes
Get common file path

Disassembly:
mov r11, rsp
sub rsp, 0x238
mov rax, qword [0x1001f320]
xor rax, rsp
mov qword [rsp + 0x220], rax
mov qword [r11 + 0x10], rbx
mov rbx, rcx
mov qword [r11 + 0x18], rsi
lea rcx, [rsp + 0x50]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x58]
xor esi, esi
xor r9d, r9d
mov dword [rsp + 0x70], 0x18
mov dword [rsp + 0x80], 1
mov qword [rsp + 0x78], rsi
call qword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
je 0x1000435f
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x60]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
jne 0x10004366
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x1000452b
xor edx, edx
lea rcx, [rsp + 0xa0]
mov qword [rsp + 0x258], rdi
lea r8d, [rdx + 0x68]
call sub.MSVCR80.dll_memset
mov rax, qword [rsp + 0x60]
lea rcx, [rsp + 0x110]
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0x58]
mov edx, 0x104
mov dword [rsp + 0xa0], 0x68
mov dword [rsp + 0xdc], 0x101
mov word [rsp + 0xe0], si
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rax
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
xor eax, eax
lea rdi, [rsp + 0x110]
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rax, qword [0x10016570]
lea rcx, [rsp + 0x110]
mov qword [rdi - 1], rax
movzx eax, byte [0x10016578]
xor r9d, r9d
mov byte [rdi + 7], al
lea rax, [rsp + 0x88]
xor r8d, r8d
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0xa0]
xor edx, edx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], 1
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
mov rdi, qword [rsp + 0x258]
jne 0x10004481
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x1000452b
mov ecx, 0x38
call sub.MSVCR80.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
xor ecx, ecx
lea rdx, [rsp + 0x88]
mov qword [0x100355f0], rax
mov qword [rax], rcx
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rcx
mov qword [rax + 0x20], rcx
mov qword [rax + 0x28], rcx
mov qword [rax + 0x30], rcx
mov rax, qword [rdx]
mov rcx, qword [0x100355f0]
mov r8, rbx
mov qword [rcx + 0x20], rax
mov rax, qword [rdx + 8]
mov qword [rcx + 0x28], rax
mov rax, qword [rdx + 0x10]
xor edx, edx
mov qword [rcx + 0x30], rax
mov rax, qword [0x100355f0]
mov rcx, qword [rsp + 0x58]
mov qword [rax + 0x18], rcx
mov rax, qword [0x100355f0]
mov rcx, qword [rsp + 0x50]
mov qword [rax], rcx
mov rax, qword [0x100355f0]
mov rcx, qword [rsp + 0x60]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x68]
mov rax, qword [0x100355f0]
mov qword [rax + 8], rcx
lea rcx, [0x100041c0]
call qword [sym.imp.MSVCR80.dll__beginthread]
mov rax, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x250]
mov rbx, qword [rsp + 0x248]
mov rcx, qword [rsp + 0x220]
xor rcx, rsp
call fcn.10010cd0
add rsp, 0x238
ret
jmp 0x100042d0