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

Disassembly:
sub rsp, 0x18
vmovdqa xmmword [rsp], xmm6
mov eax, dword [rcx]
cmp eax, 0x270
jne 0x140015a08
vbroadcastss xmm3, dword [rcx + 4]
mov rax, 0xfffffffffffffd90
vmovdqa xmm0, xmmword [0x14011ee30]
vmovdqa xmm1, xmmword [0x14011ef20]
vmovdqa xmm2, xmmword [0x14011ef30]
nop dword [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 0x1400159b0
mov eax, 0x270
jmp 0x140015c3b
cmp eax, 0x4e0
jb 0x140015c3b
vbroadcastss ymm0, dword [rcx + 0x9c4]
xor eax, eax
vmovaps ymm1, ymmword [0x14011eec0]
vmovaps ymm2, ymmword [0x14011eee0]
vmovaps ymm3, ymmword [0x14011ef00]
nop word cs:[rax + rax]
vmovaps ymm4, ymm0
vmovups ymm0, ymmword [rcx + rax*4 + 0x9c8]
vperm2f128 ymm4, ymm4, ymm0, 0x21
vshufps ymm4, ymm4, ymm0, 3
vshufps ymm4, ymm4, ymm0, 0x98
vandps ymm4, ymm4, ymm1
vandps ymm5, ymm0, ymm2
vorps ymm4, ymm5, ymm4
vpsrld xmm5, xmm4, 1
vextractf128 xmm4, ymm4, 1
vpsrld xmm4, xmm4, 1
vinsertf128 ymm4, ymm5, xmm4, 1
vmovdqu xmm5, xmmword [rcx + rax*4 + 0x9c8]
vmovdqu xmm6, xmmword [rcx + rax*4 + 0x9d8]
vpslld xmm5, xmm5, 0x1f
vpsrad xmm5, xmm5, 0x1f
vpslld xmm6, xmm6, 0x1f
vpsrad xmm6, xmm6, 0x1f
vinsertf128 ymm5, ymm5, xmm6, 1
vandps ymm5, ymm5, ymm3
vxorps ymm5, ymm5, ymmword [rcx + rax*4 + 0xff8]
vxorps ymm4, ymm5, ymm4
vmovups ymmword [rcx + rax*4 + 4], ymm4
add rax, 8
cmp rax, 0xe0
jne 0x140015a40
vextractf128 xmm0, ymm0, 1
vextractps 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
vmovd xmm0, edx
and edx, 1
neg edx
and edx, 0x9908b0df
xor edx, dword [rcx + 0x1380]
shr r8d, 1
xor edx, r8d
mov dword [rcx + 0x38c], edx
vpshufd xmm3, xmm0, 0
xor eax, eax
vmovdqa xmm0, xmmword [0x14011ee30]
vmovdqa xmm1, xmmword [0x14011ef20]
vmovdqa xmm2, xmmword [0x14011ef30]
nop dword [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 0x140015bb0
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
vmovaps xmm6, xmmword [rsp]
add rsp, 0x18
vzeroupper
ret