Function at 0x1400c1df0
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, 0x638
mov rsi, rcx
mov rax, qword [0x1401c1028]
xor rax, rsp
mov qword [rsp + 0x630], rax
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 0x1400c2213
mov rcx, qword [0x1401d33a8]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [0x1401b4100]
test al, al
je 0x1400c21ee
mov r12, qword [rsi + 0x10]
mov rdi, qword [r12 + 0x48]
sub rdi, qword [r12 + 0x40]
je 0x1400c1eda
sar rdi, 4
mov rax, 0xffffffffffffffff
xor edx, edx
div rdi
mov rbx, 0xfffffffffffffffe
sub rbx, rdx
movabs r14, 0xaaaaaaaaaaaaaaaa
lea rsi, [rsp + 0x58]
nop word cs:[rax + rax]
mov qword [rsp + 0x58], r14
mov rcx, rsi
mov edx, 8
call sub.ADVAPI32.dll_SystemFunction036
test al, al
je 0x1400c22b9
mov rax, qword [rsp + 0x58]
cmp rax, rbx
ja 0x1400c1ea0
mov rcx, rax
or rcx, rdi
shr rcx, 0x20
je 0x1400c1ede
xor edx, edx
div rdi
mov rsi, rdx
jmp 0x1400c1ee4
xor esi, esi
jmp 0x1400c1ee4
xor edx, edx
div edi
mov esi, edx
lea rax, [0x1401d32f0]
mov qword [rsp + 0x50], rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], 0
movzx eax, byte [r12 + 0x58]
test al, 1
jne 0x1400c2035
movabs r13, 0xffffff000
mov rbp, qword [r12 + 0x40]
shl rsi, 4
add rsi, rbp
mov qword [rsp + 0x28], rsi
cmp rsi, qword [r12 + 0x48]
je 0x1400c2058
mov rbp, rsi
jmp 0x1400c1f62
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x28]
call fcn.1400c4f20
mov qword [rsp + 0x38], rax
add rbp, 0x10
mov qword [rsp + 0x28], rbp
cmp rbp, qword [r12 + 0x48]
je 0x1400c2048
movzx eax, byte [rbp + 9]
test al, 1
jne 0x1400c1f4e
movzx eax, byte [rbp + 8]
test al, 1
jne 0x1400c2010
mov byte [rbp + 8], 1
mov r15, qword [rbp]
mov r8d, 0x5d8
lea rdi, [rsp + 0x58]
mov rcx, rdi
mov dl, 0xaa
call fcn.14014ead0
mov rcx, rdi
mov rdx, r15
call fcn.1400c53f0
mov rax, qword [rsp + 0x628]
test rax, rax
je 0x1400c2004
lea rax, [rax + rax*2]
lea rbx, [rsp + rax*4]
add rbx, 0x58
mov r14, qword [rsp + 0x50]
lea rdi, [rsp + 0x58]
nop word cs:[rax + rax]
mov edx, dword [rdi]
mov eax, dword [rdi + 4]
shl rdx, 3
or rdx, r15
mov rcx, qword [r14 + 0xb8]
lea r8, [rax*8 + 0xfff]
and r8, r13
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x1401b4100]
add rdi, 0xc
cmp rdi, rbx
jne 0x1400c1fd0
mov byte [rbp + 9], 1
jmp 0x1400c1f4e
mov rax, qword [rsp + 0x38]
cmp rax, qword [rsp + 0x40]
jae 0x1400c1f3a
test rax, rax
je 0x1400c22bf
mov qword [rax], rbp
add rax, 8
jmp 0x1400c1f49
mov rsi, qword [rsp + 0x30]
test rsi, rsi
jne 0x1400c21a9
jmp 0x1400c21ee
mov rbp, qword [r12 + 0x40]
jmp 0x1400c2058
mov byte [rbp + 9], 1
add rbp, 0x10
mov qword [rsp + 0x28], rbp
cmp rbp, rsi
je 0x1400c2157
movzx eax, byte [rbp + 9]
test al, 1
jne 0x1400c2054
movzx eax, byte [rbp + 8]
test al, 1
jne 0x1400c2110
mov byte [rbp + 8], 1
mov r15, qword [rbp]
mov r8d, 0x5d8
lea rdi, [rsp + 0x58]
mov rcx, rdi
mov dl, 0xaa
call fcn.14014ead0
mov rcx, rdi
mov rdx, r15
call fcn.1400c53f0
mov rax, qword [rsp + 0x628]
test rax, rax
je 0x1400c2050
lea rax, [rax + rax*2]
lea rbx, [rsp + rax*4]
add rbx, 0x58
mov r14, qword [rsp + 0x50]
lea rdi, [rsp + 0x58]
nop word cs:[rax + rax]
mov edx, dword [rdi]
mov eax, dword [rdi + 4]
shl rdx, 3
or rdx, r15
mov rcx, qword [r14 + 0xb8]
lea r8, [rax*8 + 0xfff]
and r8, r13
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x1401b4100]
add rdi, 0xc
cmp rdi, rbx
jne 0x1400c20d0
jmp 0x1400c2050
mov rax, qword [rsp + 0x38]
cmp rax, qword [rsp + 0x40]
jae 0x1400c213a
test rax, rax
je 0x1400c22bc
mov qword [rax], rbp
add rax, 8
mov qword [rsp + 0x38], rax
add rbp, 0x10
jmp 0x1400c2058
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x28]
call fcn.1400c4f20
mov qword [rsp + 0x38], rax
add rbp, 0x10
jmp 0x1400c2058
mov rsi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
cmp rsi, rbx
je 0x1400c219e
lea rdi, [rsp + 0x50]
mov r14, rsi
nop
mov r15, qword [r14]
movzx eax, byte [r15 + 9]
test al, 1
je 0x1400c2187
add r14, 8
cmp r14, rbx
jne 0x1400c2170
jmp 0x1400c219e
mov byte [r15 + 8], 1
mov rdx, qword [r15]
mov rcx, rdi
call fcn.1400c5330
mov byte [r15 + 9], 1
jmp 0x1400c217c
mov byte [r12 + 0x58], 1
test rsi, rsi
je 0x1400c21ee
mov rax, qword [rsp + 0x38]
nop
cmp rax, rsi
je 0x1400c21be
add rax, 0xfffffffffffffff8
jne 0x1400c21b0
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 0x1400c2249
lea rcx, [0x1401d7780]
mov rdx, rsi
call fcn.1400b4e20
mov rcx, qword [rsp + 0x630]
xor rcx, rsp
call fcn.14014c9b0
nop
add rsp, 0x638
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x1401d33c0]
call fcn.14014b600
cmp dword [0x1401d33c0], 0xffffffff
jne 0x1400c1e3d
lea rcx, [0x1401d32f0]
call fcn.1400c3b30
lea rcx, [0x1401d33c0]
call fcn.14014b698
jmp 0x1400c1e3d
lea rcx, [0x1401d9140]
call fcn.14014b600
cmp dword [0x1401d9140], 0xffffffff
jne 0x1400c21df
mov dword [rsp + 0x69], 0xaaaaaa
mov word [rsp + 0x6d], 0xaaaa
mov byte [rsp + 0x6f], 0xaa
movabs rax, 0xaaaaaa0000000000
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 0
mov byte [rsp + 0x68], 0
mov dword [rsp + 0x70], 0
lea rcx, [0x1401d7780]
lea rdx, [rsp + 0x58]
call fcn.1400b3a50
lea rcx, [0x1401d9140]
call fcn.14014b698
jmp 0x1400c21df
int3
int3
int3