Function at 0x14007e7e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov rbx, r8
mov rsi, rdx
mov r15, rcx
mov r10d, dword [rsp + 0xd0]
mov rax, qword [0x140135388]
xor rax, rsp
mov qword [rsp + 0x70], rax
movsxd r8, dword [rcx + 0x18]
lea ecx, [r10 + 4]
mov edi, ecx
shr edi, 6
xor edx, edx
mov ebp, 0
cmp rdi, r8
jae 0x14007e832
mov rbp, qword [r9 + rdi*8]
shr rbp, cl
shl ebp, 5
and ebp, 0x20
lea ecx, [r10 + 3]
mov eax, ecx
shr eax, 6
cmp rax, r8
jae 0x14007e84d
mov rdx, qword [r9 + rax*8]
shr rdx, cl
shl edx, 4
and edx, 0x10
or edx, ebp
lea ecx, [r10 + 2]
mov eax, ecx
shr eax, 6
xor ebp, ebp
mov edi, 0
cmp rax, r8
jae 0x14007e871
mov rdi, qword [r9 + rax*8]
shr rdi, cl
shl edi, 3
and edi, 8
or edx, edi
lea ecx, [r10 + 1]
mov eax, ecx
shr eax, 6
cmp rax, r8
jae 0x14007e88e
mov rbp, qword [r9 + rax*8]
shr rbp, cl
shl ebp, 2
and ebp, 4
or edx, ebp
mov eax, r10d
shr eax, 6
xor ebp, ebp
cmp rax, r8
jae 0x14007e8ac
mov rbp, qword [r9 + rax*8]
mov ecx, r10d
shr rbp, cl
add ebp, ebp
and ebp, 2
or edx, ebp
test r10d, r10d
je 0x14007e8d2
dec r10d
mov eax, r10d
shr eax, 6
xor ebp, ebp
cmp rax, r8
jae 0x14007e8d0
mov rbp, qword [r9 + rax*8]
mov ecx, r10d
shr rbp, cl
and ebp, 1
or edx, ebp
mov edi, edx
shr dil, 5
mov r14d, edi
neg r14b
mov eax, edx
xor al, 0x3f
and al, r14b
dec dil
and dil, dl
or dil, al
mov eax, edi
shr al, 1
and dil, 1
add dil, al
xor ebp, ebp
mov r8d, 0xd8
mov rcx, rsi
xor edx, edx
call fcn.1400dc190
movzx edi, dil
mov r8, rbp
xor r8, rdi
dec r8
sar r8, 0x3f
mov qword [rsp + 0x20], rsi
mov rcx, r15
mov rdx, rsi
mov r9, rbx
call fcn.1400781d0
inc rbp
add rbx, 0xd8
cmp rbp, 0x11
jne 0x14007e90f
mov ebp, dword [r15 + 0x40]
test ebp, ebp
jle 0x14007e95c
lea rax, [rbp - 1]
mov edx, ebp
and edx, 7
cmp rax, 7
jae 0x14007e960
xor ebx, ebx
xor eax, eax
jmp 0x14007e99d
xor eax, eax
jmp 0x14007e9b8
mov ecx, ebp
and ecx, 0xfffffff8
xor ebx, ebx
xor eax, eax
or rax, qword [rsi + rbx*8 + 0x48]
or rax, qword [rsi + rbx*8 + 0x50]
or rax, qword [rsi + rbx*8 + 0x58]
or rax, qword [rsi + rbx*8 + 0x60]
or rax, qword [rsi + rbx*8 + 0x68]
or rax, qword [rsi + rbx*8 + 0x70]
or rax, qword [rsi + rbx*8 + 0x78]
or rax, qword [rsi + rbx*8 + 0x80]
add rbx, 8
cmp rcx, rbx
jne 0x14007e969
test rdx, rdx
je 0x14007e9b8
lea rcx, [rsi + rbx*8]
add rcx, 0x48
xor ebx, ebx
or rax, qword [rcx + rbx*8]
inc rbx
cmp rdx, rbx
jne 0x14007e9ac
test ebp, ebp
je 0x14007eaf8
movsxd rcx, ebp
mov rdx, qword [r15 + 0x38]
lea rbp, [rsi + 0x48]
xor ebx, ebx
lea r8, [rsp + 0x28]
sub rdi, rdi
jmp 0x14007e9e0
mov rdi, qword [rdx + rbx*8]
sbb rdi, qword [rbp + rbx*8]
mov qword [r8 + rbx*8], rdi
lea rbx, [rbx + 1]
dec rcx
jne 0x14007e9e0
sbb rdi, rdi
movsxd rcx, dword [r15 + 0x40]
mov r8d, ecx
test rcx, rcx
jle 0x14007ea6d
mov rdx, rax
not rdx
dec rax
and rax, rdx
sar rax, 0x3f
not rax
lea rbp, [r8 - 1]
mov edx, r8d
and edx, 3
cmp rbp, 3
jae 0x14007ea2c
xor ebp, ebp
jmp 0x14007ea51
mov ebx, r8d
and ebx, 0xfffffffc
xor ebp, ebp
and qword [rsp + rbp*8 + 0x28], rax
and qword [rsp + rbp*8 + 0x30], rax
and qword [rsp + rbp*8 + 0x38], rax
and qword [rsp + rbp*8 + 0x40], rax
add rbp, 4
cmp rbx, rbp
jne 0x14007ea34
test rdx, rdx
je 0x14007ea6d
lea rbp, [rsp + rbp*8]
add rbp, 0x28
xor ebx, ebx
and qword [rbp + rbx*8], rax
inc rbx
cmp rdx, rbx
jne 0x14007ea60
test ecx, ecx
je 0x14007eaf8
and r14b, 1
movzx eax, r14b
mov rbp, rax
neg rbp
dec rax
cmp rcx, 1
mov r9d, 1
cmova r9, rcx
cmp r8d, 1
jne 0x14007ea9e
xor ecx, ecx
jmp 0x14007eae0
mov rdx, r9
and rdx, 0xfffffffffffffffe
xor ecx, ecx
mov rbx, qword [rsp + rcx*8 + 0x28]
and rbx, rbp
mov rdi, qword [rsi + rcx*8 + 0x48]
and rdi, rax
or rdi, rbx
mov qword [rsi + rcx*8 + 0x48], rdi
mov rbx, qword [rsp + rcx*8 + 0x30]
and rbx, rbp
mov rdi, qword [rsi + rcx*8 + 0x50]
and rdi, rax
or rdi, rbx
mov qword [rsi + rcx*8 + 0x50], rdi
add rcx, 2
cmp rdx, rcx
jne 0x14007eaa7
test r9b, 1
je 0x14007eaf8
and rbp, qword [rsp + rcx*8 + 0x28]
and rax, qword [rsi + rcx*8 + 0x48]
or rax, rbp
mov qword [rsi + rcx*8 + 0x48], rax
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1400d8ee0
nop
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret