Function at 0x6f5df600
Capabilities:
Encode data using xor

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x10
neg r9
test r8d, r8d
jle 0x6f5df85f
lea rax, [rdx + 0x10]
lea rbx, [rcx + 0x10]
cmp rcx, rax
setae r10b
cmp rdx, rbx
setae sil
or r10b, sil
je 0x6f5df8a5
cmp r8d, 5
jbe 0x6f5df8a5
mov rdi, rcx
xor ebx, ebx
shr rdi, 3
and edi, 1
je 0x6f5df667
mov r11, qword [rdx]
mov rbp, qword [rcx]
mov ebx, 1
xor rbp, r11
and rbp, r9
xor r11, rbp
mov qword [rdx], r11
xor qword [rcx], rbp
mov eax, edi
mov qword [rsp + 8], r9
mov ebp, r8d
shl rax, 3
movq xmm0, qword [rsp + 8]
lea r11, [rdx + rax]
add rax, rcx
sub ebp, edi
punpcklqdq xmm0, xmm0
mov r12d, ebp
movdqu xmm2, xmmword [r11]
shr r12d, 1
lea edi, [r12 - 1]
mov esi, 1
mov r10d, 0x10
movdqa xmm1, xmmword [rax]
and edi, 3
cmp r12d, 1
pxor xmm1, xmm2
pand xmm1, xmm0
pxor xmm2, xmm1
movups xmmword [r11], xmm2
pxor xmm1, xmmword [rax]
movaps xmmword [rax], xmm1
jbe 0x6f5df803
test edi, edi
je 0x6f5df744
cmp edi, 1
je 0x6f5df70c
cmp edi, 2
jne 0x6f5df870
movdqu xmm5, xmmword [r11 + r10]
add esi, 1
movdqa xmm2, xmmword [rax + r10]
pxor xmm2, xmm5
pand xmm2, xmm0
pxor xmm5, xmm2
movups xmmword [r11 + r10], xmm5
pxor xmm2, xmmword [rax + r10]
movaps xmmword [rax + r10], xmm2
add r10, 0x10
add esi, 1
movdqu xmm3, xmmword [r11 + r10]
movdqa xmm1, xmmword [rax + r10]
pxor xmm1, xmm3
pand xmm1, xmm0
pxor xmm3, xmm1
movups xmmword [r11 + r10], xmm3
pxor xmm1, xmmword [rax + r10]
movaps xmmword [rax + r10], xmm1
add r10, 0x10
cmp r12d, esi
jbe 0x6f5df803
add esi, 4
movdqu xmm4, xmmword [r11 + r10]
movdqa xmm5, xmmword [rax + r10]
pxor xmm5, xmm4
pand xmm5, xmm0
pxor xmm4, xmm5
movups xmmword [r11 + r10], xmm4
pxor xmm5, xmmword [rax + r10]
movdqa xmm3, xmmword [rax + r10 + 0x10]
movaps xmmword [rax + r10], xmm5
movdqu xmm2, xmmword [r11 + r10 + 0x10]
pxor xmm3, xmm2
pand xmm3, xmm0
pxor xmm2, xmm3
movups xmmword [r11 + r10 + 0x10], xmm2
pxor xmm3, xmmword [rax + r10 + 0x10]
movdqa xmm1, xmmword [rax + r10 + 0x20]
movaps xmmword [rax + r10 + 0x10], xmm3
movdqu xmm4, xmmword [r11 + r10 + 0x20]
pxor xmm1, xmm4
pand xmm1, xmm0
pxor xmm4, xmm1
movups xmmword [r11 + r10 + 0x20], xmm4
pxor xmm1, xmmword [rax + r10 + 0x20]
movdqa xmm2, xmmword [rax + r10 + 0x30]
movaps xmmword [rax + r10 + 0x20], xmm1
movdqu xmm5, xmmword [r11 + r10 + 0x30]
pxor xmm2, xmm5
pand xmm2, xmm0
pxor xmm5, xmm2
movups xmmword [r11 + r10 + 0x30], xmm5
pxor xmm2, xmmword [rax + r10 + 0x30]
movaps xmmword [rax + r10 + 0x30], xmm2
add r10, 0x40
cmp r12d, esi
ja 0x6f5df744
mov r12d, ebp
and r12d, 0xfffffffe
add ebx, r12d
cmp ebp, r12d
je 0x6f5df85f
movsxd rax, ebx
add ebx, 1
shl rax, 3
lea rdi, [rdx + rax]
add rax, rcx
mov rsi, qword [rax]
mov r11, qword [rdi]
xor rsi, r11
and rsi, r9
xor r11, rsi
mov qword [rdi], r11
xor qword [rax], rsi
cmp r8d, ebx
jle 0x6f5df85f
movsxd r10, ebx
shl r10, 3
add rdx, r10
add rcx, r10
mov r8, qword [rdx]
mov rbx, qword [rcx]
xor rbx, r8
and r9, rbx
xor r8, r9
mov qword [rdx], r8
xor qword [rcx], r9
add rsp, 0x10
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
movdqu xmm3, xmmword [r11 + 0x10]
mov esi, 2
mov r10d, 0x20
movdqa xmm4, xmmword [rax + 0x10]
pxor xmm4, xmm3
pand xmm4, xmm0
pxor xmm3, xmm4
movups xmmword [r11 + 0x10], xmm3
pxor xmm4, xmmword [rax + 0x10]
movaps xmmword [rax + 0x10], xmm4
jmp 0x6f5df6dd
lea ebp, [r8 - 1]
lea r12, [rdx + 8]
lea rdi, [r12 + rbp*8]
mov rax, rdi
sub rax, rdx
sub rax, 8
shr rax, 3
add rax, 1
and eax, 7
je 0x6f5df9d5
cmp rax, 1
je 0x6f5df9ae
cmp rax, 2
je 0x6f5df990
cmp rax, 3
je 0x6f5df972
cmp rax, 4
je 0x6f5df954
cmp rax, 5
je 0x6f5df936
cmp rax, 6
je 0x6f5df918
mov r11, qword [rdx]
mov rsi, qword [rcx]
xor rsi, r11
and rsi, r9
xor r11, rsi
mov qword [rdx], r11
mov rdx, r12
xor qword [rcx], rsi
add rcx, 8
mov r10, qword [rdx]
mov r8, qword [rcx]
add rdx, 8
xor r8, r10
and r8, r9
xor r10, r8
mov qword [rdx - 8], r10
xor qword [rcx], r8
add rcx, 8
mov rbx, qword [rdx]
mov rbp, qword [rcx]
add rdx, 8
xor rbp, rbx
and rbp, r9
xor rbx, rbp
mov qword [rdx - 8], rbx
xor qword [rcx], rbp
add rcx, 8
mov r12, qword [rdx]
mov rax, qword [rcx]
add rdx, 8
xor rax, r12
and rax, r9
xor r12, rax
mov qword [rdx - 8], r12
xor qword [rcx], rax
add rcx, 8
mov r11, qword [rdx]
mov rsi, qword [rcx]
add rdx, 8
xor rsi, r11
and rsi, r9
xor r11, rsi
mov qword [rdx - 8], r11
xor qword [rcx], rsi
add rcx, 8
mov r10, qword [rdx]
mov r8, qword [rcx]
add rdx, 8
xor r8, r10
and r8, r9
xor r10, r8
mov qword [rdx - 8], r10
xor qword [rcx], r8
add rcx, 8
mov rbx, qword [rdx]
mov rbp, qword [rcx]
add rdx, 8
xor rbp, rbx
and rbp, r9
xor rbx, rbp
mov qword [rdx - 8], rbx
xor qword [rcx], rbp
add rcx, 8
cmp rdx, rdi
je 0x6f5df85f
mov r12, qword [rdx]
mov rax, qword [rcx]
xor rax, r12
and rax, r9
xor r12, rax
mov qword [rdx], r12
xor qword [rcx], rax
mov r11, qword [rdx + 8]
mov rsi, qword [rcx + 8]
xor rsi, r11
and rsi, r9
xor r11, rsi
mov qword [rdx + 8], r11
xor qword [rcx + 8], rsi
mov r10, qword [rdx + 0x10]
mov r8, qword [rcx + 0x10]
xor r8, r10
and r8, r9
xor r10, r8
mov qword [rdx + 0x10], r10
xor qword [rcx + 0x10], r8
mov rbx, qword [rdx + 0x18]
mov rbp, qword [rcx + 0x18]
xor rbp, rbx
and rbp, r9
xor rbx, rbp
mov qword [rdx + 0x18], rbx
xor qword [rcx + 0x18], rbp
mov r12, qword [rdx + 0x20]
mov rax, qword [rcx + 0x20]
xor rax, r12
and rax, r9
xor r12, rax
mov qword [rdx + 0x20], r12
xor qword [rcx + 0x20], rax
mov r11, qword [rdx + 0x28]
mov rsi, qword [rcx + 0x28]
xor rsi, r11
and rsi, r9
xor r11, rsi
mov qword [rdx + 0x28], r11
xor qword [rcx + 0x28], rsi
mov r10, qword [rdx + 0x30]
mov r8, qword [rcx + 0x30]
xor r8, r10
and r8, r9
xor r10, r8
mov qword [rdx + 0x30], r10
xor qword [rcx + 0x30], r8
mov rbx, qword [rdx + 0x38]
mov rbp, qword [rcx + 0x38]
xor rbp, rbx
and rbp, r9
xor rbx, rbp
mov qword [rdx + 0x38], rbx
xor qword [rcx + 0x38], rbp
add rdx, 0x40
add rcx, 0x40
cmp rdx, rdi
jne 0x6f5df9d5
jmp 0x6f5df85f