Function at 0x180189780
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], 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
lea rbp, [rsp - 0x27]
sub rsp, 0xa0
mov rbx, r8
mov r13, rdx
mov r12, rcx
mov rax, qword [rcx]
call qword [rax + 0x20]
test al, al
jne 0x1801897c1
mov rcx, r12
call fcn.1800a53c0
mov rcx, qword [r12 + 0x10]
mov rax, qword [rcx + 0x48]
cmp qword [rcx + 0x40], rax
je 0x180189c1b
mov r14, qword [r12 + 0x58]
mov rax, qword [r13]
mov rdi, qword [r13 + 8]
sub rdi, rax
cmp rdi, rbx
jb 0x180189c36
sub rdi, rbx
lea rsi, [rax + rbx]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x49], xmm0
mov qword [rbp - 0x39], 0
movabs rax, 0x7fffffffffffffff
test r14, r14
je 0x180189846
cmp r14, rax
ja 0x180189c51
mov edx, 1
mov rcx, r14
call fcn.18009de10
mov qword [rbp - 0x49], rax
lea rbx, [rax + r14]
mov qword [rbp - 0x39], rbx
mov r8, r14
xor edx, edx
mov rcx, rax
call fcn.180283390
mov qword [rbp - 0x41], rbx
test rdi, rdi
je 0x1801899ff
xor edx, edx
mov rax, rdi
div r14
mov rcx, rax
imul rcx, r14
mov rbx, rdi
sub rbx, rcx
mov qword [rbp - 0x11], rbx
mov r8, rax
mov rdx, rsi
mov rcx, r12
call fcn.180189520
mov rdx, qword [r12 + 0x10]
add rdx, 0x40
lea rcx, [rbp - 0x49]
call fcn.1800d4ad0
test rbx, rbx
je 0x180189a11
cmp rbx, r14
jae 0x180189c57
sub rsi, rbx
add rsi, rdi
mov qword [rbp - 9], rsi
mov r8, rbx
mov rdx, rsi
mov rcx, qword [r12 + 0x20]
call fcn.18009dfd0
mov rax, qword [r12 + 0x20]
xor byte [rax + rbx], 0x80
mov rdi, qword [r12 + 0x10]
mov rsi, qword [rbp - 0x41]
mov qword [rbp + 0x7f], rsi
mov rcx, rsi
mov r15, qword [rbp - 0x49]
sub rcx, r15
mov rbx, qword [rdi + 0x30]
sub rbx, qword [rdi + 0x28]
cmp rcx, rbx
jae 0x180189926
mov rax, qword [rbp - 0x39]
sub rax, r15
cmp rbx, rax
jbe 0x18018990b
lea r8, [rbp + 0x7f]
mov rdx, rbx
lea rcx, [rbp - 0x49]
call fcn.18009da10
mov rbx, qword [rbp - 0x41]
mov qword [rbp + 0x7f], rbx
mov r15, qword [rbp - 0x49]
jmp 0x180189929
sub rbx, rcx
mov r8, rbx
xor edx, edx
mov rcx, rsi
call fcn.180283390
add rsi, rbx
mov qword [rbp + 0x7f], rsi
mov qword [rbp - 0x41], rsi
mov rbx, rsi
mov rdx, qword [rdi + 0x28]
mov r8, qword [rdi + 0x30]
sub r8, rdx
mov rcx, r15
call fcn.18009dfd0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x31], xmm0
xor r13d, r13d
mov qword [rbp - 0x21], r13
test r14, r14
je 0x180189991
movabs rax, 0x7fffffffffffffff
cmp r14, rax
ja 0x180189c15
lea edx, [r13 + 1]
mov rcx, r14
call fcn.18009de10
mov r12, rax
mov qword [rbp - 0x31], rax
lea r13, [rax + r14]
mov qword [rbp - 0x21], r13
mov r8, r14
xor edx, edx
mov rcx, rax
call fcn.180283390
mov qword [rbp - 0x29], r13
jmp 0x180189995
mov r12, qword [rbp - 0x31]
mov rsi, qword [rbp + 0x67]
mov rsi, qword [rsi + 8]
sub rbx, r15
mov rdx, qword [rsi]
mov rdi, qword [rdx + 0x48]
mov rcx, rsi
call qword [rdx + 0x30]
mov r9, rax
xor edx, edx
mov rax, rbx
div r9
mov r9, rax
mov r8, r12
mov rdx, r15
mov rcx, rsi
call rdi
mov r8, qword [rbp - 0x11]
mov rdx, r12
mov rcx, qword [rbp - 9]
call fcn.18009dfd0
nop
test r12, r12
je 0x1801899f1
sub r13, r12
mov r8d, 1
mov rdx, r13
mov rcx, r12
call fcn.18009df10
nop
mov r12, qword [rbp + 0x67]
mov rsi, qword [rbp + 0x7f]
mov r13, qword [rbp + 0x6f]
jmp 0x180189a19
mov rdx, qword [r12 + 0x10]
add rdx, 0x40
lea rcx, [rbp - 0x49]
call fcn.1800d4ad0
mov r15, qword [rbp - 0x49]
mov rsi, qword [rbp - 0x41]
xor ebx, ebx
mov rcx, qword [r12 + 0x20]
cmp qword [r12 + 0x28], rcx
je 0x180189b5a
mov rdi, r14
and edi, 0x1f
mov r11, r14
sub r11, rdi
lea r9, [rcx + rbx]
test r11, r11
je 0x180189abd
mov rcx, r15
mov rdx, r9
sub rdx, r15
nop dword [rax]
movups xmm0, xmmword [rcx]
movups xmmword [rbp - 0x31], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rbp - 0x21], xmm1
movups xmm0, xmmword [rdx + rcx]
movups xmmword [rbp - 1], xmm0
movups xmm1, xmmword [rdx + rcx + 0x10]
movups xmmword [rbp + 0xf], xmm1
xor eax, eax
nop dword [rax]
nop word [rax + rax]
movdqu xmm1, xmmword [rbp + rax - 1]
movdqu xmm0, xmmword [rbp + rax - 0x31]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x31], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x180189a80
movups xmm0, xmmword [rbp - 0x31]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rbp - 0x21]
movups xmmword [rcx + 0x10], xmm1
add rcx, 0x20
mov rax, rcx
sub rax, r15
cmp rax, r11
jne 0x180189a50
mov rdx, r11
cmp r11, r14
je 0x180189b41
cmp rdi, 8
jb 0x180189b22
lea rcx, [r11 + r15]
lea r8, [r14 - 1]
add r8, r15
lea r10, [r9 + r11]
lea rax, [r14 - 1]
add rax, r9
cmp rcx, rax
ja 0x180189aeb
cmp r8, r10
jae 0x180189b22
mov rax, rdi
and eax, 7
mov r8, r14
sub r8, rax
mov rax, r9
sub rax, r15
nop dword [rax]
movq xmm1, qword [rcx + rax]
movq xmm0, qword [rcx]
xorps xmm1, xmm0
movq qword [rcx], xmm1
add rdx, 8
lea rcx, [rcx + 8]
cmp rdx, r8
jne 0x180189b00
cmp rdx, r14
je 0x180189b41
lea rcx, [rdx + r15]
sub r9, r15
mov r8, r14
sub r8, rdx
nop
movzx eax, byte [rcx + r9]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x180189b30
add rbx, r14
mov rcx, qword [r12 + 0x20]
mov rax, qword [r12 + 0x28]
sub rax, rcx
cmp rbx, rax
jne 0x180189a37
mov rax, qword [r12 + 0x10]
mov r8, r14
mov rdx, qword [rax + 0x10]
mov rcx, r15
call fcn.18009dfd0
mov rdi, qword [r12 + 8]
sub rsi, r15
mov rdx, qword [rdi]
mov rbx, qword [rdx + 0x48]
mov rcx, rdi
call qword [rdx + 0x30]
mov r9, rax
xor edx, edx
mov rax, rsi
div r9
mov r9, rax
mov r8, r15
mov rdx, r15
mov rcx, rdi
call rbx
mov r8, r14
mov rdx, qword [r12 + 0x38]
mov rcx, r15
call fcn.18009dfd0
mov rdx, qword [r13 + 8]
mov r9, qword [r12 + 0x50]
mov r8, r15
mov rcx, r13
call fcn.1800d71e0
mov rcx, qword [r12 + 0x20]
mov r8, qword [r12 + 0x28]
sub r8, rcx
je 0x180189bd6
xor edx, edx
call fcn.180283390
mov qword [r12 + 0x18], 0
test r15, r15
je 0x180189bfa
mov rdx, qword [rbp - 0x39]
sub rdx, r15
mov r8d, 1
mov rcx, r15
call fcn.18009df10
nop
mov rbx, qword [rsp + 0xf0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1800030ee
nop
lea r8, [0x1803e3c70]
lea rdx, str.finish_msg
lea rcx, str.m_L__initialized__
call fcn.1800d2170
int3
lea r8, [0x1803e3c70]
lea rdx, str.finish_msg
lea rcx, str.Offset_is_out_of_range
call fcn.1800d20d0
int3
call fcn.1800030ee
nop
mov dword [rsp + 0x20], 0x171
lea r9, [0x1803e3c70]
lea r8, str.finish_msg
lea rdx, str.Only_a_partial_block_left
lea rcx, str.remainder_bytes___BS
call fcn.1800d1f70
int3