Function at 0x4b071b
Capabilities:
Create pipe

Disassembly:
push 0x2c
push 0x4cf288
call fcn.004b64ec
xor ebx, ebx
xor ecx, ecx
mov dword [ebp - 0x1c], ebx
mov eax, dword [ebp + 8]
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4b0761
call fcn.004a6a5e
mov dword [eax], ebx
call fcn.004a6a4b
mov dword [eax], 0x16
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.004a648d
add esp, 0x14
or eax, 0xffffffff
jmp 0x4b09cc
or esi, 0xffffffff
mov dword [eax + 4], esi
mov dword [eax], esi
mov eax, dword [ebp + 0x10]
and eax, 0xffff3f7f
neg eax
sbb eax, eax
inc eax
jne 0x4b079e
call fcn.004a6a5e
mov dword [eax], ebx
call fcn.004a6a4b
mov dword [eax], 0x16
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.004a648d
sub esp, 0xffffffec
mov eax, esi
jmp 0x4b09cc
mov eax, 0xc000
mov ecx, dword [ebp + 0x10]
and ecx, eax
xor edx, edx
cmp ecx, eax
setne dl
mov eax, edx
cmp eax, ebx
je 0x4b0778
mov dword [ebp - 0x3c], 0xc
mov dword [ebp - 0x38], ebx
test byte [ebp + 0x10], 0x80
push 0
pop eax
sete al
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x3c]
push dword [ebp + 0xc]
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 0x4b07f4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.004a6a71
pop ecx
jmp 0x4b0797
call fcn.004a6cd9
mov edi, eax
mov dword [ebp - 0x20], edi
cmp edi, esi
je 0x4b098c
sar eax, 5
mov dword [ebp - 4], ebx
lea ecx, [eax*4 + 0x5001c0]
mov eax, edi
mov edx, dword [ecx]
and eax, 0x1f
shl eax, 6
mov byte [edx + eax + 4], 0x89
mov edx, dword [ecx]
lea edx, [edx + eax + 0x24]
and byte [edx], 0x80
mov ecx, dword [ecx]
lea eax, [ecx + eax + 0x24]
and byte [eax], 0x7f
mov dword [ebp - 4], 0xfffffffe
call fcn.004b0955
call fcn.004a6cd9
mov esi, eax
cmp esi, 0xffffffff
mov dword [ebp - 0x28], esi
je 0x4b0972
sar eax, 5
lea ecx, [eax*4 + 0x5001c0]
mov eax, esi
and eax, 0x1f
shl eax, 6
mov dword [ebp - 0x24], ebx
mov dword [ebp - 4], 1
mov edx, dword [ecx]
mov byte [eax + edx + 4], 0x89
mov edx, dword [ecx]
lea edx, [eax + edx + 0x24]
and byte [edx], 0x80
mov ecx, dword [ecx]
lea eax, [eax + ecx + 0x24]
and byte [eax], 0x7f
mov dword [ebp - 4], 0xfffffffe
call fcn.004b0965
lea eax, [ebp - 0x24]
push eax
call fcn.004b4006
or eax, eax
pop ecx
je 0x4b08af
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.004a633e
add esp, 0x14
mov eax, 0x8000
test dword [ebp + 0x10], eax
jne 0x4b08c7
test dword [ebp + 0x10], 0x4000
jne 0x4b08fd
cmp dword [ebp - 0x24], eax
jne 0x4b08fd
mov ecx, edi
sar ecx, 5
mov ecx, dword [ecx*4 + 0x5001c0]
mov eax, edi
and eax, 0x1f
shl eax, 6
lea ecx, [ecx + eax + 4]
and byte [ecx], 0x7f
mov ecx, esi
mov eax, esi
sar eax, 5
mov eax, dword [eax*4 + 0x5001c0]
and ecx, 0x1f
shl ecx, 6
lea eax, [eax + ecx + 4]
and byte [eax], 0x7f
test byte [ebp + 0x10], 0x80
je 0x4b0939
mov eax, edi
sar eax, 5
mov ecx, edi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [eax*4 + 0x5001c0]
lea eax, [eax + ecx + 4]
mov ecx, esi
or byte [eax], 0x10
mov eax, esi
sar eax, 5
mov eax, dword [eax*4 + 0x5001c0]
and ecx, 0x1f
shl ecx, 6
lea eax, [eax + ecx + 4]
or byte [eax], 0x10
push dword [ebp - 0x2c]
push edi
call fcn.004a6a94
push dword [ebp - 0x30]
push esi
call fcn.004a6a94
add esp, 0x10
jmp 0x4b0996
mov eax, edi
mov ecx, edi
sar eax, 5
mov eax, dword [eax*4 + 0x5001c0]
and ecx, 0x1f
shl ecx, 6
mov byte [eax + ecx + 4], bl
jmp 0x4b098f
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x1c], 1
cmp dword [ebp - 0x1c], ebx
je 0x4b09c2
call fcn.004a6a4b
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.004a6a5e
mov dword [eax], ebx
jmp 0x4b0759
xor eax, eax
mov ecx, dword [ebp + 8]
mov dword [ecx], edi
mov dword [ecx + 4], esi
call fcn.004b6531
ret