Function at 0x564d24
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
movdqa xmmword [rsp + 0x60], xmm9
movdqa xmmword [rsp + 0x50], xmm8
movdqa xmmword [rsp + 0x40], xmm7
movdqa xmmword [rsp + 0x30], xmm6
test rdx, rdx
je 0x564e21
mov r14, rdx
mov rsi, rcx
js 0x564e2b
movabs rax, 0x100000000
cmp r14, rax
jl 0x564ef4
mov rcx, qword [0x02129638]
mov edx, 0x30
call fcn.005479a7
mov rbx, rax
mov rax, qword [0x021297d8]
mov qword [rbx], rax
lea rax, [0x0060fe00]
mov qword [rbx + 0x10], rax
mov rdi, qword [rbx + 0x18]
lea rcx, [0x0060fe58]
call fcn.00547a14
mov qword [rbx + 0x18], rax
test rdi, rdi
je 0x564ddd
mov rax, qword [rdi - 0x10]
add rax, 0xfffffffffffffff8
mov qword [rdi - 0x10], rax
cmp rax, 7
ja 0x564ddd
add rdi, 0xfffffffffffffff0
mov rcx, qword [0x02129a28]
add rcx, 0x18
mov rdx, rdi
call fcn.00545bc7
mov rax, qword [rbx + 8]
mov edi, 0x34
test rax, rax
je 0x564eca
movabs rcx, 0xad3736ad8392ae8b
sub rax, rcx
mov rdx, qword [rax + rcx - 0x10]
add rdx, 0xfffffffffffffff8
mov qword [rax + rcx - 0x10], rdx
cmp rdx, 7
ja 0x564eca
lea rdx, [rax + rcx]
add rdx, 0xfffffffffffffff0
jmp 0x564eba
mov eax, 1
jmp 0x565090
mov rcx, qword [0x02129638]
mov edx, 0x30
call fcn.005479a7
mov rbx, rax
mov rax, qword [0x021297d8]
mov qword [rbx], rax
lea rax, [0x0060fe00]
mov qword [rbx + 0x10], rax
mov rdi, qword [rbx + 0x18]
lea rcx, [0x0060fe10]
call fcn.00547a14
mov qword [rbx + 0x18], rax
test rdi, rdi
je 0x564e96
mov rax, qword [rdi - 0x10]
add rax, 0xfffffffffffffff8
mov qword [rdi - 0x10], rax
cmp rax, 7
ja 0x564e96
add rdi, 0xfffffffffffffff0
mov rcx, qword [0x02129a28]
add rcx, 0x18
mov rdx, rdi
call fcn.00545bc7
mov rdx, qword [rbx + 8]
mov edi, 0x32
test rdx, rdx
je 0x564eca
mov rax, qword [rdx - 0x10]
add rax, 0xfffffffffffffff8
mov qword [rdx - 0x10], rax
cmp rax, 7
ja 0x564eca
add rdx, 0xfffffffffffffff0
mov rcx, qword [0x02129a28]
add rcx, 0x18
call fcn.00545bc7
mov qword [rbx + 8], 0
mov qword [rsp + 0x20], rdi
lea rdx, [0x0060fe00]
lea r8, [0x0060fe38]
lea r9, [0x0060fe46]
mov rcx, rbx
call fcn.00548ce6
mov r10d, r14d
shr r10d, 5
and r14d, 0x1f
mov eax, 1
test r10d, r10d
je 0x565020
xor ebx, ebx
mov r8d, 0xad
pxor xmm0, xmm0
movdqa xmm8, xmmword [0x0060fdd0]
movdqa xmm2, xmmword [0x0060fde0]
movdqa xmm9, xmmword [0x0060fdf0]
mov r9d, 0x80078071
xor edx, edx
cmp r10d, r8d
mov r11d, 0xad
cmovb r11d, r10d
mov ecx, eax
imul ecx, r11d
movd xmm4, ecx
movd xmm5, edx
mov r15d, r11d
shl r15d, 5
mov edi, r11d
mov ecx, ebx
pxor xmm6, xmm6
mov edx, ecx
movdqu xmm7, xmmword [rsi + rdx]
mov edx, ecx
and edx, 0x10
mov ebp, ecx
xor ebp, 0x10
or ebp, edx
movdqa xmm1, xmm7
pmaddubsw xmm7, xmm8
pmaddwd xmm7, xmm2
paddd xmm7, xmm5
movdqu xmm5, xmmword [rsi + rbp]
paddd xmm4, xmm6
psadbw xmm1, xmm0
movdqa xmm3, xmm5
psadbw xmm3, xmm0
paddd xmm6, xmm1
paddd xmm6, xmm3
pmaddubsw xmm5, xmm9
pmaddwd xmm5, xmm2
paddd xmm5, xmm7
add ecx, 0x20
dec edi
jne 0x564f66
add ebx, r15d
pslld xmm4, 5
phaddd xmm6, xmm6
paddd xmm5, xmm4
pshufd xmm1, xmm6, 0xe7
paddd xmm1, xmm6
movd ecx, xmm1
phaddd xmm5, xmm5
pshufd xmm1, xmm5, 0xe7
add eax, ecx
paddd xmm1, xmm5
movd edx, xmm1
mov rcx, rax
imul rcx, r9
shr rcx, 0x2f
imul ecx, ecx, 0xfff1
sub eax, ecx
mov rcx, rdx
imul rcx, r9
shr rcx, 0x2f
imul ecx, ecx, 0xfff1
sub edx, ecx
sub r10d, r11d
jne 0x564f3b
jmp 0x565024
xor edx, edx
xor ebx, ebx
test r14d, r14d
je 0x565042
mov ecx, r14d
xor edi, edi
mov ebp, ebx
movzx ebp, byte [rsi + rbp]
add eax, ebp
inc rdi
add edx, eax
inc ebx
dec rcx
jne 0x56502e
mov ecx, eax
mov ebp, 0x80078071
imul rcx, rbp
shr rcx, 0x2f
imul ecx, ecx, 0xfff1
sub eax, ecx
mov ecx, edx
imul rcx, rbp
shr rcx, 0x2f
imul ecx, ecx, 0xfff1
sub edx, ecx
shl edx, 0x10
mov ecx, edx
not ecx
mov ebp, eax
not ebp
mov ebx, 0xea2a6b4
and ecx, ebx
and edx, 0xf15d0000
or edx, ecx
and ebp, ebx
and eax, 0x594b
or eax, ebp
xor eax, edx
movaps xmm6, xmmword [rsp + 0x30]
movaps xmm7, xmmword [rsp + 0x40]
movaps xmm8, xmmword [rsp + 0x50]
movaps xmm9, xmmword [rsp + 0x60]
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret