Function at 0x4400dc
Capabilities:
Create pipe

Disassembly:
push 0x2c
push 0x476bd8
call fcn.00436770
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 0x44011a
call fcn.00430095
mov dword [eax], ebx
call fcn.004300c9
mov dword [eax], 0x16
call fcn.00434a6e
or eax, 0xffffffff
jmp 0x44035f
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 0x4400fb
mov eax, edx
mov esi, 0xc000
and eax, esi
xor ecx, ecx
cmp eax, esi
setne cl
test ecx, ecx
je 0x4400fb
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 0x440184
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.004300a8
pop ecx
jmp 0x440112
call fcn.0044766b
mov esi, eax
mov dword [ebp - 0x20], esi
cmp esi, 0xffffffff
je 0x440324
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 + 0x47cb88]
mov byte [eax + ecx + 4], 0x89
mov eax, dword [edx*4 + 0x47cb88]
and byte [eax + ecx + 0x24], 0x80
mov eax, dword [edx*4 + 0x47cb88]
and byte [eax + ecx + 0x24], 0x7f
mov dword [ebp - 4], 0xfffffffe
call fcn.004402e3
call fcn.0044766b
mov edi, eax
mov dword [ebp - 0x28], edi
cmp edi, 0xffffffff
je 0x44030a
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 + 0x47cb88]
mov byte [ecx + eax + 4], 0x89
mov eax, dword [edx*4 + 0x47cb88]
and byte [ecx + eax + 0x24], 0x80
mov eax, dword [edx*4 + 0x47cb88]
and byte [ecx + eax + 0x24], 0x7f
mov dword [ebp - 4], 0xfffffffe
call fcn.004402f3
lea eax, [ebp - 0x24]
push eax
call fcn.0044a2bb
pop ecx
test eax, eax
jne 0x440300
mov eax, 0x8000
mov edx, dword [ebp + 0x10]
test eax, edx
jne 0x44025c
test edx, 0x4000
jne 0x44028e
cmp dword [ebp - 0x24], eax
jne 0x44028e
mov eax, esi
sar eax, 5
mov ecx, esi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [eax*4 + 0x47cb88]
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 + 0x47cb88]
and byte [eax + ecx + 4], 0x7f
test dl, dl
jns 0x4402c4
mov eax, esi
sar eax, 5
mov ecx, esi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [eax*4 + 0x47cb88]
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 + 0x47cb88]
or byte [eax + ecx + 4], 0x10
push dword [ebp - 0x2c]
push esi
call fcn.004478fd
push dword [ebp - 0x30]
push edi
call fcn.004478fd
add esp, 0x10
mov eax, dword [ebp - 0x1c]
jmp 0x44032a
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.00434a7e
mov eax, esi
sar eax, 5
mov ecx, esi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [eax*4 + 0x47cb88]
mov byte [eax + ecx + 4], bl
jmp 0x440327
mov edi, dword [ebp - 0x28]
xor eax, eax
inc eax
test eax, eax
je 0x440355
call fcn.004300c9
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.00430095
mov dword [eax], ebx
jmp 0x440112
mov eax, dword [ebp + 8]
mov dword [eax], esi
mov dword [eax + 4], edi
xor eax, eax
call fcn.004367b5
ret