Function at 0x456d6f
Capabilities:
Create pipe

Disassembly:
push 0x2c
push 0x482e80
call fcn.00447370
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 0x456dad
call fcn.0043dcaf
mov dword [eax], ebx
call fcn.0043dce3
mov dword [eax], 0x16
call fcn.00445731
or eax, 0xffffffff
jmp 0x456ff2
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 0x456d8e
mov eax, edx
mov esi, 0xc000
and eax, esi
xor ecx, ecx
cmp eax, esi
setne cl
test ecx, ecx
je 0x456d8e
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 0x456e17
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0043dcc2
pop ecx
jmp 0x456da5
call fcn.0046001f
mov esi, eax
mov dword [ebp - 0x20], esi
cmp esi, 0xffffffff
je 0x456fb7
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 + 0x48ad68]
mov byte [eax + ecx + 4], 0x89
mov eax, dword [edx*4 + 0x48ad68]
and byte [eax + ecx + 0x24], 0x80
mov eax, dword [edx*4 + 0x48ad68]
and byte [eax + ecx + 0x24], 0x7f
mov dword [ebp - 4], 0xfffffffe
call fcn.00456f76
call fcn.0046001f
mov edi, eax
mov dword [ebp - 0x28], edi
cmp edi, 0xffffffff
je 0x456f9d
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 + 0x48ad68]
mov byte [ecx + eax + 4], 0x89
mov eax, dword [edx*4 + 0x48ad68]
and byte [ecx + eax + 0x24], 0x80
mov eax, dword [edx*4 + 0x48ad68]
and byte [ecx + eax + 0x24], 0x7f
mov dword [ebp - 4], 0xfffffffe
call fcn.00456f86
lea eax, [ebp - 0x24]
push eax
call fcn.004628d3
pop ecx
test eax, eax
jne 0x456f93
mov eax, 0x8000
mov edx, dword [ebp + 0x10]
test eax, edx
jne 0x456eef
test edx, 0x4000
jne 0x456f21
cmp dword [ebp - 0x24], eax
jne 0x456f21
mov eax, esi
sar eax, 5
mov ecx, esi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [eax*4 + 0x48ad68]
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 + 0x48ad68]
and byte [eax + ecx + 4], 0x7f
test dl, dl
jns 0x456f57
mov eax, esi
sar eax, 5
mov ecx, esi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [eax*4 + 0x48ad68]
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 + 0x48ad68]
or byte [eax + ecx + 4], 0x10
push dword [ebp - 0x2c]
push esi
call fcn.004602b1
push dword [ebp - 0x30]
push edi
call fcn.004602b1
add esp, 0x10
mov eax, dword [ebp - 0x1c]
jmp 0x456fbd
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.00445741
mov eax, esi
sar eax, 5
mov ecx, esi
and ecx, 0x1f
shl ecx, 6
mov eax, dword [eax*4 + 0x48ad68]
mov byte [eax + ecx + 4], bl
jmp 0x456fba
mov edi, dword [ebp - 0x28]
xor eax, eax
inc eax
test eax, eax
je 0x456fe8
call fcn.0043dce3
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.0043dcaf
mov dword [eax], ebx
jmp 0x456da5
mov eax, dword [ebp + 8]
mov dword [eax], esi
mov dword [eax + 4], edi
xor eax, eax
call fcn.004473b5
ret