Function at 0x1400c1a80
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x70
mov rax, qword [0x1401c1028]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov r15, qword [rcx + 0x10]
mov rax, qword [rcx + 0xc8]
movzx ebx, byte [rax + 0x3b]
mov rdi, qword [r15 + 8]
sub rdi, qword [r15]
je 0x1400c1b1a
sar rdi, 4
mov rax, 0xffffffffffffffff
xor edx, edx
div rdi
mov r14, 0xfffffffffffffffe
sub r14, rdx
movabs r12, 0xaaaaaaaaaaaaaaaa
lea rsi, [rsp + 0x48]
nop
mov qword [rsp + 0x48], r12
mov rcx, rsi
mov edx, 8
call sub.ADVAPI32.dll_SystemFunction036
test al, al
je 0x1400c1ddc
mov rax, qword [rsp + 0x48]
cmp rax, r14
ja 0x1400c1ae0
mov rcx, rax
or rcx, rdi
shr rcx, 0x20
je 0x1400c1b1e
xor edx, edx
div rdi
mov rsi, rdx
jmp 0x1400c1b24
xor esi, esi
jmp 0x1400c1b24
xor edx, edx
div edi
mov esi, edx
mov byte [rsp + 0x47], bl
xorps xmm0, xmm0
movaps xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], 0
movzx eax, byte [r15 + 0x18]
test al, 1
jne 0x1400c1bf0
mov r12, qword [r15]
shl rsi, 4
add rsi, r12
mov qword [rsp + 0x48], rsi
cmp rsi, qword [r15 + 8]
je 0x1400c1c06
lea rdi, [rsp + 0x47]
lea rbx, [rsp + 0x20]
lea r14, [rsp + 0x48]
mov r12, rsi
mov r13, rsi
jmp 0x1400c1ba9
mov byte [r13 + 8], 1
mov rdx, qword [r13]
mov rcx, rdi
call fcn.1400c5170
mov byte [r13 + 9], 1
add r13, 0x10
add r12, 0x10
mov qword [rsp + 0x48], r12
cmp r13, qword [r15 + 8]
je 0x1400c1c03
movzx eax, byte [r13 + 9]
test al, 1
jne 0x1400c1b96
movzx eax, byte [r13 + 8]
test al, 1
je 0x1400c1b80
mov rax, qword [rsp + 0x28]
cmp rax, qword [rsp + 0x30]
jae 0x1400c1bde
test rax, rax
je 0x1400c1ddf
mov qword [rax], r12
add rax, 8
mov qword [rsp + 0x28], rax
jmp 0x1400c1b96
mov rcx, rbx
mov rdx, r14
call fcn.1400c4f20
mov qword [rsp + 0x28], rax
jmp 0x1400c1b96
mov rsi, qword [rsp + 0x20]
test rsi, rsi
jne 0x1400c1cfc
jmp 0x1400c1d4e
mov r12, qword [r15]
mov qword [rsp + 0x48], r12
cmp r12, rsi
je 0x1400c1ca3
lea rdi, [rsp + 0x47]
lea rbx, [rsp + 0x20]
lea r14, [rsp + 0x48]
mov r13, r12
jmp 0x1400c1c5a
mov byte [r12 + 8], 1
mov rdx, qword [r12]
mov rcx, rdi
call fcn.1400c5170
mov byte [r12 + 9], 1
add r12, 0x10
mov qword [rsp + 0x48], r12
add r13, 0x10
cmp r12, rsi
je 0x1400c1ca3
movzx eax, byte [r12 + 9]
test al, 1
jne 0x1400c1c48
movzx eax, byte [r12 + 8]
test al, 1
je 0x1400c1c30
mov rax, qword [rsp + 0x28]
cmp rax, qword [rsp + 0x30]
jae 0x1400c1c91
test rax, rax
je 0x1400c1de2
mov qword [rax], r13
add rax, 8
mov qword [rsp + 0x28], rax
jmp 0x1400c1c48
mov rcx, rbx
mov rdx, r14
call fcn.1400c4f20
mov qword [rsp + 0x28], rax
jmp 0x1400c1c48
mov rsi, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x28]
cmp rsi, rbx
je 0x1400c1cf2
lea rdi, [rsp + 0x47]
mov r14, rsi
nop word [rax + rax]
mov r12, qword [r14]
movzx eax, byte [r12 + 9]
test al, 1
je 0x1400c1cd8
add r14, 8
cmp r14, rbx
jne 0x1400c1cc0
jmp 0x1400c1cf2
mov byte [r12 + 8], 1
mov rdx, qword [r12]
mov rcx, rdi
call fcn.1400c5170
mov byte [r12 + 9], 1
jmp 0x1400c1ccd
mov byte [r15 + 0x18], 1
test rsi, rsi
je 0x1400c1d4e
mov rax, qword [rsp + 0x28]
nop word cs:[rax + rax]
cmp rax, rsi
je 0x1400c1d1e
add rax, 0xfffffffffffffff8
jne 0x1400c1d10
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 0x1400c1d6c
lea rcx, [0x1401d7780]
mov rdx, rsi
call fcn.1400b4e20
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.14014c9b0
nop
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x1401d9140]
call fcn.14014b600
cmp dword [0x1401d9140], 0xffffffff
jne 0x1400c1d3f
mov dword [rsp + 0x59], 0xaaaaaa
mov word [rsp + 0x5d], 0xaaaa
mov byte [rsp + 0x5f], 0xaa
movabs rax, 0xaaaaaa0000000000
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 0
mov byte [rsp + 0x58], 0
mov dword [rsp + 0x60], 0
lea rcx, [0x1401d7780]
lea rdx, [rsp + 0x48]
call fcn.1400b3a50
lea rcx, [0x1401d9140]
call fcn.14014b698
jmp 0x1400c1d3f
int3
int3
int3