Function at 0x100507b0
Capabilities:
Create pipe
Create two anonymous pipes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
mov ebx, ecx
push edi
mov dword [ebp - 0x18], ebx
mov edi, dword [ebx + 0xb0]
mov dword [ebp - 0x14], edi
push dword [edi + 0xc]
push 1
push 0x40
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
mov al, byte [edi + 0x20]
mov dword [ebp - 0x10], esi
test esi, esi
jne 0x1005087a
test al, al
je 0x100508f9
push 0xbc
call fcn.100c162c
add esp, 4
test eax, eax
je 0x1005080e
push dword [edi + 0x18]
mov ecx, eax
push dword [ebx + 8]
call fcn.1004fa40
mov ebx, eax
jmp 0x10050810
xor ebx, ebx
mov eax, dword [edi + 0x10]
mov esi, dword [ebx + 0x9c]
mov dword [ebx + 0x94], eax
mov eax, dword [edi + 0x14]
mov dword [ebx + 0x98], eax
test esi, esi
je 0x10050848
mov ecx, esi
call fcn.100aea80
push 8
push esi
call fcn.100c15fb
add esp, 8
mov dword [ebx + 0x9c], 0
push 8
call fcn.100c162c
add esp, 4
test eax, eax
je 0x1005086d
push 1
push dword [edi + 0x1c]
mov ecx, eax
call fcn.100ae5c0
mov dword [ebx + 0x9c], eax
jmp 0x100509ed
xor eax, eax
mov dword [ebx + 0x9c], eax
jmp 0x100509ed
mov dword [ebp - 0xc], 0
test al, al
je 0x100508b4
mov eax, dword [edi + 0x18]
mov dword [ebp - 0xc], eax
push 0xbc
mov byte [edi + 0x20], 0
call fcn.100c162c
add esp, 4
test eax, eax
je 0x10050909
push dword [ebp - 0xc]
mov ecx, eax
push dword [ebx + 8]
call fcn.1004fa40
mov edi, eax
mov dword [ebp - 8], eax
jmp 0x1005090e
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push 0
push 0
push 0x1f0003
lea ecx, [ebp - 0xc]
push ecx
push eax
push dword [edi + 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
jne 0x1005088b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_DuplicateHandle_call_in_ConnectPipe:__d_n
push 0x2b2
push str.C:_buildworker_steam_rel_client_win32_build_srccommonprocesspipe_any.cpp
call fcn.100ada00
add esp, 0x10
test al, al
jne 0x100508f9
int3
mov ecx, ebx
call fcn.10050a60
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
xor edi, edi
mov dword [ebp - 8], edi
mov esi, dword [sym.imp.KERNEL32.dll_CreatePipe]
lea ebx, [edi + 0xa8]
push 0x2000
push 0
push ebx
lea eax, [edi + 0x94]
push eax
call esi
mov eax, dword [ebp - 8]
add edi, 0xa4
push 0x2000
push 0
add eax, 0x98
push eax
push edi
call esi
mov eax, dword [ebp - 8]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [eax + 0x9c]
mov esi, dword [eax]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push 0
push 0
push 0x1f0003
lea ecx, [ebp - 4]
push ecx
push dword [ebp - 0x10]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov dword [ebp - 4], 0xffffffff
mov dword [ecx + 0x1c], eax
mov esi, dword [edi]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push 0
push 0
push SysReAllocString
lea ecx, [ebp - 4]
push ecx
push dword [ebp - 0x10]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x10], eax
mov esi, dword [ebx]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ebx, dword [ebp - 0x10]
lea ecx, [ebp - 4]
push 0
push 0
push 0x40000000
push ecx
push ebx
push esi
push eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
mov eax, dword [ebp - 4]
mov dword [edi + 0x14], eax
call sub.KERNEL32.dll_GetCurrentProcessId
push ebx
mov dword [edi + 8], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [ebp - 8]
mov dword [edi], 1
mov dword [edi + 4], 2
call fcn.100afd80
mov ecx, dword [ebp - 0x18]
pop edi
pop esi
mov dword [ecx + 0xb8], eax
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret