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

Disassembly:
sub rsp, 0x38
mov r10, rcx
xor ecx, ecx
cmp dword [0x140375840], 2
jl 0x140018efa
movdqa xmm4, xmmword [0x1402bfbf0]
lea edx, [rcx + 0x1b]
movdqa xmm5, xmmword [0x1402bfbe0]
mov eax, 1
movaps xmmword [rsp + 0x20], xmm6
mov ecx, 0xd8
movaps xmmword [rsp + 0x10], xmm7
movdqa xmm7, xmmword [0x1402bfc00]
movd xmm6, eax
lea rax, [r10 + 4]
movaps xmmword [rsp], xmm8
movdqa xmm8, xmmword [0x1402bfbc0]
nop dword [rax + rax]
movdqu xmm2, xmmword [rax]
movdqu xmm0, xmmword [rax - 4]
lea rax, [rax + 0x20]
movdqa xmm1, xmm2
pand xmm2, xmm8
pand xmm1, xmm5
movdqa xmm3, xmm4
pand xmm3, xmm0
por xmm3, xmm1
movdqu xmm0, xmmword [rax + 0x610]
pmulld xmm2, xmm7
psrld xmm3, xmm6
pxor xmm3, xmm2
pxor xmm3, xmm0
movdqu xmmword [rax - 0x24], xmm3
movdqu xmm1, xmmword [rax - 0x10]
movdqu xmm2, xmmword [rax - 0x14]
movdqa xmm0, xmm1
pand xmm1, xmm8
pand xmm2, xmm4
pand xmm0, xmm5
por xmm2, xmm0
movdqu xmm0, xmmword [rax + 0x620]
psrld xmm2, xmm6
pmulld xmm1, xmm7
pxor xmm2, xmm1
pxor xmm2, xmm0
movdqu xmmword [rax - 0x14], xmm2
sub rdx, 1
jne 0x140018e60
movaps xmm8, xmmword [rsp]
movaps xmm7, xmmword [rsp + 0x10]
movaps xmm6, xmmword [rsp + 0x20]
lea rax, [r10 + 4]
mov r8d, 0xde
lea rax, [rax + rcx*4]
sub r8, rcx
nop dword [rax + rax]
mov ecx, dword [rax]
lea rax, [rax + 4]
mov edx, ecx
and ecx, 1
xor edx, dword [rax - 8]
and edx, 0x7ffffffe
imul ecx, ecx, 0x9908b0df
xor edx, dword [rax - 8]
shr edx, 1
xor edx, ecx
xor edx, dword [rax + 0x62c]
mov dword [rax - 8], edx
sub r8, 1
jne 0x140018f10
mov r8d, dword [r10 + 0x380]
mov r9d, dword [r10 + 0x37c]
mov edx, r9d
xor edx, dword [r10 + 0x378]
mov eax, r9d
and edx, 0x7ffffffe
and eax, 1
xor edx, dword [r10 + 0x378]
shr edx, 1
imul ecx, eax, 0x9908b0df
mov eax, r8d
and eax, 1
xor edx, ecx
imul ecx, eax, 0x9908b0df
xor edx, dword [r10 + 0x9ac]
mov dword [r10 + 0x378], edx
mov edx, r9d
xor edx, r8d
and edx, 0x7ffffffe
xor edx, r9d
mov r9d, dword [r10 + 0x384]
shr edx, 1
mov eax, r9d
xor edx, ecx
and eax, 1
xor edx, dword [r10 + 0x9b0]
mov dword [r10 + 0x37c], edx
mov edx, r9d
xor edx, r8d
imul ecx, eax, 0x9908b0df
and edx, 0x7ffffffe
xor edx, r8d
mov r8d, dword [r10 + 0x388]
shr edx, 1
mov eax, r8d
and eax, 1
xor edx, ecx
imul ecx, eax, 0x9908b0df
xor edx, dword [r10 + 0x9b4]
mov eax, dword [r10 + 0x38c]
mov dword [r10 + 0x380], edx
mov edx, r8d
xor edx, r9d
and edx, 0x7ffffffe
xor edx, r9d
shr edx, 1
xor edx, ecx
mov ecx, eax
xor edx, dword [r10 + 0x9b8]
xor ecx, r8d
and ecx, 0x7ffffffe
mov dword [r10 + 0x384], edx
xor ecx, r8d
lea rdx, [r10 + 0x390]
and eax, 1
shr ecx, 1
imul eax, eax, 0x9908b0df
mov r8d, 0x18c
xor ecx, eax
xor ecx, dword [r10 + 0x9bc]
mov dword [r10 + 0x388], ecx
nop word [rax + rax]
mov ecx, dword [rdx - 4]
mov eax, dword [rdx]
lea rdx, [rdx + 4]
xor ecx, eax
and eax, 1
and ecx, 0x7ffffffe
imul eax, eax, 0x9908b0df
xor ecx, dword [rdx - 8]
shr ecx, 1
xor ecx, eax
xor ecx, dword [rdx - 0x394]
mov dword [rdx - 8], ecx
sub r8, 1
jne 0x140019060
mov eax, dword [r10]
mov ecx, eax
xor ecx, dword [r10 + 0x9bc]
and eax, 1
and ecx, 0x7ffffffe
imul eax, eax, 0x9908b0df
xor ecx, dword [r10 + 0x9bc]
shr ecx, 1
mov qword [r10 + 0x9c0], r8
xor ecx, eax
xor ecx, dword [r10 + 0x630]
mov dword [r10 + 0x9bc], ecx
add rsp, 0x38
ret