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

Disassembly:
push rbp
sub rsp, 0x90
lea rbp, [rsp + 0x80]
cmp dword [0x140027850], 0x270
jl 0x14000fa88
mov dword [rbp + 8], 0
mov eax, dword [rbp + 8]
mov dword [rbp + 4], eax
mov ecx, 0x5eb98e81
call fcn.14001cd30
mov ecx, eax
mov eax, dword [rbp + 4]
cmp eax, ecx
jge 0x14000f900
movsxd rcx, dword [rbp + 8]
lea rax, [0x140028bb0]
mov eax, dword [rax + rcx*4]
and eax, 0x80000000
mov dword [rbp - 0xc], eax
mov eax, dword [rbp + 8]
add eax, 1
movsxd rcx, eax
lea rax, [0x140028bb0]
mov eax, dword [rax + rcx*4]
xor eax, 0xffffffff
mov dword [rbp - 0x10], eax
mov ecx, 0x7fffffff
mov edx, 0xffffffff
call fcn.14001c470
mov edx, dword [rbp - 0x10]
mov ecx, dword [rbp - 0xc]
mov r8d, eax
mov eax, 0xffffffff
xor eax, 0x1fd4d92e
or edx, r8d
or eax, 0x1fd4d92e
xor edx, 0xffffffff
and edx, eax
mov eax, ecx
and eax, edx
xor ecx, edx
or eax, ecx
mov dword [rbp + 0xc], eax
mov ecx, dword [rbp + 8]
xor eax, eax
sub eax, ecx
mov dword [rbp - 8], eax
mov ecx, 0x5eb98fef
call fcn.14001cd30
mov ecx, dword [rbp - 8]
xor edx, edx
sub edx, eax
call fcn.1400080a0
mov ecx, eax
xor eax, eax
sub eax, ecx
movsxd rcx, eax
lea rax, [0x140028bb0]
mov eax, dword [rax + rcx*4]
mov dword [rbp], eax
mov eax, dword [rbp + 0xc]
mov dword [rbp - 4], eax
mov ecx, 0x5eb98e63
call fcn.14001cd30
mov ecx, eax
mov eax, dword [rbp - 4]
shr eax, cl
mov ecx, dword [rbp]
xor ecx, eax
mov eax, dword [rbp + 0xc]
and eax, 1
mov eax, eax
mov edx, eax
lea rax, [0x140026264]
mov edx, dword [rax + rdx*4]
call fcn.14001c470
mov edx, eax
movsxd rcx, dword [rbp + 8]
lea rax, [0x140028bb0]
mov dword [rax + rcx*4], edx
mov eax, dword [rbp + 8]
sub eax, 0x2c6d3a48
add eax, 1
add eax, 0x2c6d3a48
mov dword [rbp + 8], eax
jmp 0x14000f7e7
jmp 0x14000f902
cmp dword [rbp + 8], 0x26f
jge 0x14000f9ff
movsxd rcx, dword [rbp + 8]
lea rax, [0x140028bb0]
mov eax, dword [rax + rcx*4]
and eax, 0x80000000
mov ecx, dword [rbp + 8]
add ecx, 1
movsxd rdx, ecx
lea rcx, [0x140028bb0]
mov ecx, dword [rcx + rdx*4]
and ecx, 0x7fffffff
or eax, ecx
mov dword [rbp + 0xc], eax
mov ecx, dword [rbp + 8]
mov edx, 0xffffff1d
call fcn.1400080a0
movsxd rcx, eax
lea rax, [0x140028bb0]
mov ecx, dword [rax + rcx*4]
mov dword [rbp - 0x20], ecx
mov eax, dword [rbp + 0xc]
shr eax, 1
mov dword [rbp - 0x1c], eax
mov edx, 0xffffffff
call fcn.14001c470
mov ecx, dword [rbp - 0x20]
mov edx, dword [rbp - 0x1c]
mov r8d, eax
mov eax, edx
and eax, r8d
mov r9d, edx
xor r9d, 0xffffffff
mov r8d, ecx
and r8d, r9d
or eax, r8d
mov dword [rbp - 0x18], eax
call fcn.14001c470
mov eax, dword [rbp + 0xc]
mov dword [rbp - 0x14], eax
mov ecx, 0x5eb98e63
call fcn.14001cd30
mov edx, dword [rbp - 0x18]
mov ecx, eax
mov eax, dword [rbp - 0x14]
and eax, ecx
mov eax, eax
mov ecx, eax
lea rax, [0x140026264]
xor edx, dword [rax + rcx*4]
movsxd rcx, dword [rbp + 8]
lea rax, [0x140028bb0]
mov dword [rax + rcx*4], edx
mov eax, dword [rbp + 8]
mov dword [rbp - 0x28], eax
xor ecx, ecx
mov edx, 1
call fcn.140014a50
mov ecx, dword [rbp - 0x28]
mov edx, eax
mov eax, ecx
sub eax, edx
mov dword [rbp - 0x24], eax
mov edx, 1
call fcn.1400080a0
mov eax, dword [rbp - 0x24]
mov dword [rbp + 8], eax
jmp 0x14000f902
mov ecx, dword [0x14002956c]
mov edx, 0x80000000
call fcn.14001de50
mov dword [rbp - 0x34], eax
mov ecx, dword [0x140028bb0]
mov edx, 0x7fffffff
call fcn.14001de50
mov ecx, eax
mov eax, dword [rbp - 0x34]
or eax, ecx
mov dword [rbp + 0xc], eax
mov ecx, dword [0x1400291e0]
mov edx, dword [rbp + 0xc]
shr edx, 1
call fcn.14001c470
mov ecx, eax
mov dword [rbp - 0x2c], ecx
mov eax, dword [rbp + 0xc]
and eax, 1
mov eax, eax
mov edx, eax
lea rax, [0x140026264]
mov eax, dword [rax + rdx*4]
mov dword [rbp - 0x30], eax
mov edx, 0xffffffff
call fcn.14001c470
mov edx, dword [rbp - 0x30]
mov ecx, dword [rbp - 0x2c]
mov r8d, eax
mov eax, edx
and eax, r8d
xor edx, 0xffffffff
and ecx, edx
or eax, ecx
mov dword [0x14002956c], eax
mov dword [0x140027850], 0
mov eax, dword [0x140027850]
mov ecx, eax
add ecx, 1
mov dword [0x140027850], ecx
movsxd rcx, eax
lea rax, [0x140028bb0]
mov eax, dword [rax + rcx*4]
mov dword [rbp + 0xc], eax
mov eax, dword [rbp + 0xc]
shr eax, 0xb
xor eax, dword [rbp + 0xc]
mov dword [rbp + 0xc], eax
mov eax, dword [rbp + 0xc]
shl eax, 7
mov dword [rbp - 0x54], eax
mov ecx, 0xc395d8e2
call fcn.14001cd30
mov ecx, eax
mov eax, dword [rbp - 0x54]
and eax, ecx
mov dword [rbp - 0x3c], eax
mov ecx, dword [rbp + 0xc]
mov dword [rbp - 0x50], ecx
mov edx, 0xffffffff
call fcn.14001c470
mov ecx, dword [rbp - 0x3c]
mov edx, eax
mov eax, dword [rbp - 0x50]
and edx, 0x1346f5ce
mov dword [rbp - 0x44], edx
mov edx, 0xffffffff
xor edx, 0x1346f5ce
mov dword [rbp - 0x48], edx
and eax, edx
mov dword [rbp - 0x40], eax
mov edx, 0xffffffff
call fcn.14001c470
mov dword [rbp - 0x4c], eax
mov ecx, 0x4dff7bac
call fcn.14001cd30
mov edx, dword [rbp - 0x4c]
mov r9d, dword [rbp - 0x48]
mov ecx, dword [rbp - 0x44]
mov r8d, dword [rbp - 0x40]
mov r10d, eax
mov eax, dword [rbp - 0x3c]
and edx, r10d
and eax, r9d
or ecx, r8d
or edx, eax
call fcn.14001c470
mov dword [rbp + 0xc], eax
mov eax, dword [rbp + 0xc]
mov dword [rbp - 0x38], eax
mov ecx, 0x5eb98e6d
call fcn.14001cd30
mov ecx, eax
mov eax, dword [rbp - 0x38]
shl eax, cl
and eax, 0xefc60000
xor eax, dword [rbp + 0xc]
mov dword [rbp + 0xc], eax
mov eax, dword [rbp + 0xc]
shr eax, 0x12
xor eax, dword [rbp + 0xc]
mov dword [rbp + 0xc], eax
mov eax, dword [rbp + 0xc]
add rsp, 0x90
pop rbp
ret