Function at 0x1400117bc
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x18
movzx r13d, word [rsp + 0x88]
mov r14, rdx
mov rax, qword [0x14016aaa8]
xor edx, edx
mov rbp, qword [0x14016aaa0]
mov rbx, rcx
mov sil, byte [0x14016aa38]
mov r15, r8
movsxd rdi, dword [0x14016aab0]
and sil, r13b
div r13
mov rax, qword [0x14016aa90]
mov qword [rsp + 8], rax
movsxd rax, dword [0x14016aa8c]
mov qword [rsp + 0x70], rdx
mov edx, 1
add rbp, rdx
mov qword [0x14016aaa0], rbp
movzx r11d, word [r14 + 0x5c4]
or r11, rcx
mov rcx, qword [0x14016aa68]
mov qword [rsp], r11
mov r12, qword [rcx + rax*8]
mov rax, qword [0x14016aa60]
mov r10d, eax
sub rax, rdx
mov qword [0x14016aa60], rax
mov rax, qword [0x14016aa48]
mov rdx, qword [rcx + rax*8]
lea rcx, [rax + rax*2]
movzx eax, sil
mov qword [rsp + 0x60], rdx
cmp dword [rcx*4 + 0x16bc], eax
jl 0x14001199b
movzx r9d, word [0x14016aa58]
mov rax, qword [0x14016aa50]
mov r8d, r9d
movzx edx, byte [r12 + rbx*2]
lea rcx, [r9 + r9*2]
cmp qword [rax + rcx*8], rdx
jne 0x14001199b
movzx eax, byte [r9*4 + 0x16bc]
mov sil, r10b
imul ecx, eax, 0x3d
mov eax, 0xffff
add r9w, ax
mov word [0x14016aa58], r9w
mov r9d, 1
dec dword [rdi]
mov eax, dword [rdi]
movzx edx, word [r15 + 0x88a]
sub sil, cl
movzx r8d, word [r11]
lea eax, [rax*2 + 0xa]
movsxd rcx, eax
mov eax, 0x1397
xor dx, ax
mov rax, qword [0x14016aa68]
movzx ecx, word [rax + rcx*8]
mov eax, r10d
and cx, dx
lea rdx, [rbx + rbx*2]
xor word [r14 + r8*2], cx
movzx ecx, word [r15 + 0x25b2]
xor word [r14 + rdx*2], cx
add word [r11], r9w
movzx ecx, word [r11]
movzx edx, byte [rcx + rbp]
lea r8, [rcx + rcx*2]
mov rcx, qword [0x14016aa68]
add edx, dword [rcx + 0xeb18]
add dword [r8*4 + 0x16bc], edx
cdq
movzx r8d, word [r11]
movzx ecx, byte [r8 + r12 + 7]
idiv ecx
mov byte [r8 + r12 + 7], al
mov r8d, dword [0x14016aa8c]
add r8d, r9d
mov dword [0x14016aa8c], r8d
mov eax, dword [rdi]
movsxd r8, r8d
lea ecx, [rax + rax*2]
mov rax, qword [0x14016aa50]
movsxd rdx, ecx
movzx ecx, word [rax + rdx*8]
mov word [r14 + r8*2], cx
movsxd rcx, dword [0x14016aa8c]
mov rax, qword [0x14016aa98]
movzx ecx, byte [rcx + rax]
mov qword [0x14016aa48], rcx
jmp 0x1400119a1
mov r9d, 1
movzx eax, r13w
or eax, 0x3b
mov r13, qword [rsp + 0x60]
cdq
idiv dword [0x14016aab4]
sub dx, word [r14 + rbx*2]
mov word [r14 + rbx*2], dx
xor edx, edx
movsxd rax, dword [0x14016aa8c]
movsxd rcx, dword [rdi]
movzx eax, word [r14 + rax*2]
add eax, dword [0x14016aab0]
cdqe
div rbx
xor edx, edx
mov word [r15 + rcx*2], ax
mov eax, 0x116d
div qword [0x14016aaa8]
movsxd r10, dword [0x14016aa8c]
mov rax, rdx
xor edx, edx
movzx ecx, byte [r10 + r13]
sub r10d, r9d
div rcx
mov dword [0x14016aa8c], r10d
xor edx, edx
add byte [0x14016aa40], al
movzx ecx, word [r11]
movsxd r9, r10d
lea rax, [rcx*2]
add rax, r13
movzx r8d, byte [rcx + rax + 0x1d]
mov rax, qword [rsp + 0x70]
xor rax, 0x1a10
div r8
mov rax, qword [0x14016aa68]
imul rdx, qword [rax + r9*8]
mov eax, r10d
movzx r10d, word [rsp + 0x80]
xor qword [0x14016aa60], rdx
mov edx, 0x2fa
shl eax, 2
movsxd rcx, eax
mov rax, qword [rsp + 0x78]
movzx eax, byte [rax + 0x4e4]
and ax, dx
movzx edx, ax
mov rax, qword [0x14016aa78]
movzx ecx, word [rax + rcx*4]
imul ecx, edx
xor word [r11 + r9*2], cx
mov al, byte [r13 + 0x1621]
movsxd rcx, dword [0x14016aa8c]
sub al, 6
add al, r10b
and byte [rcx + 0x1cbd], al
mov eax, 1
add dword [rdi], eax
movzx eax, word [r11]
movsxd rdx, dword [rdi]
movzx ecx, byte [rax + r12]
mov eax, 0x485
xor cx, word [r15 + rdx*2]
xor cx, ax
mov word [r15 + rdx*2], cx
movzx r12d, word [0x14016aa5c]
mov r9d, dword [0x14016aaa8]
cmp r9d, r12d
je 0x140011b7c
mov r14, qword [rsp + 0x78]
lea rbp, [rbp + rbx*2]
mov r10, rbx
movzx r13d, sil
shl r10, 4
lea esi, [r9 + r9*2]
mov r11d, 1
mov al, byte [0x14016aa90]
xor al, r9b
add r9d, r11d
add byte [rbx + rbp + 0x12], al
mov rax, qword [0x14016aa68]
movzx edx, word [0x14016aa70]
mov r8, qword [0x14016aa48]
mov ecx, dword [r10 + rax + 0xb8]
xor ecx, edx
movsxd rax, esi
or dword [rdi + r8*4 + 0x3c], ecx
add esi, 3
movzx r12d, word [0x14016aa5c]
movzx ecx, byte [rax + r14]
mov eax, 0x1764
sub eax, ecx
or eax, r13d
cdq
idiv dword [0x14016aa8c]
mov dword [0x14016aa8c], eax
mov r8d, eax
cmp r9d, r12d
jne 0x140011afd
mov r11, qword [rsp]
mov r14, qword [rsp + 0x68]
mov r13, qword [rsp + 0x60]
movzx r10d, word [rsp + 0x80]
jmp 0x140011b83
mov r8d, dword [0x14016aa8c]
lea eax, [r8*2 + 0x20]
movsxd rcx, eax
cmp dword [rcx*4 + 0x16bc], 0x51f
je 0x140011baf
movzx eax, word [r11]
movzx ecx, byte [rax + r13 + 0x1e]
cmp cx, word [r15 + 0x196c]
ja 0x140011bd2
mov rcx, qword [rsp + 8]
lea eax, [r8*2 + 0x27]
movsxd rdx, eax
movsxd rax, r8d
mov ecx, dword [rcx + rax*4 - 0x1871]
cmp dword [rdx*4 + 0x16bc], ecx
jl 0x140011c16
movsxd rcx, dword [rdi + 0x45a0]
xor edx, edx
movzx r8d, word [r11]
movzx eax, r12w
or rcx, rax
mov rax, qword [0x14016aa60]
add rax, 0x1e3a
add rax, rcx
movsxd rcx, dword [rdi + r8*4 + 0x58]
div rcx
mov dword [rdi + r8*4 + 0x58], eax
lea rax, [rbx + rbx*2]
mov rcx, qword [rax*8 + 0x16fe]
mov qword [0x14016aa90], rcx
mov eax, 1
add word [r11], ax
movzx ecx, word [r11]
movzx eax, word [r15 + rcx*2]
movzx eax, ax
xor rax, qword [0x14016aaa0]
add rsp, 0x18
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret