Function at 0x1800d4480
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push rdi
push r14
mov rbp, rsp
sub rsp, 0x60
mov qword [rbp - 0x40], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x20], rsi
mov rsi, r9
movzx ebx, r8b
mov rdi, rdx
mov r14, rcx
mov byte [rbp + 0x30], bl
mov rax, qword [r9]
mov r8d, 1
lea rdx, [rbp + 0x30]
mov rcx, r9
call qword [rax + 0x10]
mov byte [rbp + 0x30], bl
mov rbx, qword [rbp + 0x40]
mov rax, qword [rbx]
mov r8d, 1
lea rdx, [rbp + 0x30]
mov rcx, rbx
call qword [rax + 0x10]
mov rdx, qword [rdi]
mov r8, qword [rdi + 8]
sub r8, rdx
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x10]
mov rdx, qword [rdi]
mov r8, qword [rdi + 8]
sub r8, rdx
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
lea rdx, [rbp - 0x38]
mov rcx, rsi
call fcn.180020930
nop
mov rdx, qword [rbp - 0x30]
mov r9, qword [rbp - 0x38]
sub rdx, r9
mov qword [rbp + 0x40], rdx
mov r8, qword [r14]
mov rax, qword [r14 + 8]
sub rax, r8
mov qword [rbp + 0x20], rax
lea rcx, [rbp + 0x40]
lea r10, [rbp + 0x20]
cmp rdx, rax
cmovae rcx, r10
mov rdx, qword [rcx]
cmp rdx, 0x10
jb 0x1800d4570
mov r10, rdx
shr r10, 4
imul rax, r10, 0xfffffffffffffff0
add rdx, rax
mov rcx, qword [r9 + 8]
mov rax, qword [r8]
xor rax, qword [r9]
xor qword [r8 + 8], rcx
mov qword [r8], rax
add r8, 0x10
add r9, 0x10
sub r10, 1
jne 0x1800d4551
test rdx, rdx
je 0x1800d4592
sub r9, r8
nop dword [rax + rax]
movzx eax, byte [r9 + r8]
xor byte [r8], al
lea r8, [r8 + 1]
sub rdx, 1
jne 0x1800d4580
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.180020930
mov rbx, rax
lea rax, [rbp - 0x38]
cmp rax, rbx
je 0x1800d45f3
xor edi, edi
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x1800d45d1
mov rdx, qword [rbp - 0x28]
sub rdx, rcx
lea r8d, [rdi + 1]
call fcn.1800302d0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x38], xmm0
mov qword [rbp - 0x28], rdi
mov rax, qword [rbx]
mov qword [rbp - 0x38], rax
mov rax, qword [rbx + 8]
mov qword [rbp - 0x30], rax
mov rax, qword [rbx + 0x10]
mov qword [rbp - 0x28], rax
mov qword [rbx], rdi
mov qword [rbx + 8], rdi
mov qword [rbx + 0x10], rdi
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x1800d460f
mov rdx, qword [rbp - 0x10]
sub rdx, rcx
mov r8d, 1
call fcn.1800302d0
nop
mov r8, qword [rbp - 0x30]
mov r10, qword [rbp - 0x38]
sub r8, r10
mov qword [rbp + 0x40], r8
mov rax, qword [r14]
mov rcx, qword [r14 + 8]
sub rcx, rax
mov qword [rbp + 0x20], rcx
lea rdx, [rbp + 0x40]
lea r9, [rbp + 0x20]
cmp r8, rcx
cmovae rdx, r9
mov r9, qword [rdx]
mov r8, r10
cmp r9, 0x10
jb 0x1800d4680
mov r10, r9
shr r10, 4
imul rcx, r10, 0xfffffffffffffff0
add r9, rcx
nop word [rax + rax]
mov rcx, qword [r8]
mov rdx, qword [r8 + 8]
xor qword [rax], rcx
xor qword [rax + 8], rdx
add rax, 0x10
add r8, 0x10
sub r10, 1
jne 0x1800d4660
mov r10, qword [rbp - 0x38]
test r9, r9
je 0x1800d46a5
sub r8, rax
nop dword [rax + rax]
movzx ecx, byte [r8 + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub r9, 1
jne 0x1800d4690
mov r10, qword [rbp - 0x38]
test r10, r10
je 0x1800d46c0
mov rdx, qword [rbp - 0x28]
sub rdx, r10
mov r8d, 1
mov rcx, r10
call fcn.1800302d0
nop
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret