Function at 0x1800a2ff0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov rax, rsp
sub rsp, 0x58
mov qword [rax + 0x20], rbx
mov qword [rax - 8], rbp
mov rbp, qword [rcx + 0x10]
test rbp, rbp
mov qword [rax - 0x10], rsi
mov qword [rax - 0x18], rdi
mov qword [rax - 0x20], r12
mov qword [rax - 0x28], r13
mov qword [rax - 0x30], r14
mov qword [rax - 0x38], r15
mov r14, r8
mov r12, rdx
mov rdi, rcx
jne 0x1800a30a7
test r8, r8
je 0x1800a305d
mov rax, qword [rcx + 0x20]
mov byte [rcx + 8], 6
mov qword [rcx + 0x10], 0x40
mov ecx, 0x200
call qword [rax]
test rax, rax
mov qword [rdi], rax
jne 0x1800a3064
xor esi, esi
mov qword [rdi + 0x10], rsi
xor eax, eax
jmp 0x1800a3337
xor edx, edx
mov r8d, 0x200
mov rcx, rax
call fcn.18000abd0
movzx eax, byte [r12]
xor esi, esi
test al, al
mov r11, r12
je 0x1800a3097
imul esi, esi, 0xf4243
movzx eax, al
inc r11
xor esi, eax
mov al, byte [r11]
test al, al
jne 0x1800a3082
mov ebx, dword [rdi + 0x10]
mov eax, esi
add ebx, 0xffffffff
and rbx, rax
jmp 0x1800a32f6
movzx r9d, byte [rdx]
xor esi, esi
mov rcx, rdx
test r9b, r9b
mov r13d, esi
je 0x1800a30d6
movzx eax, r9b
nop
imul r13d, r13d, 0xf4243
movzx eax, al
inc rcx
xor r13d, eax
mov al, byte [rcx]
test al, al
jne 0x1800a30c0
mov r11, qword [rdi]
lea r10d, [rbp - 1]
mov eax, r13d
mov ebx, r10d
xor dl, dl
and rbx, rax
cmp qword [r11 + rbx*8], rsi
je 0x1800a3158
nop
mov rax, qword [r11 + rbx*8]
mov rcx, qword [rax]
cmp r9b, byte [rcx]
jne 0x1800a311a
mov r8, r12
movzx eax, r9b
sub r8, rcx
test al, al
je 0x1800a3258
mov al, byte [r8 + rcx + 1]
inc rcx
cmp al, byte [rcx]
je 0x1800a3106
test dl, dl
jne 0x1800a3139
mov al, byte [rdi + 8]
mov edx, r10d
not edx
lea ecx, [rax - 1]
mov eax, r10d
and edx, r13d
shr eax, 2
shr edx, cl
and dl, al
or dl, 1
movzx ecx, dl
cmp rbx, rcx
jae 0x1800a314c
mov rax, rbp
sub rax, rcx
add rbx, rax
jmp 0x1800a314f
sub rbx, rcx
cmp qword [r11 + rbx*8], rsi
mov rax, r11
jne 0x1800a30f0
test r14, r14
je 0x1800a305d
movzx r15d, byte [rdi + 8]
mov rdx, qword [rdi + 0x18]
mov al, r15b
lea ecx, [rax - 1]
shr rdx, cl
test rdx, rdx
je 0x1800a32f6
mov rax, qword [rdi + 0x20]
inc r15b
mov r12d, 1
movzx ecx, r15b
shl r12, cl
lea rbx, [r12*8]
lea r14d, [r12 - 1]
mov rcx, rbx
call qword [rax]
test rax, rax
mov rbp, rax
je 0x1800a305d
mov r8, rbx
xor edx, edx
mov rcx, rax
call fcn.18000abd0
cmp qword [rdi + 0x10], rsi
mov r11, rsi
jbe 0x1800a327d
nop
nop
mov rax, qword [rdi]
cmp qword [rax + r11*8], rsi
je 0x1800a3270
mov r10, qword [rax + r11*8]
mov r9d, esi
mov rcx, qword [r10]
movzx eax, byte [rcx]
test al, al
je 0x1800a3206
nop
imul r9d, r9d, 0xf4243
movzx eax, al
inc rcx
xor r9d, eax
mov al, byte [rcx]
test al, al
jne 0x1800a31f0
mov edx, r9d
mov eax, r14d
xor r8b, r8b
and rdx, rax
cmp qword [rbp + rdx*8], rsi
je 0x1800a326b
nop
nop
test r8b, r8b
jne 0x1800a3244
mov al, r15b
mov r8d, r14d
not r8d
lea ecx, [rax - 1]
mov eax, r14d
and r8d, r9d
shr eax, 2
shr r8d, cl
and r8b, al
or r8b, 1
movzx ecx, r8b
cmp rdx, rcx
jae 0x1800a3261
mov rax, r12
sub rax, rcx
add rdx, rax
jmp 0x1800a3264
mov rax, qword [r11 + rbx*8]
jmp 0x1800a3337
sub rdx, rcx
cmp qword [rbp + rdx*8], rsi
jne 0x1800a3220
mov qword [rbp + rdx*8], r10
inc r11
cmp r11, qword [rdi + 0x10]
jb 0x1800a31d0
mov rax, qword [rdi + 0x20]
mov rcx, qword [rdi]
call qword [rax + select]
mov ebx, r14d
mov eax, r13d
and rbx, rax
mov qword [rdi], rbp
mov byte [rdi + 8], r15b
mov qword [rdi + 0x10], r12
xor dl, dl
cmp qword [rbp + rbx*8], rsi
je 0x1800a32ec
test dl, dl
jne 0x1800a32c3
mov al, r15b
mov edx, r14d
not edx
lea ecx, [rax - 1]
mov eax, r14d
and edx, r13d
shr eax, 2
shr edx, cl
and dl, al
or dl, 1
movzx ecx, dl
cmp rbx, rcx
jae 0x1800a32d6
mov rax, r12
sub rax, rcx
add rbx, rax
jmp 0x1800a32d9
sub rbx, rcx
cmp qword [rbp + rbx*8], rsi
jne 0x1800a32a4
mov r12, qword [rsp + 0x68]
mov r14, qword [rsp + 0x70]
jmp 0x1800a32f6
mov r12, qword [rsp + 0x68]
mov r14, qword [rsp + 0x70]
mov rax, qword [rdi + 0x20]
mov rcx, r14
call qword [rax]
mov rcx, qword [rdi]
mov qword [rcx + rbx*8], rax
mov rcx, qword [rdi]
cmp qword [rcx + rbx*8], 0
je 0x1800a305d
mov rcx, qword [rcx + rbx*8]
mov r8, r14
xor edx, edx
call fcn.18000abd0
mov r11, qword [rdi]
mov rax, qword [r11 + rbx*8]
mov qword [rax], r12
mov rax, qword [rdi]
inc qword [rdi + 0x18]
mov rax, qword [rax + rbx*8]
mov r15, qword [rsp + 0x20]
mov r14, qword [rsp + 0x28]
mov r13, qword [rsp + 0x30]
mov r12, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x78]
add rsp, 0x58
ret