Function at 0x1801016d0
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 0x180101736
mov dword [rsp + 0x20], 0xce
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 0x180101779
mov dword [rsp + 0x20], 0xd2
lea r9, str.gold
lea r8, str.finish
lea rdx, str.Have_sufficient_final_input_in_XTS_decrypt
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 0x1801017a6
mov r8, rdi
mov rdx, r15
mov rcx, r13
call fcn.180037b60
jmp 0x180101aa8
lea r14, [rax - 1]
imul r14, rsi
mov rbp, rbx
sub rbp, r14
cmp rbp, rsi
jbe 0x180101a7e
lea rax, [rsi + rsi]
cmp rbp, rax
jae 0x180101a7e
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
add r8, rsi
mov r14, qword [rsp + 0x38]
mov rdx, r14
cmp rsi, 0x10
jb 0x18010185c
mov r10, rsi
shr r10, 4
imul r9, r10, 0xfffffffffffffff0
add r9, rsi
nop word [rax + rax]
mov rax, qword [r8]
mov rcx, qword [r8 + 8]
xor qword [rdx], rax
xor qword [rdx + 8], rcx
add rdx, 0x10
add r8, 0x10
sub r10, 1
jne 0x180101840
test r9, r9
je 0x180101881
sub r8, rdx
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r8 + rdx]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x180101870
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 + 0x48]
mov r8, qword [r13 + 0x18]
mov r9, rsi
add r8, rsi
mov rdx, r14
cmp rsi, 0x10
jb 0x1801018f0
mov r10, rsi
shr r10, 4
imul r9, r10, 0xfffffffffffffff0
add r9, rsi
mov rcx, qword [r8 + 8]
mov rax, qword [rdx]
xor rax, qword [r8]
xor qword [rdx + 8], rcx
mov qword [rdx], rax
add rdx, 0x10
add r8, 0x10
sub r10, 1
jne 0x1801018d1
test r9, r9
je 0x180101911
sub r8, rdx
nop dword [rax + rax]
movzx eax, byte [r8 + rdx]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x180101900
sub rbp, rsi
je 0x18010193c
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 0x180101920
mov r8, qword [r13 + 0x18]
mov r9, rsi
mov rdx, r14
cmp rsi, 0x10
jb 0x18010197d
mov r11, r8
sub r11, r14
mov r10, rsi
shr r10, 4
imul r9, r10, 0xfffffffffffffff0
add r9, rsi
mov rax, qword [r8]
mov rcx, qword [rdx + r11 + 8]
xor qword [rdx], rax
xor qword [rdx + 8], rcx
add rdx, 0x10
add r8, 0x10
sub r10, 1
jne 0x180101960
test r9, r9
je 0x1801019a1
sub r8, rdx
nop word [rax + rax]
movzx eax, byte [rdx + r8]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x180101990
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 + 0x48]
mov r8, qword [r13 + 0x18]
mov rax, r14
cmp rsi, 0x10
jb 0x180101a14
mov r10, r8
sub r10, r14
mov r9, rsi
shr r9, 4
imul rcx, r9, 0xfffffffffffffff0
add rsi, rcx
nop dword [rax]
mov rdx, qword [rax]
xor rdx, qword [r8]
mov rcx, qword [rax + 8]
xor rcx, qword [rax + r10 + 8]
mov qword [rax], rdx
mov qword [rax + 8], rcx
add rax, 0x10
add r8, 0x10
sub r9, 1
jne 0x1801019f0
test rsi, rsi
je 0x180101a31
sub r8, rax
nop dword [rax]
movzx ecx, byte [rax + r8]
xor byte [rax], cl
lea rax, [rax + 1]
sub rsi, 1
jne 0x180101a20
mov rbx, qword [r15 + 8]
sub rbx, qword [r15]
lea rdx, [r12 + rbx]
mov rcx, r15
call fcn.180036440
test r12, r12
je 0x180101a60
mov rcx, qword [r15]
add rcx, rbx
test r12, r12
je 0x180101a60
mov r8, r12
mov rdx, r14
call fcn.1801a4560
nop
test r14, r14
je 0x180101a7c
mov rdx, qword [rsp + 0x48]
sub rdx, r14
mov r8d, 1
mov rcx, r14
call fcn.180033660
nop
jmp 0x180101aa8
mov dword [rsp + 0x20], 0xdf
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