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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x7880
call fcn.100963a0
mov eax, dword [0x10105230]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0x2800
lea eax, [ebp - 0x2808]
mov dword [ebp - 0x7828], 0
push 0
push eax
mov esi, edx
mov dword [ebp - 0x7810], 0
mov edi, ecx
call fcn.10097780
push 0x5000
lea eax, [ebp - 0x7808]
push 0
push eax
call fcn.10097780
add esp, 0x18
mov dword [ebp - 0x7834], 0xc
xor eax, eax
mov dword [ebp - 0x7830], 0
mov word [ebp - 0x7846], ax
xorps xmm0, xmm0
mov dword [ebp - 0x782c], 1
push eax
lea eax, [ebp - 0x7834]
movlpd qword [ebp - 0x787c], xmm0
push eax
lea eax, [ebp - 0x7814]
movlpd qword [ebp - 0x7874], xmm0
push eax
lea eax, [ebp - 0x780c]
movlpd qword [ebp - 0x786c], xmm0
push eax
movlpd qword [ebp - 0x7864], xmm0
movlpd qword [ebp - 0x785c], xmm0
movlpd qword [ebp - 0x784e], xmm0
movups xmmword [ebp - 0x7824], xmm0
call dword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
je 0x1001846e
mov eax, dword [ebp - 0x7814]
mov dword [ebp - 0x7844], eax
mov dword [ebp - 0x7840], eax
xor eax, eax
push edi
mov word [ebp - 0x7850], ax
lea eax, [ebp - 0x7808]
push 0x100ecf98
push eax
mov dword [ebp - 0x7880], 0x44
mov dword [ebp - 0x7854], 0x101
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [ebp - 0x7824]
push eax
lea eax, [ebp - 0x7880]
push eax
push 0
push 0
push 0x10
push 1
push 0
push 0
lea eax, [ebp - 0x7808]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x1001846e
push 0x3a98
push dword [ebp - 0x7824]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0
lea eax, [ebp - 0x7810]
push eax
push 0
push 0
push 0
push dword [ebp - 0x780c]
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test eax, eax
jne 0x100183ba
push eax
push dword [ebp - 0x7824]
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push dword [ebp - 0x7824]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x7820]
call esi
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10094e23
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x7810]
test eax, eax
je 0x100183f6
push 0
lea ecx, [ebp - 0x7828]
push ecx
push eax
lea eax, [ebp - 0x2808]
push eax
push dword [ebp - 0x780c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
lea eax, [ebp - 0x2808]
push eax
push 0x2800
push esi
call fcn.100a7dcf
add esp, 0xc
push str.No_such_file
push esi
call fcn.10096d90
add esp, 8
test eax, eax
je 0x10018425
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10018410
sub ecx, edx
push ecx
push 0
push esi
call fcn.10097780
add esp, 0xc
push 0
push dword [ebp - 0x7824]
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push dword [ebp - 0x7824]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x7820]
call esi
push dword [ebp - 0x780c]
call esi
push dword [ebp - 0x7814]
call esi
mov eax, 1
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10094e23
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
pop esi
call fcn.10094e23
mov esp, ebp
pop ebp
ret