Function at 0x1400c2450
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov rsi, rcx
mov rax, qword [0x1401c1028]
xor rax, rsp
mov qword [rsp + 0xa0], rax
movabs rbx, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x30], rbx
movaps xmm0, xmmword [0x1401940a0]
movaps xmmword [rsp + 0x20], xmm0
mov eax, dword [0x1401d33c0]
mov ecx, dword [0x1401d0348]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c27e1
movzx ecx, byte [0x1401d33a0]
mov byte [rsp + 0x20], cl
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x38], 0
mov ecx, dword [0x1401d0348]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c281f
mov r12, qword [rsi + 0x10]
mov r14, qword [r12 + 0x28]
sub r14, qword [r12 + 0x20]
je 0x1400c2570
sar r14, 4
mov rax, 0xffffffffffffffff
xor edx, edx
div r14
mov r15, 0xfffffffffffffffe
sub r15, rdx
lea rdi, [rsp + 0x80]
nop word [rax + rax]
mov qword [rsp + 0x80], rbx
mov rcx, rdi
mov edx, 8
call sub.ADVAPI32.dll_SystemFunction036
test al, al
je 0x1400c28e1
mov rax, qword [rsp + 0x80]
cmp rax, r15
ja 0x1400c2530
mov rcx, rax
or rcx, r14
shr rcx, 0x20
je 0x1400c2574
xor edx, edx
div r14
mov rdi, rdx
jmp 0x1400c257b
xor edi, edi
jmp 0x1400c257b
xor edx, edx
div r14d
mov edi, edx
mov qword [rsp + 0x48], rsi
lea rax, [0x1401d32f0]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x20]
mov qword [rsp + 0x58], rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
movzx eax, byte [r12 + 0x38]
test al, 1
jne 0x1400c2660
mov r13, qword [r12 + 0x20]
shl rdi, 4
add rdi, r13
mov qword [rsp + 0x80], rdi
cmp rdi, qword [r12 + 0x28]
je 0x1400c2678
lea rbx, [rsp + 0x48]
lea r14, [rsp + 0x60]
lea r15, [rsp + 0x80]
mov r13, rdi
mov rbp, rdi
jmp 0x1400c261b
mov byte [rbp + 8], 1
mov rdx, qword [rbp]
mov rcx, rbx
call fcn.1400c58b0
mov byte [rbp + 9], 1
add rbp, 0x10
add r13, 0x10
mov qword [rsp + 0x80], r13
cmp rbp, qword [r12 + 0x28]
je 0x1400c2673
movzx eax, byte [rbp + 9]
test al, 1
jne 0x1400c2604
movzx eax, byte [rbp + 8]
test al, 1
je 0x1400c25f0
mov rax, qword [rsp + 0x68]
cmp rax, qword [rsp + 0x70]
jae 0x1400c264e
test rax, rax
je 0x1400c28e4
mov qword [rax], r13
add rax, 8
mov qword [rsp + 0x68], rax
jmp 0x1400c2604
mov rcx, r14
mov rdx, r15
call fcn.1400c4f20
mov qword [rsp + 0x68], rax
jmp 0x1400c2604
mov rdi, qword [rsp + 0x60]
test rdi, rdi
jne 0x1400c276a
jmp 0x1400c27b2
mov r13, qword [r12 + 0x20]
mov qword [rsp + 0x80], r13
cmp r13, rdi
je 0x1400c2712
lea rbx, [rsp + 0x48]
lea r14, [rsp + 0x60]
lea r15, [rsp + 0x80]
mov rbp, r13
jmp 0x1400c26cb
mov byte [r13 + 8], 1
mov rdx, qword [r13]
mov rcx, rbx
call fcn.1400c58b0
mov byte [r13 + 9], 1
add r13, 0x10
mov qword [rsp + 0x80], r13
add rbp, 0x10
cmp r13, rdi
je 0x1400c2712
movzx eax, byte [r13 + 9]
test al, 1
jne 0x1400c26b6
movzx eax, byte [r13 + 8]
test al, 1
je 0x1400c26a0
mov rax, qword [rsp + 0x68]
cmp rax, qword [rsp + 0x70]
jae 0x1400c2700
test rax, rax
je 0x1400c28e7
mov qword [rax], rbp
add rax, 8
mov qword [rsp + 0x68], rax
jmp 0x1400c26b6
mov rcx, r14
mov rdx, r15
call fcn.1400c4f20
mov qword [rsp + 0x68], rax
jmp 0x1400c26b6
mov rdi, qword [rsp + 0x60]
mov r14, qword [rsp + 0x68]
cmp rdi, r14
je 0x1400c275f
lea rbx, [rsp + 0x48]
mov r15, rdi
nop dword [rax]
mov r13, qword [r15]
movzx eax, byte [r13 + 9]
test al, 1
je 0x1400c2747
add r15, 8
cmp r15, r14
jne 0x1400c2730
jmp 0x1400c275f
mov byte [r13 + 8], 1
mov rdx, qword [r13]
mov rcx, rbx
call fcn.1400c58b0
mov byte [r13 + 9], 1
jmp 0x1400c273c
mov byte [r12 + 0x38], 1
test rdi, rdi
je 0x1400c27b2
mov rax, qword [rsp + 0x68]
nop
cmp rax, rdi
je 0x1400c277e
add rax, 0xfffffffffffffff8
jne 0x1400c2770
int3
mov eax, dword [0x1401d9140]
mov ecx, dword [0x1401d0348]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c2855
lea rcx, [0x1401d7780]
mov rdx, rdi
call fcn.1400b4e20
mov rax, qword [rsp + 0x38]
lock add qword [rsi + 0x78], rax
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.14014c9b0
nop
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x1401d33c0]
call fcn.14014b600
mov eax, dword [0x1401d33c0]
cmp eax, 0xffffffff
jne 0x1400c24b8
lea rcx, [0x1401d32f0]
call fcn.1400c3b30
lea rcx, [0x1401d33c0]
call fcn.14014b698
mov eax, dword [0x1401d33c0]
jmp 0x1400c24b8
lea rcx, [0x1401d33c0]
call fcn.14014b600
cmp dword [0x1401d33c0], 0xffffffff
jne 0x1400c24f8
lea rcx, [0x1401d32f0]
call fcn.1400c3b30
lea rcx, [0x1401d33c0]
call fcn.14014b698
jmp 0x1400c24f8
lea rcx, [0x1401d9140]
call fcn.14014b600
cmp dword [0x1401d9140], 0xffffffff
jne 0x1400c27a3
mov dword [rsp + 0x91], 0xaaaaaa
mov word [rsp + 0x95], 0xaaaa
mov byte [rsp + 0x97], 0xaa
movabs rax, 0xaaaaaa0000000000
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 0
mov byte [rsp + 0x90], 0
mov dword [rsp + 0x98], 0
lea rcx, [0x1401d7780]
lea rdx, [rsp + 0x80]
call fcn.1400b3a50
lea rcx, [0x1401d9140]
call fcn.14014b698
jmp 0x1400c27a3
int3
int3
int3