Function at 0x14004d590
Capabilities:
Create pipe

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x118
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x70], rcx
mov byte [rbp + 0x97], dl
movzx eax, dl
mov ecx, 0x40080002
sub ecx, eax
mov dword [rbp + 0x64], ecx
mov qword [rbp + 0x80], 0
mov r12d, 8
lea rdi, [rbp + 0x18]
xor esi, esi
mov qword [rbp + 0x50], 0
nop word cs:[rax + rax]
call sub.KERNEL32.dll_GetCurrentProcessId
mov dword [rbp + 0x58], eax
nop dword [rax + rax]
mov rax, qword [0x14007c100]
test rax, rax
jne 0x14004d630
mov qword [rbp + 0x18], 0
mov edx, 8
mov rcx, rdi
call sub.bcryptprimitives.dll_ProcessPrng
mov rax, qword [rbp + 0x18]
mov qword [0x14007c100], rax
jmp 0x14004d600
mov eax, 1
lock xadd qword [0x14007c100], rax
mov qword [rbp - 0x20], rax
lea rax, [rbp + 0x58]
mov qword [rbp - 8], rax
lea rax, [0x14000b3c0]
mov qword [rbp], rax
lea rax, [rbp - 0x20]
mov qword [rbp + 8], rax
lea rax, [fcn.140009370]
mov qword [rbp + 0x10], rax
lea rax, str..pipe__rust_anonymous_pipe1__.
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], 2
mov qword [rbp + 0x38], 0
lea rax, [rbp - 8]
mov qword [rbp + 0x28], rax
mov qword [rbp + 0x30], 2
lea rcx, [rbp - 0x38]
mov rdx, rdi
call fcn.140008a50
test r15, r15
setne al
and sil, al
cmp sil, 1
jne 0x14004d6bf
mov edx, 1
mov rcx, qword [rbp + 0x88]
call fcn.140008f20
mov r9, qword [rbp - 0x38]
mov r8, qword [rbp - 0x30]
mov r10, qword [rbp - 0x28]
lea rax, [r8 + r10]
mov qword [rbp + 0x68], rax
test r10, r10
mov qword [rbp + 0x88], r8
mov qword [rbp + 0x78], r9
mov dword [rbp + 0x5c], r12d
mov qword [rbp - 0x10], r10
je 0x14004d700
movzx edi, byte [r8]
test dil, dil
js 0x14004d720
lea r11, [r8 + 1]
jmp 0x14004d77b
mov r14d, 4
mov r15d, 8
xor ebx, ebx
xor esi, esi
xor edi, edi
xor r13d, r13d
jmp 0x14004d7d3
mov eax, edi
and eax, 0x1f
movzx edx, byte [r8 + 1]
and edx, 0x3f
cmp dil, 0xdf
jbe 0x14004d770
movzx ecx, byte [r8 + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp dil, 0xf0
jb 0x14004da7f
lea r11, [r8 + 4]
movzx edi, byte [r8 + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and edi, 0x3f
or edi, ecx
or edi, eax
cmp edi, 0xffff
jbe 0x14004d77b
jmp 0x14004da96
lea r11, [r8 + 2]
shl eax, 6
or eax, edx
mov edi, eax
mov eax, 1
xor ebx, ebx
mov rcx, qword [rbp + 0x68]
sub rcx, r11
add rcx, 3
mov rdx, 0xffffffffffffffff
cmovb rcx, rdx
shr rcx, 2
add rcx, rax
cmp rcx, 4
mov r14d, 3
cmovae r14, rcx
lea r15, [r14*2 + 2]
movabs rax, 0x3ffffffffffffffe
cmp rcx, rax
ja 0x14004dc20
mov rsi, r11
inc r14
mov r13w, 1
movzx eax, byte [0x14007c158]
mov rcx, r15
call fcn.140050b40
test rax, rax
je 0x14004dc14
mov r9, rax
mov rax, qword [rbp + 0x50]
inc eax
mov dword [rbp + 0x60], eax
mov word [r9], di
mov r15d, 1
mov rcx, r9
mov r10, rsi
mov rdi, rbx
jmp 0x14004d820
mov r12, r14
mov edi, edx
mov word [rcx + r15*2], si
inc r15
mov r14, r12
test r10, r10
je 0x14004d880
test di, di
je 0x14004d860
xor edx, edx
mov esi, edi
cmp r15, r14
jne 0x14004d810
mov rax, qword [rbp + 0x68]
sub rax, r10
add rax, 3
mov rcx, 0xffffffffffffffff
cmovb rax, rcx
shr rax, 2
movzx ecx, r13w
cmp dx, 1
sbb rax, 0xffffffffffffffff
add rax, rcx
mov edi, edx
jmp 0x14004d8a0
cmp r10, qword [rbp + 0x68]
je 0x14004d880
movzx esi, byte [r10]
test sil, sil
js 0x14004d940
inc r10
xor edx, edx
jmp 0x14004d82e
cmp r13w, 1
jne 0x14004d9e0
xor r10d, r10d
xor r13d, r13d
mov esi, 0
mov eax, 0
cmp r15, r14
jne 0x14004d910
mov qword [rbp + 0x48], r9
lea rcx, [rax + 1]
add rcx, r15
jb 0x14004dbea
lea r12, [rax + r15]
inc r12
lea rax, [r14 + r14]
cmp rax, r12
cmova r12, rax
cmp r12, 5
jae 0x14004d8cf
mov r12d, 4
test r12, r12
js 0x14004dbea
lea rbx, [r12 + r12]
movabs rax, 0x7ffffffffffffffe
cmp rbx, rax
ja 0x14004dbea
mov rax, r14
mov r14, r10
mov qword [rbp - 0x18], rax
test rax, rax
je 0x14004d91a
mov rcx, qword [rbp + 0x48]
mov rdx, rbx
call fcn.140008f50
jmp 0x14004d929
mov r12, r14
xor esi, esi
jmp 0x14004d815
movzx eax, byte [0x14007c158]
mov rcx, rbx
call fcn.140050b40
mov r9, rax
mov rcx, rax
test rax, rax
mov r10, r14
jne 0x14004d815
jmp 0x14004dc02
mov eax, esi
and eax, 0x1f
movzx r8d, byte [r10 + 1]
and r8d, 0x3f
cmp sil, 0xdf
jbe 0x14004d9ad
movzx edx, byte [r10 + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp sil, 0xf0
jb 0x14004d9c0
movzx esi, byte [r10 + 3]
add r10, 4
and eax, 7
shl eax, 0x12
shl edx, 6
and esi, 0x3f
or esi, edx
or esi, eax
cmp esi, 0xffff
jbe 0x14004d9d3
lea eax, [rsi + 0xff0000]
shr eax, 0xa
or eax, 0xd800
and esi, 0x3ff
or esi, 0xdc00
mov edx, esi
mov esi, eax
jmp 0x14004d82e
add r10, 2
shl eax, 6
or eax, r8d
mov esi, eax
xor edx, edx
jmp 0x14004d82e
add r10, 3
shl eax, 0xc
or edx, eax
mov esi, edx
cmp esi, 0xffff
ja 0x14004d98a
xor edx, edx
jmp 0x14004d82e
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x10000
mov dword [rsp + 0x20], 0x10000
mov r13, r9
mov rcx, r9
mov edx, dword [rbp + 0x64]
mov r12d, dword [rbp + 0x5c]
mov r8d, r12d
mov r9d, 1
call sub.KERNEL32.dll_CreateNamedPipeW
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x14004db21
call sub.KERNEL32.dll_GetLastError
mov ecx, dword [rbp + 0x60]
cmp ecx, 9
mov r15, qword [rbp + 0x78]
jg 0x14004dabf
cmp eax, 5
jne 0x14004da50
mov eax, ecx
mov qword [rbp + 0x50], rax
jmp 0x14004da5d
test r12d, r12d
je 0x14004dabf
xor r12d, r12d
cmp eax, 0x57
jne 0x14004dabf
mov sil, 1
test r14, r14
lea rdi, [rbp + 0x18]
je 0x14004d5f0
mov edx, 2
mov rcx, r13
call fcn.140008f20
jmp 0x14004d5f0
lea r11, [r8 + 3]
shl eax, 0xc
or ecx, eax
mov edi, ecx
cmp edi, 0xffff
jbe 0x14004d77b
lea ecx, [rdi + 0xff0000]
shr ecx, 0xa
or ecx, 0xd800
and edi, 0x3ff
or edi, 0xdc00
mov eax, 2
mov ebx, edi
mov edi, ecx
jmp 0x14004d782
shl rax, 0x20
or rax, 2
mov rcx, qword [rbp + 0x70]
mov qword [rcx + 8], rax
mov qword [rcx], 1
test r14, r14
je 0x14004dae8
mov edx, 2
mov rcx, r13
call fcn.140008f20
test r15, r15
je 0x14004dafe
mov edx, 1
mov rcx, qword [rbp + 0x88]
call fcn.140008f20
cmp rbx, 0xffffffffffffffff
je 0x14004db0c
mov rcx, rbx
call fcn.14005d768
nop
add rsp, 0x118
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
test r14, r14
mov r15, qword [rbp + 0x78]
je 0x14004db37
mov edx, 2
mov rcx, r13
call fcn.140008f20
mov dword [rbp + 0x18], 0
mov dword [rbp + 0x38], 0
mov word [rbp + 0x3c], 0
movzx eax, byte [rbp + 0x97]
mov byte [rbp + 0x39], al
xor al, 1
mov byte [rbp + 0x38], al
xorps xmm0, xmm0
movups xmmword [rbp + 0x28], xmm0
mov dword [rbp - 8], 0x18
mov qword [rbp], 0
mov dword [rbp + 8], 1
lea rax, [rbp - 8]
mov qword [rbp + 0x20], rax
mov sil, 1
lea r8, [rbp + 0x18]
mov rcx, qword [rbp + 0x88]
mov rdx, qword [rbp - 0x10]
call fcn.14003a640
test rax, rax
je 0x14004dbb8
mov rax, qword [rbp + 0x70]
mov qword [rax + 8], rdx
mov qword [rax], 1
test r15, r15
jne 0x14004daed
jmp 0x14004dafe
mov rax, qword [rbp + 0x70]
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rdx
mov qword [rax], 0
test r15, r15
je 0x14004db0c
mov edx, 1
mov rcx, qword [rbp + 0x88]
call fcn.140008f20
jmp 0x14004db0c
lea r8, str._rustc_d4025ee454169fbd22f5773f54348310ab6a47bblibrary_alloc_src_raw_vec.rs
mov rcx, qword [rbp + 0x80]
mov rdx, rbx
call fcn.1400086a0
jmp 0x14004dc3c
mov eax, 2
mov qword [rbp + 0x80], rax
mov r14, qword [rbp - 0x18]
jmp 0x14004dbea
mov eax, 2
mov qword [rbp + 0x80], rax
xor esi, esi
lea r8, str._rustc_d4025ee454169fbd22f5773f54348310ab6a47bblibrarycore_srciter_traitsiterator.rsp
mov rcx, qword [rbp + 0x80]
mov rdx, r15
mov r15, qword [rbp + 0x78]
call fcn.1400086a0
ud2