Function at 0x140025080
Capabilities:
Generate random numbers via rtlgenrandom
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
movaps xmmword [rsp + 0x80], xmm6
mov rdi, rdx
mov rsi, rcx
mov rax, qword [0x140297028]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov ecx, 0x250
call fcn.1401803a4
mov r14, rax
mov rcx, rax
mov rdx, rdi
call fcn.1401bf100
mov ecx, 0x320
call fcn.1401803a4
mov rbx, rax
mov eax, dword [rdi]
mov dword [rsp + 0x70], eax
mov al, byte [rdi + 4]
mov byte [rsp + 0x74], al
mov rax, qword [rdi + 8]
mov qword [rdi + 8], 0
movzx ecx, word [rdi + 0x10]
movups xmm0, xmmword [rdi + 0x18]
movaps xmmword [rsp + 0x50], xmm0
lea rdx, [0x140269ea0]
mov qword [rbx], rdx
lea rdx, [0x140269f80]
mov qword [rbx + 8], rdx
lea rdx, [0x140269fc0]
mov qword [rbx + 0x10], rdx
lea rdx, [0x14026ba10]
mov qword [rbx + 0x18], rdx
mov rdx, qword [r14 + 8]
mov qword [rbx + 0x20], rdx
test rdx, rdx
je 0x140025148
mov r8d, 1
lock xadd dword [rdx], r8d
cmp r8d, 0x7fffffff
je 0x1400256ed
movabs r15, 0xaaaaaaaaaaaaaaaa
mov qword [rbx + 0x28], 2
mov qword [rbx + 0x30], r14
mov edx, dword [rsp + 0x70]
mov dword [rbx + 0x38], edx
mov dl, byte [rsp + 0x74]
mov byte [rbx + 0x3c], dl
mov qword [rbx + 0x40], rax
mov word [rbx + 0x48], cx
movapd xmm0, xmmword [rsp + 0x50]
movupd xmmword [rbx + 0x50], xmm0
xorps xmm6, xmm6
test dl, dl
je 0x1400251de
lea rcx, [rsp + 0x68]
mov qword [rcx], r15
mov edx, 8
call sub.ADVAPI32.dll_SystemFunction036
test al, al
je 0x140025706
movabs rax, 0x1fffffffffffff
and rax, qword [rsp + 0x68]
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mov edx, 0xffffffcb
call fcn.140180ad0
movsd xmm1, qword [0x14025bae0]
xor eax, eax
ucomisd xmm1, xmm0
seta al
lea rcx, [0x14027dc30]
movsd xmm6, qword [rcx + rax*8]
call fcn.1401593e0
test al, al
jne 0x1400251ea
xorps xmm6, xmm6
movsd qword [rbx + 0x60], xmm6
movzx eax, byte [rbx + 0x48]
mov dword [rbx + 0x68], eax
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x1400256f0
mov ecx, 1
lock xadd dword [rax], ecx
cmp ecx, 0x7fffffff
je 0x1400256f7
mov rdx, qword [rbx + 0x20]
mov qword [rbx + 0x70], rax
xorps xmm6, xmm6
movups xmmword [rbx + 0x78], xmm6
mov r14, qword [rbx + 0x40]
mov dword [rbx + 0x88], 0
movups xmmword [rbx + 0x90], xmm6
movups xmmword [rbx + 0xa0], xmm6
movups xmmword [rbx + 0xb0], xmm6
movups xmmword [rbx + 0xc0], xmm6
movups xmmword [rbx + 0xd0], xmm6
movups xmmword [rbx + 0xe0], xmm6
movups xmmword [rbx + 0xf0], xmm6
movups xmmword [rbx + 0xf9], xmm6
test rdx, rdx
je 0x140025286
mov eax, 1
lock xadd dword [rdx], eax
cmp eax, 0x7fffffff
je 0x1400256fa
lea r8, [rbx + 0x38]
lea rcx, [rbx + 0x128]
movabs r12, 0xfffffffc00000000
call fcn.1401594e0
lea rax, [rbx + 0x1d0]
movups xmmword [rbx + 0x1b8], xmm6
xor ecx, ecx
mov qword [rbx + 0x1c8], rcx
mov qword [rbx + 0x1d0], rax
mov qword [rbx + 0x1d8], rax
mov qword [rbx + 0x1e0], rcx
mov dword [rbx + 0x1e8], ecx
lea rax, [rbx + 0x208]
movups xmmword [rbx + 0x1f0], xmm6
mov qword [rbx + 0x200], rcx
mov qword [rbx + 0x208], rax
mov qword [rbx + 0x210], rax
mov qword [rbx + 0x218], rcx
mov dword [rbx + 0x220], ecx
mov rax, r14
and rax, r12
cmp rax, qword [0x1402a6e88]
je 0x14002570f
mov qword [rbx + 0x228], r14
mov qword [rbx + 0x230], 0
mov ecx, 0x40
call fcn.1401803a4
mov r14, rax
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x140025352
mov ecx, 1
lock xadd dword [rax], ecx
cmp ecx, 0x7fffffff
je 0x1400256fd
xorpd xmm0, xmm0
movupd xmmword [r14 + 0x1c], xmm0
movupd xmmword [r14 + 0x10], xmm0
mov qword [r14 + 0x30], rax
lea rax, [0x14026ba88]
mov qword [r14], rax
mov rax, rbx
and rax, r12
cmp rax, qword [0x1402a6e88]
je 0x140025638
mov qword [r14 + 0x38], rbx
mov qword [rbx + 0x238], r14
mov ecx, 0x38
call fcn.1401803a4
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x1400253b6
mov edx, 1
lock xadd dword [rcx], edx
cmp edx, 0x7fffffff
je 0x140025700
xorpd xmm0, xmm0
movupd xmmword [rax + 0x1c], xmm0
movupd xmmword [rax + 0x10], xmm0
mov qword [rax + 0x30], rcx
lea rcx, [0x14026baa8]
mov qword [rax], rcx
mov qword [rbx + 0x240], rax
mov byte [rbx + 0x248], 0
xor eax, eax
mov qword [rbx + 0x250], rax
lea rcx, [rbx + 0x260]
movupd xmmword [rbx + 0x260], xmm0
mov qword [rbx + 0x258], rcx
lea rcx, [rbx + 0x278]
movupd xmmword [rbx + 0x278], xmm0
mov qword [rbx + 0x270], rcx
mov word [rbx + 0x288], 0
lea rcx, [rbx + 0x2e0]
movupd xmmword [rbx + 0x290], xmm0
movupd xmmword [rbx + 0x2a0], xmm0
movupd xmmword [rbx + 0x2b0], xmm0
movupd xmmword [rbx + 0x2c0], xmm0
movupd xmmword [rbx + 0x2d0], xmm0
mov qword [rbx + 0x2e0], rcx
mov qword [rbx + 0x2e8], rcx
mov qword [rbx + 0x2f0], rax
mov dword [rbx + 0x2f8], 0
mov qword [rbx + 0x300], rax
cmp byte [rbx + 0x3c], 0
je 0x1400254d3
lea rcx, [rsp + 0x68]
mov qword [rcx], r15
mov edx, 8
call sub.ADVAPI32.dll_SystemFunction036
test al, al
je 0x140025709
lea rcx, [rsp + 0x68]
mov r14, qword [rcx]
mov qword [rcx], r15
mov edx, 8
call sub.ADVAPI32.dll_SystemFunction036
test al, al
je 0x14002570c
mov rax, qword [rsp + 0x68]
cmp byte [rbx + 0x108], 0
mov qword [rbx + 0x110], r14
mov qword [rbx + 0x118], rax
jne 0x1400254d3
mov byte [rbx + 0x108], 1
mov rax, qword [rbx + 0x40]
mov qword [rbx + 0x308], rax
mov ecx, 8
call fcn.1401803a4
mov dword [rax], 0
mov byte [rax + 4], 0
mov qword [rbx + 0x310], rax
test rax, rax
je 0x140025513
mov ecx, 1
lock xadd dword [rax], ecx
cmp ecx, 0x7fffffff
je 0x140025703
mov qword [rbx + 0x318], rbx
test byte [0x14029a5c0], 0x19
jne 0x14002569b
lea r15, [rbx + 0x10]
mov rcx, qword [rbx + 0x1b0]
mov rax, rcx
and rax, r12
cmp rax, qword [0x1402a6e88]
je 0x140025652
mov rax, r15
and rax, r12
cmp rax, qword [0x1402a6e88]
je 0x140025645
mov r14, rbx
add r14, 8
mov qword [rbx + 0x1b0], r15
mov rax, qword [rbx + 0x308]
mov rax, qword [fcn.1401038f0]
lea rcx, [0x14017e8a0]
lea r15, [rsp + 0x68]
cmp rax, rcx
jne 0x14002565c
mov qword [r15], 0
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [r15]
movabs rcx, 0x8637bd05af6
cmp rax, rcx
jg 0x140025674
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402ac9c8]
lea rcx, [rax + 0x1c9c380]
sar rcx, 0x3f
btc rcx, 0x3f
add rax, 0x1c9c380
cmovo rax, rcx
mov qword [rbx + 0x250], rax
mov rcx, qword [rbx + 0x30]
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
mov rdx, r14
call qword [case.0x1401e9be0.0]
mov qword [rsi], rbx
mov rcx, qword [rdi + 8]
and r12, rcx
cmp r12, qword [0x1402a6e88]
je 0x14002566d
mov qword [rdi + 8], 0
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.1401830b0
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov rcx, rbx
call fcn.1400d8270
jmp 0x140025383
mov rcx, r15
call fcn.1400d8270
jmp 0x140025558
call fcn.1400d83a0
jmp 0x140025545
mov rcx, r15
call qword [case.0x1401e9be0.0]
mov rax, qword [r15]
jmp 0x1400255bf
call fcn.1400db1b0
jmp 0x140025607
mov rcx, qword [0x1402ac9c8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1400255bf
lea r14, [rsp + 0x68]
mov rcx, r14
call fcn.1401038f0
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor ecx, ecx
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x38], r14
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rbx
mov dword [rsp + 0x48], 0x800
lea rdx, [0x14029a5c0]
lea r8, [0x14027dc40]
mov cl, 0x4e
xor r9d, r9d
call fcn.140131640
jmp 0x140025527
int3
xor edx, edx
jmp 0x14002521c
int3
int3
int3
int3
int3
int3
int3
int3
mov rcx, r14
call fcn.1400d8270
jmp 0x140025315