Function at 0x180101ad0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov qword [rax - 0x48], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov rdi, r8
mov r15, rdx
mov r13, rcx
mov rax, qword [rdx]
mov rbx, qword [rdx + 8]
sub rbx, rax
cmp rbx, r8
jae 0x180101b36
mov dword [rsp + 0x20], 0x85
lea r9, str.gold
lea r8, str.finish
lea rdx, str.Offset_is_sane
lea rcx, str.buffer.size_____offset
call fcn.180043540
int3
sub rbx, rdi
lea r12, [rax + r8]
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
call qword [rax + 0x28]
inc rax
cmp rbx, rax
jae 0x180101b79
mov dword [rsp + 0x20], 0x89
lea r9, str.gold
lea r8, str.finish
lea rdx, str.Have_sufficient_final_input_in_XTS_encrypt
lea rcx, str.sz___minimum_final_size__
call fcn.180043540
int3
mov rcx, qword [r13 + 8]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov rsi, rax
xor edx, edx
mov rax, rbx
div rsi
test rdx, rdx
jne 0x180101ba6
mov r8, rdi
mov rdx, r15
mov rcx, r13
call fcn.180037b60
jmp 0x180101eb8
lea r14, [rax - 1]
imul r14, rsi
mov rbp, rbx
sub rbp, r14
cmp rbp, rsi
jbe 0x180101e8e
lea rax, [rsi + rsi]
cmp rbp, rax
jae 0x180101e8e
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x38], xmm0
mov qword [rsp + 0x48], 0
xor eax, eax
lea r8, [r12 + rbx]
lea rdx, [r14 + r12]
movzx r9d, al
lea rcx, [rsp + 0x38]
call fcn.180036680
nop
lea rdx, [r14 + rdi]
mov rcx, r15
call fcn.180036440
mov r8, rdi
mov rdx, r15
mov rcx, r13
call fcn.180037b60
mov r8, qword [r13 + 0x18]
mov r9, rsi
mov r14, qword [rsp + 0x38]
mov rdx, r14
cmp rsi, 0x10
jb 0x180101c64
mov r11, r8
sub r11, r14
mov r10, rsi
shr r10, 4
imul r9, r10, 0xfffffffffffffff0
add r9, rsi
nop dword [rax + rax]
mov rcx, qword [r8]
xor rcx, qword [rdx]
mov rax, qword [rdx + 8]
xor rax, qword [r11 + rdx + 8]
mov qword [rdx], rcx
mov qword [rdx + 8], rax
add rdx, 0x10
add r8, 0x10
sub r10, 1
jne 0x180101c40
test r9, r9
je 0x180101c81
sub r8, rdx
nop dword [rax]
movzx eax, byte [r8 + rdx]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x180101c70
mov rdi, qword [r13 + 8]
mov r12, qword [rsp + 0x40]
sub r12, r14
mov rbx, qword [rdi]
mov rcx, rdi
call qword [rbx + 0x28]
mov r8, rax
xor edx, edx
mov rax, r12
div r8
mov r9, rax
mov r8, r14
mov rdx, r14
mov rcx, rdi
call qword [rbx + 0x40]
mov r8, qword [r13 + 0x18]
mov r9, rsi
mov rdx, r14
cmp rsi, 0x10
jb 0x180101d04
mov r11, r8
sub r11, r14
mov r10, rsi
shr r10, 4
imul r9, r10, 0xfffffffffffffff0
add r9, rsi
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [rdx]
xor rcx, qword [r8]
mov rax, qword [rdx + 8]
xor rax, qword [r11 + rdx + 8]
mov qword [rdx], rcx
mov qword [rdx + 8], rax
add rdx, 0x10
add r8, 0x10
sub r10, 1
jne 0x180101ce0
test r9, r9
je 0x180101d21
sub r8, rdx
nop dword [rax]
movzx eax, byte [r8 + rdx]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x180101d10
sub rbp, rsi
je 0x180101d4c
mov rcx, r14
nop dword [rax]
movzx eax, byte [rcx + rsi]
xor byte [rcx], al
movzx eax, byte [rcx]
xor byte [rcx + rsi], al
movzx eax, byte [rcx + rsi]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rbp, 1
jne 0x180101d30
mov r8, qword [r13 + 0x18]
mov r9, rsi
add r8, rsi
mov rdx, r14
cmp rsi, 0x10
jb 0x180101d93
mov r10, rsi
shr r10, 4
imul r9, r10, 0xfffffffffffffff0
add r9, rsi
nop dword [rax]
mov rcx, qword [r8]
xor rcx, qword [rdx]
mov rax, qword [rdx + 8]
xor rax, qword [r8 + 8]
mov qword [rdx], rcx
mov qword [rdx + 8], rax
add rdx, 0x10
add r8, 0x10
sub r10, 1
jne 0x180101d70
test r9, r9
je 0x180101db1
sub r8, rdx
nop dword [rax + rax]
movzx eax, byte [rdx + r8]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x180101da0
mov rdi, qword [r13 + 8]
mov rbx, qword [rdi]
mov rcx, rdi
call qword [rbx + 0x28]
mov r8, rax
xor edx, edx
mov rax, r12
div r8
mov r9, rax
mov r8, r14
mov rdx, r14
mov rcx, rdi
call qword [rbx + 0x40]
mov r8, qword [r13 + 0x18]
add r8, rsi
mov rax, r14
cmp rsi, 0x10
jb 0x180101e23
mov r9, rsi
shr r9, 4
imul rcx, r9, 0xfffffffffffffff0
add rsi, rcx
nop word [rax + rax]
mov rdx, qword [rax]
xor rdx, qword [r8]
mov rcx, qword [rax + 8]
xor rcx, qword [r8 + 8]
mov qword [rax], rdx
mov qword [rax + 8], rcx
add rax, 0x10
add r8, 0x10
sub r9, 1
jne 0x180101e00
test rsi, rsi
je 0x180101e41
sub r8, rax
nop dword [rax + rax]
movzx ecx, byte [rax + r8]
xor byte [rax], cl
lea rax, [rax + 1]
sub rsi, 1
jne 0x180101e30
mov rbx, qword [r15 + 8]
sub rbx, qword [r15]
lea rdx, [r12 + rbx]
mov rcx, r15
call fcn.180036440
test r12, r12
je 0x180101e70
mov rcx, qword [r15]
add rcx, rbx
test r12, r12
je 0x180101e70
mov r8, r12
mov rdx, r14
call fcn.1801a4560
nop
test r14, r14
je 0x180101e8c
mov rdx, qword [rsp + 0x48]
sub rdx, r14
mov r8d, 1
mov rcx, r14
call fcn.180033660
nop
jmp 0x180101eb8
mov dword [rsp + 0x20], 0x96
lea r9, str.gold
lea r8, str.finish
lea rdx, str.Left_over_size_in_expected_range
lea rcx, str.final_bytes___BS__final_bytes___2BS
call fcn.180043540
int3
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret