Function at 0x100a0820
Capabilities:
Create a process with modified i/o handles and window
Create pipe
Create process on windows
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x880
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 8]
call fcn.10005910
push eax
push str.execute_command____s_
push 0x1ab
push 0x100c15d0
call fcn.100989a0
add esp, 0x10
mov dword [ebp - 0x810], 0
mov dword [ebp - 0x80c], 0
mov dword [ebp - 0x82c], 0xc
mov dword [ebp - 0x828], 0
mov dword [ebp - 0x824], 1
push 0
lea eax, [ebp - 0x82c]
push eax
lea ecx, [ebp - 0x80c]
push ecx
lea edx, [ebp - 0x810]
push edx
call dword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
jne 0x100a08cb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.execute_create_failed__lastError___d
push 0x1b4
push 0x100c169c
call fcn.100989a0
add esp, 0x10
xor al, al
jmp 0x100a0af4
cmp dword [ebp - 0x810], 0
je 0x100a08dd
cmp dword [ebp - 0x80c], 0
jne 0x100a0902
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.execute_open_failed__lastError___d
push 0x1b8
push 0x100c1604
call fcn.100989a0
add esp, 0x10
xor al, al
jmp 0x100a0af4
mov dword [ebp - 0x870], 0x44
lea eax, [ebp - 0x870]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
mov ecx, dword [ebp - 0x80c]
mov dword [ebp - 0x830], ecx
mov edx, dword [ebp - 0x80c]
mov dword [ebp - 0x834], edx
xor eax, eax
mov word [ebp - 0x840], ax
mov dword [ebp - 0x844], 0x101
mov ecx, dword [ebp + 8]
call fcn.10005910
push eax
push 0x200
lea ecx, [ebp - 0x404]
push ecx
call dword [sym.imp.MSVCR120.dll_wcscpy_s]
add esp, 0xc
lea edx, [ebp - 0x880]
push edx
lea eax, [ebp - 0x870]
push eax
push 0
push 0
push 0
push 1
push 0
push 0
lea ecx, [ebp - 0x404]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov dword [ebp - 0x814], eax
cmp dword [ebp - 0x814], 0
jne 0x100a09b8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.execute_shell_failed__lastError___d
push 0x1ce
push 0x100c17a0
call fcn.100989a0
add esp, 0x10
cmp dword [ebp - 0x80c], 0
je 0x100a09d8
mov edx, dword [ebp - 0x80c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x80c], 0
cmp dword [ebp - 0x814], 0
jne 0x100a09e6
jmp 0x100a0ab5
mov dword [ebp - 0x814], 0
mov dword [ebp - 0x81c], 0
mov eax, 1
test eax, eax
je 0x100a0aad
push 0
lea ecx, [ebp - 0x81c]
push ecx
push 0x400
lea edx, [ebp - 0x804]
push edx
mov eax, dword [ebp - 0x810]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0x820], eax
cmp dword [ebp - 0x820], 0
je 0x100a0a50
mov ecx, dword [ebp - 0x81c]
push ecx
lea edx, [ebp - 0x804]
push edx
mov ecx, dword [ebp + 0xc]
call fcn.1000e690
jmp 0x100a0aa8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x818], eax
cmp dword [ebp - 0x818], 0x6d
jne 0x100a0a88
mov dword [ebp - 0x814], 1
push str.execute_successed.
push 0x1e8
push 0x100c1704
call fcn.100989a0
add esp, 0xc
jmp 0x100a0aa6
mov eax, dword [ebp - 0x818]
push eax
push str.execute_failed_errno___d__
push 0x1ea
push str.utility::process::execute
call fcn.100989a0
add esp, 0x10
jmp 0x100a0aad
jmp 0x100a09fa
xor ecx, ecx
jne 0x100a09d8
cmp dword [ebp - 0x810], 0
je 0x100a0ad5
mov edx, dword [ebp - 0x810]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x810], 0
cmp dword [ebp - 0x814], 0
je 0x100a0ae7
mov byte [ebp - 0x805], 1
jmp 0x100a0aee
mov byte [ebp - 0x805], 0
mov al, byte [ebp - 0x805]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad688
mov esp, ebp
pop ebp
ret