Function at 0x18010fad0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push r13
push r14
sub rsp, 0x80
mov rax, qword [rcx]
mov r13, r8
mov rsi, rdx
mov r14, rcx
call qword [rax + 0x20]
test al, al
jne 0x18010faf8
mov rcx, r14
call fcn.1800a53c0
mov rax, qword [r14 + 0x10]
cmp qword [r14 + 8], rax
je 0x18010fd64
mov rcx, qword [r14 + 0x38]
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0xa8], rbp
mov rbp, r13
mov qword [rsp + 0xb0], rdi
mov rdi, qword [r14 + 0x50]
mov qword [rsp + 0x78], r12
mov qword [rsp + 0x70], r15
test rcx, rcx
je 0x18010fb99
mov rax, rdi
mov rbx, r13
sub rax, rcx
mov rdx, rsi
cmp rax, r13
cmovb rbx, rax
add rcx, qword [r14 + 0x20]
mov r8, rbx
call fcn.18009dfd0
mov rdx, qword [r14 + 0x20]
add rdx, qword [r14 + 0x38]
test rbx, rbx
je 0x18010fb81
test rdx, rdx
je 0x18010fd7f
test rsi, rsi
je 0x18010fd7f
mov r8, rbx
mov rcx, rsi
call fcn.180282cf0
add qword [r14 + 0x38], rbx
sub rbp, rbx
add rsi, rbx
cmp qword [r14 + 0x38], rdi
jne 0x18010fb99
mov rcx, r14
call fcn.18010f760
mov rbx, rbp
cmp rbp, rdi
jb 0x18010fd01
mov r12, rdi
mov r15, rdi
and r12d, 0x1f
sub r15, r12
nop dword [rax]
nop word [rax + rax]
mov r11, qword [r14 + 0x20]
mov r9, rsi
sub r9, r11
test r15, r15
je 0x18010fc3f
mov rcx, r11
movups xmm0, xmmword [rcx]
xor eax, eax
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rsp + 0x30], xmm0
movups xmm0, xmmword [rcx + r9]
movups xmmword [rsp + 0x40], xmm1
movups xmm1, xmmword [rcx + r9 + 0x10]
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm1
nop word [rax + rax]
movdqu xmm0, xmmword [rsp + rax + 0x30]
movdqu xmm1, xmmword [rsp + rax + 0x50]
xorps xmm1, xmm0
movdqu xmmword [rsp + rax + 0x30], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x18010fc00
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [rcx], xmm0
movups xmmword [rcx + 0x10], xmm1
add rcx, 0x20
mov rax, rcx
sub rax, r11
cmp rax, r15
jne 0x18010fbd2
mov r8, r15
cmp r15, rdi
je 0x18010fcc1
cmp r12, 8
jb 0x18010fca4
lea rdx, [r11 - 1]
lea rax, [rdi - 1]
add rdx, rdi
add rax, rsi
lea rcx, [r15 + r11]
lea r10, [r15 + rsi]
cmp rcx, rax
ja 0x18010fc6d
cmp rdx, r10
jae 0x18010fca4
mov rax, r12
mov rdx, rdi
and eax, 7
sub rdx, rax
nop dword [rax]
movq xmm0, qword [rcx]
add r8, 8
movq xmm1, qword [r9 + rcx]
lea rcx, [rcx + 8]
xorps xmm1, xmm0
movq qword [rcx - 8], xmm1
cmp r8, rdx
jne 0x18010fc80
cmp r8, rdi
je 0x18010fcc1
mov rdx, rdi
lea rcx, [r8 + r11]
sub rdx, r8
nop
movzx eax, byte [r9 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x18010fcb0
mov rdx, qword [r14 + 0x20]
test rdi, rdi
je 0x18010fce7
test rdx, rdx
je 0x18010fd7f
test rsi, rsi
je 0x18010fd7f
mov r8, rdi
mov rcx, rsi
call fcn.180282cf0
sub rbp, rdi
mov rcx, r14
mov rbx, rbp
add rsi, rdi
call fcn.18010f760
cmp rbp, rdi
jae 0x18010fbc0
test rbx, rbx
je 0x18010fd32
mov rcx, qword [r14 + 0x20]
mov r8, rbp
mov rdx, rsi
call fcn.18009dfd0
mov rdx, qword [r14 + 0x20]
test rdx, rdx
je 0x18010fd7f
test rsi, rsi
je 0x18010fd7f
mov r8, rbx
mov rcx, rsi
call fcn.180282cf0
add qword [r14 + 0x38], rbp
mov r12, qword [rsp + 0x78]
mov rax, r13
mov rdi, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x70]
add rsp, 0x80
pop r14
pop r13
pop rsi
ret
lea r8, [0x1803e3c00]
lea rdx, str.process_msg
lea rcx, str.m_state.empty____false
call fcn.1800d2170
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