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

Disassembly:
mov eax, dword [rcx]
cmp eax, 0x270
jne 0x1400156a8
vpbroadcastd xmm3, dword [rcx + 4]
mov rax, 0xfffffffffffffd90
vpbroadcastd xmm0, dword [0x14010ee28]
vpbroadcastd xmm1, dword [0x14010ee84]
vpbroadcastd xmm2, dword [0x14010ee88]
nop word cs:[rax + rax]
vmovdqu xmm4, xmmword [rcx + rax*4 + 0x9c8]
vpalignr xmm3, xmm4, xmm3, 0xc
vpand xmm3, xmm3, xmm0
vpand xmm5, xmm4, xmm1
vpor xmm3, xmm5, xmm3
vpsrld xmm3, xmm3, 1
vpslld xmm5, xmm4, 0x1f
vpsrad xmm5, xmm5, 0x1f
vpand xmm5, xmm5, xmm2
vpxor xmm5, xmm5, xmmword [rcx + rax*4 + 0xff8]
vpxor xmm3, xmm5, xmm3
vmovdqu xmmword [rcx + rax*4 + 0x1384], xmm3
vmovdqa xmm3, xmm4
add rax, 4
jne 0x140015650
mov eax, 0x270
jmp 0x1400158ab
cmp eax, 0x4e0
jb 0x1400158ab
vpbroadcastd ymm0, dword [rcx + 0x9c4]
xor eax, eax
vpbroadcastd ymm1, dword [0x14010ee28]
vpbroadcastd ymm2, dword [0x14010ee84]
vpbroadcastd ymm3, dword [0x14010ee88]
nop dword [rax]
vmovdqa ymm4, ymm0
vmovdqu ymm0, ymmword [rcx + rax*4 + 0x9c8]
vperm2i128 ymm4, ymm4, ymm0, 0x21
vpalignr ymm4, ymm0, ymm4, 0xc
vpand ymm4, ymm4, ymm1
vpand ymm5, ymm0, ymm2
vpor ymm4, ymm5, ymm4
vpsrld ymm4, ymm4, 1
vpslld ymm5, ymm0, 0x1f
vpsrad ymm5, ymm5, 0x1f
vpand ymm5, ymm5, ymm3
vpxor ymm5, ymm5, ymmword [rcx + rax*4 + 0xff8]
vpxor ymm4, ymm5, ymm4
vmovdqu ymmword [rcx + rax*4 + 4], ymm4
add rax, 8
cmp rax, 0xe0
jne 0x1400156e0
vextracti128 xmm0, ymm0, 1
vpextrd edx, xmm0, 3
and edx, 0x80000000
mov r8d, dword [rcx + 0xd48]
mov eax, dword [rcx + 0xd4c]
mov r9d, r8d
and r9d, 0x7ffffffe
or r9d, edx
shr r9d, 1
mov edx, r8d
and edx, 1
neg edx
and edx, 0x9908b0df
xor edx, dword [rcx + 0x1378]
xor edx, r9d
mov dword [rcx + 0x384], edx
and r8d, 0x80000000
mov edx, eax
and edx, 0x7ffffffe
or edx, r8d
shr edx, 1
mov r8d, eax
and r8d, 1
neg r8d
and r8d, 0x9908b0df
xor r8d, dword [rcx + 0x137c]
xor r8d, edx
mov dword [rcx + 0x388], r8d
and eax, 0x80000000
mov edx, dword [rcx + 0xd50]
mov r8d, edx
and r8d, 0x7ffffffe
or r8d, eax
shr r8d, 1
vmovd xmm0, edx
and edx, 1
neg edx
and edx, 0x9908b0df
xor edx, dword [rcx + 0x1380]
xor edx, r8d
mov dword [rcx + 0x38c], edx
vpbroadcastd xmm3, xmm0
xor eax, eax
vpbroadcastd xmm0, dword [0x14010ee28]
vpbroadcastd xmm1, dword [0x14010ee84]
vpbroadcastd xmm2, dword [0x14010ee88]
nop word cs:[rax + rax]
vmovdqu xmm4, xmmword [rcx + rax*4 + 0xd54]
vpalignr xmm3, xmm4, xmm3, 0xc
vpand xmm3, xmm3, xmm0
vpand xmm5, xmm4, xmm1
vpor xmm3, xmm5, xmm3
vpsrld xmm3, xmm3, 1
vpslld xmm5, xmm4, 0x1f
vpsrad xmm5, xmm5, 0x1f
vpand xmm5, xmm5, xmm2
vpxor xmm5, xmm5, xmmword [rcx + rax*4 + 4]
vpxor xmm3, xmm5, xmm3
vmovdqu xmmword [rcx + rax*4 + 0x390], xmm3
add rax, 4
vmovdqa xmm3, xmm4
cmp rax, 0x18c
jne 0x140015820
mov eax, 0x80000000
and eax, dword [rcx + 0x1380]
mov edx, dword [rcx + 4]
mov r8d, edx
and r8d, 0x7ffffffe
or r8d, eax
and edx, 1
neg edx
and edx, 0x9908b0df
xor edx, dword [rcx + 0x634]
shr r8d, 1
xor edx, r8d
mov dword [rcx + 0x9c0], edx
xor eax, eax
lea edx, [rax + 1]
mov dword [rcx], edx
mov eax, eax
mov eax, dword [rcx + rax*4 + 4]
mov edx, eax
shr edx, 0xb
and edx, dword [rcx + 0x1384]
xor edx, eax
mov eax, edx
shl eax, 7
and eax, 0x9d2c5680
xor eax, edx
mov ecx, eax
shl ecx, 0xf
and ecx, 0xefc60000
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
vzeroupper
ret