Function at 0x14005e7e0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
sub rsp, 0x38
movaps xmmword [rsp + 0x20], xmm8
movdqa xmmword [rsp + 0x10], xmm7
movdqa xmmword [rsp], xmm6
mov eax, dword [rcx]
cmp eax, 0x270
jne 0x14005e88c
movd xmm0, dword [rcx + 4]
pshufd xmm3, xmm0, 0
mov rax, 0xfffffffffffffd90
movaps xmm0, xmmword [0x14025e000]
movaps xmm1, xmmword [0x14025eac0]
movdqa xmm2, xmmword [0x14025ead0]
nop dword [rax]
movups xmm4, xmmword [rcx + rax*4 + 0x9c8]
shufps xmm3, xmm4, 3
shufps xmm3, xmm4, 0x98
andps xmm3, xmm0
movaps xmm5, xmm4
andps xmm5, xmm1
orps xmm5, xmm3
psrld xmm5, 1
movaps xmm3, xmm4
pslld xmm4, 0x1f
psrad xmm4, 0x1f
pand xmm4, xmm2
movdqu xmm6, xmmword [rcx + rax*4 + 0xff8]
pxor xmm6, xmm4
pxor xmm6, xmm5
movdqu xmmword [rcx + rax*4 + 0x1384], xmm6
add rax, 4
jne 0x14005e830
mov eax, 0x270
jmp 0x14005eaad
cmp eax, 0x4e0
jb 0x14005eaad
movd xmm0, dword [rcx + 0x9c4]
pshufd xmm3, xmm0, 0
xor eax, eax
movaps xmm8, xmmword [0x14025e000]
movaps xmm1, xmmword [0x14025eac0]
movdqa xmm2, xmmword [0x14025ead0]
nop dword [rax]
movups xmm4, xmmword [rcx + rax*4 + 0x9c8]
shufps xmm3, xmm4, 3
shufps xmm3, xmm4, 0x98
andps xmm3, xmm8
movaps xmm5, xmm4
andps xmm5, xmm1
orps xmm5, xmm3
movups xmm3, xmmword [rcx + rax*4 + 0x9d8]
movaps xmm6, xmm4
shufps xmm6, xmm3, 3
shufps xmm6, xmm3, 0x98
andps xmm6, xmm8
movaps xmm7, xmm3
andps xmm7, xmm1
orps xmm7, xmm6
psrld xmm5, 1
psrld xmm7, 1
pslld xmm4, 0x1f
psrad xmm4, 0x1f
pand xmm4, xmm2
movaps xmm6, xmm3
pslld xmm6, 0x1f
psrad xmm6, 0x1f
pand xmm6, xmm2
movdqu xmm0, xmmword [rcx + rax*4 + 0xff8]
pxor xmm0, xmm4
pxor xmm0, xmm5
movdqu xmm4, xmmword [rcx + rax*4 + 0x1008]
pxor xmm4, xmm6
pxor xmm4, xmm7
movdqu xmmword [rcx + rax*4 + 4], xmm0
movdqu xmmword [rcx + rax*4 + 0x14], xmm4
add rax, 8
cmp rax, 0xe0
jne 0x14005e8c0
pshufd xmm0, xmm3, 0xff
movd r9d, xmm0
and r9d, 0x80000000
mov r10d, dword [rcx + 0xd48]
mov r8d, dword [rcx + 0xd4c]
mov eax, r10d
and eax, 0x7ffffffe
or eax, r9d
mov edx, r10d
and edx, 1
neg edx
and edx, 0x9908b0df
xor edx, dword [rcx + 0x1378]
shr eax, 1
xor edx, eax
mov dword [rcx + 0x384], edx
and r10d, 0x80000000
mov eax, r8d
and eax, 0x7ffffffe
or eax, r10d
shr eax, 1
mov edx, r8d
and edx, 1
neg edx
and edx, 0x9908b0df
xor edx, dword [rcx + 0x137c]
xor edx, eax
mov dword [rcx + 0x388], edx
and r8d, 0x80000000
mov eax, dword [rcx + 0xd50]
mov edx, eax
and edx, 0x7ffffffe
or edx, r8d
shr edx, 1
movd xmm0, eax
and eax, 1
neg eax
and eax, 0x9908b0df
xor eax, dword [rcx + 0x1380]
xor eax, edx
mov dword [rcx + 0x38c], eax
pshufd xmm3, xmm0, 0
xor eax, eax
nop dword [rax]
movups xmm0, xmmword [rcx + rax*4 + 0xd54]
shufps xmm3, xmm0, 3
shufps xmm3, xmm0, 0x98
andps xmm3, xmm8
movaps xmm4, xmm0
andps xmm4, xmm1
orps xmm4, xmm3
psrld xmm4, 1
movaps xmm3, xmm0
pslld xmm0, 0x1f
psrad xmm0, 0x1f
pand xmm0, xmm2
movdqu xmm5, xmmword [rcx + rax*4 + 4]
pxor xmm5, xmm0
pxor xmm5, xmm4
movdqu xmmword [rcx + rax*4 + 0x390], xmm5
add rax, 4
cmp rax, 0x18c
jne 0x14005ea20
mov r8d, 0x80000000
and r8d, dword [rcx + 0x1380]
mov edx, dword [rcx + 4]
mov eax, edx
and eax, 0x7ffffffe
or eax, r8d
and edx, 1
neg edx
and edx, 0x9908b0df
xor edx, dword [rcx + 0x634]
shr eax, 1
xor edx, eax
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
movaps xmm6, xmmword [rsp]
movaps xmm7, xmmword [rsp + 0x10]
movaps xmm8, xmmword [rsp + 0x20]
add rsp, 0x38
ret