Function at 0x1800fe740
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 0x1800fe7a6
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.1800401f0
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 0x1800fe7e9
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.1800401f0
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 0x1800fe816
mov r8, rdi
mov rdx, r15
mov rcx, r13
call fcn.180034720
jmp 0x1800feb28
lea r14, [rax - 1]
imul r14, rsi
mov rbp, rbx
sub rbp, r14
cmp rbp, rsi
jbe 0x1800feafe
lea rax, [rsi + rsi]
cmp rbp, rax
jae 0x1800feafe
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.180033240
nop
lea rdx, [r14 + rdi]
mov rcx, r15
call fcn.180033000
mov r8, rdi
mov rdx, r15
mov rcx, r13
call fcn.180034720
mov r8, qword [r13 + 0x18]
mov r9, rsi
mov r14, qword [rsp + 0x38]
mov rdx, r14
cmp rsi, 0x10
jb 0x1800fe8d4
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 0x1800fe8b0
test r9, r9
je 0x1800fe8f1
sub r8, rdx
nop dword [rax]
movzx eax, byte [r8 + rdx]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x1800fe8e0
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 0x1800fe974
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 0x1800fe950
test r9, r9
je 0x1800fe991
sub r8, rdx
nop dword [rax]
movzx eax, byte [r8 + rdx]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x1800fe980
sub rbp, rsi
je 0x1800fe9bc
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 0x1800fe9a0
mov r8, qword [r13 + 0x18]
mov r9, rsi
add r8, rsi
mov rdx, r14
cmp rsi, 0x10
jb 0x1800fea03
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 0x1800fe9e0
test r9, r9
je 0x1800fea21
sub r8, rdx
nop dword [rax + rax]
movzx eax, byte [rdx + r8]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x1800fea10
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 0x1800fea93
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 0x1800fea70
test rsi, rsi
je 0x1800feab1
sub r8, rax
nop dword [rax + rax]
movzx ecx, byte [rax + r8]
xor byte [rax], cl
lea rax, [rax + 1]
sub rsi, 1
jne 0x1800feaa0
mov rbx, qword [r15 + 8]
sub rbx, qword [r15]
lea rdx, [r12 + rbx]
mov rcx, r15
call fcn.180033000
test r12, r12
je 0x1800feae0
mov rcx, qword [r15]
add rcx, rbx
test r12, r12
je 0x1800feae0
mov r8, r12
mov rdx, r14
call fcn.18017c7f0
nop
test r14, r14
je 0x1800feafc
mov rdx, qword [rsp + 0x48]
sub rdx, r14
mov r8d, 1
mov rcx, r14
call fcn.1800302d0
nop
jmp 0x1800feb28
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.1800401f0
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