Function at 0x140094210
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, 0x118
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x80], xmm6
mov qword [rbp + 0x78], 0xfffffffffffffffe
mov byte [rbp + 0x74], r8b
mov qword [rbp + 0x48], rcx
mov byte [rbp + 0x75], dl
movzx eax, dl
mov ecx, 0x40080002
sub ecx, eax
mov dword [rbp + 0x44], ecx
xor r15d, r15d
mov dword [rbp + 0x60], 8
mov dil, 1
xorps xmm6, xmm6
lea r13, [rbp - 0x10]
mov r12, qword [sym.imp.bcrypt.dll_BCryptGenRandom]
xor eax, eax
mov qword [rbp - 0x18], rax
jmp 0x14009428c
mov r15b, 1
xor edi, edi
mov rsi, qword [rbp + 0x68]
mov rbx, r14
call qword [sym.imp.kernel32.dll_GetCurrentProcessId]
mov dword [rbp + 0x40], eax
jmp 0x1400942ab
mov rax, qword [rbp - 0x10]
xchg qword [0x140140728], rax
mov rax, qword [0x140140728]
test rax, rax
jne 0x1400942f0
movaps xmmword [rbp - 0x10], xmm6
xor ecx, ecx
mov rdx, r13
mov r8d, 0x10
mov r9d, 2
call r12
test eax, eax
jns 0x1400942a0
mov qword [rbp + 0x58], rsi
mov qword [rbp + 0x50], rbx
mov byte [rbp + 0x77], r15b
mov byte [rbp + 0x76], 1
call fcn.1400a1ab0
jmp 0x1400942a4
mov eax, 1
lock xadd qword [0x140140728], rax
mov qword [rbp - 0x20], rax
lea rax, [rbp + 0x40]
mov qword [rbp + 0x20], rax
lea rax, [0x1400b7f00]
mov qword [rbp + 0x28], rax
lea rax, [rbp - 0x20]
mov qword [rbp + 0x30], rax
lea rax, [fcn.1400b8150]
mov qword [rbp + 0x38], rax
lea rax, [0x1400fdf78]
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], 2
mov qword [rbp + 0x10], 0
lea rax, [rbp + 0x20]
mov qword [rbp], rax
mov qword [rbp + 8], 2
mov qword [rbp + 0x58], rsi
mov qword [rbp + 0x50], rbx
mov byte [rbp + 0x77], r15b
mov byte [rbp + 0x76], 1
lea rcx, [rbp - 0x40]
mov rdx, r13
call fcn.1400b61c0
mov r14, qword [rbp - 0x40]
mov rdx, qword [rbp - 0x38]
mov r15, qword [rbp - 0x30]
test rsi, rsi
sete al
or dil, al
test dil, 1
jne 0x1400943a1
mov r8d, 1
mov rcx, rbx
mov rdi, rdx
mov rdx, rsi
call fcn.14007d430
mov rdx, rdi
lea rax, [r14 + r15]
mov qword [rbp - 0x10], r14
mov qword [rbp - 8], rax
mov word [rbp], 0
mov dword [rbp + 8], 1
mov qword [rbp + 0x68], rdx
mov qword [rbp + 0x58], rdx
mov qword [rbp + 0x50], r14
mov byte [rbp + 0x77], 1
mov byte [rbp + 0x76], 1
lea rcx, [rbp + 0x20]
mov rdx, r13
call fcn.1400a04e0
mov rbx, qword [rbp + 0x20]
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x10000
mov dword [rsp + 0x20], 0x10000
mov rcx, rbx
mov edx, dword [rbp + 0x44]
mov r8d, dword [rbp + 0x60]
mov r9d, 1
call qword [sym.imp.kernel32.dll_CreateNamedPipeW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x1400944fa
mov rax, qword [rbp - 0x18]
lea edi, [rax + 1]
call qword [sym.imp.kernel32.dll_GetLastError]
cmp edi, 0xa
jge 0x140094485
cmp eax, 5
jne 0x140094450
mov eax, edi
mov qword [rbp - 0x18], rax
jmp 0x140094462
cmp dword [rbp + 0x60], 0
je 0x140094485
mov dword [rbp + 0x60], 0
cmp eax, 0x57
jne 0x140094485
mov rdx, qword [rbp + 0x28]
test rdx, rdx
je 0x140094280
add rdx, rdx
mov r8d, 2
mov rcx, rbx
call fcn.14007d430
jmp 0x140094280
shl rax, 0x20
or rax, 2
mov rdi, qword [rbp + 0x48]
mov qword [rdi + 8], rax
mov qword [rdi], 1
mov rdx, qword [rbp + 0x28]
test rdx, rdx
je 0x1400944b6
add rdx, rdx
mov r8d, 2
mov rcx, rbx
call fcn.14007d430
mov rdx, qword [rbp + 0x68]
test rdx, rdx
je 0x1400944cd
mov r8d, 1
mov rcx, r14
call fcn.14007d430
cmp rsi, 0xffffffffffffffff
je 0x1400944dc
mov rcx, rsi
call qword [sym.imp.kernel32.dll_CloseHandle]
mov rax, rdi
movaps xmm6, xmmword [rbp + 0x80]
add rsp, 0x118
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rdx, qword [rbp + 0x28]
test rdx, rdx
je 0x140094514
add rdx, rdx
mov r8d, 2
mov rcx, rbx
call fcn.14007d430
mov dword [rbp - 0x10], 0
mov dword [rbp + 0x10], 0
mov word [rbp + 0x14], 0
movzx eax, byte [rbp + 0x75]
mov byte [rbp + 0x11], al
xor al, 1
mov byte [rbp + 0x10], al
xorps xmm0, xmm0
movups xmmword [rbp], xmm0
movzx eax, byte [rbp + 0x74]
mov dword [rbp + 0x20], 0x18
mov qword [rbp + 0x28], 0
mov dword [rbp + 0x30], eax
lea rax, [rbp + 0x20]
mov qword [rbp - 8], rax
mov rax, qword [rbp + 0x68]
mov qword [rbp + 0x58], rax
mov qword [rbp + 0x50], r14
mov qword [rbp - 0x28], rsi
mov byte [rbp + 0x77], 1
mov byte [rbp + 0x76], 0
lea r8, [rbp - 0x10]
mov rcx, r14
mov rdx, r15
call fcn.14008d4b0
test rax, rax
je 0x1400945a6
mov rdi, qword [rbp + 0x48]
mov qword [rdi + 8], rdx
mov qword [rdi], 1
mov rdx, qword [rbp + 0x68]
test rdx, rdx
jne 0x1400944bf
jmp 0x1400944cd
mov rdi, qword [rbp + 0x48]
mov qword [rdi + 8], rsi
mov qword [rdi + 0x10], rdx
mov qword [rdi], 0
mov rdx, qword [rbp + 0x68]
test rdx, rdx
je 0x1400944dc
mov r8d, 1
mov rcx, r14
call fcn.14007d430
jmp 0x1400944dc