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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov r14, qword [rcx + 8]
mov r12d, r8d
mov ebp, r8d
mov rdi, rdx
and r12d, 0x3f
shr ebp, 6
mov esi, r8d
mov r13, r14
je 0x14001b240
lea eax, [rbp - 1]
mov ecx, dword [r14 + 0x9c0]
mov r15, rdx
lea rbx, [rdx + rax*8 + 8]
jmp 0x14001b18a
mov rcx, r14
mov qword [rsp + 0x28], r8
call sym.__gmp_mt_recalc_buffer
mov r8, qword [rsp + 0x28]
mov rax, r14
mov ecx, 1
mov dword [r14 + 0x9c0], ecx
mov eax, dword [rax]
add r15, 8
mov edx, eax
shr edx, 0xb
xor edx, eax
mov eax, edx
shl eax, 7
and eax, 0x9d2c5680
xor eax, edx
mov edx, eax
shl edx, 0xf
and edx, 0xefc60000
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
shl rax, 0x20
or rax, r8
mov qword [r15 - 8], rax
cmp rbx, r15
je 0x14001b240
cmp ecx, 0x26f
jg 0x14001b1e8
lea eax, [rcx + 1]
movsxd rcx, ecx
mov dword [r14 + 0x9c0], eax
mov ecx, dword [r14 + rcx*4]
mov edx, ecx
shr edx, 0xb
xor edx, ecx
mov ecx, edx
shl ecx, 7
and ecx, 0x9d2c5680
xor ecx, edx
mov edx, ecx
shl edx, 0xf
and edx, 0xefc60000
xor edx, ecx
mov r8d, edx
shr r8d, 0x12
xor r8d, edx
cmp eax, 0x270
je 0x14001b128
lea ecx, [rax + 1]
cdqe
lea rax, [r14 + rax*4]
jmp 0x14001b142
mov rcx, r14
call sym.__gmp_mt_recalc_buffer
mov eax, dword [r14]
mov dword [r14 + 0x9c0], 1
mov edx, eax
shr edx, 0xb
xor eax, edx
mov edx, eax
shl edx, 7
and edx, 0x9d2c5680
xor eax, edx
mov edx, eax
shl edx, 0xf
and edx, 0xefc60000
xor eax, edx
mov r8d, eax
shr r8d, 0x12
xor r8d, eax
mov eax, 1
lea ecx, [rax + 1]
cdqe
lea rax, [r14 + rax*4]
jmp 0x14001b142
test r12d, r12d
je 0x14001b2ad
and esi, 0x20
movsxd rax, dword [r14 + 0x9c0]
jne 0x14001b2c0
cmp eax, 0x26f
jg 0x14001b37c
lea edx, [rax + 1]
lea r13, [r14 + rax*4]
mov dword [r14 + 0x9c0], edx
mov eax, dword [r13]
mov ecx, r12d
mov ebp, ebp
mov edx, eax
shr edx, 0xb
xor edx, eax
mov eax, edx
shl eax, 7
and eax, 0x9d2c5680
xor eax, edx
mov edx, eax
shl edx, 0xf
and edx, 0xefc60000
xor edx, eax
mov eax, 0xffffffff
mov r8d, edx
shl eax, cl
shr r8d, 0x12
not eax
xor r8d, edx
and eax, r8d
mov qword [rdi + rbp*8], rax
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp eax, 0x26f
jg 0x14001b38e
lea ecx, [rax + 1]
lea rax, [r14 + rax*4]
mov dword [r14 + 0x9c0], ecx
mov edx, dword [rax]
mov ebp, ebp
lea rsi, [rdi + rbp*8]
mov eax, edx
shr eax, 0xb
xor eax, edx
mov edx, eax
shl edx, 7
and edx, 0x9d2c5680
xor edx, eax
mov eax, edx
shl eax, 0xf
and eax, 0xefc60000
xor eax, edx
mov ebx, eax
shr ebx, 0x12
xor ebx, eax
cmp r12d, 0x20
mov qword [rsi], rbx
jbe 0x14001b2ad
cmp ecx, 0x270
je 0x14001b3a3
lea eax, [rcx + 1]
movsxd rcx, ecx
lea r13, [r14 + rcx*4]
mov dword [r14 + 0x9c0], eax
mov eax, dword [r13]
lea ecx, [r12 - 0x20]
mov edx, eax
shr edx, 0xb
xor edx, eax
mov eax, edx
shl eax, 7
and eax, 0x9d2c5680
xor eax, edx
mov edx, eax
shl edx, 0xf
and edx, 0xefc60000
xor edx, eax
mov eax, 0xffffffff
mov r8d, edx
shl eax, cl
shr r8d, 0x12
not eax
xor r8d, edx
and eax, r8d
shl rax, 0x20
or rax, rbx
mov qword [rsi], rax
jmp 0x14001b2ad
mov rcx, r14
call sym.__gmp_mt_recalc_buffer
mov edx, 1
jmp 0x14001b263
mov rcx, r14
call sym.__gmp_mt_recalc_buffer
mov rax, r14
mov ecx, 1
jmp 0x14001b2d2
mov rcx, r14
call sym.__gmp_mt_recalc_buffer
mov eax, 1
jmp 0x14001b327