Function at 0x140069770
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0xa20
mov rax, qword [0x140396c80]
xor rax, rsp
mov qword [rsp + 0xa10], rax
mov rax, qword [0x1403ac690]
nop
test rax, rax
jne 0x140069953
lea r14, [0x1403abdc0]
mov qword [rsp + 0x20], r14
mov rcx, r14
call sub.MSVCP140.dll__Mtx_lock
test eax, eax
jne 0x140069996
cmp dword [0x1403abe0c], 0x7fffffff
je 0x140069981
mov rax, qword [0x1403ac690]
test rax, rax
jne 0x14006994b
mov ecx, 0x13b8
call fcn.1400be430
mov rsi, rax
mov qword [rsp + 0x28], rax
test rax, rax
je 0x14006993f
xor edx, edx
mov r8d, 0x13b8
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
lea rax, vtable.of::random::Engine.0
mov qword [rsi], rax
lea rbx, [rsi + 0x10]
mov qword [rsp + 0x30], rbx
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov dword [rsp + 0x38], eax
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov dword [rsp + 0x3c], eax
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov dword [rsp + 0x40], eax
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov dword [rsp + 0x44], eax
xor ebp, ebp
mov qword [rbx], rbp
mov qword [rbx + 8], rbp
mov qword [rbx + 0x10], rbp
lea rdi, [rsp + 0x38]
mov rdx, qword [rbx + 8]
cmp rdx, qword [rbx + 0x10]
je 0x140069875
mov eax, dword [rdi]
mov dword [rdx], eax
add qword [rbx + 8], 4
jmp 0x140069880
mov r8, rdi
mov rcx, rbx
call fcn.140020330
add rdi, 4
lea rax, [rsp + 0x48]
cmp rdi, rax
jne 0x140069860
mov dword [rsi + 0x13ac], 0xffffffff
mov ecx, 0x1571
mov dword [rsi + 0x2c], ecx
mov edx, 1
lea r8, [rsi + 0x30]
nop dword [rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [r8], ecx
inc rdx
lea r8, [r8 + 4]
cmp rdx, 0x270
jb 0x1400698b0
mov dword [rsi + 0x28], 0x270
lea r8, [rsp + 0xa10]
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.1400699b0
mov rdx, rbp
mov ecx, dword [rsp + rdx*4 + 0x50]
mov dword [rsi + rdx*4 + 0x2c], ecx
mov eax, ecx
or eax, ebp
shr ecx, 0x1f
test rdx, rdx
cmovne ecx, eax
inc rdx
mov ebp, ecx
cmp rdx, 0x270
jb 0x1400698f1
test ecx, ecx
jne 0x14006991f
mov dword [rsi + 0x2c], 0x80000000
mov dword [rsi + 0x28], 0x270
mov byte [rsi + 0x13b0], 0
call fcn.140089fd0
nop
lea rax, vtable.._AUDummy__1____construct___V___Singleton_VEngine_random_of___utils_of__SAXXZ_.0
mov qword [rsi], rax
jmp 0x140069943
xor ebp, ebp
mov esi, ebp
nop
mov qword [0x1403ac690], rsi
mov rcx, r14
call fcn.1400bdfec
mov rcx, qword [rsp + 0xa10]
xor rcx, rsp
call fcn.1400be7c0
lea r11, [rsp + 0xa20]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret
mov dword [0x1403abe0c], 0x7ffffffe
mov ecx, 6
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
int3
mov ecx, 5
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
int3
push rbx
sub rsp, 0x40
call fcn.14006a810
lea rcx, [rsp + 0x58]
mov dword [rsp + 0x30], 0
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r8, qword [rsp + 0x58]
mov rax, qword [rsp + 0x50]
movsd xmm1, qword [rsp + 0x30]
cqo
idiv r8
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x50]
cqo
idiv r8
imul rax, rdx, 0x3b9aca00
cqo
idiv r8
mov qword [rsp + 0x28], rax
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rbx + 0x20], xmm0
movsd qword [rbx + 0x30], xmm1
add rsp, 0x40
pop rbx
jmp 0x140069770