Function at 0x14005ccb0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
mov eax, edx
xor eax, ecx
test al, 7
jne 0x14005cef3
test cl, 7
je 0x14005cd71
test r8d, r8d
je 0x14005cd71
cmp r8d, 0x20
jb 0x14005ccf3
mov r11d, r8d
lea rax, [rdx + r11]
cmp rax, rcx
jbe 0x14005cdeb
lea rax, [rcx + r11]
cmp rax, rdx
jbe 0x14005cdeb
mov r9, rdx
mov rax, rcx
lea ecx, [r8 - 1]
test r8b, 3
je 0x14005cd2a
mov r10d, r8d
and r10d, 3
xor edx, edx
nop dword [rax]
movzx r11d, byte [r9 + rdx]
xor byte [rax + rdx], r11b
inc rdx
cmp r10d, edx
jne 0x14005cd10
sub r8d, edx
add r9, rdx
add rax, rdx
xor r10d, r10d
cmp ecx, 3
jb 0x14005cee6
nop word cs:[rax + rax]
movzx ecx, byte [r9]
xor byte [rax], cl
movzx ecx, byte [r9 + 1]
xor byte [rax + 1], cl
movzx ecx, byte [r9 + 2]
xor byte [rax + 2], cl
movzx ecx, byte [r9 + 3]
xor byte [rax + 3], cl
add r9, 4
add rax, 4
add r8d, 0xfffffffc
jne 0x14005cd40
jmp 0x14005cee6
cmp r8d, 8
jae 0x14005cd85
mov r10d, r8d
mov rax, rcx
mov r9, rdx
jmp 0x14005cee6
mov r10d, r8d
shr r10d, 3
lea esi, [r10 - 1]
xor r11d, r11d
cmp esi, 9
jb 0x14005cdba
lea rax, [rdx + rsi*8]
add rax, 8
cmp rax, rcx
jbe 0x14005ce9b
lea rax, [rcx + rsi*8]
add rax, 8
cmp rax, rdx
jbe 0x14005ce9b
mov rax, rcx
mov r9, rdx
mov ecx, r10d
sub ecx, r11d
and ecx, 3
je 0x14005ce41
neg ecx
xor edx, edx
nop
mov rsi, qword [r9]
xor qword [rax], rsi
add r9, 8
add rax, 8
dec edx
cmp ecx, edx
jne 0x14005cdd0
mov ecx, r11d
sub ecx, edx
jmp 0x14005ce44
mov esi, r11d
and esi, 0xffffffe0
sub r8d, esi
lea r9, [rdx + rsi]
lea rax, [rcx + rsi]
xor r10d, r10d
nop
movups xmm0, xmmword [rdx + r10]
movups xmm1, xmmword [rdx + r10 + 0x10]
movups xmm2, xmmword [rcx + r10]
xorps xmm2, xmm0
movups xmm0, xmmword [rcx + r10 + 0x10]
xorps xmm0, xmm1
movups xmmword [rcx + r10], xmm2
movups xmmword [rcx + r10 + 0x10], xmm0
add r10, 0x20
cmp rsi, r10
jne 0x14005ce00
xor r10d, r10d
cmp rsi, r11
jne 0x14005ccf9
jmp 0x14005cee6
mov ecx, r11d
sub r11d, r10d
cmp r11d, 0xfffffffc
ja 0x14005cee3
sub r10d, ecx
xor edx, edx
xor ecx, ecx
nop dword [rax + rax]
mov r11, qword [r9 + rdx*8]
xor qword [rax + rdx*8], r11
mov r11, qword [r9 + rdx*8 + 8]
xor qword [rax + rdx*8 + 8], r11
mov r11, qword [r9 + rdx*8 + 0x10]
xor qword [rax + rdx*8 + 0x10], r11
mov r11, qword [r9 + rdx*8 + 0x18]
xor qword [rax + rdx*8 + 0x18], r11
add rcx, 0xffffffffffffffe0
add rdx, 4
cmp r10d, edx
jne 0x14005ce60
sub rax, rcx
sub r9, rcx
jmp 0x14005cee3
inc rsi
mov r11, rsi
and r11, 0xfffffffffffffffc
lea rax, [rcx + r11*8]
lea r9, [rdx + r11*8]
xor edi, edi
nop
movups xmm0, xmmword [rdx + rdi*8]
movups xmm1, xmmword [rdx + rdi*8 + 0x10]
movups xmm2, xmmword [rcx + rdi*8]
xorps xmm2, xmm0
movups xmm0, xmmword [rcx + rdi*8 + 0x10]
xorps xmm0, xmm1
movups xmmword [rcx + rdi*8], xmm2
movups xmmword [rcx + rdi*8 + 0x10], xmm0
add rdi, 4
cmp r11, rdi
jne 0x14005ceb0
cmp rsi, r11
jne 0x14005cdc0
mov r10d, r8d
and r10d, 7
mov rcx, rax
mov rdx, r9
mov r8d, r10d
test r8d, r8d
je 0x14005cf83
mov eax, r8d
cmp r8d, 8
jb 0x14005cf1b
lea r9, [rdx + rax]
cmp rcx, r9
jae 0x14005cf86
lea r9, [rcx + rax]
cmp rdx, r9
jae 0x14005cf86
xor r8d, r8d
mov r10, rax
mov r9, r8
and r10, 3
je 0x14005cf41
mov r9, r8
nop dword [rax]
movzx r11d, byte [rdx + r9]
xor byte [rcx + r9], r11b
inc r9
dec r10
jne 0x14005cf30
sub r8, rax
cmp r8, 0xfffffffffffffffc
ja 0x14005cf83
nop word [rax + rax]
movzx r8d, byte [rdx + r9]
xor byte [rcx + r9], r8b
movzx r8d, byte [rdx + r9 + 1]
xor byte [rcx + r9 + 1], r8b
movzx r8d, byte [rdx + r9 + 2]
xor byte [rcx + r9 + 2], r8b
movzx r8d, byte [rdx + r9 + 3]
xor byte [rcx + r9 + 3], r8b
add r9, 4
cmp rax, r9
jne 0x14005cf50
pop rdi
pop rsi
ret
cmp r8d, 0x20
jae 0x14005cf91
xor r8d, r8d
jmp 0x14005cfdd
mov r8d, eax
and r8d, 0xffffffe0
xor r9d, r9d
nop dword [rax + rax]
movups xmm0, xmmword [rdx + r9]
movups xmm1, xmmword [rdx + r9 + 0x10]
movups xmm2, xmmword [rcx + r9]
xorps xmm2, xmm0
movups xmm0, xmmword [rcx + r9 + 0x10]
xorps xmm0, xmm1
movups xmmword [rcx + r9], xmm2
movups xmmword [rcx + r9 + 0x10], xmm0
add r9, 0x20
cmp r8, r9
jne 0x14005cfa0
cmp r8, rax
je 0x14005cf83
test al, 0x18
je 0x14005cf1e
mov r9, r8
mov r8d, eax
and r8d, 0xfffffff8
nop word [rax + rax]
mov r10, qword [rdx + r9]
xor qword [rcx + r9], r10
add r9, 8
cmp r8, r9
jne 0x14005cff0
cmp r8, rax
je 0x14005cf83
jmp 0x14005cf1e