Function at 0x1801115f0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], rbx
push rbp
push r13
push r15
sub rsp, 0xa0
mov r15, qword [rcx + 0x78]
mov r13, rcx
mov rcx, qword [rcx + 0x80]
mov rbp, rdx
mov rbx, qword [rdx + 8]
mov rdx, qword [rdx]
mov r9, qword [r13 + 0x18]
mov rax, qword [r13 + 0x20]
sub rax, r9
cmp rcx, rax
ja 0x18011196d
sub rax, rcx
mov qword [r11 + 8], rsi
cmp rax, rbx
mov qword [r11 + 0x10], rdi
mov r8, rbx
mov qword [r11 + 0x18], r14
cmovb r8, rax
movaps xmmword [r11 - 0x28], xmm6
test r8, r8
je 0x18011166c
add rcx, r9
test rdx, rdx
je 0x180111997
test rcx, rcx
je 0x180111997
call fcn.180282cf0
mov rcx, qword [r13 + 0x80]
add rcx, rbx
cmp rcx, r15
jbe 0x180111916
mov rcx, qword [r13 + 0x18]
lea rdx, [rsp + 0x30]
mov rax, qword [r13 + 0x20]
mov r8, r15
sub rax, rcx
mov qword [rsp + 0x30], rcx
mov rcx, qword [r13 + 0x30]
mov qword [rsp + 0x38], rax
mov rax, qword [r13 + 0x38]
movaps xmm0, xmmword [rsp + 0x30]
sub rax, rcx
mov qword [rsp + 0x40], rcx
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x48], rax
movaps xmm1, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x40], xmm1
movdqa xmmword [rsp + 0x30], xmm0
call fcn.180111100
mov r14, qword [r13 + 0x10]
mov rsi, qword [r13 + 0x30]
mov rcx, r14
mov rbx, qword [r13 + 0x38]
sub rbx, rsi
mov r8, qword [r14]
mov rdi, qword [r8 + 0x48]
call qword [r8 + 0x30]
xor edx, edx
mov rcx, r14
mov r8, rax
mov rax, rbx
div r8
mov r8, rsi
mov rdx, rsi
mov r9, rax
call rdi
movups xmm0, xmmword [rbp]
mov rdx, qword [rbp + 8]
mov r8, r15
sub r8, qword [r13 + 0x80]
movaps xmmword [rsp + 0x30], xmm0
cmp rdx, r8
jb 0x180111952
mov rcx, qword [rsp + 0x30]
sub rdx, r8
add rcx, r8
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x40], rcx
movaps xmm6, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x30], xmm6
cmp rdx, r15
jbe 0x1801118cc
nop
psrldq xmm6, 8
movq rbp, xmm6
cmp rbp, r15
jb 0x180111952
mov r8, qword [rsp + 0x30]
sub rbp, r15
mov r9, qword [r13 + 0x30]
mov r10, r15
mov qword [rsp + 0x48], rbp
and r10d, 0x1f
mov rdx, r15
mov ecx, 0
lea rax, [r15 + r8]
mov qword [rsp + 0x40], rax
movaps xmm6, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x30], xmm6
sub rdx, r10
je 0x18011180d
nop dword [rax + rax]
movups xmm0, xmmword [r9 + rcx]
xor eax, eax
movups xmm1, xmmword [r9 + rcx + 0x10]
movups xmmword [rsp + 0x50], xmm0
movups xmm0, xmmword [rcx + r8]
movups xmmword [rsp + 0x60], xmm1
movups xmm1, xmmword [rcx + r8 + 0x10]
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x80], xmm1
nop
movdqu xmm0, xmmword [rsp + rax + 0x50]
movdqu xmm1, xmmword [rsp + rax + 0x70]
xorps xmm1, xmm0
movdqu xmmword [rsp + rax + 0x50], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x1801117d0
movups xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movups xmmword [r9 + rcx], xmm0
movups xmmword [r9 + rcx + 0x10], xmm1
add rcx, 0x20
cmp rcx, rdx
jne 0x1801117a0
cmp rdx, r15
je 0x180111891
cmp r10, 8
jb 0x180111880
lea r11, [r15 - 1]
lea rax, [r8 - 1]
add r11, r9
add rax, r15
lea rcx, [r9 + rdx]
lea rbx, [rdx + r8]
cmp rcx, rax
ja 0x180111838
cmp r11, rbx
jae 0x180111880
and r10d, 7
mov rax, r15
sub rax, r10
nop dword [rax]
nop word [rax + rax]
movq xmm0, qword [r9 + rdx]
movq xmm1, qword [rdx + r8]
xorps xmm1, xmm0
movq qword [r9 + rdx], xmm1
add rdx, 8
cmp rdx, rax
jne 0x180111850
cmp rdx, r15
je 0x180111891
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx + r8]
xor byte [r9 + rdx], al
inc rdx
cmp rdx, r15
jne 0x180111880
mov r14, qword [r13 + 0x10]
mov rsi, qword [r13 + 0x30]
mov rcx, r14
mov rbx, qword [r13 + 0x38]
sub rbx, rsi
mov rdi, qword [r14]
call qword [rdi + 0x30]
xor edx, edx
mov rcx, r14
mov r8, rax
mov rax, rbx
div r8
mov r8, rsi
mov rdx, rsi
mov r9, rax
call qword [rdi + 0x48]
cmp rbp, r15
ja 0x180111750
mov rcx, qword [r13 + 0x18]
movq rdx, xmm6
psrldq xmm6, 8
movq rbx, xmm6
test rbx, rbx
je 0x1801118f6
test rdx, rdx
je 0x180111997
test rcx, rcx
je 0x180111997
test rdx, rdx
je 0x18011190d
test rcx, rcx
je 0x18011190d
test rbx, rbx
je 0x18011190d
mov r8, rbx
call fcn.180282cf0
mov qword [r13 + 0x80], rbx
jmp 0x18011191d
mov qword [r13 + 0x80], rcx
mov r14, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0xc0]
movaps xmm6, xmmword [rsp + 0x90]
mov rbx, qword [rsp + 0xd8]
add rsp, 0xa0
pop r15
pop r13
pop rbp
ret
lea r8, [0x1803e4d70]
lea rdx, str.take
lea rcx, str.remaining_____count
call fcn.1800d2170
int3
lea r9, [0x1803e49b0]
mov dword [rsp + 0x20], 0xd5
lea r8, str.buffer_insert
lea rdx, [0x1803c6beb]
lea rcx, str.buf_offset___buf.size__
call fcn.1800d1f70
int3
lea r9, [0x1803e49b0]
mov dword [rsp + 0x20], 0x7b
lea r8, str.copy_mem
lea rdx, str.If_n___0_then_args_are_not_null
lea rcx, str.n___0_implies_in___nullptr__out___nullptr
call fcn.1800d1f70
int3