Function at 0x14005cd00
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
mov eax, edx
xor eax, ecx
test al, 7
jne 0x14005cf43
test cl, 7
je 0x14005cdc1
test r8d, r8d
je 0x14005cdc1
cmp r8d, 0x20
jb 0x14005cd43
mov r11d, r8d
lea rax, [rdx + r11]
cmp rax, rcx
jbe 0x14005ce3b
lea rax, [rcx + r11]
cmp rax, rdx
jbe 0x14005ce3b
mov r9, rdx
mov rax, rcx
lea ecx, [r8 - 1]
test r8b, 3
je 0x14005cd7a
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 0x14005cd60
sub r8d, edx
add r9, rdx
add rax, rdx
xor r10d, r10d
cmp ecx, 3
jb 0x14005cf36
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 0x14005cd90
jmp 0x14005cf36
cmp r8d, 8
jae 0x14005cdd5
mov r10d, r8d
mov rax, rcx
mov r9, rdx
jmp 0x14005cf36
mov r10d, r8d
shr r10d, 3
lea esi, [r10 - 1]
xor r11d, r11d
cmp esi, 9
jb 0x14005ce0a
lea rax, [rdx + rsi*8]
add rax, 8
cmp rax, rcx
jbe 0x14005ceeb
lea rax, [rcx + rsi*8]
add rax, 8
cmp rax, rdx
jbe 0x14005ceeb
mov rax, rcx
mov r9, rdx
mov ecx, r10d
sub ecx, r11d
and ecx, 3
je 0x14005ce91
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 0x14005ce20
mov ecx, r11d
sub ecx, edx
jmp 0x14005ce94
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 0x14005ce50
xor r10d, r10d
cmp rsi, r11
jne 0x14005cd49
jmp 0x14005cf36
mov ecx, r11d
sub r11d, r10d
cmp r11d, 0xfffffffc
ja 0x14005cf33
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 0x14005ceb0
sub rax, rcx
sub r9, rcx
jmp 0x14005cf33
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 0x14005cf00
cmp rsi, r11
jne 0x14005ce10
mov r10d, r8d
and r10d, 7
mov rcx, rax
mov rdx, r9
mov r8d, r10d
test r8d, r8d
je 0x14005cfd3
mov eax, r8d
cmp r8d, 8
jb 0x14005cf6b
lea r9, [rdx + rax]
cmp rcx, r9
jae 0x14005cfd6
lea r9, [rcx + rax]
cmp rdx, r9
jae 0x14005cfd6
xor r8d, r8d
mov r10, rax
mov r9, r8
and r10, 3
je 0x14005cf91
mov r9, r8
nop dword [rax]
movzx r11d, byte [rdx + r9]
xor byte [rcx + r9], r11b
inc r9
dec r10
jne 0x14005cf80
sub r8, rax
cmp r8, 0xfffffffffffffffc
ja 0x14005cfd3
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 0x14005cfa0
pop rdi
pop rsi
ret
cmp r8d, 0x20
jae 0x14005cfe1
xor r8d, r8d
jmp 0x14005d02d
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 0x14005cff0
cmp r8, rax
je 0x14005cfd3
test al, 0x18
je 0x14005cf6e
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 0x14005d040
cmp r8, rax
je 0x14005cfd3
jmp 0x14005cf6e