Function at 0x14014a8c0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
movsxd rdi, r8d
mov rsi, r9
mov rbx, rcx
test rcx, rcx
je 0x14014acec
test rdx, rdx
je 0x14014acec
lea eax, [rdi - 1]
cmp eax, 0x7f
ja 0x14014acd7
mov r8d, edi
mov qword [rsp + 0x30], rbp
mov dword [rcx + 0x90], edi
mov dword [rcx + 0x94], 0x28
call fcn.14014cbf0
mov r9d, 0x80
lea rbp, [0x1401d5030]
mov r8d, edi
cmp rdi, r9
jge 0x14014a957
lea rdx, [rdi + rbx]
sub r9, rdi
nop
mov eax, r8d
lea rdx, [rdx + 1]
sub eax, edi
inc r8d
movzx ecx, byte [rax + rbx]
movzx eax, byte [rdx - 2]
add rcx, rax
movzx eax, cl
movzx eax, byte [rax + rbp]
mov byte [rdx - 1], al
sub r9, 1
jne 0x14014a930
movzx eax, byte [rbx + 0x7b]
lea r9, [rbx + 0x79]
mov r10d, 0x7e
movzx eax, byte [rax + rbp]
mov byte [rbx + 0x7b], al
lea r11d, [r10 - 0x55]
lea eax, [r10 + 1]
movzx edx, byte [rax + rbx]
movzx eax, byte [r9 + 2]
lea r9, [r9 - 3]
xor rdx, rax
mov eax, r10d
movzx r8d, byte [rdx + rbp]
mov byte [r9 + 4], r8b
movzx ecx, byte [rax + rbx]
lea eax, [r10 - 1]
xor rcx, r8
sub r10d, 3
movzx edx, byte [rcx + rbp]
mov byte [r9 + 3], dl
movzx eax, byte [rax + rbx]
xor rax, rdx
movzx eax, byte [rax + rbp]
mov byte [r9 + 2], al
sub r11, 1
jne 0x14014a970
mov rbp, qword [rsp + 0x30]
lea r8, [rbx + 3]
lea r9d, [r11 + 2]
mov r10d, 0x100
nop
movzx eax, byte [r8 - 3]
movzx edx, byte [r8 - 2]
imul edx, r10d
add dx, ax
mov word [r8 - 3], dx
movzx eax, byte [r8 - 1]
movzx edx, byte [r8]
imul edx, r10d
add dx, ax
mov word [r8 - 1], dx
movzx eax, byte [r8 + 1]
movzx edx, byte [r8 + 2]
imul edx, r10d
add dx, ax
mov word [r8 + 1], dx
movzx eax, byte [r8 + 3]
movzx edx, byte [r8 + 4]
imul edx, r10d
add dx, ax
mov word [r8 + 3], dx
movzx eax, byte [r8 + 5]
movzx edx, byte [r8 + 6]
imul edx, r10d
add dx, ax
mov word [r8 + 5], dx
movzx eax, byte [r8 + 7]
movzx edx, byte [r8 + 8]
imul edx, r10d
add dx, ax
mov word [r8 + 7], dx
movzx eax, byte [r8 + 9]
movzx edx, byte [r8 + 0xa]
imul edx, r10d
add dx, ax
mov word [r8 + 9], dx
movzx eax, byte [r8 + 0xb]
movzx edx, byte [r8 + 0xc]
imul edx, r10d
add dx, ax
mov word [r8 + 0xb], dx
movzx eax, byte [r8 + 0xd]
movzx edx, byte [r8 + 0xe]
imul edx, r10d
add dx, ax
mov word [r8 + 0xd], dx
movzx eax, byte [r8 + 0xf]
movzx edx, byte [r8 + 0x10]
imul edx, r10d
add dx, ax
mov word [r8 + 0xf], dx
movzx eax, byte [r8 + 0x11]
movzx edx, byte [r8 + 0x12]
imul edx, r10d
add dx, ax
mov word [r8 + 0x11], dx
movzx eax, byte [r8 + 0x13]
movzx edx, byte [r8 + 0x14]
imul edx, r10d
add dx, ax
mov word [r8 + 0x13], dx
movzx eax, byte [r8 + 0x15]
movzx edx, byte [r8 + 0x16]
imul edx, r10d
add dx, ax
mov word [r8 + 0x15], dx
movzx eax, byte [r8 + 0x17]
movzx edx, byte [r8 + 0x18]
imul edx, r10d
add dx, ax
mov word [r8 + 0x17], dx
movzx eax, byte [r8 + 0x19]
movzx edx, byte [r8 + 0x1a]
imul edx, r10d
add dx, ax
mov word [r8 + 0x19], dx
movzx edx, byte [r8 + 0x1c]
movzx eax, byte [r8 + 0x1b]
imul edx, r10d
add dx, ax
mov word [r8 + 0x1b], dx
movzx edx, byte [r8 + 0x1e]
movzx eax, byte [r8 + 0x1d]
lea r8, [r8 + 0x40]
imul edx, r10d
add dx, ax
mov word [r8 - 0x23], dx
movzx eax, byte [r8 - 0x21]
movzx edx, byte [r8 - 0x20]
imul edx, r10d
add dx, ax
mov word [r8 - 0x21], dx
movzx eax, byte [r8 - 0x1f]
movzx edx, byte [r8 - 0x1e]
imul edx, r10d
add dx, ax
mov word [r8 - 0x1f], dx
movzx eax, byte [r8 - 0x1d]
movzx edx, byte [r8 - 0x1c]
imul edx, r10d
add dx, ax
mov word [r8 - 0x1d], dx
movzx eax, byte [r8 - 0x1b]
movzx edx, byte [r8 - 0x1a]
imul edx, r10d
add dx, ax
mov word [r8 - 0x1b], dx
movzx eax, byte [r8 - 0x19]
movzx edx, byte [r8 - 0x18]
imul edx, r10d
add dx, ax
mov word [r8 - 0x19], dx
movzx eax, byte [r8 - 0x17]
movzx edx, byte [r8 - 0x16]
imul edx, r10d
add dx, ax
mov word [r8 - 0x17], dx
movzx eax, byte [r8 - 0x15]
movzx edx, byte [r8 - 0x14]
imul edx, r10d
add dx, ax
mov word [r8 - 0x15], dx
movzx eax, byte [r8 - 0x13]
movzx edx, byte [r8 - 0x12]
imul edx, r10d
add dx, ax
mov word [r8 - 0x13], dx
movzx eax, byte [r8 - 0x11]
movzx edx, byte [r8 - 0x10]
imul edx, r10d
add dx, ax
mov word [r8 - 0x11], dx
movzx eax, byte [r8 - 0xf]
movzx edx, byte [r8 - 0xe]
imul edx, r10d
add dx, ax
mov word [r8 - 0xf], dx
movzx eax, byte [r8 - 0xd]
movzx edx, byte [r8 - 0xc]
imul edx, r10d
add dx, ax
mov word [r8 - 0xd], dx
movzx eax, byte [r8 - 0xb]
movzx edx, byte [r8 - 0xa]
imul edx, r10d
add dx, ax
mov word [r8 - 0xb], dx
movzx eax, byte [r8 - 9]
movzx edx, byte [r8 - 8]
imul edx, r10d
add dx, ax
mov word [r8 - 9], dx
movzx eax, byte [r8 - 7]
movzx edx, byte [r8 - 6]
imul edx, r10d
add dx, ax
mov word [r8 - 7], dx
movzx edx, byte [r8 - 4]
movzx eax, byte [r8 - 5]
imul edx, r10d
add dx, ax
mov word [r8 - 5], dx
sub r9, 1
jne 0x14014a9d0
test rsi, rsi
je 0x14014acbe
mov rax, qword [rsi]
mov qword [rbx + 0x80], rax
xor eax, eax
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
xor eax, eax
mov qword [rbx + 0x80], rax
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov eax, 0xffffff16
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov rbx, qword [rsp + 0x38]
mov eax, 0xffffff53
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret