Function at 0x522b10
Capabilities:
Encode data using xor

Disassembly:
push rbx
sub rsp, 0x950
movups xmmword [rsp + 0x8b0], xmm6
movups xmmword [rsp + 0x8c0], xmm7
movups xmmword [rsp + 0x8d0], xmm8
movups xmmword [rsp + 0x8e0], xmm9
movups xmmword [rsp + 0x8f0], xmm10
movups xmmword [rsp + 0x900], xmm11
movups xmmword [rsp + 0x910], xmm12
movups xmmword [rsp + 0x920], xmm13
movups xmmword [rsp + 0x930], xmm14
movups xmmword [rsp + 0x940], xmm15
movdqu xmm2, xmmword [rdx]
movdqu xmm1, xmmword [rcx + 0x20]
movdqu xmm6, xmmword [rcx + 0x60]
movdqu xmm0, xmmword [rcx]
movdqu xmm3, xmm2
psllw xmm2, 8
psrlw xmm3, 8
por xmm2, xmm3
movdqu xmm3, xmmword [rdx + 0x10]
movups xmmword [rsp + 0x20], xmm1
movdqu xmm1, xmmword [rcx + 0x30]
pshuflw xmm2, xmm2, 0xb1
movups xmmword [rsp + 0x50], xmm6
movdqu xmm6, xmmword [rcx + 0x70]
lea rax, [rsp + 0x4a0]
pshufhw xmm2, xmm2, 0xb1
movups xmmword [rsp + 0x30], xmm1
movdqu xmm1, xmmword [rcx + 0x40]
movups xmmword [rsp + 0x470], xmm2
movdqu xmm9, xmm2
movdqu xmm2, xmm3
psrlw xmm2, 8
psllw xmm3, 8
movups xmmword [rsp + 0x10], xmm0
movdqu xmm0, xmmword [rcx + 0x10]
por xmm2, xmm3
movdqu xmm3, xmmword [rdx + 0x20]
movups xmmword [rsp + 0x40], xmm1
movdqu xmm1, xmmword [rcx + 0x50]
pshuflw xmm2, xmm2, 0xb1
movups xmmword [rsp + 0x60], xmm6
pshufhw xmm2, xmm2, 0xb1
movups xmmword [rsp + 0x480], xmm2
movdqu xmm8, xmm2
movdqu xmm2, xmm3
psrlw xmm2, 8
psllw xmm3, 8
por xmm2, xmm3
movdqu xmm3, xmmword [rdx + 0x30]
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm2, xmm2, 0xb1
movups xmmword [rsp + 0x490], xmm2
movdqu xmm7, xmm2
movdqu xmm2, xmm3
psrlw xmm2, 8
psllw xmm3, 8
por xmm2, xmm3
movdqu xmm3, xmmword [rdx + 0x40]
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm2, xmm2, 0xb1
movups xmmword [rsp + 0x4a0], xmm2
movdqu xmm2, xmm3
psllw xmm3, 8
psrlw xmm2, 8
por xmm2, xmm3
movdqu xmm3, xmmword [rdx + 0x50]
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm2, xmm2, 0xb1
movups xmmword [rsp + 0x4b0], xmm2
movdqu xmm2, xmm3
psllw xmm3, 8
psrlw xmm2, 8
por xmm2, xmm3
movdqu xmm3, xmmword [rdx + 0x60]
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm2, xmm2, 0xb1
movups xmmword [rsp + 0x4c0], xmm2
movdqu xmm2, xmm3
psllw xmm3, 8
psrlw xmm2, 8
por xmm2, xmm3
movdqu xmm3, xmmword [rdx + 0x70]
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm2, xmm2, 0xb1
movups xmmword [rsp + 0x4d0], xmm2
movdqu xmm2, xmm3
psllw xmm3, 8
psrlw xmm2, 8
por xmm2, xmm3
movdqu xmm3, xmmword [rdx + 0x80]
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm2, xmm2, 0xb1
movups xmmword [rsp + 0x4e0], xmm2
movdqu xmm11, xmm2
movdqu xmm2, xmm3
psrlw xmm2, 8
psllw xmm3, 8
por xmm2, xmm3
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm2, xmm2, 0xb1
movups xmmword [rsp + 0x4f0], xmm2
movdqu xmm3, xmmword [rdx + 0x90]
movdqu xmm10, xmm2
movups xmmword [rsp], xmm0
movdqu xmm2, xmm3
psllw xmm3, 8
psrlw xmm2, 8
por xmm2, xmm3
movdqu xmm3, xmmword [rdx + 0xa0]
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm2, xmm2, 0xb1
movdqu xmm4, xmm2
movups xmmword [rsp + 0x500], xmm2
movdqu xmm2, xmm3
psrlw xmm2, 8
psllw xmm3, 8
movdqu xmm0, xmm4
por xmm2, xmm3
movdqu xmm3, xmmword [rdx + 0xb0]
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm2, xmm2, 0xb1
movups xmmword [rsp + 0x510], xmm2
movdqu xmm2, xmm3
psllw xmm3, 8
psrlw xmm2, 8
por xmm2, xmm3
movdqu xmm3, xmmword [rdx + 0xc0]
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm2, xmm2, 0xb1
movups xmmword [rsp + 0x520], xmm2
movdqu xmm2, xmm3
psllw xmm3, 8
psrlw xmm2, 8
por xmm2, xmm3
movdqu xmm3, xmmword [rdx + 0xd0]
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm2, xmm2, 0xb1
movups xmmword [rsp + 0x530], xmm2
movdqu xmm2, xmm3
psllw xmm3, 8
psrlw xmm2, 8
por xmm2, xmm3
movdqu xmm3, xmmword [rdx + 0xe0]
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm2, xmm2, 0xb1
movdqu xmm12, xmm2
movups xmmword [rsp + 0x540], xmm2
movdqu xmm2, xmm3
psrlw xmm2, 8
psllw xmm3, 8
por xmm3, xmm2
pshuflw xmm2, xmm3, 0xb1
pshufhw xmm2, xmm2, 0xb1
movdqu xmm6, xmm2
movups xmmword [rsp + 0x550], xmm2
movdqu xmm2, xmmword [rdx + 0xf0]
mov edx, 0x10
movdqu xmm3, xmm2
psllw xmm2, 8
psrlw xmm3, 8
por xmm2, xmm3
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm2, xmm2, 0xb1
movdqu xmm5, xmm2
movups xmmword [rsp + 0x560], xmm2
movdqu xmm3, xmm12
movdqu xmm4, xmm11
movdqu xmm2, xmm9
add edx, 3
pslld xmm12, 0xf
psrld xmm3, 0x11
movdqu xmm9, xmmword [rax]
pxor xmm2, xmm4
por xmm3, xmm12
movdqu xmm11, xmmword [rax + 0x70]
add rax, 0x30
pxor xmm3, xmm2
movdqu xmm13, xmm9
movdqu xmm15, xmm9
movdqu xmm12, xmm3
movdqu xmm2, xmm3
movdqu xmm4, xmm3
pslld xmm15, 7
pslld xmm2, 0x17
movdqu xmm14, xmm3
psrld xmm13, 0x19
psrld xmm12, 9
pxor xmm3, xmm11
por xmm13, xmm15
psrld xmm4, 0x11
por xmm12, xmm2
pxor xmm12, xmm13
pslld xmm14, 0xf
movdqu xmm2, xmm8
movdqu xmm8, xmmword [rax - 0x20]
pxor xmm3, xmm12
movdqu xmm12, xmm4
movdqu xmm4, xmm10
movdqu xmm10, xmmword [rax + 0x50]
por xmm12, xmm14
pxor xmm2, xmm4
movdqu xmm13, xmm8
pxor xmm12, xmm3
movdqu xmm3, xmm6
movdqu xmm15, xmm8
psrld xmm3, 0x11
pslld xmm6, 0xf
movups xmmword [rax + 0xa0], xmm12
pslld xmm15, 7
psrld xmm13, 0x19
por xmm6, xmm3
pxor xmm2, xmm6
por xmm13, xmm15
movdqu xmm6, xmm2
movdqu xmm3, xmm2
movdqu xmm4, xmm2
pslld xmm3, 0x17
psrld xmm6, 9
movdqu xmm14, xmm2
por xmm6, xmm3
psrld xmm4, 0x11
pxor xmm2, xmm10
pxor xmm6, xmm13
pslld xmm14, 0xf
movdqu xmm3, xmm5
psrld xmm3, 0x11
pslld xmm5, 0xf
pxor xmm2, xmm6
movdqu xmm6, xmm4
movdqu xmm4, xmm0
por xmm5, xmm3
movdqu xmm0, xmmword [rax + 0x60]
por xmm6, xmm14
pxor xmm6, xmm2
movdqu xmm2, xmm7
movdqu xmm7, xmmword [rax - 0x10]
pxor xmm2, xmm4
movups xmmword [rax + 0xb0], xmm6
pxor xmm2, xmm5
movdqu xmm13, xmm7
movdqu xmm15, xmm7
movdqu xmm5, xmm2
movdqu xmm3, xmm2
movdqu xmm4, xmm2
psrld xmm13, 0x19
pslld xmm15, 7
movdqu xmm14, xmm2
psrld xmm5, 9
pslld xmm3, 0x17
por xmm13, xmm15
por xmm5, xmm3
psrld xmm4, 0x11
pxor xmm2, xmm0
pxor xmm5, xmm13
pslld xmm14, 0xf
pxor xmm2, xmm5
movdqu xmm5, xmm4
por xmm5, xmm14
pxor xmm5, xmm2
movups xmmword [rax + 0xc0], xmm5
cmp edx, 0x43
jne 0x522e9a
movdqu xmm4, xmmword [rsp + 0x870]
lea r9, [rsp + 0x70]
movdqu xmm2, xmmword [rsp + 0x810]
lea rax, [rsp + 0x4b0]
movdqu xmm0, xmmword [rsp]
mov rdx, r9
lea r8, [rsp + 0x470]
pxor xmm2, xmmword [rsp + 0x7a0]
movdqu xmm5, xmmword [rsp + 0x7d0]
movdqu xmm3, xmm4
pslld xmm4, 0xf
psrld xmm3, 0x11
por xmm4, xmm3
movdqu xmm3, xmm2
movdqu xmm6, xmm5
psrld xmm6, 0x19
pslld xmm5, 7
pxor xmm3, xmm4
movdqu xmm2, xmm3
movdqu xmm8, xmm3
movdqu xmm4, xmm3
movdqu xmm7, xmm3
psrld xmm2, 9
por xmm5, xmm6
pslld xmm8, 0x17
psrld xmm4, 0x11
pslld xmm7, 0xf
por xmm2, xmm8
por xmm4, xmm7
pxor xmm2, xmm5
pxor xmm4, xmmword [rsp + 0x840]
pxor xmm2, xmm4
pxor xmm2, xmm3
movups xmmword [rsp + 0x8a0], xmm2
movdqu xmm2, xmmword [rax]
pxor xmm2, xmmword [rax - 0x40]
add rdx, 0x10
add rax, 0x10
movups xmmword [rdx - 0x10], xmm2
cmp rdx, r8
jne 0x52312c
movdqu xmm12, xmmword [rsp + 0x60]
pxor xmm5, xmm5
xor edx, edx
xor eax, eax
movdqu xmm3, xmmword [rsp + 0x40]
movdqu xmm8, xmmword [rsp + 0x50]
movups xmmword [rsp], xmm1
movdqu xmm15, xmm0
movdqu xmm13, xmmword [rsp + 0x30]
movdqu xmm7, xmmword [rsp + 0x20]
movdqu xmm9, xmm12
mov r11d, 0x20
movdqu xmm10, xmmword [0x005fa860]
movdqu xmm2, xmmword [rsp + 0x10]
movdqu xmm4, xmm5
movdqu xmm6, xmm10
jmp 0x5231e6
mov r10d, r11d
movd xmm4, eax
movdqu xmm6, xmm10
sub r10d, eax
pslld xmm6, xmm4
movdqu xmm4, xmm10
movq xmm14, r10
movdqu xmm9, xmm8
movdqu xmm13, xmm7
psrld xmm4, xmm14
movdqu xmm8, xmm1
movdqu xmm7, xmm0
movdqu xmm1, xmm3
movdqu xmm0, xmm2
movdqu xmm3, xmm12
movdqu xmm2, xmm5
movdqu xmm11, xmm2
movdqu xmm5, xmm2
por xmm4, xmm6
add eax, 1
psrld xmm5, 0x14
pslld xmm11, 0xc
paddd xmm4, xmm3
por xmm11, xmm5
movdqu xmm5, xmm0
paddd xmm13, xmmword [r9 + rdx]
paddd xmm4, xmm11
pxor xmm5, xmm7
movdqu xmm12, xmm4
pslld xmm4, 7
pxor xmm5, xmm2
psrld xmm12, 0x19
por xmm4, xmm12
movdqu xmm12, xmm1
pxor xmm12, xmm8
pxor xmm11, xmm4
pxor xmm12, xmm3
paddd xmm5, xmm11
paddd xmm4, xmm12
movdqu xmm12, xmmword [r8 + rdx]
paddd xmm5, xmm13
add rdx, 0x10
movdqu xmm6, xmm5
paddd xmm12, xmm9
paddd xmm12, xmm4
movdqu xmm4, xmm0
psrld xmm4, 0x17
pslld xmm0, 9
movdqu xmm11, xmm12
por xmm0, xmm4
movdqu xmm4, xmm1
movdqu xmm9, xmm12
psrld xmm4, 0xd
pslld xmm1, 0x13
movdqu xmm13, xmm12
psrld xmm11, 0xf
pslld xmm9, 0x11
por xmm1, xmm4
movdqu xmm4, xmm12
psrld xmm13, 0x17
por xmm9, xmm11
pslld xmm4, 9
por xmm4, xmm13
pxor xmm4, xmm9
pxor xmm12, xmm4
cmp eax, 0x10
jne 0x5231a0
movdqu xmm4, xmm12
mov edx, 0x100
movdqu xmm11, xmmword [0x005fa880]
movdqu xmm5, xmmword [0x005fa870]
movdqu xmm10, xmmword [0x005fa890]
mov r11d, 0x20
movdqu xmm9, xmm11
movdqu xmm11, xmm5
jmp 0x523365
mov r10d, eax
movdqu xmm9, xmm10
movdqu xmm11, xmm10
mov ebx, r11d
and r10d, 0x1f
movdqu xmm8, xmm1
movdqu xmm1, xmm3
movd xmm7, r10d
sub ebx, r10d
movdqu xmm3, xmm4
pslld xmm9, xmm7
movq xmm7, rbx
movdqu xmm4, xmm5
psrld xmm11, xmm7
movdqu xmm7, xmm0
movdqu xmm0, xmm2
movdqu xmm2, xmm6
movdqu xmm6, xmm12
movdqu xmm12, xmm6
movdqu xmm5, xmm6
add eax, 1
psrld xmm5, 0x14
por xmm11, xmm9
movdqu xmm9, xmm2
pslld xmm12, 0xc
paddd xmm11, xmm4
por xmm9, xmm0
por xmm12, xmm5
pand xmm9, xmm6
paddd xmm7, xmmword [r9 + rdx]
paddd xmm11, xmm12
paddd xmm8, xmmword [r8 + rdx]
add rdx, 0x10
movdqu xmm5, xmm11
pslld xmm11, 7
psrld xmm5, 0x19
por xmm5, xmm11
movdqu xmm11, xmm2
pand xmm11, xmm0
pxor xmm12, xmm5
por xmm9, xmm11
paddd xmm12, xmm9
movdqu xmm9, xmm4
paddd xmm12, xmm7
movdqu xmm7, xmm3
pandn xmm9, xmm1
pand xmm7, xmm4
por xmm7, xmm9
paddd xmm5, xmm7
movdqu xmm7, xmm2
psrld xmm7, 0x17
pslld xmm2, 9
paddd xmm5, xmm8
por xmm2, xmm7
movdqu xmm7, xmm3
movdqu xmm9, xmm5
psrld xmm7, 0xd
pslld xmm3, 0x13
movdqu xmm8, xmm5
movdqu xmm11, xmm5
psrld xmm9, 0xf
por xmm3, xmm7
pslld xmm8, 0x11
psrld xmm11, 0x17
movdqu xmm7, xmm5
pslld xmm7, 9
por xmm8, xmm9
por xmm7, xmm11
pxor xmm7, xmm8
pxor xmm5, xmm7
cmp eax, 0x40
jne 0x523318
movdqu xmm9, xmm12
pxor xmm6, xmm15
movdqu xmm8, xmmword [rsp + 0x40]
pxor xmm9, xmmword [rsp + 0x10]
pxor xmm2, xmmword [rsp + 0x20]
pxor xmm0, xmmword [rsp + 0x30]
movups xmmword [rcx + 0x10], xmm6
pxor xmm8, xmm5
pxor xmm4, xmmword [rsp]
pxor xmm3, xmmword [rsp + 0x50]
movups xmmword [rcx], xmm9
pxor xmm1, xmmword [rsp + 0x60]
movups xmmword [rcx + 0x40], xmm8
movups xmm6, xmmword [rsp + 0x8b0]
movups xmm7, xmmword [rsp + 0x8c0]
movups xmmword [rcx + 0x20], xmm2
movups xmm8, xmmword [rsp + 0x8d0]
movups xmm9, xmmword [rsp + 0x8e0]
movups xmmword [rcx + 0x30], xmm0
movups xmm10, xmmword [rsp + 0x8f0]
movups xmm11, xmmword [rsp + 0x900]
movups xmmword [rcx + 0x50], xmm4
movups xmm12, xmmword [rsp + 0x910]
movups xmm13, xmmword [rsp + 0x920]
movups xmmword [rcx + 0x60], xmm3
movups xmm14, xmmword [rsp + 0x930]
movups xmm15, xmmword [rsp + 0x940]
movups xmmword [rcx + 0x70], xmm1
add rsp, 0x950
pop rbx
ret