Function at 0x1800fe340
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 0x1800fe3a6
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.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 0x1800fe3e9
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.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 0x1800fe416
mov r8, rdi
mov rdx, r15
mov rcx, r13
call fcn.180034720
jmp 0x1800fe718
lea r14, [rax - 1]
imul r14, rsi
mov rbp, rbx
sub rbp, r14
cmp rbp, rsi
jbe 0x1800fe6ee
lea rax, [rsi + rsi]
cmp rbp, rax
jae 0x1800fe6ee
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
add r8, rsi
mov r14, qword [rsp + 0x38]
mov rdx, r14
cmp rsi, 0x10
jb 0x1800fe4cc
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 0x1800fe4b0
test r9, r9
je 0x1800fe4f1
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 0x1800fe4e0
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 0x1800fe560
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 0x1800fe541
test r9, r9
je 0x1800fe581
sub r8, rdx
nop dword [rax + rax]
movzx eax, byte [r8 + rdx]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x1800fe570
sub rbp, rsi
je 0x1800fe5ac
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 0x1800fe590
mov r8, qword [r13 + 0x18]
mov r9, rsi
mov rdx, r14
cmp rsi, 0x10
jb 0x1800fe5ed
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 0x1800fe5d0
test r9, r9
je 0x1800fe611
sub r8, rdx
nop word [rax + rax]
movzx eax, byte [rdx + r8]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x1800fe600
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 0x1800fe684
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 0x1800fe660
test rsi, rsi
je 0x1800fe6a1
sub r8, rax
nop dword [rax]
movzx ecx, byte [rax + r8]
xor byte [rax], cl
lea rax, [rax + 1]
sub rsi, 1
jne 0x1800fe690
mov rbx, qword [r15 + 8]
sub rbx, qword [r15]
lea rdx, [r12 + rbx]
mov rcx, r15
call fcn.180033000
test r12, r12
je 0x1800fe6d0
mov rcx, qword [r15]
add rcx, rbx
test r12, r12
je 0x1800fe6d0
mov r8, r12
mov rdx, r14
call fcn.18017c7f0
nop
test r14, r14
je 0x1800fe6ec
mov rdx, qword [rsp + 0x48]
sub rdx, r14
mov r8d, 1
mov rcx, r14
call fcn.1800302d0
nop
jmp 0x1800fe718
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.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