Function at 0x140073de0
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, 0xa08
mov eax, 2
mov r14, r8
mov rdi, rcx
lea rsi, [rsp + 0x30]
mov qword [rsp + 0x30], r8
movabs rcx, 0x5851f42d4c957f2d
shr r14, 0x3e
mov ebx, edx
xor r14, r8
imul r14, rcx
add r14, 1
mov qword [rsi + 8], r14
nop word [rax + rax]
mov r8, r14
lea r9, [rax + 1]
lea rbp, [rax + 2]
shr r8, 0x3e
lea r11, [rax + 3]
lea r13, [rax + 4]
xor r8, r14
lea r15, [rax + 5]
imul r8, rcx
add r8, rax
mov rdx, r8
mov qword [rsi + rax*8], r8
shr rdx, 0x3e
xor rdx, r8
imul rdx, rcx
add rdx, r9
mov r10, rdx
mov qword [rsi + r9*8], rdx
lea r9, [rax + 6]
shr r10, 0x3e
xor r10, rdx
imul r10, rcx
add r10, rbp
mov r12, r10
mov qword [rsi + rbp*8], r10
lea rbp, [rax + 7]
shr r12, 0x3e
xor r12, r10
imul r12, rcx
add r12, r11
mov r14, r12
mov qword [rsi + r11*8], r12
lea r11, [rax + 8]
shr r14, 0x3e
xor r14, r12
imul r14, rcx
add r14, r13
mov rdx, r14
mov qword [rsi + r13*8], r14
lea r13, [rax + 9]
shr rdx, 0x3e
xor rdx, r14
imul rdx, rcx
add rdx, r15
mov r8, rdx
mov qword [rsi + r15*8], rdx
shr r8, 0x3e
xor r8, rdx
imul r8, rcx
add r8, r9
mov r10, r8
mov qword [rsi + r9*8], r8
shr r10, 0x3e
xor r10, r8
imul r10, rcx
add r10, rbp
mov r12, r10
mov qword [rsi + rbp*8], r10
shr r12, 0x3e
add rax, 0xa
xor r12, r10
imul r12, rcx
add r12, r11
mov r14, r12
mov qword [rsi + r11*8], r12
shr r14, 0x3e
xor r14, r12
imul r14, rcx
add r14, r13
mov qword [rsi + r13*8], r14
cmp rax, 0x138
jne 0x140073e30
test ebx, ebx
lea ebp, [rbx + 7]
mov qword [rsp + 0x9f0], 0x138
cmovns ebp, ebx
sar ebp, 3
cmp ebx, 7
jle 0x140074292
movabs r14, 0x5555555555555555
lea ecx, [rbp - 1]
movabs r13, 0x71d67fffeda60000
movabs r12, 0xfff7eee000000000
and ecx, 1
mov dword [rsp + 0x2c], ecx
mov rcx, rsi
call fcn.14050f430
mov rax, qword [rsp + 0x9f0]
mov r10, qword [rdi]
mov r15, qword [rsp + rax*8 + 0x30]
lea rcx, [rax + 1]
mov qword [rsp + 0x9f0], rcx
mov rdx, r15
shr rdx, 0x1d
and rdx, r14
xor r15, rdx
mov r9, r15
shl r9, 0x11
and r9, r13
xor r15, r9
mov r8, r15
shl r8, 0x25
and r8, r12
xor r15, r8
xor r10, r15
shr r15, 0x2b
xor r15, r10
mov qword [rdi], r15
mov r15d, 1
cmp ebp, 1
jle 0x140074056
mov r11d, dword [rsp + 0x2c]
test r11d, r11d
je 0x140074269
mov rax, rcx
cmp rcx, 0x137
ja 0x1400742b8
mov rdx, qword [rsp + rax*8 + 0x30]
mov r11, qword [rdi + r15*8]
lea rcx, [rax + 1]
mov qword [rsp + 0x9f0], rcx
mov r9, rdx
shr r9, 0x1d
and r9, r14
xor rdx, r9
mov r8, rdx
shl r8, 0x11
and r8, r13
xor rdx, r8
mov r10, rdx
shl r10, 0x25
and r10, r12
xor rdx, r10
xor r11, rdx
shr rdx, 0x2b
xor rdx, r11
mov qword [rdi + r15*8], rdx
add r15, 1
cmp ebp, r15d
jg 0x140074269
shl ebp, 3
cmp rcx, 0x137
ja 0x140074294
movabs r14, 0x5555555555555555
mov rdx, qword [rsp + rcx*8 + 0x30]
movabs r12, 0x71d67fffeda60000
movabs r11, 0xfff7eee000000000
mov rsi, rdx
shr rsi, 0x1d
and rsi, r14
xor rdx, rsi
mov r13, rdx
shl r13, 0x11
and r13, r12
xor rdx, r13
mov r15, rdx
shl r15, 0x25
and r15, r11
xor rdx, r15
mov rcx, rdx
shr rcx, 0x2b
xor rdx, rcx
cmp ebx, ebp
jle 0x140074191
movsxd rax, ebp
sub ebx, ebp
add rax, rdi
lea rdi, [rax + rbx]
and ebx, 7
je 0x14007413c
cmp rbx, 1
je 0x14007412d
cmp rbx, 2
je 0x140074123
cmp rbx, 3
je 0x140074119
cmp rbx, 4
je 0x14007410f
cmp rbx, 5
je 0x140074105
cmp rbx, 6
jne 0x1400742a9
xor byte [rax], dl
shr rdx, 8
add rax, 1
xor byte [rax], dl
shr rdx, 8
add rax, 1
xor byte [rax], dl
shr rdx, 8
add rax, 1
xor byte [rax], dl
shr rdx, 8
add rax, 1
xor byte [rax], dl
shr rdx, 8
add rax, 1
xor byte [rax], dl
add rax, 1
shr rdx, 8
cmp rax, rdi
je 0x140074191
mov rbx, rdx
mov rbp, rdx
mov r9, rdx
mov r8, rdx
mov r10, rdx
mov rsi, rdx
xor byte [rax], dl
shr rbx, 8
shr rdx, 0x38
xor byte [rax + 1], bl
shr rbp, 0x10
shr r9, 0x18
xor byte [rax + 7], dl
shr r8, 0x20
xor edx, edx
shr r10, 0x28
xor byte [rax + 2], bpl
shr rsi, 0x30
xor byte [rax + 3], r9b
xor byte [rax + 4], r8b
xor byte [rax + 5], r10b
xor byte [rax + 6], sil
add rax, 8
cmp rax, rdi
jne 0x14007413c
add rsp, 0xa08
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rsi
call fcn.14050f430
mov rcx, qword [rsp + 0x9f0]
mov rax, qword [rsp + rcx*8 + 0x30]
lea rdx, [rcx + 1]
mov r10, qword [rdi + r15*8]
mov qword [rsp + 0x9f0], rdx
mov r11, rdx
mov rcx, rax
shr rcx, 0x1d
and rcx, r14
xor rax, rcx
mov r9, rax
shl r9, 0x11
and r9, r13
xor rax, r9
mov r8, rax
shl r8, 0x25
and r8, r12
xor rax, r8
xor r10, rax
shr rax, 0x2b
xor rax, r10
mov qword [rdi + r15*8], rax
add r15, 1
cmp rdx, 0x137
ja 0x140074280
mov rax, qword [rsp + r11*8 + 0x30]
mov r10, qword [rdi + r15*8]
lea rcx, [r11 + 1]
mov qword [rsp + 0x9f0], rcx
mov rdx, rax
shr rdx, 0x1d
and rdx, r14
xor rax, rdx
mov r9, rax
shl r9, 0x11
and r9, r13
xor rax, r9
mov r8, rax
shl r8, 0x25
and r8, r12
xor rax, r8
xor r10, rax
shr rax, 0x2b
xor rax, r10
mov qword [rdi + r15*8], rax
add r15, 1
cmp ebp, r15d
jle 0x140074056
cmp rcx, 0x137
jbe 0x1400741b8
jmp 0x1400741a8
mov rcx, rsi
call fcn.14050f430
mov r11, qword [rsp + 0x9f0]
jmp 0x140074212
xor ebp, ebp
mov rcx, rsi
call fcn.14050f430
mov rcx, qword [rsp + 0x9f0]
jmp 0x140074066
xor byte [rax], dl
shr rdx, 8
add rax, 1
jmp 0x1400740fb
mov rcx, rsi
call fcn.14050f430
mov rax, qword [rsp + 0x9f0]
jmp 0x140073fff