Function at 0x5220f0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x238
mov r13d, 0x10
mov eax, dword [rcx]
mov r9d, dword [rdx + 8]
mov r11d, dword [rdx]
mov ebx, dword [rdx + 4]
mov edi, dword [rdx + 0x1c]
mov esi, r9d
bswap r11d
bswap ebx
bswap esi
mov dword [rsp], eax
mov eax, dword [rcx + 4]
bswap edi
lea r8, [rsp + 0x12c]
mov qword [rsp + 0x280], rcx
mov dword [rsp + 4], eax
mov eax, dword [rcx + 8]
mov dword [rsp + 0x120], r11d
mov dword [rsp + 8], eax
mov eax, dword [rcx + 0xc]
mov dword [rsp + 0x124], ebx
mov dword [rsp + 0xc], eax
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x128], esi
mov dword [rsp + 0x10], eax
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x14], eax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x18], eax
mov eax, dword [rcx + 0x1c]
mov dword [rsp + 0x1c], eax
mov eax, dword [rdx + 0xc]
bswap eax
mov dword [rsp + 0x12c], eax
mov eax, dword [rdx + 0x10]
bswap eax
mov dword [rsp + 0x130], eax
mov eax, dword [rdx + 0x14]
bswap eax
mov dword [rsp + 0x134], eax
mov eax, dword [rdx + 0x18]
bswap eax
mov dword [rsp + 0x138], eax
mov dword [rsp + 0x13c], edi
mov eax, dword [rdx + 0x28]
mov ebp, dword [rdx + 0x20]
mov r9d, dword [rdx + 0x24]
bswap eax
mov dword [rsp + 0x148], eax
mov eax, dword [rdx + 0x2c]
mov ecx, dword [rdx + 0x38]
bswap r9d
bswap ebp
mov dword [rsp + 0x140], ebp
bswap eax
mov dword [rsp + 0x14c], eax
mov eax, dword [rdx + 0x30]
mov r12d, r9d
bswap ecx
mov dword [rsp + 0x144], r9d
bswap eax
mov dword [rsp + 0x150], eax
mov eax, dword [rdx + 0x34]
mov edx, dword [rdx + 0x3c]
mov dword [rsp + 0x158], ecx
bswap eax
mov dword [rsp + 0x154], eax
bswap edx
mov dword [rsp + 0x15c], edx
xor r11d, edi
rol eax, 0xf
mov edi, dword [r8 + 0x1c]
xor ebp, ebx
xor r11d, eax
rol ecx, 0xf
mov ebx, dword [r8 + 4]
xor r12d, esi
mov r9d, r11d
mov r11d, dword [r8]
xor ecx, ebp
mov ebp, dword [r8 + 0x20]
mov eax, r9d
mov r10d, r9d
rol edx, 0xf
mov esi, dword [r8 + 8]
ror r10d, 9
rol eax, 0xf
xor edx, r12d
mov r12d, dword [r8 + 0x24]
xor eax, r10d
add r13d, 3
add r8, 0xc
xor eax, r9d
mov r9d, r11d
rol r9d, 7
xor eax, edi
xor eax, r9d
mov r9d, ecx
ror ecx, 9
mov r10d, r9d
mov dword [r8 + 0x28], eax
rol r10d, 0xf
xor ecx, r10d
xor ecx, r9d
mov r9d, ebx
rol r9d, 7
xor ecx, ebp
xor ecx, r9d
mov r9d, edx
ror edx, 9
mov r10d, r9d
mov dword [r8 + 0x2c], ecx
rol r10d, 0xf
xor edx, r10d
xor edx, r9d
mov r9d, esi
xor edx, r12d
rol r9d, 7
xor edx, r9d
mov dword [r8 + 0x30], edx
cmp r13d, 0x43
jne 0x52221b
movdqu xmm0, xmmword [rsp + 0x130]
mov eax, dword [rsp + 0x220]
lea rbp, [rsp + 0x20]
lea r15, [rsp + 0x120]
movdqu xmm1, xmmword [rsp + 0x120]
mov edx, dword [rsp + 0x1ec]
rol eax, 0xf
xor edx, dword [rsp + 0x208]
pxor xmm1, xmm0
xor edx, eax
mov eax, dword [rsp + 0x1f8]
pxor xmm0, xmmword [rsp + 0x140]
mov ecx, edx
movups xmmword [rsp + 0x20], xmm1
movups xmmword [rsp + 0x30], xmm0
rol eax, 7
xor eax, dword [rsp + 0x214]
rol ecx, 0xf
movdqu xmm0, xmmword [rsp + 0x150]
xor eax, edx
ror edx, 9
pxor xmm0, xmmword [rsp + 0x140]
xor eax, ecx
xor ecx, ecx
movups xmmword [rsp + 0x40], xmm0
xor eax, edx
movdqu xmm0, xmmword [rsp + 0x160]
pxor xmm0, xmmword [rsp + 0x150]
mov dword [rsp + 0x22c], eax
movups xmmword [rsp + 0x50], xmm0
movdqu xmm0, xmmword [rsp + 0x170]
pxor xmm0, xmmword [rsp + 0x160]
movups xmmword [rsp + 0x60], xmm0
movdqu xmm0, xmmword [rsp + 0x180]
pxor xmm0, xmmword [rsp + 0x170]
movups xmmword [rsp + 0x70], xmm0
movdqu xmm0, xmmword [rsp + 0x190]
pxor xmm0, xmmword [rsp + 0x180]
movups xmmword [rsp + 0x80], xmm0
movdqu xmm0, xmmword [rsp + 0x1a0]
pxor xmm0, xmmword [rsp + 0x190]
movups xmmword [rsp + 0x90], xmm0
movdqu xmm0, xmmword [rsp + 0x1a0]
pxor xmm0, xmmword [rsp + 0x1b0]
movups xmmword [rsp + 0xa0], xmm0
movdqu xmm0, xmmword [rsp + 0x1c0]
mov r10d, dword [rsp + 0x1c]
pxor xmm0, xmmword [rsp + 0x1b0]
mov eax, dword [rsp + 0x18]
mov r13d, dword [rsp + 0x14]
mov r11d, dword [rsp + 0x10]
movups xmmword [rsp + 0xb0], xmm0
mov r14d, dword [rsp + 0xc]
mov edi, dword [rsp + 8]
movdqu xmm0, xmmword [rsp + 0x1c0]
mov r12d, dword [rsp + 4]
pxor xmm0, xmmword [rsp + 0x1d0]
mov r8d, dword [rsp]
movups xmmword [rsp + 0xc0], xmm0
movdqu xmm0, xmmword [rsp + 0x1d0]
pxor xmm0, xmmword [rsp + 0x1e0]
movups xmmword [rsp + 0xd0], xmm0
movdqu xmm0, xmmword [rsp + 0x1e0]
pxor xmm0, xmmword [rsp + 0x1f0]
movups xmmword [rsp + 0xe0], xmm0
movdqu xmm0, xmmword [rsp + 0x1f0]
pxor xmm0, xmmword [rsp + 0x200]
movups xmmword [rsp + 0xf0], xmm0
movdqu xmm0, xmmword [rsp + 0x200]
pxor xmm0, xmmword [rsp + 0x210]
movups xmmword [rsp + 0x100], xmm0
movdqu xmm0, xmmword [rsp + 0x210]
pxor xmm0, xmmword [rsp + 0x220]
movups xmmword [rsp + 0x110], xmm0
jmp 0x5224da
mov eax, ebx
mov r11d, r9d
mov edi, esi
mov r8d, edx
mov esi, r8d
mov r9d, 0x79cc4519
mov edx, r8d
rol esi, 0xc
rol r9d, cl
xor edx, r12d
lea ebx, [rsi + r11]
xor edx, edi
add edx, dword [rbp + rcx*4]
add r9d, ebx
mov ebx, r9d
mov r9d, r11d
xor r9d, r13d
rol ebx, 7
xor r9d, eax
add r9d, dword [r15 + rcx*4]
xor esi, ebx
add rcx, 1
add r9d, ebx
lea edx, [rdx + rsi]
mov esi, r12d
mov ebx, r13d
add r10d, r9d
add edx, r14d
rol esi, 9
mov r14d, edi
mov r9d, r10d
mov r12d, r10d
ror ebx, 0xd
mov r13d, r11d
ror r12d, 0xf
rol r9d, 9
xor r9d, r12d
mov r12d, r8d
xor r9d, r10d
mov r10d, eax
cmp rcx, 0x10
jne 0x5224d0
mov r13d, edi
mov edi, eax
jmp 0x52256c
mov ebx, r12d
mov r9d, eax
mov esi, r14d
mov edx, r10d
mov r14d, edx
mov eax, 0x7a879d8a
mov r10d, r8d
rol r14d, 0xc
rol eax, cl
or r10d, esi
lea r12d, [r14 + r9]
and r10d, edx
add eax, r12d
rol eax, 7
mov r12d, eax
mov eax, r8d
rol r8d, 9
and eax, esi
xor r14d, r12d
or r10d, eax
mov eax, dword [rbp + rcx*4]
add eax, r10d
lea r10d, [rax + r14]
mov eax, r11d
mov r14d, r8d
ror r11d, 0xd
xor eax, ebx
add r10d, r13d
and eax, r9d
xor eax, ebx
add eax, dword [r15 + rcx*4]
add rcx, 1
add eax, r12d
mov r12d, r11d
mov r11d, r9d
add eax, edi
mov edi, ebx
mov r13d, eax
mov r8d, eax
ror r8d, 0xf
rol r13d, 9
xor r13d, r8d
mov r8d, edx
xor eax, r13d
mov r13d, esi
cmp rcx, 0x40
jne 0x522560
movd xmm3, esi
movd xmm4, edx
movd xmm1, r14d
mov r13d, eax
movd xmm0, r10d
punpckldq xmm1, xmm3
movd xmm5, dword [rsp + 0xc]
movd xmm3, dword [rsp + 4]
punpckldq xmm0, xmm4
movd xmm2, dword [rsp + 8]
mov rax, qword [rsp + 0x280]
punpcklqdq xmm0, xmm1
movd xmm1, dword [rsp]
movd xmm4, dword [rsp + 0x1c]
punpckldq xmm2, xmm5
movd xmm5, dword [rsp + 0x14]
punpckldq xmm1, xmm3
movd xmm3, ebx
punpcklqdq xmm1, xmm2
pxor xmm0, xmm1
movd xmm1, dword [rsp + 0x18]
movups xmmword [rax], xmm0
movd xmm0, dword [rsp + 0x10]
punpckldq xmm1, xmm4
movd xmm4, r9d
punpckldq xmm0, xmm5
movdqu xmm2, xmm0
movd xmm0, r13d
punpcklqdq xmm2, xmm1
movd xmm1, r12d
punpckldq xmm0, xmm4
punpckldq xmm1, xmm3
punpcklqdq xmm0, xmm1
pxor xmm0, xmm2
movups xmmword [rax + 0x10], xmm0
add rsp, 0x238
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret