Function at 0x14037e5e0
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, 0x128
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x90], xmm6
mov qword [rbp + 0x88], 0xfffffffffffffffe
mov qword [rbp + 0x18], rcx
mov byte [rbp + 0x85], dl
movzx eax, dl
mov ecx, 0x40080002
sub ecx, eax
mov dword [rbp + 0xc], ecx
xor edi, edi
mov dword [rbp + 0x80], 8
mov r14b, 1
lea r15, [0x1404be1fe]
mov r12, qword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
xorps xmm6, xmm6
mov rsi, qword [sym.imp.bcrypt.dll_BCryptGenRandom]
xor eax, eax
mov qword [rbp - 0x38], rax
nop word cs:[rax + rax]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [rbp + 8], eax
jmp 0x14037e691
mov eax, 0xc00000bb
mov byte [rbp + 0x87], dil
mov byte [rbp + 0x86], 1
mov ecx, eax
call fcn.1403840b0
xchg qword [0x14056a318], rax
mov rax, qword [0x14056a318]
test rax, rax
jne 0x14037e730
mov rbx, qword [0x14056a328]
mov qword [rbp + 0x20], rbx
cmp rbx, 0xffffffffffffffff
je 0x14037e670
test rbx, rbx
jne 0x14037e700
lea rcx, [rbp + 0x20]
mov rdx, r15
xor r8d, r8d
xor r9d, r9d
call r12
test eax, eax
js 0x14037e6e2
mov rcx, qword [rbp + 0x20]
xor eax, eax
lock cmpxchg qword [0x14056a328], rcx
jne 0x14037e6ef
mov rbx, qword [rbp + 0x20]
jmp 0x14037e700
mov qword [0x14056a328], 0xffffffffffffffff
jmp 0x14037e675
mov rbx, rax
mov rcx, qword [rbp + 0x20]
xor edx, edx
call qword [sym.imp.bcrypt.dll_BCryptCloseAlgorithmProvider]
nop
movaps xmmword [rbp + 0x20], xmm6
mov rcx, rbx
lea rdx, [rbp + 0x20]
mov r8d, 0x10
xor r9d, r9d
call rsi
test eax, eax
js 0x14037e675
mov rax, qword [rbp + 0x20]
jmp 0x14037e68a
mov eax, 1
lock xadd qword [0x14056a318], rax
mov qword [rbp + 0x70], rax
lea rax, [rbp + 8]
mov qword [rbp - 0x30], rax
lea rax, [0x14039d6a0]
mov qword [rbp - 0x28], rax
lea rax, [rbp + 0x70]
mov qword [rbp - 0x20], rax
lea rax, [fcn.14039d910]
mov qword [rbp - 0x18], rax
lea rax, str..pipe__rust_anonymous_pipe1__.
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], 2
mov qword [rbp + 0x30], 0
lea rax, [rbp - 0x30]
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x48], 2
mov byte [rbp + 0x87], dil
mov byte [rbp + 0x86], 1
lea rcx, [rbp + 0x58]
lea rdx, [rbp + 0x20]
call fcn.14038ed10
movups xmm0, xmmword [rbp + 0x58]
movaps xmmword [rbp + 0x20], xmm0
mov rax, qword [rbp + 0x68]
mov qword [rbp + 0x30], rax
test r14b, 1
jne 0x14037e7e0
mov rdx, qword [rbp - 8]
test rdx, rdx
je 0x14037e7e0
mov rcx, qword [rbp - 0x10]
mov r8, rdx
not r8
shr r8, 0x3f
call fcn.1400938b0
mov r15, qword [rbp + 0x30]
mov qword [rbp], r15
movaps xmm0, xmmword [rbp + 0x20]
movaps xmmword [rbp - 0x10], xmm0
mov rsi, qword [rbp - 0x10]
lea rax, [rsi + r15]
mov qword [rbp + 0x78], rax
test r15, r15
je 0x14037e820
movzx ecx, byte [rsi]
movzx edi, cl
test dil, dil
js 0x14037e840
inc rsi
jmp 0x14037e899
xor edi, edi
xor r14d, r14d
xor r12d, r12d
xor esi, esi
xor r13d, r13d
jmp 0x14037e8c3
mov eax, edi
and eax, 0x1f
movzx edx, byte [rsi + 1]
and edx, 0x3f
cmp dil, 0xdf
jbe 0x14037e88e
movzx edi, byte [rsi + 2]
shl edx, 6
and edi, 0x3f
or edi, edx
cmp cl, 0xf0
jb 0x14037ec49
movzx ecx, byte [rsi + 3]
add rsi, 4
and eax, 7
shl eax, 0x12
shl edi, 6
and ecx, 0x3f
or ecx, edi
or ecx, eax
mov edi, ecx
cmp edi, 0xffff
jbe 0x14037e899
jmp 0x14037ec5e
add rsi, 2
shl eax, 6
or eax, edx
mov edi, eax
mov eax, 1
xor r12d, r12d
mov r13, qword [rbp + 0x78]
sub r13, rsi
add r13, 3
mov rcx, 0xffffffffffffffff
cmovb r13, rcx
shr r13, 2
add r13, rax
mov r14w, 1
cmp r13, 4
mov eax, 3
cmovb r13, rax
movabs rax, 0x3fffffffffffffff
cmp r13, rax
jae 0x14037ee1a
inc r13
mov rbx, r13
add rbx, r13
mov edx, 2
mov rcx, rbx
call fcn.1400938a0
test rax, rax
je 0x14037edfd
mov r9, rax
mov word [rax], di
mov qword [rbp + 0x58], rax
mov qword [rbp + 0x60], r13
mov qword [rbp + 0x70], rsi
test r15, r15
je 0x14037eb78
mov ebx, 1
jmp 0x14037e941
mov r15, r13
mov word [r9 + rbx*2], r12w
inc rbx
mov r13, r15
mov r12d, edi
test rsi, rsi
lea rax, [rbp + 0x70]
cmovne rsi, rax
je 0x14037ea00
test r12w, r12w
je 0x14037e960
xor edi, edi
jmp 0x14037ea14
mov rcx, qword [rsi]
cmp rcx, qword [rbp + 0x78]
je 0x14037e9f3
lea rax, [rcx + 1]
mov qword [rsi], rax
movzx edx, byte [rcx]
movzx r12d, dl
test r12b, r12b
jns 0x14037e958
mov r8d, r12d
and r8d, 0x1f
lea rdi, [rcx + 2]
mov qword [rsi], rdi
movzx edi, byte [rcx + 1]
and edi, 0x3f
cmp r12b, 0xdf
jbe 0x14037eb1a
lea rax, [rcx + 3]
mov qword [rsi], rax
movzx r12d, byte [rcx + 2]
shl edi, 6
and r12d, 0x3f
or r12d, edi
cmp dl, 0xf0
jb 0x14037eb2b
lea rax, [rcx + 4]
mov qword [rsi], rax
movzx eax, byte [rcx + 3]
and r8d, 7
shl r8d, 0x12
shl r12d, 6
and eax, 0x3f
or eax, r12d
or eax, r8d
mov r12d, eax
cmp r12d, 0xffff
jbe 0x14037e958
jmp 0x14037eb3f
mov qword [rbp + 0x70], 0
nop dword [rax + rax]
cmp r14w, 1
jne 0x14037eb70
xor r14d, r14d
mov edi, r12d
xor r12d, r12d
mov rsi, qword [rbp + 0x70]
cmp rbx, r13
jne 0x14037e930
test rsi, rsi
je 0x14037ea5e
mov rax, qword [rbp + 0x78]
sub rax, rsi
add rax, 3
mov rcx, 0xffffffffffffffff
cmovb rax, rcx
shr rax, 2
cmp di, 1
sbb rax, 0xffffffffffffffff
cmp r14w, 1
sbb rax, 0xffffffffffffffff
inc rax
add rax, r13
jae 0x14037ea73
jmp 0x14037ede4
xor eax, eax
test r14w, r14w
setne al
inc rax
add rax, r13
jb 0x14037ede4
mov qword [rbp + 0x10], r13
mov r13d, r14d
mov r14, qword [rbp + 0x60]
lea rcx, [r14 + r14]
mov r15, rcx
cmp rcx, rax
ja 0x14037ea8d
mov r15, rax
cmp r15, 5
jae 0x14037ea99
mov r15d, 4
xor r8d, r8d
mov rax, r15
shr rax, 0x3e
sete r8b
lea rdx, [r15 + r15]
add r8, r8
test r14, r14
je 0x14037eac6
mov rax, qword [rbp + 0x58]
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], rcx
mov eax, 2
jmp 0x14037eac8
xor eax, eax
mov qword [rbp + 0x30], rax
lea rcx, [rbp - 0x30]
lea r9, [rbp + 0x20]
call fcn.14036c4a0
cmp qword [rbp - 0x30], 0
mov r9, qword [rbp - 0x28]
je 0x14037eb0a
mov rdx, qword [rbp - 0x20]
movabs rax, 0x8000000000000001
cmp rdx, rax
jne 0x14037eddb
mov r9, qword [rbp + 0x58]
mov r15, r14
mov r14d, r13d
jmp 0x14037e933
mov qword [rbp + 0x58], r9
mov qword [rbp + 0x60], r15
mov r14d, r13d
jmp 0x14037e933
shl r8d, 6
or r8d, edi
mov r12d, r8d
xor edi, edi
jmp 0x14037ea14
shl r8d, 0xc
or r12d, r8d
cmp r12d, 0xffff
jbe 0x14037e958
add r12d, 0xffff0000
mov eax, r12d
shr eax, 0xa
or eax, 0xd800
and r12d, 0x3ff
or r12d, 0xdc00
mov edi, r12d
mov r12d, eax
jmp 0x14037ea14
mov r9, qword [rbp + 0x58]
mov r13, qword [rbp + 0x60]
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x10000
mov dword [rsp + 0x20], 0x10000
mov rdi, r9
mov rcx, r9
mov edx, dword [rbp + 0xc]
mov r8d, dword [rbp + 0x80]
mov r9d, 1
call qword [sym.imp.KERNEL32.dll_CreateNamedPipeW]
mov r12, rax
cmp rax, 0xffffffffffffffff
jne 0x14037ecfd
mov rax, qword [rbp - 0x38]
lea esi, [rax + 1]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, 0xa
mov rcx, rdi
jge 0x14037ec8a
cmp eax, 5
jne 0x14037ebf0
mov eax, esi
mov qword [rbp - 0x38], rax
jmp 0x14037ec0c
cmp dword [rbp + 0x80], 0
je 0x14037ec8a
mov dword [rbp + 0x80], 0
cmp eax, 0x57
jne 0x14037ec8a
mov dil, 1
xor r14d, r14d
test r13, r13
lea r15, [0x1404be1fe]
mov r12, qword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
mov rsi, qword [sym.imp.bcrypt.dll_BCryptGenRandom]
je 0x14037e660
add r13, r13
mov r8d, 2
mov rdx, r13
call fcn.1400938b0
xor r14d, r14d
jmp 0x14037e660
add rsi, 3
shl eax, 0xc
or edi, eax
cmp edi, 0xffff
jbe 0x14037e899
add edi, 0xffff0000
mov ecx, edi
shr ecx, 0xa
or ecx, 0xd800
and edi, 0x3ff
or edi, 0xdc00
mov r12d, edi
mov eax, 2
mov edi, ecx
jmp 0x14037e8a1
shl rax, 0x20
or rax, 2
mov rdx, qword [rbp + 0x18]
mov qword [rdx + 8], rax
mov qword [rdx], 1
test r13, r13
je 0x14037ecb7
add r13, r13
mov r8d, 2
mov rdx, r13
call fcn.1400938b0
mov rdx, qword [rbp - 8]
test rdx, rdx
je 0x14037ecd3
mov rcx, qword [rbp - 0x10]
mov r8, rdx
not r8
shr r8, 0x3f
call fcn.1400938b0
cmp r12, 0xffffffffffffffff
je 0x14037ece2
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
movaps xmm6, xmmword [rbp + 0x90]
add rsp, 0x128
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
test r13, r13
je 0x14037ed16
add r13, r13
mov r8d, 2
mov rcx, rdi
mov rdx, r13
call fcn.1400938b0
mov qword [rbp + 0x28], 0
mov word [rbp + 0x44], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x34], xmm0
movzx eax, byte [rbp + 0x85]
mov byte [rbp + 0x41], al
xor al, 1
mov byte [rbp + 0x40], al
mov dword [rbp - 0x30], 0x18
mov qword [rbp - 0x28], 0
mov dword [rbp - 0x20], 1
lea rax, [rbp - 0x30]
mov qword [rbp + 0x20], rax
mov rsi, qword [rbp - 0x10]
mov rdx, qword [rbp]
mov qword [rbp - 0x40], r12
mov byte [rbp + 0x87], 1
mov byte [rbp + 0x86], 0
lea r8, [rbp + 0x20]
mov rcx, rsi
call fcn.14037b8c0
test rax, rax
je 0x14037eda4
mov rax, qword [rbp + 0x18]
mov qword [rax + 8], rdx
mov qword [rax], 1
mov rdx, qword [rbp - 8]
test rdx, rdx
jne 0x14037ecc0
jmp 0x14037ecd3
mov rax, qword [rbp + 0x18]
mov qword [rax + 8], r12
mov qword [rax + 0x10], rdx
mov qword [rax], 0
mov rdx, qword [rbp - 8]
test rdx, rdx
je 0x14037ece2
mov r8, rdx
not r8
shr r8, 0x3f
mov rcx, rsi
call fcn.1400938b0
jmp 0x14037ece2
test rdx, rdx
mov r13, qword [rbp + 0x10]
jne 0x14037edef
mov qword [rbp + 0x68], r13
call fcn.14038e8a0
jmp 0x14037ee2d
mov qword [rbp + 0x68], r13
mov rcx, r9
call fcn.1403b6040
jmp 0x14037ee2d
mov byte [rbp + 0x87], 1
mov byte [rbp + 0x86], 1
mov edx, 2
mov rcx, rbx
call fcn.1403b6040
jmp 0x14037ee2d
mov byte [rbp + 0x87], 1
mov byte [rbp + 0x86], 1
call fcn.14038e8a0
ud2