Function at 0x4a6950
Capabilities:
Create pipe
Create process on windows
Create two anonymous pipes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x680
mov eax, dword [0x53273c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x204]
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x62c], eax
mov dword [eax], 0
mov eax, ebx
push esi
mov cl, byte [ebx]
mov dword [ebp - 0x628], ebx
mov byte [ebp - 0x204], cl
cmp cl, 0x20
jle 0x4a69a5
mov cl, byte [eax + 1]
lea esi, [ebp - 5]
inc eax
cmp edx, esi
jae 0x4a69eb
inc edx
mov byte [edx], cl
cmp cl, 0x20
jg 0x4a6992
push 0x400
lea eax, [ebp - 0x604]
mov byte [edx], 0
push eax
lea eax, [ebp - 0x204]
push eax
call fcn.004a6350
add esp, 0xc
test eax, eax
jne 0x4a6a17
lea eax, [ebp - 0x204]
push eax
push str.Cannot_invoke__s:_no_such_program._n
push 1
call fcn.004d27a8
add esp, 4
push eax
call fcn.00408350
add esp, 0xc
jmp 0x4a6caf
cmp cl, 0x20
jle 0x4a69f6
inc eax
cmp byte [eax], 0x20
jg 0x4a69f0
push ebx
sub eax, ebx
push eax
push str.Pipestart:_name___.s__too_long._n
push 1
call fcn.004d27a8
add esp, 4
push eax
call fcn.00408350
add esp, 0x10
jmp 0x4a6caf
mov esi, dword [sym.imp.KERNEL32.dll_CreatePipe]
lea eax, [ebp - 0x624]
push 0x1000
push eax
lea eax, [ebp - 0x60c]
mov dword [ebp - 0x624], 0xc
push eax
lea eax, [ebp - 0x610]
mov dword [ebp - 0x620], 0
push eax
mov dword [ebp - 0x61c], 0
call esi
test eax, eax
je 0x4a6c97
push 0x1000
lea eax, [ebp - 0x624]
mov dword [ebp - 0x624], 0xc
push eax
lea eax, [ebp - 0x614]
mov dword [ebp - 0x620], 0
push eax
lea eax, [ebp - 0x618]
mov dword [ebp - 0x61c], 0
push eax
call esi
test eax, eax
je 0x4a6c67
mov esi, dword [ebp - 0x610]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x608], esi
call edi
push 2
push 1
push 0
lea ecx, [ebp - 0x608]
push ecx
push eax
push esi
push eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x4a6ad9
push esi
call ebx
mov eax, dword [ebp - 0x608]
mov esi, dword [ebp - 0x614]
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x608], esi
call edi
push 2
push 1
push 0
lea ecx, [ebp - 0x608]
push ecx
push eax
push esi
push eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
je 0x4a6b10
push esi
call ebx
mov eax, dword [ebp - 0x608]
mov edi, dword [sym.imp.KERNEL32.dll_GetStdHandle]
push 0xfffffffffffffff6
mov dword [ebp - 0x614], eax
call edi
push dword [ebp - 0x610]
mov dword [ebp - 0x608], eax
push 0xfffffffffffffff6
call dword [sym.imp.KERNEL32.dll_SetStdHandle]
mov esi, dword [ebp - 0x614]
push 0xfffffffffffffff5
call edi
push 0xfffffffffffffff4
mov ebx, eax
call edi
push esi
push 0xfffffffffffffff5
mov edi, eax
call dword [sym.imp.KERNEL32.dll_SetStdHandle]
push esi
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_SetStdHandle]
push 0x44
lea eax, [ebp - 0x680]
push 0
push eax
call fcn.004d0130
add esp, 0xc
mov dword [ebp - 0x680], 0x44
mov eax, 5
mov word [ebp - 0x650], ax
lea eax, [ebp - 0x63c]
push eax
lea eax, [ebp - 0x680]
push eax
push 0
push 0
push 0
push 1
push 0
push 0
push dword [ebp - 0x628]
lea eax, [ebp - 0x604]
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
push dword [ebp - 0x610]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x614]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x608]
push 0xfffffffffffffff6
call dword [sym.imp.KERNEL32.dll_SetStdHandle]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_SetStdHandle]
push 0xfffffffffffffff5
call ebx
push edi
push 0xfffffffffffffff4
call ebx
pop edi
test esi, esi
jne 0x4a6c32
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x204]
push eax
push str.CreateProcess___s___failure__nError_code__ld_n
push 1
call fcn.004d27a8
add esp, 4
push eax
call fcn.00408350
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
add esp, 0x10
push dword [ebp - 0x618]
call ebx
push dword [ebp - 0x60c]
call ebx
jmp 0x4a6caf
push dword [ebp - 0x638]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x62c]
mov eax, dword [ebp - 0x618]
pop esi
pop ebx
mov dword [ecx], eax
mov eax, dword [ebp - 0x60c]
mov dword [ecx + 4], eax
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ceaf9
mov esp, ebp
pop ebp
ret
push str.CreatePipe_failed__n
push 1
call fcn.004d27a8
add esp, 4
push eax
call fcn.00408350
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
add esp, 8
push dword [ebp - 0x610]
call esi
push dword [ebp - 0x60c]
call esi
jmp 0x4a6caf
push str.CreatePipe_failed__n
push 1
call fcn.004d27a8
add esp, 4
push eax
call fcn.00408350
add esp, 8
mov ecx, dword [ebp - 4]
mov eax, 1
pop esi
xor ecx, ebp
pop ebx
call fcn.004ceaf9
mov esp, ebp
pop ebp
ret