Function at 0x6f5df0e0
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 0x6f5df424
lea rax, [rdx + 0x10]
lea rbx, [rcx + 0x10]
cmp rcx, rax
setae r10b
cmp rdx, rbx
setae sil
or r10b, sil
je 0x6f5df430
cmp r8d, 6
jbe 0x6f5df430
mov rdi, rcx
xor r11d, r11d
shr rdi, 3
and edi, 1
je 0x6f5df146
mov r11, qword [rcx]
mov rbp, qword [rdx]
xor rbp, r11
and rbp, r9
xor rbp, r11
mov r11d, 1
mov qword [rcx], rbp
mov r10d, edi
mov qword [rsp + 8], r9
mov r12d, r8d
shl r10, 3
movq xmm0, qword [rsp + 8]
lea rbx, [rdx + r10]
add r10, rcx
sub r12d, edi
movdqa xmm2, xmmword [r10]
mov ebp, r12d
punpcklqdq xmm0, xmm0
shr ebp, 1
movdqu xmm1, xmmword [rbx]
lea edi, [rbp - 1]
mov esi, 1
mov eax, 0x10
pxor xmm1, xmm2
and edi, 7
cmp ebp, 1
pand xmm1, xmm0
pxor xmm1, xmm2
movaps xmmword [r10], xmm1
jbe 0x6f5df3d6
test edi, edi
je 0x6f5df2d2
cmp edi, 1
je 0x6f5df2a7
cmp edi, 2
je 0x6f5df284
cmp edi, 3
je 0x6f5df261
cmp edi, 4
je 0x6f5df23e
cmp edi, 5
je 0x6f5df21b
cmp edi, 6
je 0x6f5df1f8
movdqa xmm3, xmmword [r10 + 0x10]
mov esi, 2
mov eax, 0x20
movdqu xmm4, xmmword [rbx + 0x10]
pxor xmm4, xmm3
pand xmm4, xmm0
pxor xmm4, xmm3
movaps xmmword [r10 + 0x10], xmm4
add esi, 1
movdqa xmm5, xmmword [r10 + rax]
movdqu xmm2, xmmword [rbx + rax]
pxor xmm2, xmm5
pand xmm2, xmm0
pxor xmm2, xmm5
movaps xmmword [r10 + rax], xmm2
add rax, 0x10
add esi, 1
movdqa xmm3, xmmword [r10 + rax]
movdqu xmm1, xmmword [rbx + rax]
pxor xmm1, xmm3
pand xmm1, xmm0
pxor xmm1, xmm3
movaps xmmword [r10 + rax], xmm1
add rax, 0x10
add esi, 1
movdqa xmm4, xmmword [r10 + rax]
movdqu xmm5, xmmword [rbx + rax]
pxor xmm5, xmm4
pand xmm5, xmm0
pxor xmm5, xmm4
movaps xmmword [r10 + rax], xmm5
add rax, 0x10
add esi, 1
movdqa xmm2, xmmword [r10 + rax]
movdqu xmm3, xmmword [rbx + rax]
pxor xmm3, xmm2
pand xmm3, xmm0
pxor xmm3, xmm2
movaps xmmword [r10 + rax], xmm3
add rax, 0x10
add esi, 1
movdqa xmm4, xmmword [r10 + rax]
movdqu xmm1, xmmword [rbx + rax]
pxor xmm1, xmm4
pand xmm1, xmm0
pxor xmm1, xmm4
movaps xmmword [r10 + rax], xmm1
add rax, 0x10
add esi, 1
movdqa xmm5, xmmword [r10 + rax]
movdqu xmm2, xmmword [rbx + rax]
pxor xmm2, xmm5
pand xmm2, xmm0
pxor xmm2, xmm5
movaps xmmword [r10 + rax], xmm2
add rax, 0x10
cmp ebp, esi
jbe 0x6f5df3d6
add esi, 8
movdqu xmm4, xmmword [rbx + rax]
movdqa xmm3, xmmword [r10 + rax]
pxor xmm4, xmm3
movdqa xmm5, xmmword [r10 + rax + 0x10]
pand xmm4, xmm0
movdqa xmm2, xmmword [r10 + rax + 0x20]
pxor xmm4, xmm3
movaps xmmword [r10 + rax], xmm4
movdqu xmm1, xmmword [rbx + rax + 0x10]
pxor xmm1, xmm5
movdqa xmm4, xmmword [r10 + rax + 0x30]
pand xmm1, xmm0
pxor xmm1, xmm5
movaps xmmword [r10 + rax + 0x10], xmm1
movdqu xmm3, xmmword [rbx + rax + 0x20]
pxor xmm3, xmm2
pand xmm3, xmm0
pxor xmm3, xmm2
movdqa xmm2, xmmword [r10 + rax + 0x40]
movaps xmmword [r10 + rax + 0x20], xmm3
movdqu xmm5, xmmword [rbx + rax + 0x30]
pxor xmm5, xmm4
movdqa xmm3, xmmword [r10 + rax + 0x50]
pand xmm5, xmm0
pxor xmm5, xmm4
movaps xmmword [r10 + rax + 0x30], xmm5
movdqu xmm1, xmmword [rbx + rax + 0x40]
pxor xmm1, xmm2
movdqa xmm5, xmmword [r10 + rax + 0x60]
pand xmm1, xmm0
pxor xmm1, xmm2
movaps xmmword [r10 + rax + 0x40], xmm1
movdqu xmm4, xmmword [rbx + rax + 0x50]
pxor xmm4, xmm3
pand xmm4, xmm0
pxor xmm4, xmm3
movdqa xmm3, xmmword [r10 + rax + 0x70]
movaps xmmword [r10 + rax + 0x50], xmm4
movdqu xmm2, xmmword [rbx + rax + 0x60]
pxor xmm2, xmm5
pand xmm2, xmm0
pxor xmm2, xmm5
movaps xmmword [r10 + rax + 0x60], xmm2
movdqu xmm1, xmmword [rbx + rax + 0x70]
pxor xmm1, xmm3
pand xmm1, xmm0
pxor xmm1, xmm3
movaps xmmword [r10 + rax + 0x70], xmm1
sub rax, 0xffffffffffffff80
cmp ebp, esi
ja 0x6f5df2d2
mov ebp, r12d
and ebp, 0xfffffffe
add r11d, ebp
cmp r12d, ebp
je 0x6f5df424
movsxd rdi, r11d
add r11d, 1
lea r10, [rcx + rdi*8]
mov rax, qword [rdx + rdi*8]
mov rbx, qword [r10]
xor rax, rbx
mov rsi, rax
and rsi, r9
xor rsi, rbx
cmp r8d, r11d
mov qword [r10], rsi
jle 0x6f5df424
movsxd r11, r11d
lea rcx, [rcx + r11*8]
mov rdx, qword [rdx + r11*8]
mov r8, qword [rcx]
xor rdx, r8
and r9, rdx
xor r9, r8
mov qword [rcx], r9
add rsp, 0x10
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
sub r8d, 1
xor r10d, r10d
lea r12, [r8*8 + 8]
add r8, 1
and r8d, 7
je 0x6f5df530
cmp r8, 1
je 0x6f5df50e
cmp r8, 2
je 0x6f5df4f5
cmp r8, 3
je 0x6f5df4dc
cmp r8, 4
je 0x6f5df4c3
cmp r8, 5
je 0x6f5df4aa
cmp r8, 6
je 0x6f5df491
mov rbp, qword [rcx]
mov rdi, qword [rdx]
mov r10d, 8
xor rdi, rbp
and rdi, r9
xor rdi, rbp
mov qword [rcx], rdi
mov rbx, qword [rcx + r10]
mov rax, qword [rdx + r10]
xor rax, rbx
and rax, r9
xor rax, rbx
mov qword [rcx + r10], rax
add r10, 8
mov rsi, qword [rcx + r10]
mov r11, qword [rdx + r10]
xor r11, rsi
and r11, r9
xor r11, rsi
mov qword [rcx + r10], r11
add r10, 8
mov rbp, qword [rcx + r10]
mov r8, qword [rdx + r10]
xor r8, rbp
and r8, r9
xor r8, rbp
mov qword [rcx + r10], r8
add r10, 8
mov rdi, qword [rcx + r10]
mov rbx, qword [rdx + r10]
xor rbx, rdi
and rbx, r9
xor rbx, rdi
mov qword [rcx + r10], rbx
add r10, 8
mov rax, qword [rcx + r10]
mov rsi, qword [rdx + r10]
xor rsi, rax
and rsi, r9
xor rsi, rax
mov qword [rcx + r10], rsi
add r10, 8
mov r11, qword [rcx + r10]
mov rbp, qword [rdx + r10]
xor rbp, r11
and rbp, r9
xor rbp, r11
mov qword [rcx + r10], rbp
add r10, 8
cmp r10, r12
je 0x6f5df424
mov r8, qword [rdx + r10]
mov rdi, qword [rcx + r10]
mov rbx, qword [rcx + r10 + 8]
mov rsi, qword [rcx + r10 + 0x10]
mov rbp, qword [rcx + r10 + 0x18]
xor r8, rdi
and r8, r9
xor r8, rdi
mov qword [rcx + r10], r8
mov rax, qword [rdx + r10 + 8]
xor rax, rbx
and rax, r9
xor rax, rbx
mov rbx, qword [rcx + r10 + 0x20]
mov qword [rcx + r10 + 8], rax
mov r11, qword [rdx + r10 + 0x10]
mov rax, qword [rcx + r10 + 0x28]
xor r11, rsi
and r11, r9
xor r11, rsi
mov qword [rcx + r10 + 0x10], r11
mov rdi, qword [rdx + r10 + 0x18]
mov r11, qword [rcx + r10 + 0x30]
xor rdi, rbp
and rdi, r9
xor rdi, rbp
mov qword [rcx + r10 + 0x18], rdi
mov r8, qword [rdx + r10 + 0x20]
mov rdi, qword [rcx + r10 + 0x38]
xor r8, rbx
and r8, r9
xor r8, rbx
mov qword [rcx + r10 + 0x20], r8
mov rsi, qword [rdx + r10 + 0x28]
xor rsi, rax
and rsi, r9
xor rsi, rax
mov qword [rcx + r10 + 0x28], rsi
mov rbp, qword [rdx + r10 + 0x30]
xor rbp, r11
and rbp, r9
xor rbp, r11
mov qword [rcx + r10 + 0x30], rbp
mov rbx, qword [rdx + r10 + 0x38]
xor rbx, rdi
and rbx, r9
xor rbx, rdi
mov qword [rcx + r10 + 0x38], rbx
add r10, 0x40
cmp r10, r12
jne 0x6f5df530
jmp 0x6f5df424