Function at 0x10058c80
Capabilities:
Create pipe
Create process on windows
Create two anonymous pipes
Read file on windows

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100dff2b
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x4b0
mov eax, dword [0x1010f16c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x454], esi
push esi
lea ecx, [ebp - 0x430]
call fcn.1005ce40
add esp, 4
mov dword [ebp - 4], 0
lea eax, [ebp - 0x4c0]
push 0x44
push 0
push eax
call fcn.100a8dc0
mov edi, dword [sym.imp.KERNEL32.dll_CreatePipe]
lea eax, [ebp - 0x460]
add esp, 0xc
mov dword [ebp - 0x438], 0
xorps xmm0, xmm0
mov dword [ebp - 0x440], 0
movups xmmword [ebp - 0x470], xmm0
mov dword [ebp - 0x43c], 0
push 0
push eax
lea eax, [ebp - 0x438]
mov dword [ebp - 0x448], 0
push eax
lea eax, [ebp - 0x440]
mov byte [ebp - 0x432], 0
push eax
mov dword [ebp - 0x460], 0xc
mov dword [ebp - 0x458], 1
mov dword [ebp - 0x45c], 0
call edi
test eax, eax
je 0x10059050
push 0
lea eax, [ebp - 0x460]
push eax
lea eax, [ebp - 0x43c]
push eax
lea eax, [ebp - 0x448]
push eax
call edi
test eax, eax
je 0x10059050
mov edi, dword [sym.imp.KERNEL32.dll_SetHandleInformation]
push 0
push 1
push dword [ebp - 0x440]
call edi
test eax, eax
je 0x10059050
push 0
push 1
push dword [ebp - 0x43c]
call edi
test eax, eax
je 0x10059050
push dword [ebp - 0x43c]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
cmp dword [esi + 0x14], 0x10
mov eax, dword [ebp - 0x438]
mov dword [ebp - 0x480], eax
mov dword [ebp - 0x484], eax
mov eax, dword [ebp - 0x448]
mov dword [ebp - 0x488], eax
mov eax, esi
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x4c0], 0x44
mov dword [ebp - 0x494], 0x100
jb 0x10058e13
mov eax, dword [esi]
push eax
push str.Run:__s
call fcn.100561a0
add esp, 8
lea ecx, [ebp - 0x470]
cmp dword [ebp - 0x41c], 0x10
lea eax, [ebp - 0x430]
cmovae eax, dword [ebp - 0x430]
push ecx
lea ecx, [ebp - 0x4c0]
push ecx
push 0
push 0
push 0x8000000
push 1
push 0
push 0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x1005901a
push dword [ebp - 0x438]
mov dword [ebp - 0x450], 0xffffffff
xor edi, edi
xor esi, esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x438], esi
push 0
lea eax, [ebp - 0x44c]
mov dword [ebp - 0x44c], 0
push eax
mov eax, 0x400
sub eax, edi
push eax
lea eax, [ebp - 0x418]
add eax, edi
push eax
push dword [ebp - 0x440]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
mov eax, dword [ebp - 0x44c]
je 0x10058ec8
mov byte [ebp - 0x431], 0
test eax, eax
jne 0x10058ecf
mov byte [ebp - 0x431], 1
add edi, eax
mov dword [ebp - 0x444], edi
lea edi, [ebp - 0x418]
mov eax, dword [ebp - 0x444]
add edi, esi
sub eax, esi
push eax
push 0xa
push edi
call fcn.100a8f30
add esp, 0xc
test eax, eax
je 0x10058f41
mov esi, eax
cmp eax, edi
je 0x10058f07
cmp byte [eax - 1], 0xd
lea ecx, [eax - 1]
cmove eax, ecx
push edi
sub eax, edi
lea ecx, [ebp - 0x418]
push eax
sub esi, ecx
push str._.s
inc esi
call fcn.100561a0
mov eax, dword [ebp - 0x444]
lea edi, [ebp - 0x418]
add esp, 0xc
sub eax, esi
add edi, esi
push eax
push 0xa
push edi
call fcn.100a8f30
add esp, 0xc
test eax, eax
jne 0x10058ef7
mov edi, dword [ebp - 0x444]
mov eax, edi
sub eax, esi
cmp eax, 0x400
je 0x10058f85
cmp byte [ebp - 0x431], 0
jne 0x10058f85
test esi, esi
je 0x10058e83
mov edi, eax
lea eax, [ebp - 0x418]
add eax, esi
push edi
push eax
lea eax, [ebp - 0x418]
push eax
call fcn.100a8840
add esp, 0xc
xor esi, esi
jmp 0x10058e83
test eax, eax
je 0x10058fa0
push eax
lea eax, [ebp - 0x418]
add eax, esi
push eax
push str._.s
call fcn.100561a0
add esp, 0xc
xor edi, edi
xor esi, esi
cmp byte [ebp - 0x431], 0
je 0x10058e83
push 0xffffffffffffffff
push dword [ebp - 0x470]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [ebp - 0x450]
push eax
push dword [ebp - 0x470]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
push dword [ebp - 0x46c]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
push dword [ebp - 0x470]
call edi
mov ecx, dword [ebp - 0x450]
test ecx, ecx
je 0x10059011
mov eax, dword [ebp - 0x454]
cmp dword [eax + 0x14], 0x10
jb 0x10059000
mov eax, dword [eax]
push eax
push ecx
push str.Command_line_failed___d__:__s
call fcn.10056110
add esp, 0xc
jmp 0x10059030
mov byte [ebp - 0x432], 1
jmp 0x10059030
cmp dword [esi + 0x14], 0x10
jb 0x10059022
mov esi, dword [esi]
push esi
push str.CreateProcess_failed:__s
call fcn.10056110
add esp, 8
push dword [ebp - 0x440]
call edi
push dword [ebp - 0x438]
call edi
push dword [ebp - 0x448]
call edi
push dword [ebp - 0x43c]
call edi
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x41c]
cmp edx, 0x10
jb 0x1005908d
mov ecx, dword [ebp - 0x430]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10059083
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100590cc
push edx
push ecx
call fcn.1009091b
add esp, 8
mov al, byte [ebp - 0x432]
mov dword [ebp - 0x420], 0
mov dword [ebp - 0x41c], 0xf
mov byte [ebp - 0x430], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100908e7
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.100abcda
int3