Function at 0x1800869f0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x78
mov rax, qword [0x1800e8400]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rax, rdx
mov qword [rsp + 0x38], rdx
sub rax, rcx
movzx ebx, r9b
and rax, 0xfffffffffffffff8
mov byte [rsp + 0x30], bl
mov rsi, r8
mov r15, rdx
mov rdi, rcx
cmp rax, 0x100
jle 0x180086acd
nop dword [rax + rax]
test rsi, rsi
jle 0x180086b1c
movzx r9d, bl
lea rcx, [rsp + 0x40]
mov r8, r15
mov rdx, rdi
call fcn.180086800
mov r14, qword [rsp + 0x40]
mov rcx, rsi
mov rbp, qword [rsp + 0x48]
mov rax, r14
sar rcx, 2
sub rax, rdi
sar rsi, 1
and rax, 0xfffffffffffffff8
add rsi, rcx
movzx r9d, bl
mov rcx, r15
mov r8, rsi
sub rcx, rbp
and rcx, 0xfffffffffffffff8
cmp rax, rcx
jge 0x180086aa4
mov rdx, r14
mov rcx, rdi
call fcn.1800869f0
mov rdi, rbp
jmp 0x180086ab7
mov rdx, r15
mov rcx, rbp
call fcn.1800869f0
mov r15, r14
mov qword [rsp + 0x38], r14
mov rax, r15
sub rax, rdi
and rax, 0xfffffffffffffff8
cmp rax, 0x100
jg 0x180086a40
cmp rdi, r15
je 0x180086cbd
lea rsi, [rdi + 8]
cmp rsi, r15
je 0x180086cbd
mov rbp, qword [rsi]
mov r14, rsi
mov r8, qword [rdi]
mov rdx, rbp
call fcn.1800865f0
test al, al
je 0x180086c6f
mov r8, rsi
mov rdx, rdi
add rsi, 8
sub r8, rdi
mov rcx, rsi
sub rcx, r8
call sub.VCRUNTIME140.dll_memmove
mov qword [rdi], rbp
jmp 0x180086cb4
mov rax, r15
sub rax, rdi
sar rax, 3
mov r14, rax
mov qword [rsp + 0x40], rax
sar r14, 1
test r14, r14
jle 0x180086c0f
mov qword [rsp + 0x70], r12
mov rbx, rax
mov qword [rsp + 0x68], r13
lea r13, [rax - 1]
sar r13, 1
nop
mov r12, qword [rdi + r14*8 - 8]
dec r14
mov rbp, r14
mov rcx, r14
cmp r14, r13
jge 0x180086ba0
nop dword [rax]
nop word [rax + rax]
lea rsi, [rcx + rcx]
mov r8, qword [rdi + rsi*8 + 8]
mov rdx, qword [rdi + rsi*8 + 0x10]
call fcn.1800865f0
movzx ecx, al
xor rcx, 1
inc rcx
add rcx, rsi
mov rax, qword [rdi + rcx*8]
mov qword [rdi + rbp*8], rax
mov rbp, rcx
cmp rcx, r13
jl 0x180086b70
cmp rbp, r13
jne 0x180086bb7
test bl, 1
jne 0x180086bb7
mov rax, qword [rdi + rbx*8 - 8]
mov qword [rdi + rbp*8], rax
lea rbp, [rbx - 1]
lea rsi, [rbp - 1]
sar rsi, 1
cmp r14, rbp
jge 0x180086be9
mov rdx, qword [rdi + rsi*8]
mov r8, r12
call fcn.1800865f0
test al, al
je 0x180086be9
mov rax, qword [rdi + rsi*8]
mov qword [rdi + rbp*8], rax
mov rbp, rsi
dec rsi
sar rsi, 1
cmp r14, rbp
jl 0x180086bc3
mov qword [rdi + rbp*8], r12
test r14, r14
jg 0x180086b50
mov r13, qword [rsp + 0x68]
mov r12, qword [rsp + 0x70]
movzx ebx, byte [rsp + 0x30]
mov r15, qword [rsp + 0x38]
mov rax, qword [rsp + 0x40]
cmp rax, 2
jl 0x180086cbd
mov r14d, 8
lea rsi, [r15 - 8]
sub r14, rdi
nop word [rax + rax]
mov rax, qword [rsi]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x40], rax
mov r8, rsi
mov rax, qword [rdi]
sub r8, rdi
sar r8, 3
xor edx, edx
mov rcx, rdi
mov qword [rsi], rax
mov byte [rsp + 0x20], bl
call fcn.1800862d0
sub rsi, 8
lea rax, [r14 + rsi]
and rax, 0xfffffffffffffff8
cmp rax, 0x10
jge 0x180086c30
jmp 0x180086cbd
mov r8, qword [rsi - 8]
lea rbx, [rsi - 8]
mov rdx, rbp
call fcn.1800865f0
test al, al
je 0x180086cad
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rbx]
mov rdx, rbp
mov qword [r14], rax
mov r14, rbx
mov r8, qword [rbx - 8]
sub rbx, 8
call fcn.1800865f0
test al, al
jne 0x180086c90
mov qword [r14], rbp
add rsi, 8
cmp rsi, r15
jne 0x180086ae3
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1800a3dc0
add rsp, 0x78
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret