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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x148
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0xb0], xmm6
mov qword [rbp + 0xa8], 0xfffffffffffffffe
mov qword [rbp + 8], rcx
mov byte [rbp + 0xa5], dl
movzx eax, dl
mov ecx, 0x40080002
sub ecx, eax
mov dword [rbp - 4], ecx
xor r15d, r15d
mov edi, 8
mov r14b, 1
xorps xmm6, xmm6
lea rbx, [rbp + 0x80]
mov rsi, qword [sym.imp.bcrypt.dll_BCryptGenRandom]
xor eax, eax
mov qword [rbp - 0x38], rax
jmp 0x1400288a6
mov r15b, 1
xor r14d, r14d
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [rbp - 0xc], eax
mov rax, qword [0x140071840]
test rax, rax
jne 0x1400288fc
nop dword [rax + rax]
movaps xmmword [rbp + 0x80], xmm6
xor ecx, ecx
mov rdx, rbx
mov r8d, 0x10
mov r9d, 2
call rsi
test eax, eax
jne 0x140028fb7
mov rax, qword [rbp + 0x80]
xchg qword [0x140071840], rax
mov rax, qword [0x140071840]
test rax, rax
je 0x1400288c0
mov eax, 1
lock xadd qword [0x140071840], rax
mov qword [rbp + 0x10], rax
lea rax, [rbp - 0xc]
mov qword [rbp + 0x30], rax
lea rax, [0x14003eb40]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x10]
mov qword [rbp + 0x40], rax
lea rax, [fcn.14003ec70]
mov qword [rbp + 0x48], rax
lea rax, str..pipe__rust_anonymous_pipe1__.
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x58], 2
mov qword [rbp + 0x60], 0
lea rax, [rbp + 0x30]
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x78], 2
mov byte [rbp + 0xa7], r15b
mov byte [rbp + 0xa6], 1
mov rcx, rbx
lea rdx, [rbp + 0x50]
call fcn.140038bf0
movups xmm0, xmmword [rbp + 0x80]
movaps xmmword [rbp + 0x50], xmm0
mov rax, qword [rbp + 0x90]
mov qword [rbp + 0x60], rax
test r14b, 1
jne 0x1400289ad
mov rdx, qword [rbp - 0x28]
test rdx, rdx
je 0x1400289ad
mov rcx, qword [rbp - 0x30]
mov r8d, 1
call fcn.140007f00
mov dword [rbp], edi
mov rcx, qword [rbp + 0x60]
mov qword [rbp - 0x20], rcx
movaps xmm0, xmmword [rbp + 0x50]
movaps xmmword [rbp - 0x30], xmm0
mov rax, qword [rbp - 0x30]
lea rdx, [rax + rcx]
mov qword [rbp + 0x98], rdx
xor r13d, r13d
mov r15d, 4
mov r14d, 0
mov r12d, 0
mov esi, 0
test rax, rax
je 0x140028aec
test rcx, rcx
je 0x140028aec
mov dl, byte [rax]
movzx esi, dl
test sil, sil
js 0x140028a14
add rax, 1
mov r13, rax
xor r14d, r14d
jmp 0x140028ab0
mov ecx, esi
and ecx, 0x1f
movzx ebx, byte [rax + 1]
and ebx, 0x3f
cmp sil, 0xdf
jbe 0x140028a5e
movzx esi, byte [rax + 2]
shl ebx, 6
and esi, 0x3f
or esi, ebx
cmp dl, 0xf0
jb 0x140028a79
movzx edx, byte [rax + 3]
add rax, 4
and ecx, 7
shl ecx, 0x12
shl esi, 6
and edx, 0x3f
or edx, esi
or edx, ecx
mov r13, rax
mov esi, edx
cmp esi, 0xffff
jbe 0x140028a74
jmp 0x140028a8d
add rax, 2
shl ecx, 6
or ecx, ebx
mov r13, rax
mov esi, ecx
cmp esi, 0xffff
ja 0x140028a8d
xor r14d, r14d
jmp 0x140028ab0
add rax, 3
shl ecx, 0xc
or esi, ecx
mov r13, rax
cmp esi, 0xffff
jbe 0x140028a74
add esi, 0xffff0000
mov eax, esi
shr eax, 0xa
or eax, 0xd800
and esi, 0x3ff
or esi, 0xdc00
mov r14d, esi
mov esi, eax
nop
mov r15, qword [rbp + 0x98]
sub r15, r13
add r15, 3
mov rax, 0xffffffffffffffff
cmovb r15, rax
shr r15, 2
cmp r14w, 1
sbb r15, 0xffffffffffffffff
cmp r15, 3
mov eax, 2
cmovb r15, rax
add r15, 2
mov r12w, 1
lea rdi, [r15 + r15]
mov edx, 2
mov rcx, rdi
call fcn.140007ef0
test rax, rax
je 0x140029020
mov rcx, qword [rbp - 0x38]
add ecx, 1
mov dword [rbp - 8], ecx
mov word [rax], si
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x88], r15
mov qword [rbp + 0x90], 1
mov ebx, 1
mov rcx, r13
jmp 0x140028bb0
xor r8d, r8d
mov rdx, rdi
add rdx, rdi
setae r8b
add r8, r8
test rcx, rcx
je 0x140028be4
mov rax, qword [rbp + 0x80]
add rcx, rcx
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x58], rcx
mov eax, 2
mov qword [rbp + 0x60], rax
lea rcx, [rbp + 0x30]
lea r9, [rbp + 0x50]
call fcn.140016570
cmp qword [rbp + 0x30], 0
jne 0x140028f8f
mov rax, qword [rbp + 0x38]
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x88], rdi
mov rcx, r13
mov r15, rdi
mov word [rax + rbx*2], r14w
add rbx, 1
mov r14d, esi
test rcx, rcx
je 0x140028bf0
test r14w, r14w
je 0x140028bc0
xor esi, esi
jmp 0x140028c06
cmp qword [rbp + 0x98], rcx
je 0x140028be8
movzx edx, byte [rcx]
movzx r14d, dl
test r14b, r14b
js 0x140028c89
add rcx, 1
mov r13, rcx
xor esi, esi
jmp 0x140028c06
xor eax, eax
jmp 0x140028b70
xor r13d, r13d
nop dword [rax + rax]
cmp r12w, 1
jne 0x140028d50
xor r12d, r12d
mov esi, r14d
xor ecx, ecx
xor r14d, r14d
cmp rbx, r15
jne 0x140028ba4
test r13, r13
je 0x140028c4c
mov rax, qword [rbp + 0x98]
sub rax, r13
add rax, 3
mov rcx, 0xffffffffffffffff
cmovb rax, rcx
shr rax, 2
cmp si, 1
sbb rax, 0xffffffffffffffff
cmp r12w, 1
sbb rax, 0xffffffffffffffff
add rax, 1
add rax, r15
jae 0x140028c62
jmp 0x140028f86
xor eax, eax
test r12w, r12w
setne al
add rax, 1
add rax, r15
jb 0x140028f86
mov rcx, qword [rbp + 0x88]
lea rdi, [rcx + rcx]
cmp rdi, rax
ja 0x140028c75
mov rdi, rax
cmp rdi, 5
jae 0x140028b40
mov edi, 4
jmp 0x140028b40
mov edi, r14d
and edi, 0x1f
movzx esi, byte [rcx + 1]
and esi, 0x3f
cmp r14b, 0xdf
jbe 0x140028cdb
movzx r14d, byte [rcx + 2]
shl esi, 6
and r14d, 0x3f
or r14d, esi
cmp dl, 0xf0
jb 0x140028cfd
movzx edx, byte [rcx + 3]
add rcx, 4
and edi, 7
shl edi, 0x12
shl r14d, 6
and edx, 0x3f
or edx, r14d
or edx, edi
mov r13, rcx
mov r14d, edx
cmp r14d, 0xffff
jbe 0x140028cf3
jmp 0x140028d13
add rcx, 2
shl edi, 6
or edi, esi
mov r13, rcx
mov r14d, edi
cmp r14d, 0xffff
ja 0x140028d13
mov rcx, r13
xor esi, esi
jmp 0x140028c06
add rcx, 3
shl edi, 0xc
or r14d, edi
mov r13, rcx
cmp r14d, 0xffff
jbe 0x140028cf3
add r14d, 0xffff0000
mov edx, r14d
shr edx, 0xa
or edx, 0xd800
and r14d, 0x3ff
or r14d, 0xdc00
mov esi, r14d
mov rcx, r13
mov r14d, edx
jmp 0x140028c06
movups xmm0, xmmword [rbp + 0x80]
movaps xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x20], rbx
mov r15, qword [rbp + 0x10]
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 [rbp - 4]
mov edi, dword [rbp]
mov r8d, edi
mov r9d, 1
call qword [sym.imp.KERNEL32.dll_CreateNamedPipeW]
mov r14, rax
cmp rax, 0xffffffffffffffff
jne 0x140028e9b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rax
shl rcx, 0x20
or rcx, 2
mov qword [rbp + 0x50], rcx
mov edx, dword [rbp - 8]
cmp edx, 0xa
jge 0x140028e2b
cmp eax, 5
jne 0x140028de0
mov eax, edx
mov qword [rbp - 0x38], rax
jmp 0x140028deb
test edi, edi
je 0x140028e2b
xor edi, edi
cmp eax, 0x57
jne 0x140028e2b
lea rcx, [rbp + 0x50]
call fcn.1400117c0
mov rdx, qword [rbp + 0x18]
test rdx, rdx
lea rbx, [rbp + 0x80]
mov rsi, qword [sym.imp.bcrypt.dll_BCryptGenRandom]
je 0x1400288a0
add rdx, rdx
je 0x1400288a0
mov r8d, 2
mov rcx, r15
call fcn.140007f00
jmp 0x1400288a0
mov rax, qword [rbp + 8]
mov qword [rax + 8], rcx
mov qword [rax], 1
mov rdx, qword [rbp + 0x18]
test rdx, rdx
je 0x140028e56
add rdx, rdx
je 0x140028e56
mov r8d, 2
mov rcx, r15
call fcn.140007f00
mov rsi, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x28]
test rdx, rdx
je 0x140028e71
mov r8d, 1
mov rcx, rsi
call fcn.140007f00
cmp r14, 0xffffffffffffffff
je 0x140028e80
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
movaps xmm6, xmmword [rbp + 0xb0]
add rsp, 0x148
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rdx, qword [rbp + 0x18]
test rdx, rdx
je 0x140028eb7
add rdx, rdx
je 0x140028eb7
mov r8d, 2
mov rcx, r15
call fcn.140007f00
mov qword [rbp + 0x58], 0
mov dword [rbp + 0x64], 0
mov dword [rbp + 0x70], 0
mov word [rbp + 0x74], 0
mov al, byte [rbp + 0xa5]
mov byte [rbp + 0x71], al
xor al, 1
mov byte [rbp + 0x70], al
mov qword [rbp + 0x68], 0
mov dword [rbp + 0x30], 0x18
mov qword [rbp + 0x38], 0
mov dword [rbp + 0x40], 1
lea rax, [rbp + 0x30]
mov qword [rbp + 0x50], rax
mov rsi, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x20]
mov qword [rbp - 0x40], r14
mov byte [rbp + 0xa7], 1
mov byte [rbp + 0xa6], 0
lea r8, [rbp + 0x50]
mov rcx, rsi
call fcn.140024af0
test rax, rax
je 0x140028f53
mov rax, qword [rbp + 8]
mov qword [rax + 8], rdx
mov qword [rax], 1
mov rdx, qword [rbp - 0x28]
test rdx, rdx
jne 0x140028e63
jmp 0x140028e71
mov rax, qword [rbp + 8]
mov qword [rax + 8], r14
mov qword [rax + 0x10], rdx
mov qword [rax], 0
mov rdx, qword [rbp - 0x28]
test rdx, rdx
je 0x140028e80
mov r8d, 1
mov rcx, rsi
call fcn.140007f00
jmp 0x140028e80
mov qword [rbp + 0x90], r15
jmp 0x140028f9f
mov qword [rbp + 0x90], r15
mov rdx, qword [rbp + 0x40]
test rdx, rdx
jne 0x140028fa9
call fcn.1400387f0
jmp 0x14002903b
mov rcx, qword [rbp + 0x38]
call fcn.140052860
jmp 0x14002903b
mov qword [rbp + 0x98], r15
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
or rax, 2
mov qword [rbp + 0x10], rax
lea rax, [rbp + 0x10]
mov qword [rbp + 0x30], rax
lea rax, [0x14001a080]
mov qword [rbp + 0x38], rax
lea rax, [0x14005cbf8]
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x58], 1
mov qword [rbp + 0x60], 0
lea rax, [rbp + 0x30]
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x78], 1
lea rdx, str.library_std_src_syswindows_rand.rs
lea rcx, [rbp + 0x50]
call fcn.1400529f0
jmp 0x14002903b
mov byte [rbp + 0xa7], 1
mov byte [rbp + 0xa6], 1
mov edx, 2
mov rcx, rdi
call fcn.140052860
ud2