Function at 0x14001e960
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rdi, r8
mov r10, rdx
mov rax, qword [rdx]
mov r9, qword [rdx + 8]
sub r9, rax
cmp r9, r8
jb 0x14001ec3c
sub r9, r8
add r8, rax
mov rsi, qword [rcx + 0x30]
cmp r9, rsi
jb 0x14001ec57
xor edx, edx
mov rax, r9
div rsi
test rdx, rdx
jne 0x14001e9dd
mov r8, rdi
mov rdx, r10
call fcn.140008280
mov rbx, qword [rsp + 0xc8]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rbx, r9
sub rbx, rdx
sub rbx, rsi
mov r14, r9
sub r14, rbx
cmp r14, rsi
jbe 0x14001ec12
lea rax, [rsi + rsi]
cmp r14, rax
jae 0x14001ec12
lea r13, [r8 + r9]
lea rax, [rbx + r8]
mov qword [rbp + 0x50], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x20], xmm0
xor r12d, r12d
mov qword [rbp - 0x10], r12
sub r13, rax
je 0x14001ea6d
movabs rax, 0x7fffffffffffffff
cmp r13, rax
ja 0x14001ec72
mov edx, 1
mov rcx, r13
call fcn.14000ddc0
mov r15, rax
mov qword [rbp - 0x20], rax
lea r12, [rax + r13]
mov qword [rbp - 0x10], r12
mov r8, r13
mov rdx, qword [rbp + 0x50]
mov rcx, rax
call sub.VCRUNTIME140.dll_memmove
mov rax, r12
mov qword [rbp - 0x18], rax
mov r10, qword [rbp + 0x48]
jmp 0x14001ea75
mov rax, qword [rbp - 0x18]
mov r15, qword [rbp - 0x20]
mov qword [rbp + 0x50], rax
lea rdx, [rbx + rdi]
mov rcx, r10
call fcn.140007370
mov r8, rdi
mov r13, qword [rbp + 0x48]
mov rdx, r13
mov rbx, qword [rbp + 0x40]
mov rcx, rbx
call fcn.140008280
mov rcx, qword [rbx + 0x18]
mov rax, r12
sub rax, r15
mov qword [rbp + 0x48], rax
cmp rax, rsi
jb 0x14001ebf7
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x28], rsi
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x30]
call fcn.1400170b0
mov rdi, qword [rbx + 8]
mov rax, qword [rdi]
mov rbx, qword [rax + 0x48]
mov rcx, rdi
call qword [rax + 0x30]
mov r8, rax
xor edx, edx
mov rax, qword [rbp + 0x48]
div r8
mov r9, rax
mov r8, r15
mov rdx, r15
mov rcx, rdi
call rbx
mov rbx, qword [rbp + 0x40]
mov rax, qword [rbx + 0x18]
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rsi
mov qword [rbp - 0x40], r15
mov qword [rbp - 0x38], rsi
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x40]
call fcn.1400170b0
sub r14, rsi
je 0x14001eb4a
mov rax, r15
nop word [rax + rax]
movzx ecx, byte [rax]
xor cl, byte [rax + rsi]
mov byte [rax], cl
xor cl, byte [rax + rsi]
mov byte [rax + rsi], cl
xor byte [rax], cl
lea rax, [rax + 1]
sub r14, 1
jne 0x14001eb30
mov rcx, qword [rbx + 0x18]
add rcx, rsi
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x28], rsi
mov qword [rbp - 0x40], r15
mov qword [rbp - 0x38], rsi
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x40]
call fcn.1400170b0
mov rdi, qword [rbx + 8]
mov rdx, qword [rdi]
mov rbx, qword [rdx + 0x48]
mov rcx, rdi
call qword [rdx + 0x30]
mov r8, rax
xor edx, edx
mov rax, qword [rbp + 0x48]
div r8
mov r9, rax
mov r8, r15
mov rdx, r15
mov rcx, rdi
call rbx
mov rbx, qword [rbp + 0x40]
mov rcx, qword [rbx + 0x18]
add rcx, rsi
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x28], rsi
mov qword [rbp - 0x40], r15
mov qword [rbp - 0x38], rsi
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x40]
call fcn.1400170b0
mov r9, qword [rbp + 0x50]
sub r9, r15
mov rdx, qword [r13 + 8]
mov r8, r15
mov rcx, r13
call fcn.14001b8b0
nop
test r15, r15
je 0x14001ebf2
sub r12, r15
mov r8d, 1
mov rdx, r12
mov rcx, r15
call fcn.14000de60
nop
jmp 0x14001e9c5
lea r8, str.build_include_public_botan_mem_ops.h
lea rdx, str.xor_buf
lea rcx, str.output_vector_is_too_small
call fcn.14000e380
nop
mov dword [rsp + 0x20], 0x94
lea r9, str.src_lib_modes_xts_xts.cpp
lea r8, str.finish_msg
lea rdx, str.Left_over_size_in_expected_range
lea rcx, str.final_bytes___BS__final_bytes___2__BS
call fcn.14000e220
int3
lea r8, str.src_lib_modes_xts_xts.cpp
lea rdx, str.finish_msg
lea rcx, str.Offset_is_out_of_range
call fcn.14000e380
int3
lea r8, str.src_lib_modes_xts_xts.cpp
lea rdx, str.finish_msg
lea rcx, str.missing_sufficient_final_input_in_XTS_encrypt
call fcn.14000e380
int3
call fcn.1400093c0
int3