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

Disassembly:
sub rsp, 0x28
movdqa xmmword [rsp + 0x10], xmm7
movdqa xmmword [rsp], xmm6
mov eax, dword [rcx]
cmp eax, 0x270
jne 0x140005338
mov edx, dword [rcx + 4]
mov rax, 0xfffffffffffff640
movdqa xmm0, xmmword [0x14002d2b0]
movdqa xmm1, xmmword [0x14002d2c0]
movdqa xmm2, xmmword [0x14002d2d0]
nop
movdqu xmm3, xmmword [rcx + rax + 0x9c8]
movdqa xmm4, xmm3
pslld xmm4, 0x1f
psrad xmm4, 0x1f
pand xmm4, xmm0
movdqu xmm5, xmmword [rcx + rax + 0xff8]
pxor xmm5, xmm4
movdqa xmm4, xmm3
psrld xmm4, 1
pand xmm4, xmm1
movd xmm6, edx
shufps xmm6, xmm3, 0xe4
pshufd xmm7, xmm3, 0xff
shufps xmm3, xmm6, 0x24
shufps xmm3, xmm3, 0x93
psrld xmm3, 1
pand xmm3, xmm2
por xmm3, xmm4
pxor xmm3, xmm5
movdqu xmmword [rcx + rax + 0x1384], xmm3
movd edx, xmm7
add rax, 0x10
jne 0x1400052c0
mov eax, 0x270
jmp 0x140005528
cmp eax, 0x4e0
jb 0x140005528
mov rax, 0xfffffffffffffffc
movdqa xmm0, xmmword [0x14002d2b0]
movdqa xmm1, xmmword [0x14002d2c0]
movdqa xmm2, xmmword [0x14002d2d0]
nop word cs:[rax + rax]
movdqu xmm3, xmmword [rcx + rax*4 + 0x9d4]
movdqu xmm4, xmmword [rcx + rax*4 + 0x9d8]
movdqa xmm5, xmm4
pslld xmm5, 0x1f
psrad xmm5, 0x1f
pand xmm5, xmm0
movdqu xmm6, xmmword [rcx + rax*4 + 0x1008]
pxor xmm6, xmm5
psrld xmm4, 1
pand xmm4, xmm1
psrld xmm3, 1
pand xmm3, xmm2
por xmm3, xmm4
pxor xmm3, xmm6
movdqu xmmword [rcx + rax*4 + 0x14], xmm3
add rax, 4
cmp rax, 0xdc
jb 0x140005370
movq xmm3, qword [rcx + 0xd44]
movq xmm4, qword [rcx + 0xd48]
movdqa xmm5, xmmword [0x14002d2e0]
movdqa xmm6, xmm4
pand xmm6, xmm5
pcmpeqd xmm6, xmm5
pand xmm6, xmmword [0x14002d2f0]
movq xmm5, qword [rcx + 0x1378]
psrld xmm4, 1
pand xmm4, xmmword [0x14002d300]
pxor xmm5, xmm6
psrld xmm3, 1
pand xmm3, xmmword [0x14002d310]
por xmm3, xmm4
pxor xmm3, xmm5
movq qword [rcx + 0x384], xmm3
mov edx, dword [rcx + 0xd4c]
mov eax, dword [rcx + 0xd50]
mov r8d, eax
and r8d, 1
neg r8d
and r8d, 0x9908b0df
xor r8d, dword [rcx + 0x1380]
mov r9d, eax
shr r9d, 1
and r9d, 0x3fffffff
shr edx, 1
and edx, 0x40000000
or edx, r9d
xor edx, r8d
mov dword [rcx + 0x38c], edx
mov rdx, 0xfffffffffffff9d0
nop dword [rax + rax]
movdqu xmm3, xmmword [rcx + rdx + 0x1384]
movdqa xmm4, xmm3
pslld xmm4, 0x1f
psrad xmm4, 0x1f
pand xmm4, xmm0
movdqu xmm5, xmmword [rcx + rdx + 0x634]
pxor xmm5, xmm4
movdqa xmm4, xmm3
psrld xmm4, 1
pand xmm4, xmm1
movd xmm6, eax
shufps xmm6, xmm3, 0xe4
pshufd xmm7, xmm3, 0xff
shufps xmm3, xmm6, 0x24
shufps xmm3, xmm3, 0x93
psrld xmm3, 1
pand xmm3, xmm2
por xmm3, xmm4
pxor xmm3, xmm5
movdqu xmmword [rcx + rdx + 0x9c0], xmm3
movd eax, xmm7
add rdx, 0x10
jne 0x140005480
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
movaps xmm6, xmmword [rsp]
movaps xmm7, xmmword [rsp + 0x10]
add rsp, 0x28
ret