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

Disassembly:
sub rsp, 0x98
mov eax, dword [0x18002a2cc]
mov dword [rsp + 0x8c], eax
mov ecx, 0x31f2018
call fcn.18001ca10
mov ecx, eax
mov eax, dword [rsp + 0x8c]
cmp eax, ecx
jl 0x18000b5e1
mov dword [rsp + 0x90], 0
cmp dword [rsp + 0x90], 0xe3
jge 0x18000b3cf
movsxd rcx, dword [rsp + 0x90]
lea rax, [0x18002ad40]
mov eax, dword [rax + rcx*4]
and eax, 0x80000000
mov dword [rsp + 0x74], eax
mov ecx, dword [rsp + 0x90]
xor edx, edx
sub edx, 1
mov eax, ecx
sub eax, edx
mov dword [rsp + 0x78], eax
mov edx, 1
call fcn.18001ab30
mov ecx, dword [rsp + 0x74]
mov eax, dword [rsp + 0x78]
movsxd rdx, eax
lea rax, [0x18002ad40]
mov edx, dword [rax + rdx*4]
and edx, 0x7fffffff
mov eax, ecx
and eax, edx
xor ecx, edx
or eax, ecx
mov dword [rsp + 0x94], eax
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0x7c], eax
mov ecx, 0xab0fbd9c
call fcn.18001ca10
mov ecx, eax
mov eax, dword [rsp + 0x7c]
sub eax, ecx
mov dword [rsp + 0x80], eax
mov ecx, 0x31f23e5
call fcn.18001ca10
mov ecx, dword [rsp + 0x80]
add ecx, eax
mov edx, 0xa8109ff4
call fcn.18001ab30
movsxd rcx, eax
lea rax, [0x18002ad40]
mov eax, dword [rax + rcx*4]
mov ecx, dword [rsp + 0x94]
shr ecx, 1
xor eax, ecx
mov dword [rsp + 0x84], eax
mov eax, dword [rsp + 0x94]
mov dword [rsp + 0x88], eax
mov ecx, 0x31f2269
call fcn.18001ca10
mov edx, dword [rsp + 0x84]
mov ecx, eax
mov eax, dword [rsp + 0x88]
and eax, ecx
mov eax, eax
mov ecx, eax
lea rax, [0x18002a274]
xor edx, dword [rax + rcx*4]
movsxd rcx, dword [rsp + 0x90]
lea rax, [0x18002ad40]
mov dword [rax + rcx*4], edx
mov eax, dword [rsp + 0x90]
add eax, 1
mov dword [rsp + 0x90], eax
jmp 0x18000b29a
jmp 0x18000b3d1
cmp dword [rsp + 0x90], 0x26f
jge 0x18000b55e
movsxd rcx, dword [rsp + 0x90]
lea rax, [0x18002ad40]
mov eax, dword [rax + rcx*4]
xor eax, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x80000000
mov edx, 0xffffffff
xor edx, 0xd92492c6
mov dword [rsp + 0x44], edx
or eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, 0xda3bb0ae
call fcn.18001ca10
mov edx, dword [rsp + 0x44]
mov ecx, eax
mov eax, dword [rsp + 0x48]
or ecx, edx
xor eax, 0xffffffff
and eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x90]
add eax, 1
movsxd rcx, eax
lea rax, [0x18002ad40]
mov eax, dword [rax + rcx*4]
mov dword [rsp + 0x4c], eax
mov ecx, 0x7ce0dd97
call fcn.18001ca10
mov ecx, dword [rsp + 0x4c]
mov edx, eax
mov eax, dword [rsp + 0x50]
and ecx, edx
or eax, ecx
mov dword [rsp + 0x94], eax
mov eax, dword [rsp + 0x90]
add eax, 0xffffff1d
movsxd rcx, eax
lea rax, [0x18002ad40]
mov ecx, dword [rax + rcx*4]
mov edx, dword [rsp + 0x94]
shr edx, 1
call fcn.180019840
mov dword [rsp + 0x58], eax
mov ecx, dword [rsp + 0x94]
and ecx, 1
mov ecx, ecx
mov edx, ecx
lea rcx, [0x18002a274]
mov ecx, dword [rcx + rdx*4]
mov dword [rsp + 0x5c], ecx
xor eax, 0xffffffff
mov dword [rsp + 0x54], eax
mov ecx, 0x63345830
call fcn.18001ca10
mov r8d, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x58]
mov edx, eax
mov eax, dword [rsp + 0x5c]
and edx, r8d
mov dword [rsp + 0x68], edx
mov edx, 0xffffffff
xor edx, 0x602b7a58
mov dword [rsp + 0x60], edx
and ecx, edx
mov dword [rsp + 0x6c], ecx
xor eax, 0xffffffff
mov dword [rsp + 0x64], eax
mov ecx, 0x63345830
call fcn.18001ca10
mov ecx, dword [rsp + 0x5c]
mov edx, dword [rsp + 0x60]
mov r8d, eax
mov eax, dword [rsp + 0x64]
and eax, r8d
mov dword [rsp + 0x70], eax
call fcn.18001a890
mov edx, dword [rsp + 0x68]
mov r8d, dword [rsp + 0x6c]
mov ecx, eax
mov eax, dword [rsp + 0x70]
or edx, r8d
or eax, ecx
xor edx, eax
movsxd rcx, dword [rsp + 0x90]
lea rax, [0x18002ad40]
mov dword [rax + rcx*4], edx
mov eax, dword [rsp + 0x90]
add eax, 1
mov dword [rsp + 0x90], eax
jmp 0x18000b3d1
mov eax, dword [0x18002b6fc]
and eax, 0x80000000
mov dword [rsp + 0x38], eax
mov ecx, dword [0x18002ad40]
mov edx, 0x7fffffff
call fcn.18001a890
mov ecx, eax
mov eax, dword [rsp + 0x38]
or eax, ecx
mov dword [rsp + 0x94], eax
mov eax, dword [0x18002b370]
mov ecx, dword [rsp + 0x94]
shr ecx, 1
xor eax, ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x94]
mov dword [rsp + 0x3c], eax
mov ecx, 0x31f2269
call fcn.18001ca10
mov ecx, dword [rsp + 0x3c]
mov edx, eax
mov eax, dword [rsp + 0x40]
and ecx, edx
mov ecx, ecx
mov edx, ecx
lea rcx, [0x18002a274]
xor eax, dword [rcx + rdx*4]
mov dword [0x18002b6fc], eax
mov dword [0x18002a2cc], 0
mov eax, dword [0x18002a2cc]
mov dword [rsp + 0x2c], eax
mov ecx, 0x31f2269
call fcn.18001ca10
mov edx, eax
mov eax, dword [rsp + 0x2c]
mov ecx, eax
add ecx, edx
mov dword [0x18002a2cc], ecx
movsxd rcx, eax
lea rax, [0x18002ad40]
mov eax, dword [rax + rcx*4]
mov dword [rsp + 0x94], eax
mov edx, dword [rsp + 0x94]
shr edx, 0xb
mov ecx, dword [rsp + 0x94]
mov r8d, ecx
xor r8d, 0xffffffff
mov eax, edx
and eax, r8d
xor edx, 0xffffffff
and ecx, edx
or eax, ecx
mov dword [rsp + 0x94], eax
mov eax, dword [rsp + 0x94]
shl eax, 7
and eax, 0x9d2c5680
xor eax, dword [rsp + 0x94]
mov dword [rsp + 0x94], eax
mov eax, dword [rsp + 0x94]
shl eax, 0xf
mov dword [rsp + 0x30], eax
mov ecx, 0xecd92268
call fcn.18001ca10
mov ecx, eax
mov eax, dword [rsp + 0x30]
and eax, ecx
xor eax, dword [rsp + 0x94]
mov dword [rsp + 0x94], eax
mov eax, dword [rsp + 0x94]
mov dword [rsp + 0x34], eax
mov ecx, 0x31f227a
call fcn.18001ca10
mov ecx, eax
mov eax, dword [rsp + 0x34]
shr eax, cl
xor eax, dword [rsp + 0x94]
mov dword [rsp + 0x94], eax
mov eax, dword [rsp + 0x94]
add rsp, 0x98
ret