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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
lea rbp, [rsp - 0x1340]
mov eax, 0x1440
call fcn.1401e23e0
sub rsp, rax
movaps xmmword [rsp + 0x1430], xmm6
movaps xmmword [rsp + 0x1420], xmm7
mov rax, qword [0x1402a1fc0]
xor rax, rsp
mov qword [rbp + 0x12e0], rax
xor edi, edi
mov rsi, rcx
cmp byte [0x1402a67e8], dil
je 0x14002da3c
cmp byte [0x140369d06], dil
je 0x14002da3c
cmp byte [0x140369e66], dil
jne 0x14002da3c
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x12d4], 0xffffffff
lea edx, [rdi + 1]
mov dword [rsp + 0x54], eax
nop dword [rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x54], eax
inc rdx
cmp rdx, 0x270
jb 0x14002d7a0
movsd xmm2, qword [0x1402576f8]
mov edx, 0x270
movsd xmm4, qword [0x140257830]
mov eax, edx
mov dword [rsp + 0x50], edx
mov r8d, edx
xorps xmm3, xmm3
xorps xmm1, xmm1
mov r10d, 2
nop dword [rax]
cmp r8d, 0x270
jne 0x14002d852
lea r8, [rsp + 0x58]
mov r9d, 0x270
nop dword [rax]
nop dword [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r9, 1
jne 0x14002d810
mov edx, dword [rsp + 0x50]
jmp 0x14002d92f
cmp eax, 0x4e0
jb 0x14002d92f
mov r8, rdi
mov edx, dword [rbp + r8*4 + 0x918]
xor edx, dword [rbp + r8*4 + 0x914]
btr edx, 0x1f
xor edx, dword [rbp + r8*4 + 0x914]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [rbp + r8*4 + 0xf48]
xor ecx, edx
mov dword [rsp + r8*4 + 0x54], ecx
inc r8
cmp r8, 0xe3
jb 0x14002d860
mov r8d, 0xe3
nop dword [rax]
mov edx, dword [rbp + r8*4 + 0x918]
xor edx, dword [rbp + r8*4 + 0x914]
btr edx, 0x1f
xor edx, dword [rbp + r8*4 + 0x914]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [rbp + r8*4 - 0x438]
xor ecx, edx
mov dword [rsp + r8*4 + 0x54], ecx
inc r8
cmp r8, 0x26f
jb 0x14002d8b0
mov edx, dword [rbp + 0x12d0]
xor edx, dword [rsp + 0x54]
btr edx, 0x1f
xor edx, dword [rbp + 0x12d0]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, edx
mov edx, edi
xor ecx, dword [rbp + 0x584]
mov dword [rbp + 0x910], ecx
mov dword [rsp + 0x50], edx
mov eax, edx
xorps xmm0, xmm0
inc edx
mov r8d, edx
mov ecx, dword [rsp + rax*4 + 0x54]
mov eax, ecx
shr eax, 0xb
and eax, dword [rbp + 0x12d4]
xor ecx, eax
mov dword [rsp + 0x50], edx
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
cvtsi2sd xmm0, rax
mov eax, edx
subsd xmm0, xmm3
mulsd xmm0, xmm2
mulsd xmm2, xmm4
addsd xmm1, xmm0
sub r10, 1
jne 0x14002d7f0
divsd xmm1, xmm2
xorps xmm7, xmm7
mulsd xmm1, qword [0x140257768]
addsd xmm1, xmm3
cvtsd2ss xmm7, xmm1
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
movaps xmm0, xmm7
mulsd xmm1, qword [0x140257698]
cvtpd2ps xmm1, xmm1
movss dword [rsp + 0x30], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
mov rdx, qword [rsi + 0x38]
lea rcx, [rsi + 0x30]
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
movss xmm0, dword [0x140257590]
mulsd xmm1, qword [0x140257698]
movss dword [rsp + 0x48], xmm0
cvtpd2ps xmm1, xmm1
movss dword [rsp + 0x34], xmm1
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x30], edi
cmp rdx, qword [rsi + 0x40]
je 0x14002da23
mov qword [rdx], rax
mov qword [rdx + 8], 0x3dcccccd
add qword [rsi + 0x38], 0x10
jmp 0x14002da3c
lea rax, [rsp + 0x30]
lea r9, [rsp + 0x48]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x40]
call fcn.14002dd40
mov rbx, qword [rsi + 0x30]
cmp rbx, qword [rsi + 0x38]
je 0x14002db6a
mov rax, qword [rsi + 0x38]
mov qword [rsp + 0x30], rdi
cmp rbx, rax
je 0x14002db51
movss xmm7, dword [rsp + 0x34]
movaps xmmword [rsp + 0x1410], xmm8
movss xmm8, dword [rsp + 0x30]
movaps xmmword [rsp + 0x1400], xmm9
movss xmm9, dword [0x1402577a4]
movaps xmmword [rsp + 0x13f0], xmm10
movss xmm10, dword [0x1402575fc]
nop word [rax + rax]
movss xmm0, dword [rbx + 0xc]
lea rdi, [rbx + 0x10]
comiss xmm0, dword [rbx + 8]
jb 0x14002dacd
sub rax, rdi
mov rdx, rdi
mov r8, rax
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
add qword [rsi + 0x38], 0xfffffffffffffff0
cmp rbx, qword [rsi + 0x38]
je 0x14002db29
jmp 0x14002db19
xor ecx, ecx
call fcn.14013c7d0
movss xmm1, dword [rbx + 0xc]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm0
cvtpd2ps xmm6, xmm1
movss dword [rbx + 0xc], xmm6
divss xmm6, dword [rbx + 8]
mulss xmm6, xmm9
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
subss xmm6, xmm10
mulss xmm0, xmm6
movaps xmm1, xmm0
mulss xmm0, dword [rbx + 4]
mulss xmm1, dword [rbx]
addss xmm7, xmm0
addss xmm8, xmm1
mov rax, qword [rsi + 0x38]
mov rbx, rdi
cmp rbx, rax
jne 0x14002daa0
movaps xmm10, xmmword [rsp + 0x13f0]
movaps xmm9, xmmword [rsp + 0x1400]
movss dword [rsp + 0x30], xmm8
movaps xmm8, xmmword [rsp + 0x1410]
movss dword [rsp + 0x34], xmm7
mov rcx, qword [rsi + 0x20]
cmp byte [rcx + 0xa1], 0
jne 0x14002db6a
mov rax, qword [rsp + 0x30]
mov qword [rcx + 0xc0], rax
xor eax, eax
mov rcx, qword [rbp + 0x12e0]
xor rcx, rsp
call fcn.1401e0b10
lea r11, [rsp + 0x1440]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop rbp
ret
cmp rdx, 3
je 0x14002dba9
xor eax, eax
ret
jmp 0x14002d710