Function at 0x1009d1cc
Capabilities:
Create pipe

Disassembly:
push 0x2c
push 0x1009d458
call fcn.1000ff6a
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
xor eax, eax
mov ecx, dword [ebp + 8]
test ecx, ecx
setne al
test eax, eax
jne 0x1009d20a
call sym.MSVCR110.dll___doserrno
mov dword [eax], ebx
call sym.MSVCR110.dll__errno
mov dword [eax], 0x16
call sym.MSVCR110.dll__invalid_parameter_noinfo
or eax, 0xffffffff
jmp 0x1009d44f
or dword [ecx + 4], 0xffffffff
or dword [ecx], 0xffffffff
mov edx, dword [ebp + 0x10]
mov eax, edx
and eax, 0xffff3f7f
neg eax
sbb eax, eax
inc eax
je 0x1009d1eb
mov eax, edx
mov esi, 0xc000
and eax, esi
xor ecx, ecx
cmp eax, esi
setne cl
test ecx, ecx
je 0x1009d1eb
mov dword [ebp - 0x3c], 0xc
mov dword [ebp - 0x38], ebx
test dl, 0x80
push 0
pop eax
sete al
mov dword [ebp - 0x34], eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
jne 0x1009d274
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call sym.MSVCR110.dll__dosmaperr
pop ecx
jmp 0x1009d202
call fcn.10016a95
mov esi, eax
mov dword [ebp - 0x20], esi
cmp esi, 0xffffffff
je 0x1009d414
mov dword [ebp - 4], ebx
mov edx, esi
sar edx, 5
mov ecx, esi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [edx*4 + sym.MSVCR110.dll___pioinfo]
mov byte [eax + ecx + 4], 0x89
mov eax, dword [edx*4 + sym.MSVCR110.dll___pioinfo]
and byte [eax + ecx + 0x24], 0x80
mov eax, dword [edx*4 + sym.MSVCR110.dll___pioinfo]
and byte [eax + ecx + 0x24], 0x7f
mov dword [ebp - 4], 0xfffffffe
call fcn.1009d3d3
call fcn.10016a95
mov edi, eax
mov dword [ebp - 0x28], edi
cmp edi, 0xffffffff
je 0x1009d3fa
mov dword [ebp - 0x24], ebx
mov dword [ebp - 4], 1
mov edx, edi
sar edx, 5
mov ecx, edi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [edx*4 + sym.MSVCR110.dll___pioinfo]
mov byte [eax + ecx + 4], 0x89
mov eax, dword [edx*4 + sym.MSVCR110.dll___pioinfo]
and byte [eax + ecx + 0x24], 0x80
mov eax, dword [edx*4 + sym.MSVCR110.dll___pioinfo]
and byte [eax + ecx + 0x24], 0x7f
mov dword [ebp - 4], 0xfffffffe
call fcn.1009d3e3
lea eax, [ebp - 0x24]
push eax
call sym.MSVCR110.dll__get_fmode
pop ecx
test eax, eax
jne 0x1009d3f0
mov eax, 0x8000
mov edx, dword [ebp + 0x10]
test eax, edx
jne 0x1009d34c
test edx, 0x4000
jne 0x1009d37e
cmp dword [ebp - 0x24], eax
jne 0x1009d37e
mov eax, esi
sar eax, 5
mov ecx, esi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [eax*4 + sym.MSVCR110.dll___pioinfo]
and byte [eax + ecx + 4], 0x7f
mov eax, edi
sar eax, 5
mov ecx, edi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [eax*4 + sym.MSVCR110.dll___pioinfo]
and byte [eax + ecx + 4], 0x7f
test dl, dl
jns 0x1009d3b4
mov eax, esi
sar eax, 5
mov ecx, esi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [eax*4 + sym.MSVCR110.dll___pioinfo]
or byte [eax + ecx + 4], 0x10
mov eax, edi
sar eax, 5
mov ecx, edi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [eax*4 + sym.MSVCR110.dll___pioinfo]
or byte [eax + ecx + 4], 0x10
push dword [ebp - 0x2c]
push esi
call fcn.10016f27
push dword [ebp - 0x30]
push edi
call fcn.10016f27
add esp, 0x10
mov eax, dword [ebp - 0x1c]
jmp 0x1009d41a
push ebx
push ebx
push ebx
push ebx
push ebx
call sym.MSVCR110.dll__invoke_watson
mov eax, esi
sar eax, 5
mov ecx, esi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [eax*4 + sym.MSVCR110.dll___pioinfo]
mov byte [eax + ecx + 4], bl
jmp 0x1009d417
mov edi, dword [ebp - 0x28]
xor eax, eax
inc eax
test eax, eax
je 0x1009d445
call sym.MSVCR110.dll__errno
mov dword [eax], 0x18
push dword [ebp - 0x2c]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x30]
call esi
call sym.MSVCR110.dll___doserrno
mov dword [eax], ebx
jmp 0x1009d202
mov eax, dword [ebp + 8]
mov dword [eax], esi
mov dword [eax + 4], edi
xor eax, eax
call fcn.1000ffaf
ret