Function at 0x14005cd50
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
test rdx, rdx
je 0x14005cff7
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x150
mov r14, rdx
mov r12, rcx
xor r13d, r13d
mov ebp, r13d
mov dword [rsp + 0x30], r13d
mov rcx, rdx
mov r15d, edx
mov eax, 0xffffffff
nop dword [rax]
cmp rcx, rax
cmova r15d, eax
mov edx, r15d
mov rcx, r12
call sub.ADVAPI32.dll_SystemFunction036
test al, al
jne 0x14005cfad
mov dword [rsp + 0x20], 4
mov r9d, 0x7d
lea r8, str.E:.conan7ca4bd1_sourcesexternalcrashpad_third_partymini_chromiummini_chromium_base_rand_util.cc
lea rdx, str.void___cdecl_base::RandBytes_void__unsigned___int64_
lea rcx, [rsp + 0x48]
call fcn.14005b410
mov rdi, rax
or ebp, 1
mov dword [rsp + 0x30], ebp
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
mov rbx, qword [rdx + rax + 0x28]
cmp rbx, 0x16
jl 0x14005cdf2
add rbx, 0xffffffffffffffeb
jmp 0x14005cdf5
mov rbx, r13
mov rdx, rdi
lea rcx, [rsp + 0x38]
call fcn.1400035a0
nop
cmp byte [rsp + 0x40], 0
jne 0x14005ce14
mov esi, 4
jmp 0x14005cf2b
mov rax, qword [rdi]
movsxd rcx, dword [rax + 4]
mov eax, dword [rcx + rdi + 0x18]
and eax, 0x1c0
cmp eax, 0x40
je 0x14005ce8d
test rbx, rbx
jle 0x14005ce8d
nop
mov rax, qword [rdi]
movsxd rcx, dword [rax + 4]
mov r8, qword [rcx + rdi + 0x48]
movzx r9d, byte [rcx + rdi + 0x58]
mov rax, qword [r8 + 0x40]
cmp qword [rax], 0
je 0x14005ce70
mov rcx, qword [r8 + 0x58]
mov eax, dword [rcx]
test eax, eax
jle 0x14005ce70
dec eax
mov dword [rcx], eax
mov rcx, qword [r8 + 0x40]
mov rdx, qword [rcx]
lea rax, [rdx + 1]
mov qword [rcx], rax
mov byte [rdx], r9b
mov eax, r9d
jmp 0x14005ce7c
mov rax, qword [r8]
mov edx, r9d
mov rcx, r8
call qword [rax + 0x18]
cmp eax, 0xffffffff
je 0x14005cf1a
dec rbx
test rbx, rbx
jg 0x14005ce30
mov esi, r13d
mov rax, qword [rdi]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rcx + rdi + 0x48]
mov rax, qword [rcx]
mov r8d, 0x15
lea rdx, str.Check_failed:_success
call qword [rax + 0x48]
cmp rax, 0x15
jne 0x14005cf1a
test rbx, rbx
jle 0x14005cf1f
nop word [rax + rax]
mov rax, qword [rdi]
movsxd rcx, dword [rax + 4]
mov r8, qword [rcx + rdi + 0x48]
movzx r9d, byte [rcx + rdi + 0x58]
mov rax, qword [r8 + 0x40]
cmp qword [rax], rsi
je 0x14005ceff
mov rcx, qword [r8 + 0x58]
mov eax, dword [rcx]
test eax, eax
jle 0x14005ceff
dec eax
mov dword [rcx], eax
mov rcx, qword [r8 + 0x40]
mov rdx, qword [rcx]
lea rax, [rdx + 1]
mov qword [rcx], rax
mov byte [rdx], r9b
mov eax, r9d
jmp 0x14005cf0b
mov rax, qword [r8]
mov edx, r9d
mov rcx, r8
call qword [rax + 0x18]
cmp eax, 0xffffffff
je 0x14005cf1a
dec rbx
test rbx, rbx
jg 0x14005cec0
jmp 0x14005cf1f
mov esi, 4
mov rax, qword [rdi]
movsxd rcx, dword [rax + 4]
mov qword [rcx + rdi + 0x28], r13
mov rax, qword [rdi]
movsxd rcx, dword [rax + 4]
add rcx, rdi
xor r8d, r8d
mov edx, esi
call fcn.140009ae0
nop
mov rbx, qword [rsp + 0x38]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
cmp dword [rcx + rbx + 0x10], 0
jne 0x14005cf85
test byte [rcx + rbx + 0x18], 2
je 0x14005cf85
mov rcx, qword [rcx + rbx + 0x48]
mov rax, qword [rcx]
call qword [rax + 0x68]
cmp eax, 0xffffffff
jne 0x14005cf80
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
add rcx, rbx
xor r8d, r8d
lea edx, [r8 + 4]
call fcn.140009ae0
mov rbx, qword [rsp + 0x38]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rcx + rbx + 0x48]
test rcx, rcx
je 0x14005cf9d
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
lea rdx, [0x14013f2b4]
mov rcx, rdi
call fcn.140001300
nop
test bpl, 1
je 0x14005cfc0
and ebp, 0xfffffffe
lea rcx, [rsp + 0x48]
call fcn.14005b620
mov eax, r15d
sub r14, rax
mov rcx, r14
add r12, rax
mov r15d, r14d
test r14, r14
mov eax, 0xffffffff
jne 0x14005cd90
mov rbx, qword [rsp + 0x1a0]
add rsp, 0x150
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret