Function at 0x210096a90
Capabilities:
Create pipe

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x178
mov rdi, qword [rsp + 0x1e0]
mov qword [rsp + 0x1c0], rcx
mov rsi, rdx
mov ebx, r9d
mov qword [rsp + 0x1d0], r8
test rdx, rdx
je 0x210096acd
mov qword [rdx], 0
cmp qword [rsp + 0x1d0], 0
je 0x210096ae7
mov rax, qword [rsp + 0x1d0]
mov qword [rax], 0
test ebx, ebx
mov eax, 0x10000
lea r13, [rsp + 0x60]
cmove ebx, eax
mov rax, qword [0x21023d810]
lea rdx, str..pipemsys__S_
mov rcx, r13
lea r8, [rax + 0x4210]
call sym.__small_sprintf
movsxd r12, eax
test rdi, rdi
je 0x210096ea8
test dword [rsp + 0x1e8], 0x80000
jne 0x210096ef0
lea rcx, [r13 + r12]
mov r8, rdi
mov ebp, 0xc
lea rdx, [0x21028f54b]
call sym.__small_sprintf
cdqe
add rax, r12
mov r15d, dword [rsp + 0x1e8]
lea r14, [0x210273880]
or r15d, 0x80001
test rsi, rsi
je 0x210096cc3
test bpl, 4
lea rcx, str.PIPE_TYPE_MESSAGE
lea rdx, str.PIPE_TYPE_BYTE
cmovne rdx, rcx
test rdi, rdi
lea rcx, str.__retrying
lea r12, [0x210273880]
mov qword [rsp + 0x48], rdx
lea rdx, [0x21028f559]
cmove rdx, rcx
add rax, r13
xor r10d, r10d
mov qword [rsp + 0x58], rax
mov r14d, r10d
mov qword [rsp + 0x50], rdx
nop word [rax + rax]
cmp qword [rsi], 0
jne 0x210096cb0
test rdi, rdi
je 0x210096e18
mov r14, r12
test byte [r12], 1
je 0x210096c0b
mov rax, qword [rsp + 0x48]
mov dword [rsp + 0x28], ebx
lea r9, str.name__s__size__u__mode__s
lea r8, str.static_DWORD_fhandler_pipe::create_LPSECURITY_ATTRIBUTES__PHANDLE__PHANDLE__DWORD__const_char__DWORD__int64_t_
mov qword [rsp + 0x20], r13
mov edx, 0x40
mov rcx, r12
mov qword [rsp + 0x30], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov dword [rsp + 0x28], ebx
mov r9d, 1
mov r8d, ebp
mov edx, r15d
mov rax, qword [rsp + 0x1c0]
mov dword [rsp + 0x30], 0
mov rcx, r13
mov dword [rsp + 0x20], ebx
mov qword [rsp + 0x38], rax
call sym.CreateNamedPipeA
mov qword [rsi], rax
cmp rax, 0xffffffffffffffff
jne 0x210096e80
call sym.GetLastError
mov r14d, eax
cmp eax, 5
je 0x210096dd0
cmp eax, 0xe7
jne 0x210096d98
test byte [r12], 1
je 0x210096c91
mov rax, qword [rsp + 0x50]
lea r9, str.pipe_busy
mov edx, 0x40
mov rcx, r12
lea r8, str.static_DWORD_fhandler_pipe::create_LPSECURITY_ATTRIBUTES__PHANDLE__PHANDLE__DWORD__const_char__DWORD__int64_t_
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
test rdi, rdi
jne 0x210096bc0
mov qword [rsi], 0
cmp qword [rsi], 0
je 0x210096bca
nop dword [rax + rax]
mov r10d, r14d
lea r14, [0x210273880]
test r10d, r10d
jne 0x210096e70
movzx eax, byte [0x210273880]
and eax, 1
cmp qword [rsp + 0x1d0], 0
je 0x210096f20
test al, al
je 0x210096d00
mov qword [rsp + 0x20], r13
lea r9, str.CreateFile:_name__s
mov edx, 0x40
mov rcx, r14
lea r8, str.static_DWORD_fhandler_pipe::create_LPSECURITY_ATTRIBUTES__PHANDLE__PHANDLE__DWORD__const_char__DWORD__int64_t_
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov eax, dword [rsp + 0x1e8]
mov edx, 0x40000080
mov rcx, r13
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x20], 3
mov r9, qword [rsp + 0x1c0]
and eax, 3
or eax, 1
cmp eax, 3
mov eax, 0xc0000180
cmove edx, eax
mov eax, dword [rsp + 0x1e8]
xor r8d, r8d
and eax, 0x40000000
mov dword [rsp + 0x28], eax
call sym.CreateFileA
mov rdi, qword [rsp + 0x1d0]
lea rdx, [rax - 1]
mov qword [rdi], rax
cmp rdx, 0xfffffffffffffffd
ja 0x210096f80
test byte [0x210273880], 1
jne 0x210096f50
xor r10d, r10d
mov eax, r10d
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
call sym.GetLastError
mov r14d, eax
test byte [r12], 1
je 0x210096bc0
lea r9, str.failed___E
lea r8, str.static_DWORD_fhandler_pipe::create_LPSECURITY_ATTRIBUTES__PHANDLE__PHANDLE__DWORD__const_char__DWORD__int64_t_
mov edx, 0x40
mov rcx, r12
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x210096bc0
test byte [r12], 1
je 0x210096c91
mov rax, qword [rsp + 0x50]
lea r9, str.pipe_access_denied_s
mov edx, 0x40
mov rcx, r12
lea r8, str.static_DWORD_fhandler_pipe::create_LPSECURITY_ATTRIBUTES__PHANDLE__PHANDLE__DWORD__const_char__DWORD__int64_t_
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
test rdi, rdi
jne 0x210096bc0
mov qword [rsi], 0
jmp 0x210096ca1
mov r14d, 1
lock xadd dword [0x2102ff764], r14d
lea rdx, str.pipe__p
mov rcx, qword [rsp + 0x58]
add r14d, 1
mov r8d, r14d
call sym.__small_sprintf
cmp qword [rsp + 0x1f0], 0
je 0x210096bd3
call sym.GetCurrentProcessId
shl r14, 0x20
mov eax, eax
or r14, rax
mov rax, qword [rsp + 0x1f0]
mov qword [rax], r14
jmp 0x210096bd3
mov qword [rsi], 0
jmp 0x210096d7a
test byte [0x210273880], 1
jne 0x210096fc0
cmp qword [rsp + 0x1d0], 0
jne 0x210096d00
jmp 0x210096d77
movzx ebp, byte [0x210307932]
call sym.GetCurrentProcessId
lea rcx, [r13 + r12]
lea rdx, [0x21028f547]
xor ebp, 1
mov r8d, eax
call sym.__small_sprintf
movzx ebp, bpl
and dword [rsp + 0x1e8], 0xfff7ffff
shl ebp, 2
cdqe
or ebp, 8
add rax, r12
jmp 0x210096b4e
call sym.GetCurrentProcessId
lea rcx, [r13 + r12]
lea rdx, [0x21028f547]
mov r8d, eax
call sym.__small_sprintf
and dword [rsp + 0x1e8], 0xfff7ffff
cdqe
add r12, rax
jmp 0x210096b30
test al, al
je 0x210096d77
lea r9, str.pipe_write_handle_NULL
lea r8, str.static_DWORD_fhandler_pipe::create_LPSECURITY_ATTRIBUTES__PHANDLE__PHANDLE__DWORD__const_char__DWORD__int64_t_
mov edx, 0x40
mov rcx, r14
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x210096d77
mov qword [rsp + 0x20], rax
lea r9, str.pipe_write_handle__p
mov edx, 0x40
mov rcx, r14
lea r8, str.static_DWORD_fhandler_pipe::create_LPSECURITY_ATTRIBUTES__PHANDLE__PHANDLE__DWORD__const_char__DWORD__int64_t_
call method.strace.prntf_unsigned_int__char_const__char_const__..._
xor r10d, r10d
jmp 0x210096d7a
call sym.GetLastError
mov r10d, eax
test byte [0x210273880], 1
jne 0x210096fe5
test rsi, rsi
je 0x210096fa8
mov rcx, qword [rsi]
mov dword [rsp + 0x48], r10d
call sym.CloseHandle
mov r10d, dword [rsp + 0x48]
mov rax, qword [rsp + 0x1d0]
mov qword [rax], 0
jmp 0x210096d7a
mov qword [rsp + 0x20], rax
lea r9, str.pipe_read_handle__p
mov edx, 0x40
mov rcx, r12
lea r8, str.static_DWORD_fhandler_pipe::create_LPSECURITY_ATTRIBUTES__PHANDLE__PHANDLE__DWORD__const_char__DWORD__int64_t_
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x210096cc3
mov qword [rsp + 0x20], rsi
lea r9, str.CreateFile_failed__r__p___E
mov edx, 0x40
mov rcx, r14
lea r8, str.static_DWORD_fhandler_pipe::create_LPSECURITY_ATTRIBUTES__PHANDLE__PHANDLE__DWORD__const_char__DWORD__int64_t_
mov dword [rsp + 0x48], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov r10d, dword [rsp + 0x48]
jmp 0x210096f91