Function at 0x431f5c
Capabilities:
Create pipe

Disassembly:
push 0x2c
push 0x46ec58
call fcn.0042a830
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 0x431f9a
call fcn.00421f15
mov dword [eax], ebx
call fcn.00421f49
mov dword [eax], 0x16
call fcn.004268ee
or eax, 0xffffffff
jmp 0x4321df
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 0x431f7b
mov eax, edx
mov esi, 0xc000
and eax, esi
xor ecx, ecx
cmp eax, esi
setne cl
test ecx, ecx
je 0x431f7b
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 0x432004
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00421f28
pop ecx
jmp 0x431f92
call fcn.004394eb
mov esi, eax
mov dword [ebp - 0x20], esi
cmp esi, 0xffffffff
je 0x4321a4
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 + 0x4749a8]
mov byte [eax + ecx + 4], 0x89
mov eax, dword [edx*4 + 0x4749a8]
and byte [eax + ecx + 0x24], 0x80
mov eax, dword [edx*4 + 0x4749a8]
and byte [eax + ecx + 0x24], 0x7f
mov dword [ebp - 4], 0xfffffffe
call fcn.00432163
call fcn.004394eb
mov edi, eax
mov dword [ebp - 0x28], edi
cmp edi, 0xffffffff
je 0x43218a
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 + 0x4749a8]
mov byte [ecx + eax + 4], 0x89
mov eax, dword [edx*4 + 0x4749a8]
and byte [ecx + eax + 0x24], 0x80
mov eax, dword [edx*4 + 0x4749a8]
and byte [ecx + eax + 0x24], 0x7f
mov dword [ebp - 4], 0xfffffffe
call fcn.00432173
lea eax, [ebp - 0x24]
push eax
call fcn.0043c13e
pop ecx
test eax, eax
jne 0x432180
mov eax, 0x8000
mov edx, dword [ebp + 0x10]
test eax, edx
jne 0x4320dc
test edx, 0x4000
jne 0x43210e
cmp dword [ebp - 0x24], eax
jne 0x43210e
mov eax, esi
sar eax, 5
mov ecx, esi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [eax*4 + 0x4749a8]
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 + 0x4749a8]
and byte [eax + ecx + 4], 0x7f
test dl, dl
jns 0x432144
mov eax, esi
sar eax, 5
mov ecx, esi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [eax*4 + 0x4749a8]
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 + 0x4749a8]
or byte [eax + ecx + 4], 0x10
push dword [ebp - 0x2c]
push esi
call fcn.0043977d
push dword [ebp - 0x30]
push edi
call fcn.0043977d
add esp, 0x10
mov eax, dword [ebp - 0x1c]
jmp 0x4321aa
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.004268fe
mov eax, esi
sar eax, 5
mov ecx, esi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [eax*4 + 0x4749a8]
mov byte [eax + ecx + 4], bl
jmp 0x4321a7
mov edi, dword [ebp - 0x28]
xor eax, eax
inc eax
test eax, eax
je 0x4321d5
call fcn.00421f49
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 fcn.00421f15
mov dword [eax], ebx
jmp 0x431f92
mov eax, dword [ebp + 8]
mov dword [eax], esi
mov dword [eax + 4], edi
xor eax, eax
call fcn.0042a875
ret