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

Disassembly:
push rsi
sub rsp, 0x10
movdqa xmmword [rsp], xmm6
movaps xmm0, xmmword [0x1400390a0]
movaps xmm1, xmmword [0x1400390b0]
movdqa xmm2, xmmword [0x1400390c0]
mov r8d, 0x80000000
jmp 0x140009dc1
lea esi, [rdx + 1]
mov dword [rax], esi
mov edx, edx
mov esi, dword [rax + rdx*4 + 4]
mov edx, esi
shr edx, 0xb
and edx, dword [rax + 0x1384]
xor edx, esi
mov eax, edx
shl eax, 7
and eax, 0x9d2c5680
xor eax, edx
mov edx, eax
shl edx, 0xf
and edx, 0xefc60000
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
cmp eax, dword [rcx + 0x10]
jbe 0x14000a010
mov rax, qword [rcx]
mov edx, dword [rax]
cmp edx, 0x270
jne 0x140009e40
movd xmm3, dword [rax + 4]
pshufd xmm3, xmm3, 0
mov rdx, 0xfffffffffffffd90
nop
movups xmm4, xmmword [rax + rdx*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 [rax + rdx*4 + 0xff8]
pxor xmm6, xmm4
pxor xmm6, xmm5
movdqu xmmword [rax + rdx*4 + 0x1384], xmm6
add rdx, 4
jne 0x140009de0
mov edx, 0x270
jmp 0x140009d80
cmp edx, 0x4e0
jb 0x140009d80
movd xmm3, dword [rax + 0x9c4]
pshufd xmm3, xmm3, 0
xor edx, edx
nop dword [rax + rax]
movdqa xmm4, xmm3
movups xmm3, xmmword [rax + rdx*4 + 0x9c8]
shufps xmm4, xmm3, 3
shufps xmm4, xmm3, 0x98
andps xmm4, xmm0
movaps xmm5, xmm3
andps xmm5, xmm1
orps xmm5, xmm4
psrld xmm5, 1
movaps xmm4, xmm3
pslld xmm4, 0x1f
psrad xmm4, 0x1f
pand xmm4, xmm2
movdqu xmm6, xmmword [rax + rdx*4 + 0xff8]
pxor xmm6, xmm4
pxor xmm6, xmm5
movdqu xmmword [rax + rdx*4 + 4], xmm6
add rdx, 4
cmp rdx, 0xe0
jne 0x140009e60
pshufd xmm3, xmm3, 0xff
movd r10d, xmm3
and r10d, 0x80000000
mov r11d, dword [rax + 0xd48]
mov r9d, dword [rax + 0xd4c]
mov esi, r11d
and esi, 0x7ffffffe
or esi, r10d
shr esi, 1
mov edx, r11d
and edx, 1
neg edx
and edx, 0x9908b0df
xor edx, dword [rax + 0x1378]
xor edx, esi
mov dword [rax + 0x384], edx
and r11d, 0x80000000
mov edx, r9d
and edx, 0x7ffffffe
or edx, r11d
shr edx, 1
mov esi, r9d
and esi, 1
neg esi
and esi, 0x9908b0df
xor esi, dword [rax + 0x137c]
xor esi, edx
mov dword [rax + 0x388], esi
and r9d, 0x80000000
mov edx, dword [rax + 0xd50]
mov esi, edx
and esi, 0x7ffffffe
or esi, r9d
shr esi, 1
movd xmm3, edx
and edx, 1
neg edx
and edx, 0x9908b0df
xor edx, dword [rax + 0x1380]
xor edx, esi
mov dword [rax + 0x38c], edx
pshufd xmm3, xmm3, 0
xor edx, edx
nop word cs:[rax + rax]
nop dword [rax]
movups xmm4, xmmword [rax + rdx*4 + 0xd54]
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 [rax + rdx*4 + 4]
pxor xmm6, xmm4
pxor xmm6, xmm5
movdqu xmmword [rax + rdx*4 + 0x390], xmm6
add rdx, 4
cmp rdx, 0x18c
jne 0x140009f80
mov r9d, dword [rax + 0x1380]
and r9d, r8d
mov esi, dword [rax + 4]
mov edx, esi
and edx, 0x7ffffffe
or edx, r9d
and esi, 1
neg esi
and esi, 0x9908b0df
xor esi, dword [rax + 0x634]
shr edx, 1
xor esi, edx
mov dword [rax + 0x9c0], esi
xor edx, edx
jmp 0x140009d80
movaps xmm6, xmmword [rsp]
add rsp, 0x10
pop rsi
ret