Function at 0x1400694c0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
push r15
mov eax, 0xff
movsxd rbp, r9d
xor r11d, r11d
lea rsi, [rcx + 2]
mov r10d, eax
lea r15, [0x140000000]
mov r14d, r11d
mov rdi, r8
mov rbx, rdx
nop word [rax + rax]
movzx r9d, byte [rsi - 2]
mov ecx, eax
movzx eax, byte [rsi - 1]
xor r9, rcx
movzx ecx, byte [r9 + r15 + 0x97ac0]
xor rcx, rax
mov eax, r10d
xor rcx, rax
movzx eax, byte [r9 + r15 + 0x97bc0]
movzx edx, byte [rcx + r15 + 0x97ac0]
xor rdx, rax
movzx eax, byte [rsi]
xor rdx, rax
movzx eax, byte [rcx + r15 + 0x97bc0]
movzx r8d, byte [rdx + r15 + 0x97ac0]
xor r8, rax
movzx eax, byte [rsi + 1]
xor r8, rax
movzx eax, byte [rdx + r15 + 0x97bc0]
movzx ecx, byte [r8 + r15 + 0x97ac0]
xor rcx, rax
movzx eax, byte [rsi + 2]
xor rcx, rax
movzx eax, byte [r8 + r15 + 0x97bc0]
movzx edx, byte [rcx + r15 + 0x97ac0]
xor rdx, rax
movzx eax, byte [rsi + 3]
xor rdx, rax
movzx eax, byte [rcx + r15 + 0x97bc0]
movzx r8d, byte [rdx + r15 + 0x97ac0]
xor r8, rax
movzx eax, byte [rsi + 4]
xor r8, rax
movzx eax, byte [rdx + r15 + 0x97bc0]
movzx ecx, byte [r8 + r15 + 0x97ac0]
xor rcx, rax
movzx eax, byte [rsi + 5]
xor rcx, rax
movzx eax, byte [r8 + r15 + 0x97bc0]
movzx edx, byte [rcx + r15 + 0x97ac0]
xor rdx, rax
movzx eax, byte [rsi + 6]
xor rdx, rax
movzx eax, byte [rcx + r15 + 0x97bc0]
movzx r8d, byte [rdx + r15 + 0x97ac0]
xor r8, rax
movzx eax, byte [rsi + 7]
xor r8, rax
movzx eax, byte [rdx + r15 + 0x97bc0]
movzx ecx, byte [r8 + r15 + 0x97ac0]
xor rcx, rax
movzx eax, byte [rsi + 8]
xor rcx, rax
movzx eax, byte [r8 + r15 + 0x97bc0]
movzx edx, byte [rcx + r15 + 0x97ac0]
xor rdx, rax
movzx eax, byte [rsi + 9]
xor rdx, rax
movzx eax, byte [rcx + r15 + 0x97bc0]
movzx r8d, byte [rdx + r15 + 0x97ac0]
xor r8, rax
movzx eax, byte [rsi + 0xa]
xor r8, rax
movzx eax, byte [rdx + r15 + 0x97bc0]
movzx ecx, byte [r8 + r15 + 0x97ac0]
xor rcx, rax
movzx eax, byte [rsi + 0xb]
xor rcx, rax
movzx eax, byte [r8 + r15 + 0x97bc0]
movzx edx, byte [rcx + r15 + 0x97ac0]
xor rdx, rax
movzx eax, byte [rsi + 0xc]
xor rdx, rax
movzx eax, byte [rcx + r15 + 0x97bc0]
movzx r8d, byte [rdx + r15 + 0x97ac0]
xor r8, rax
movzx eax, byte [rsi + 0xd]
xor r8, rax
movzx eax, byte [rdx + r15 + 0x97bc0]
movzx ecx, byte [r8 + r15 + 0x97ac0]
xor rcx, rax
movzx eax, byte [rsi + 0xe]
lea rsi, [rsi + 0x1c]
xor rcx, rax
add r14d, 0x1c
movzx eax, byte [r8 + r15 + 0x97bc0]
movzx edx, byte [rcx + r15 + 0x97ac0]
xor rdx, rax
movzx eax, byte [rsi - 0xd]
xor rdx, rax
movzx eax, byte [rcx + r15 + 0x97bc0]
movzx r8d, byte [rdx + r15 + 0x97ac0]
xor r8, rax
movzx eax, byte [rsi - 0xc]
xor r8, rax
movzx eax, byte [rdx + r15 + 0x97bc0]
movzx ecx, byte [r8 + r15 + 0x97ac0]
xor rcx, rax
movzx eax, byte [rsi - 0xb]
xor rcx, rax
movzx eax, byte [r8 + r15 + 0x97bc0]
movzx edx, byte [rcx + r15 + 0x97ac0]
xor rdx, rax
movzx eax, byte [rsi - 0xa]
xor rdx, rax
movzx eax, byte [rcx + r15 + 0x97bc0]
movzx r8d, byte [rdx + r15 + 0x97ac0]
xor r8, rax
movzx eax, byte [rsi - 9]
xor r8, rax
movzx eax, byte [rdx + r15 + 0x97bc0]
movzx ecx, byte [r8 + r15 + 0x97ac0]
xor rcx, rax
movzx eax, byte [rsi - 8]
xor rcx, rax
movzx eax, byte [r8 + r15 + 0x97bc0]
movzx edx, byte [rcx + r15 + 0x97ac0]
xor rdx, rax
movzx eax, byte [rsi - 7]
xor rdx, rax
movzx eax, byte [rcx + r15 + 0x97bc0]
movzx r8d, byte [rdx + r15 + 0x97ac0]
xor r8, rax
movzx eax, byte [rsi - 6]
xor r8, rax
movzx eax, byte [rdx + r15 + 0x97bc0]
movzx ecx, byte [r8 + r15 + 0x97ac0]
xor rcx, rax
movzx eax, byte [rsi - 5]
xor rcx, rax
movzx eax, byte [r8 + r15 + 0x97bc0]
movzx r9d, byte [rcx + r15 + 0x97ac0]
xor r9, rax
movzx eax, byte [rsi - 4]
xor r9, rax
movzx eax, byte [rcx + r15 + 0x97bc0]
movzx edx, byte [r9 + r15 + 0x97ac0]
movzx ecx, byte [r9 + r15 + 0x97bc0]
xor rdx, rax
movzx eax, byte [rsi - 3]
xor rdx, rax
movzx eax, byte [rdx + r15 + 0x97ac0]
movzx r10d, byte [rdx + r15 + 0x97bc0]
xor eax, ecx
cmp r14d, 0x1c
jb 0x140069500
test rbx, rbx
je 0x140069859
mov r8d, 8
movzx edx, byte [r8 + rbx - 1]
dec r8
mov ecx, eax
xor rdx, rcx
movzx eax, byte [rdx + r15 + 0x97ac0]
xor eax, r10d
movzx r10d, byte [rdx + r15 + 0x97bc0]
test r8, r8
jg 0x140069831
test ebp, ebp
je 0x140069887
mov r8, r11
movzx edx, byte [r8 + rdi]
inc r8
mov ecx, eax
xor rdx, rcx
movzx eax, byte [rdx + r15 + 0x97ac0]
xor eax, r10d
movzx r10d, byte [rdx + r15 + 0x97bc0]
cmp r8, rbp
jl 0x140069860
movsxd rcx, dword [rsp + 0x40]
test ecx, ecx
je 0x1400698c7
mov r9, qword [rsp + 0x38]
mov r8, rcx
nop dword [rax + rax]
movzx edx, byte [r11 + r9]
inc r11
mov ecx, eax
xor rdx, rcx
movzx eax, byte [rdx + r15 + 0x97ac0]
xor eax, r10d
movzx r10d, byte [rdx + r15 + 0x97bc0]
cmp r11, r8
jl 0x1400698a0
mov rbx, qword [rsp + 0x18]
mov rbp, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
shl ax, 8
or ax, r10w
pop r15
pop r14
ret