Function at 0x509880
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2c8
mov rax, qword [rcx]
mov rbp, rdx
bswap rax
mov qword [rsp + 0x40], rax
mov rax, qword [rcx + 8]
bswap rax
mov qword [rsp + 0x48], rax
mov rax, qword [rcx + 0x10]
bswap rax
mov qword [rsp + 0x50], rax
mov rax, qword [rcx + 0x18]
bswap rax
mov qword [rsp + 0x58], rax
mov rax, qword [rcx + 0x20]
bswap rax
mov qword [rsp + 0x60], rax
mov rax, qword [rcx + 0x28]
bswap rax
mov qword [rsp + 0x68], rax
mov rax, qword [rcx + 0x30]
bswap rax
mov qword [rsp + 0x70], rax
mov rax, qword [rcx + 0x38]
bswap rax
mov qword [rsp + 0x78], rax
mov rax, qword [rcx + 0x40]
bswap rax
mov qword [rsp + 0x80], rax
mov rax, qword [rcx + 0x48]
bswap rax
mov qword [rsp + 0x88], rax
mov rax, qword [rcx + 0x50]
bswap rax
mov qword [rsp + 0x90], rax
mov rax, qword [rcx + 0x58]
bswap rax
mov qword [rsp + 0x98], rax
mov rax, qword [rcx + 0x60]
bswap rax
mov qword [rsp + 0xa0], rax
mov rax, qword [rcx + 0x68]
bswap rax
mov qword [rsp + 0xa8], rax
mov rax, qword [rcx + 0x70]
bswap rax
mov qword [rsp + 0xb0], rax
mov rax, qword [rcx + 0x78]
bswap rax
mov qword [rsp + 0xb8], rax
lea rsi, [rsp + 0x40]
movdqu xmm0, xmmword [rsp + 0xb0]
lea rax, [rsp + 0xc0]
lea rdx, [rsp + 0x2c0]
nop dword [rax + rax]
movdqu xmm2, xmmword [rax - 0x78]
add rax, 0x10
movdqu xmm1, xmm2
movdqu xmm3, xmm2
movdqu xmm4, xmm2
psrlq xmm3, 8
psllq xmm1, 0x38
por xmm1, xmm3
psrlq xmm4, 1
movdqu xmm3, xmm2
psllq xmm3, 0x3f
psrlq xmm2, 7
por xmm3, xmm4
movdqu xmm4, xmm0
pxor xmm1, xmm3
psrlq xmm4, 0x13
movdqu xmm3, xmm0
pxor xmm1, xmm2
psrlq xmm3, 0x3d
movdqu xmm2, xmm0
psllq xmm2, 3
por xmm2, xmm3
movdqu xmm3, xmm0
psllq xmm3, 0x2d
psrlq xmm0, 6
por xmm3, xmm4
pxor xmm2, xmm3
pxor xmm0, xmm2
paddq xmm0, xmm1
movdqu xmm1, xmmword [rax - 0x48]
paddq xmm1, xmmword [rax - 0x90]
paddq xmm0, xmm1
movups xmmword [rax - 0x10], xmm0
cmp rax, rdx
jne 0x509990
mov rcx, qword [rbp]
mov rdx, qword [rbp + 8]
mov rax, qword [rbp + 0x10]
mov r8, qword [rbp + 0x18]
mov r10, qword [rbp + 0x20]
mov rbx, qword [rbp + 0x28]
mov qword [rsp], rcx
mov r9, qword [rbp + 0x30]
mov rdi, qword [rbp + 0x38]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], r8
mov r11, rdi
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x38], rdi
lea rdi, [0x0061fb40]
nop
mov r12, r10
mov r13, r10
mov r14, rcx
ror r13, 0x12
ror r12, 0xe
xor r12, r13
mov r13, r10
ror r14, 0x1c
rol r13, 0x17
xor r12, r13
mov r13, qword [rsi]
add r13, qword [rdi]
add r13, r12
mov r12, rbx
xor r12, r9
and r12, r10
xor r12, r9
add r12, r13
mov r13, rcx
add r12, r11
mov r11, rcx
xor r13, rdx
rol r11, 0x1e
add r8, r12
xor r14, r11
mov r11, rcx
rol r11, 0x19
xor r14, r11
mov r11, rdx
xor r11, rax
and r11, r13
xor r11, rdx
add r11, r14
mov r14, r10
xor r14, rbx
add r11, r12
mov r12, qword [rsi + 8]
add r12, qword [rdi + 8]
and r14, r8
add r9, r12
mov r15, r11
xor r14, rbx
lea r12, [r9 + r14]
mov r9, r8
mov r14, r8
ror r14, 0x12
ror r9, 0xe
xor r9, r14
mov r14, r8
rol r14, 0x17
ror r15, 0x1c
xor r9, r14
lea r14, [r12 + r9]
mov r9, r11
mov r12, r11
rol r9, 0x1e
xor r12, rcx
add rax, r14
xor r15, r9
mov r9, r11
and r13, r12
rol r9, 0x19
xor r13, rcx
xor r15, r9
lea r9, [r15 + r13]
mov r13, qword [rsi + 0x10]
add r13, qword [rdi + 0x10]
add r9, r14
mov r14, r8
add rbx, r13
xor r14, r10
mov r15, r9
and r14, rax
ror r15, 0x1c
xor r14, r10
lea r13, [rbx + r14]
mov rbx, rax
mov r14, rax
ror r14, 0x12
ror rbx, 0xe
xor rbx, r14
mov r14, rax
rol r14, 0x17
xor rbx, r14
lea r14, [r13 + rbx]
mov rbx, r9
mov r13, r11
rol rbx, 0x1e
xor r13, r9
add rdx, r14
xor r15, rbx
mov rbx, r9
and r12, r13
rol rbx, 0x19
xor r12, r11
xor r15, rbx
lea rbx, [r15 + r12]
mov r12, qword [rsi + 0x18]
add rbx, r14
mov r14, r8
add r12, qword [rdi + 0x18]
xor r14, rax
add r10, r12
mov r15, rbx
and r14, rdx
ror r15, 0x1c
xor r14, r8
lea r12, [r10 + r14]
mov r10, rdx
mov r14, rdx
ror r14, 0x12
ror r10, 0xe
xor r10, r14
mov r14, rdx
rol r14, 0x17
xor r10, r14
lea r14, [r12 + r10]
mov r10, rbx
mov r12, r9
rol r10, 0x1e
xor r12, rbx
add rcx, r14
xor r15, r10
mov r10, rbx
and r13, r12
rol r10, 0x19
xor r13, r9
xor r15, r10
lea r10, [r15 + r13]
mov r13, qword [rsi + 0x20]
add r13, qword [rdi + 0x20]
add r10, r14
mov r14, rax
add r8, r13
xor r14, rdx
mov r15, r10
and r14, rcx
xor r14, rax
lea r13, [r8 + r14]
mov r8, rcx
mov r14, rcx
ror r14, 0x12
ror r8, 0xe
xor r8, r14
mov r14, rcx
rol r14, 0x17
xor r8, r14
lea r14, [r13 + r8]
mov r13, rbx
mov r8, r10
add r11, r14
xor r13, r10
ror r15, 0x1c
rol r8, 0x1e
and r12, r13
xor r15, r8
mov r8, r10
xor r12, rbx
rol r8, 0x19
xor r15, r8
lea r8, [r15 + r12]
mov r12, r11
add r8, r14
mov r14, qword [rsi + 0x28]
add r14, qword [rdi + 0x28]
ror r12, 0x12
add rax, r14
mov r14, rdx
mov r15, r8
xor r14, rcx
ror r15, 0x1c
and r14, r11
xor r14, rdx
add rax, r14
mov r14, r11
ror r14, 0xe
xor r14, r12
mov r12, r11
rol r12, 0x17
xor r14, r12
mov r12, r10
add r14, rax
mov rax, r8
xor r12, r8
rol rax, 0x1e
and r13, r12
add r9, r14
xor r15, rax
mov rax, r8
xor r13, r10
rol rax, 0x19
xor r15, rax
lea rax, [r15 + r13]
mov r13, r9
add rax, r14
mov r14, qword [rsi + 0x30]
add r14, qword [rdi + 0x30]
add rdx, r14
mov r14, rcx
mov r15, rax
xor r14, r11
ror r13, 0x12
and r14, r9
ror r15, 0x1c
xor r14, rcx
add rdx, r14
mov r14, r9
ror r14, 0xe
xor r14, r13
mov r13, r9
rol r13, 0x17
xor r14, r13
mov r13, r8
add r14, rdx
mov rdx, rax
xor r13, rax
rol rdx, 0x1e
and r12, r13
add rbx, r14
xor r15, rdx
mov rdx, rax
xor r12, r8
rol rdx, 0x19
xor r15, rdx
lea rdx, [r15 + r12]
mov r12, r11
lea r15, [0x0061fdc0]
xor r12, r9
add rdx, r14
mov r14, qword [rsi + 0x38]
add r14, qword [rdi + 0x38]
and r12, rbx
add rcx, r14
xor r12, r11
lea r14, [rcx + r12]
mov rcx, rbx
mov r12, rbx
ror r12, 0x12
ror rcx, 0xe
xor rcx, r12
mov r12, rbx
rol r12, 0x17
xor rcx, r12
lea r12, [r14 + rcx]
mov r14, rdx
mov rcx, rdx
ror r14, 0x1c
add r10, r12
rol rcx, 0x1e
add rdi, 0x40
xor r14, rcx
mov rcx, rdx
add rsi, 0x40
rol rcx, 0x19
xor r14, rcx
mov rcx, rax
xor rcx, rdx
and r13, rcx
xor r13, rax
lea rcx, [r14 + r13]
add rcx, r12
cmp r15, rdi
jne 0x509a80
movq xmm1, qword [rsp]
movq xmm5, rdx
movq xmm0, rcx
punpcklqdq xmm0, xmm5
movq xmm5, r8
movhps xmm1, qword [rsp + 8]
paddq xmm0, xmm1
movq xmm1, qword [rsp + 0x10]
movups xmmword [rbp], xmm0
movq xmm0, rax
movhps xmm1, qword [rsp + 0x18]
punpcklqdq xmm0, xmm5
movq xmm5, rbx
paddq xmm0, xmm1
movq xmm1, qword [rsp + 0x20]
movups xmmword [rbp + 0x10], xmm0
movq xmm0, r10
movhps xmm1, qword [rsp + 0x28]
punpcklqdq xmm0, xmm5
movq xmm5, r11
paddq xmm0, xmm1
movq xmm1, qword [rsp + 0x30]
movups xmmword [rbp + 0x20], xmm0
movq xmm0, r9
punpcklqdq xmm0, xmm5
movhps xmm1, qword [rsp + 0x38]
paddq xmm0, xmm1
movups xmmword [rbp + 0x30], xmm0
add rsp, 0x2c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret