Function at 0x14001af70
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
sub rsp, 0x20
mov r11, qword [rcx + 0x10]
mov rbp, r8
mov rsi, rdx
test r11, r11
mov rdi, rcx
lea rbx, [0x1400ab830]
je 0x14001afe7
movzx r9d, byte [rdx]
xor eax, eax
mov r10, rdx
test r9b, r9b
je 0x14001afd0
nop
nop
movzx ecx, r9b
mov r9b, byte [r10 + 1]
add r10, 1
movzx edx, byte [rcx + rbx]
lea ecx, [rax*8]
xor edx, ecx
xor eax, edx
test r9b, r9b
jne 0x14001afb0
xor edx, edx
div dword [rdi]
mov eax, edx
mov r12d, edx
add rax, rax
mov r9, qword [r11 + rax*8 + 8]
mov r10d, dword [r11 + rax*8]
jmp 0x14001aff2
mov r9, qword [rcx + 8]
mov r10d, dword [rcx + 4]
xor r12d, r12d
test r10d, r10d
je 0x14001b06c
nop
nop
nop
mov rdx, qword [r9 + 0x18]
sub r10d, 1
test rdx, rdx
jne 0x14001b017
mov rax, rsi
neg rax
sbb edx, edx
jmp 0x14001b060
test rsi, rsi
je 0x14001b064
movzx ecx, byte [rdx]
mov r8, rsi
test cl, cl
je 0x14001b04f
nop
nop
nop
movzx eax, byte [r8]
movzx ecx, cl
movzx eax, byte [rax + rbx]
cmp byte [rcx + rbx], al
jne 0x14001b04f
mov cl, byte [rdx + 1]
add rdx, 1
add r8, 1
test cl, cl
jne 0x14001b030
movzx eax, byte [r8]
movzx ecx, byte [rax + rbx]
movzx eax, byte [rdx]
movzx edx, byte [rax + rbx]
sub edx, ecx
test edx, edx
je 0x14001b0b8
test r10d, r10d
mov r9, qword [r9]
jne 0x14001b000
test rbp, rbp
je 0x14001b1b3
cmp dword [0x1400bf010], 0
je 0x14001b0e7
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x14001b090
call qword [0x1400bf098]
lea rdx, [rsp + 0x40]
mov ecx, 0x20
call fcn.140011830
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x14001b0b1
call qword [0x1400bf0a8]
mov rbx, qword [rsp + 0x40]
jmp 0x14001b0f5
test rbp, rbp
mov rbx, qword [r9 + 0x10]
jne 0x14001b0d7
mov r8d, r12d
mov rdx, r9
mov rcx, rdi
call fcn.140012ef0
mov rax, rbx
jmp 0x14001b1b5
mov qword [r9 + 0x10], rbp
mov qword [r9 + 0x18], rsi
mov rax, rbx
jmp 0x14001b1b5
mov ecx, 0x20
call qword [0x1400bf038]
mov rbx, rax
test rbx, rbx
jne 0x14001b102
mov rax, rbp
jmp 0x14001b1b5
mov qword [rbx + 0x18], rsi
mov qword [rbx + 0x10], rbp
add dword [rdi + 4], 1
mov edx, dword [rdi + 4]
cmp edx, 0xa
jb 0x14001b13b
mov eax, dword [rdi]
add eax, eax
cmp edx, eax
jbe 0x14001b13b
add edx, edx
mov rcx, rdi
call fcn.140015750
test eax, eax
je 0x14001b13b
mov rcx, rsi
call fcn.140007b30
xor edx, edx
div dword [rdi]
mov r12d, edx
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x14001b193
mov ecx, r12d
shl rcx, 4
add rcx, rax
je 0x14001b193
mov eax, dword [rcx]
test eax, eax
je 0x14001b15c
mov rdx, qword [rcx + 8]
jmp 0x14001b15e
xor edx, edx
add eax, 1
test rdx, rdx
mov qword [rcx + 8], rbx
mov dword [rcx], eax
je 0x14001b193
mov qword [rbx], rdx
mov rax, qword [rdx + 8]
mov qword [rbx + 8], rax
mov rax, qword [rdx + 8]
test rax, rax
je 0x14001b189
mov qword [rax], rbx
mov qword [rdx + 8], rbx
jmp 0x14001b1b3
mov qword [rdi + 8], rbx
mov qword [rdx + 8], rbx
jmp 0x14001b1b3
mov rax, qword [rdi + 8]
mov qword [rbx], rax
mov rax, qword [rdi + 8]
test rax, rax
je 0x14001b1a7
mov qword [rax + 8], rbx
mov qword [rbx + 8], 0
mov qword [rdi + 8], rbx
xor eax, eax
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
add rsp, 0x20
pop r12
pop rdi
pop rsi
ret