Function at 0x14006ed30
Capabilities:
Create pipe
Generate random numbers via winapi

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
movaps xmmword [rsp + 0x100], xmm6
mov qword [rsp + 0xb8], rcx
mov byte [rsp + 0x47], dl
movzx eax, dl
mov ecx, 0x40080002
sub ecx, eax
mov dword [rsp + 0xc0], ecx
xor eax, eax
mov qword [rsp + 0xf0], rax
mov esi, 8
mov dil, 1
xorps xmm6, xmm6
nop dword [rax]
call fcn.1400e23d4
mov dword [rsp + 0xcc], eax
jmp 0x14006ed9f
mov rax, qword [rsp + 0x80]
xchg qword [0x14012e198], rax
mov rax, qword [0x14012e198]
test rax, rax
jne 0x14006ede0
movaps xmmword [rsp + 0x80], xmm6
xor ecx, ecx
lea rdx, [rsp + 0x80]
mov r8d, 0x10
mov r9d, 2
call sub.bcrypt.dll_BCryptGenRandom
test eax, eax
jns 0x14006ed90
call dbg.fallback_rng
jmp 0x14006ed98
mov eax, 1
lock xadd qword [0x14012e198], rax
mov qword [rsp + 0xf8], rax
lea rax, [rsp + 0xcc]
mov qword [rsp + 0xd0], rax
lea rax, [sym.core::fmt::num::imp::__impl_core::fmt::Display_for_u32_::fmt::hcf3bda5ed5000e12]
mov qword [rsp + 0xd8], rax
lea rax, [rsp + 0xf8]
mov qword [rsp + 0xe0], rax
lea rax, [sym.core::fmt::num::imp::__impl_core::fmt::Display_for_u64_::fmt::h57470d8d3bb2dcef]
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0x80], 0
lea rax, str..pipe__rust_anonymous_pipe1__.
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], 2
lea rax, [rsp + 0xd0]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], 2
lea rcx, [rsp + 0x48]
lea rdx, [rsp + 0x80]
call dbg.format_inner
mov dword [rsp + 0xc8], esi
movups xmm0, xmmword [rsp + 0x48]
movaps xmmword [rsp + 0x80], xmm0
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x90], rax
test dil, 1
jne 0x14006eece
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x14006eece
mov rcx, qword [rsp + 0x68]
mov r8, rdx
not r8
shr r8, 0x3f
call sym.__rust_dealloc
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x70], rax
movaps xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x60], xmm0
mov rsi, qword [rsp + 0x68]
lea r12, [rsi + rax]
test rax, rax
je 0x14006ef10
movzx ecx, byte [rsi]
test cl, cl
js 0x14006ef30
inc rsi
mov r13d, ecx
jmp 0x14006ef8f
xor r13d, r13d
xor r15d, r15d
xor edi, edi
xor esi, esi
xor r14d, r14d
jmp 0x14006efb7
mov r13d, ecx
and r13d, 0x1f
movzx edx, byte [rsi + 1]
and edx, 0x3f
cmp cl, 0xdf
jbe 0x14006ef84
movzx eax, byte [rsi + 2]
shl edx, 6
and eax, 0x3f
or eax, edx
cmp cl, 0xf0
jb 0x14006f301
movzx ecx, byte [rsi + 3]
add rsi, 4
and r13d, 7
shl r13d, 0x12
shl eax, 6
and ecx, 0x3f
or ecx, eax
or ecx, r13d
mov r13d, ecx
cmp r13d, 0xffff
jbe 0x14006ef8f
jmp 0x14006f31c
add rsi, 2
shl r13d, 6
or r13d, edx
mov eax, 1
xor edi, edi
mov r14, r12
sub r14, rsi
add r14, 3
mov rcx, 0xffffffffffffffff
cmovb r14, rcx
shr r14, 2
add r14, rax
mov r15w, 1
cmp r14, 4
mov eax, 3
cmovb r14, rax
movabs rax, 0x4000000000000000
add rax, 0xfffffffffffffffe
cmp r14, rax
ja 0x14006f4f5
inc r14
lea rbx, [r14 + r14]
mov edx, 2
mov rcx, rbx
call sym.__rust_alloc
test rax, rax
je 0x14006f4fc
mov rcx, qword [rsp + 0xf0]
inc ecx
mov dword [rsp + 0xc4], ecx
mov word [rax], r13w
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 1
mov ebx, 1
jmp 0x14006f03a
mov edi, ecx
mov word [rax + rbx*2], r13w
inc rbx
test rsi, rsi
je 0x14006f0a0
test di, di
je 0x14006f080
xor ecx, ecx
mov r13d, edi
cmp rbx, r14
jne 0x14006f030
mov rdx, r12
sub rdx, rsi
add rdx, 3
mov rax, 0xffffffffffffffff
cmovb rdx, rax
shr rdx, 2
cmp cx, 1
sbb rdx, 0xffffffffffffffff
cmp r15w, 1
sbb rdx, 0xffffffffffffffff
mov edi, ecx
jmp 0x14006f0cc
cmp rsi, r12
je 0x14006f0a0
movzx edx, byte [rsi]
test dl, dl
js 0x14006f1a2
inc rsi
mov r13d, edx
xor ecx, ecx
jmp 0x14006f049
mov r14, qword [rsp + 0x48]
cmp r15w, 1
jne 0x14006f250
xor r13d, r13d
mov r15d, 0
mov esi, 0
mov edx, 0
cmp rbx, r14
jne 0x14006f032
inc rdx
add rdx, rbx
jb 0x14006f4da
mov rbp, qword [rsp + 0x48]
mov rax, rbp
add rax, rbp
mov r14, rax
cmp rax, rdx
ja 0x14006f0ee
mov r14, rdx
cmp r14, 5
jae 0x14006f0fa
mov r14d, 4
movabs rcx, 0x4000000000000000
dec rcx
xor r8d, r8d
cmp r14, rcx
setbe r8b
lea rdx, [r14 + r14]
add r8, r8
test rbp, rbp
je 0x14006f139
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], rax
mov eax, 2
jmp 0x14006f13b
xor eax, eax
mov qword [rsp + 0x90], rax
lea rcx, [rsp + 0xd0]
lea r9, [rsp + 0x80]
call sym.alloc::raw_vec::finish_grow::h56725c1c8f0dfac0
cmp qword [rsp + 0xd0], 0
mov rax, qword [rsp + 0xd8]
je 0x14006f193
mov rdx, qword [rsp + 0xe0]
movabs rcx, 0x8000000000000001
cmp rdx, rcx
jne 0x14006f4d5
mov rax, qword [rsp + 0x50]
mov r14, rbp
jmp 0x14006f032
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x48], r14
jmp 0x14006f032
mov r13d, edx
and r13d, 0x1f
movzx ebp, byte [rsi + 1]
and ebp, 0x3f
cmp dl, 0xdf
jbe 0x14006f219
movzx ecx, byte [rsi + 2]
shl ebp, 6
and ecx, 0x3f
or ecx, ebp
cmp dl, 0xf0
jb 0x14006f22b
movzx edx, byte [rsi + 3]
add rsi, 4
and r13d, 7
shl r13d, 0x12
shl ecx, 6
and edx, 0x3f
or edx, ecx
or edx, r13d
mov r13d, edx
cmp r13d, 0xffff
jbe 0x14006f242
add r13d, 0xffff0000
mov edx, r13d
shr edx, 0xa
or edx, 0xd800
and r13d, 0x3ff
or r13d, 0xdc00
mov ecx, r13d
mov r13d, edx
jmp 0x14006f049
add rsi, 2
shl r13d, 6
or r13d, ebp
xor ecx, ecx
jmp 0x14006f049
add rsi, 3
shl r13d, 0xc
or ecx, r13d
mov r13d, ecx
cmp r13d, 0xffff
ja 0x14006f1ed
xor ecx, ecx
jmp 0x14006f049
mov r15, qword [rsp + 0x50]
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x10000
mov dword [rsp + 0x20], 0x10000
mov rcx, r15
mov edx, dword [rsp + 0xc0]
mov esi, dword [rsp + 0xc8]
mov r8d, esi
mov r9d, 1
call sub.KERNEL32.dll_CreateNamedPipeW
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x14006f3c9
call sub.KERNEL32.dll_GetLastError
mov ecx, dword [rsp + 0xc4]
cmp ecx, 0xa
jge 0x14006f34d
cmp eax, 5
jne 0x14006f2d0
mov eax, ecx
mov qword [rsp + 0xf0], rax
jmp 0x14006f2db
test esi, esi
je 0x14006f34d
xor esi, esi
cmp eax, 0x57
jne 0x14006f34d
xor edi, edi
test r14, r14
je 0x14006ed80
add r14, r14
mov r8d, 2
mov rcx, r15
mov rdx, r14
call sym.__rust_dealloc
xor edi, edi
jmp 0x14006ed80
add rsi, 3
shl r13d, 0xc
or eax, r13d
mov r13d, eax
cmp r13d, 0xffff
jbe 0x14006ef8f
add r13d, 0xffff0000
mov ecx, r13d
shr ecx, 0xa
or ecx, 0xd800
and r13d, 0x3ff
or r13d, 0xdc00
mov edi, r13d
mov eax, 2
mov r13d, ecx
jmp 0x14006ef96
shl rax, 0x20
or rax, 2
mov rcx, qword [rsp + 0xb8]
mov qword [rcx + 8], rax
mov qword [rcx], 1
test r14, r14
je 0x14006f381
add r14, r14
mov r8d, 2
mov rcx, r15
mov rdx, r14
call sym.__rust_dealloc
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x14006f39f
mov rcx, qword [rsp + 0x68]
mov r8, rdx
not r8
shr r8, 0x3f
call sym.__rust_dealloc
cmp rdi, 0xffffffffffffffff
je 0x14006f3ad
mov rcx, rdi
call fcn.1400e24b4
movaps xmm6, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test r14, r14
je 0x14006f3e2
add r14, r14
mov r8d, 2
mov rcx, r15
mov rdx, r14
call sym.__rust_dealloc
mov dword [rsp + 0x88], 0
mov dword [rsp + 0xa0], 0
mov word [rsp + 0xa4], 0
movzx eax, byte [rsp + 0x47]
mov byte [rsp + 0xa1], al
xor al, 1
mov byte [rsp + 0xa0], al
xorps xmm0, xmm0
movups xmmword [rsp + 0x90], xmm0
mov dword [rsp + 0xd0], 0x18
mov qword [rsp + 0xd8], 0
mov dword [rsp + 0xe0], 1
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x80], rax
mov rsi, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
lea r8, [rsp + 0x80]
mov rcx, rsi
call dbg.open
test rax, rax
je 0x14006f499
mov rax, qword [rsp + 0xb8]
mov qword [rax + 8], rdx
mov qword [rax], 1
mov rdx, qword [rsp + 0x60]
test rdx, rdx
jne 0x14006f38b
jmp 0x14006f39f
mov rax, qword [rsp + 0xb8]
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rdx
mov qword [rax], 0
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x14006f3ad
mov r8, rdx
not r8
shr r8, 0x3f
mov rcx, rsi
call sym.__rust_dealloc
jmp 0x14006f3ad
test rdx, rdx
jne 0x14006f4e6
mov qword [rsp + 0x58], rbx
call dbg.capacity_overflow
jmp 0x14006f509
mov qword [rsp + 0x58], rbx
mov rcx, rax
call dbg.handle_alloc_error
jmp 0x14006f509
call dbg.capacity_overflow
jmp 0x14006f509
mov edx, 2
mov rcx, rbx
call dbg.handle_alloc_error
ud2