Function at 0x1400ba570
Capabilities:
Create pipe

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov r13d, r8d
mov rdi, rcx
xor r14d, r14d
mov eax, r14d
test rcx, rcx
setne al
test eax, eax
jne 0x1400ba5cc
call fcn.14009f170
mov dword [rax], r14d
call fcn.14009f140
mov dword [rax], reloc.WS2_32.dll_shutdown
mov qword [rsp + 0x20], r14
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.14009cfa0
or eax, 0xffffffff
jmp 0x1400ba86b
mov dword [rcx + 4], 0xffffffff
mov dword [rcx], 0xffffffff
test r8d, 0xffff3f7f
mov eax, r14d
sete al
test eax, eax
jne 0x1400ba619
call fcn.14009f170
mov dword [rax], r14d
call fcn.14009f140
mov dword [rax], reloc.WS2_32.dll_shutdown
mov qword [rsp + 0x20], r14
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.14009cfa0
or eax, 0xffffffff
jmp 0x1400ba86b
mov eax, r8d
and eax, 0xc000
mov ecx, r14d
cmp eax, 0xc000
setne cl
test ecx, ecx
jne 0x1400ba65f
call fcn.14009f170
mov dword [rax], r14d
call fcn.14009f140
mov dword [rax], reloc.WS2_32.dll_shutdown
mov qword [rsp + 0x20], r14
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.14009cfa0
or eax, 0xffffffff
jmp 0x1400ba86b
mov dword [rsp + 0x50], reloc.OLEAUT32.dll_SafeArrayGetElement
mov qword [rsp + 0x58], r14
mov eax, r8d
and eax, 0x80
mov dword [rsp + 0xb8], eax
mov eax, r14d
sete al
mov dword [rsp + 0x60], eax
mov r9d, edx
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
jne 0x1400ba6b6
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.14009f1a0
or eax, 0xffffffff
jmp 0x1400ba86b
call fcn.1400bacd0
movsxd rbx, eax
mov dword [rsp + 0xa0], ebx
cmp ebx, 0xffffffff
je 0x1400ba83f
mov rcx, rbx
mov r15, rbx
sar r15, 5
lea rdx, [0x14013c360]
and ecx, 0x1f
lea rsi, [rcx + rcx*4]
add rsi, rsi
mov rax, qword [rdx + r15*8]
mov byte [rax + rsi*8 + 8], 0x89
mov rax, qword [rdx + r15*8]
and byte [rax + rsi*8 + 0x38], 0x80
mov rax, qword [rdx + r15*8]
and byte [rax + rsi*8 + 0x38], 0x7f
mov ecx, ebx
call fcn.1400baca0
call fcn.1400bacd0
movsxd r12, eax
mov dword [rsp + 0x30], r12d
cmp r12d, 0xffffffff
je 0x1400ba82f
mov dword [rsp + 0xa0], r14d
mov rax, r12
mov rcx, r12
sar rcx, 5
mov qword [rsp + 0x38], rcx
and eax, 0x1f
lea r14, [rax + rax*4]
add r14, r14
lea rdx, [0x14013c360]
mov rax, qword [rdx + rcx*8]
mov byte [rax + r14*8 + 8], 0x89
mov rax, qword [rdx + rcx*8]
and byte [rax + r14*8 + 0x38], 0x80
mov rax, qword [rdx + rcx*8]
and byte [rax + r14*8 + 0x38], 0x7f
mov ecx, r12d
call fcn.1400baca0
lea rcx, [rsp + 0xa0]
call fcn.1400bd0c0
test eax, eax
je 0x1400ba799
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.14009cf00
bt r13d, 0xf
jb 0x1400ba7b4
bt r13d, 0xe
jb 0x1400ba7e3
cmp dword [rsp + 0xa0], 0x8000
jne 0x1400ba7d5
lea rdx, [0x14013c360]
mov rax, qword [rdx + r15*8]
and byte [rax + rsi*8 + 8], 0x7f
mov rcx, qword [rsp + 0x38]
mov rax, qword [rdx + rcx*8]
and byte [rax + r14*8 + 8], 0x7f
jmp 0x1400ba7ef
mov rcx, qword [rsp + 0x38]
lea rdx, [0x14013c360]
jmp 0x1400ba7ef
mov rcx, qword [rsp + 0x38]
lea rdx, [0x14013c360]
cmp dword [rsp + 0xb8], 0
je 0x1400ba80c
mov rax, qword [rdx + r15*8]
or byte [rax + rsi*8 + 8], 0x10
mov rax, qword [rdx + rcx*8]
or byte [rax + r14*8 + 8], 0x10
mov rdx, qword [rsp + 0x40]
mov ecx, ebx
call fcn.1400ba9a0
mov rdx, qword [rsp + 0x48]
mov ecx, r12d
call fcn.1400ba9a0
mov dword [rdi], ebx
mov dword [rdi + 4], r12d
xor eax, eax
jmp 0x1400ba86b
lea rdx, [0x14013c360]
mov rax, qword [rdx + r15*8]
mov byte [rax + rsi*8 + 8], 0
call fcn.14009f140
mov dword [rax], reloc.OLEAUT32.dll_SafeArrayGetElement
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.14009f170
mov dword [rax], r14d
or eax, 0xffffffff
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret