Function at 0x14008e840
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0xe0], r8
mov qword [rsp + 0xe8], r9
mov eax, dword [rax + 4]
test eax, eax
je 0x14008eb0f
lea rax, [rsp + 0x7a]
xor r14d, r14d
mov rbp, rcx
mov r9, rdx
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x76]
mov r15d, r14d
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x74]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x7c]
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x7e]
mov qword [rsp + 0x68], rax
nop
mov r8, qword [rbp]
lea ebx, [r15 + 1]
mov edi, r15d
mov r12d, r15d
mov r14d, 0xfffffffe
shr ebx, 3
lea esi, [r15 + 2]
not r12d
sub r14d, r15d
movzx edx, byte [r8 + rbx]
shr edi, 3
and r12d, 7
and r14d, 7
mov r13d, 0xfffffffd
shr esi, 3
xor r11d, r11d
movzx eax, byte [r8 + rdi]
sub r13d, r15d
mov ecx, r14d
movzx r8d, byte [r8 + rsi]
and r13d, 7
sar edx, cl
mov ecx, r12d
mov r10, qword [rbp + 8]
sar eax, cl
mov ecx, r13d
and edx, 1
sar r8d, cl
and eax, 1
and r8d, 1
mov byte [rsp + 0x57], al
mov r11b, r8b
movzx r8d, byte [r10 + rsi]
mov eax, r11d
sar r8d, cl
mov ecx, r8d
xor r8d, r8d
and ecx, 1
mov r8b, dl
movzx edx, byte [r10 + rbx]
mov ah, cl
mov ecx, r14d
sar edx, cl
mov word [rsp + 0x74], ax
mov eax, r8d
mov ecx, r12d
and edx, 1
mov r8, qword [rsp + 0x58]
mov ah, dl
xor edx, edx
mov dl, byte [rsp + 0x57]
mov word [rsp + 0x76], ax
movzx eax, byte [r10 + rdi]
sar eax, cl
mov rcx, qword [rsp + 0x38]
and eax, 1
mov dh, al
mov rax, qword [rsp + 0xe8]
mov word [rsp + 0x78], dx
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x20], rax
call fcn.14008d4e0
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x20], rax
call fcn.14008d4e0
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x20], rax
call fcn.14008d4e0
mov r8, qword [rbp]
movzx eax, byte [rsp + 0x74]
mov ecx, r13d
movzx edx, byte [rsp + 0x7c]
mov r10d, 1
add r8, rsi
shl r10d, cl
xor edx, eax
not r10d
shl edx, cl
movzx ecx, byte [r8]
and ecx, r10d
or edx, ecx
xor al, byte [rsp + 0x76]
mov ecx, r14d
add r15d, 3
mov byte [r8], dl
movzx edx, byte [rsp + 0x7e]
mov r8d, 1
mov r11, qword [rbp]
shl r8d, cl
xor edx, eax
not r8d
add r11, rbx
shl edx, cl
movzx ecx, byte [r11]
and ecx, r8d
or edx, ecx
mov ecx, r12d
mov byte [r11], dl
mov edx, 1
mov r11, qword [rbp]
shl edx, cl
movzx ecx, byte [rsp + 0x78]
xor cl, byte [rsp + 0x7a]
add r11, rdi
xor eax, ecx
mov ecx, r12d
not edx
shl eax, cl
movzx ecx, byte [r11]
and ecx, edx
or eax, ecx
mov ecx, r13d
mov byte [r11], al
movzx eax, byte [rsp + 0x75]
movzx r11d, byte [rsp + 0x7d]
add rsi, qword [rbp + 8]
and r10b, byte [rsi]
xor r11d, eax
xor al, byte [rsp + 0x77]
shl r11d, cl
mov ecx, r14d
or r11d, r10d
movzx r10d, byte [rsp + 0x7f]
mov byte [rsi], r11b
add rbx, qword [rbp + 8]
xor r10d, eax
and r8b, byte [rbx]
shl r10d, cl
movzx ecx, byte [rsp + 0x79]
xor cl, byte [rsp + 0x7b]
or r10d, r8d
xor eax, ecx
mov ecx, r12d
mov byte [rbx], r10b
add rdi, qword [rbp + 8]
shl eax, cl
and dl, byte [rdi]
or eax, edx
mov byte [rdi], al
mov rax, qword [rsp + 0xf0]
mov eax, dword [rax + 4]
lea eax, [rax + rax*2]
cmp eax, r15d
ja 0x14008e8c0
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret