Function at 0x140004890
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov rbx, rcx
mov ecx, 0x18
call fcn.14000d11c
xor esi, esi
mov rdi, rax
mov qword [rax], rsi
lea ecx, [rsi + 0xc]
mov qword [rax + 8], rsi
mov qword [rax + 0x10], rsi
call fcn.14000d11c
mov qword [rdi], rax
lea r10d, [rsi + 2]
mov r14d, 1
lea r9, [rbx + 2]
mov r15d, r10d
mov r12d, 3
lea rcx, [rax + 0xc]
mov ebp, 4
mov qword [rdi + 0x10], rcx
mov r13d, 5
xor ecx, ecx
sub r14, rbx
mov qword [rax], rcx
sub r15, rbx
mov dword [rax + 8], ecx
sub r12, rbx
add rax, 0xc
sub rbp, rbx
mov qword [rdi + 8], rax
sub r13, rbx
mov eax, 6
mov rcx, 0xfffffffffffffffe
sub rax, rbx
mov r11, rbx
mov qword [rsp + 0x78], rax
not r11
mov eax, 7
movabs r8, 0x905a38633e06c43b
sub rax, rbx
mov qword [rsp + 0x80], rax
mov eax, 8
sub rax, rbx
mov qword [rsp + 0x88], rax
mov eax, 9
sub rax, rbx
sub rcx, rbx
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rcx
nop
add rcx, qword [rdi]
mov rax, r8
mul rsi
shr rdx, 7
imul rax, rdx, 0xe3
movzx edx, byte [r9 - 2]
sub rsi, rax
lea rax, [0x140046660]
xor dl, byte [rsi + rax]
lea rsi, [0x140046660]
mov byte [rcx + r9], dl
mov rax, r8
movsxd rcx, r10d
dec rcx
movsxd r8, r10d
mul rcx
shr rdx, 7
imul rax, rdx, 0xe3
movzx edx, byte [r9 - 1]
sub rcx, rax
movabs rax, 0x905a38633e06c43b
xor dl, byte [rcx + rsi]
mov rcx, qword [rdi]
add rcx, r11
mov byte [rcx + r9], dl
movzx ecx, byte [r9]
mul r8
shr rdx, 7
imul rax, rdx, 0xe3
sub r8, rax
mov rax, qword [rdi]
sub rax, rbx
xor cl, byte [r8 + rsi]
movabs r8, 0x905a38633e06c43b
mov byte [rax + r9], cl
mov rax, r8
movsxd rcx, r10d
inc rcx
mul rcx
shr rdx, 7
imul rax, rdx, 0xe3
movzx edx, byte [r9 + 1]
sub rcx, rax
mov rax, r8
xor dl, byte [rcx + rsi]
mov rcx, qword [rdi]
add rcx, r14
mov byte [rcx + r9], dl
movsxd rcx, r10d
add rcx, 2
mul rcx
shr rdx, 7
imul rax, rdx, 0xe3
movzx edx, byte [r9 + 2]
sub rcx, rax
mov rax, r8
xor dl, byte [rcx + rsi]
mov rcx, qword [rdi]
add rcx, r15
mov byte [rcx + r9], dl
movsxd rcx, r10d
add rcx, 3
mul rcx
shr rdx, 7
imul rax, rdx, 0xe3
movzx edx, byte [r9 + 3]
sub rcx, rax
mov rax, r8
xor dl, byte [rcx + rsi]
mov rcx, qword [rdi]
add rcx, r12
mov byte [rcx + r9], dl
movsxd rcx, r10d
add rcx, 4
mul rcx
shr rdx, 7
imul rax, rdx, 0xe3
movzx edx, byte [r9 + 4]
sub rcx, rax
xor dl, byte [rcx + rsi]
mov rcx, qword [rdi]
add rcx, rbp
lea r9, [r9 + 0xc]
mov rax, r8
mov byte [rcx + r9 - 0xc], dl
movsxd rcx, r10d
add rcx, 5
mul rcx
shr rdx, 7
imul rax, rdx, 0xe3
movzx edx, byte [r9 - 7]
sub rcx, rax
mov rax, r8
xor dl, byte [rcx + rsi]
mov rcx, qword [rdi]
add rcx, r13
mov byte [rcx + r9 - 0xc], dl
movsxd rcx, r10d
add rcx, 6
mul rcx
shr rdx, 7
imul rax, rdx, 0xe3
movzx edx, byte [r9 - 6]
sub rcx, rax
mov rax, r8
xor dl, byte [rcx + rsi]
mov rcx, qword [rsp + 0x78]
add rcx, qword [rdi]
mov byte [rcx + r9 - 0xc], dl
movsxd rcx, r10d
add rcx, 7
mul rcx
shr rdx, 7
imul rax, rdx, 0xe3
movzx edx, byte [r9 - 5]
sub rcx, rax
mov rax, r8
xor dl, byte [rcx + rsi]
mov rcx, qword [rsp + 0x80]
add rcx, qword [rdi]
mov byte [rcx + r9 - 0xc], dl
movsxd rcx, r10d
add rcx, 8
mul rcx
shr rdx, 7
imul rax, rdx, 0xe3
movzx edx, byte [r9 - 4]
sub rcx, rax
mov rax, r8
xor dl, byte [rcx + rsi]
mov rcx, qword [rsp + 0x88]
add rcx, qword [rdi]
mov byte [rcx + r9 - 0xc], dl
movsxd rcx, r10d
add r10d, 0xc
add rcx, 9
mul rcx
shr rdx, 7
imul rax, rdx, 0xe3
movzx edx, byte [r9 - 3]
sub rcx, rax
lea eax, [r10 - 2]
xor dl, byte [rcx + rsi]
mov rcx, qword [rsp + 0x20]
add rcx, qword [rdi]
movsxd rsi, eax
mov byte [rcx + r9 - 0xc], dl
mov rcx, qword [rsp + 0x28]
cmp rsi, 0xc
jb 0x140004970
mov rbx, qword [rsp + 0x70]
mov rax, rdi
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret