Function at 0x14009c178
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov qword [rbp - 0x50], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
mov rax, qword [0x1405420e0]
xor rax, rsp
mov qword [rbp - 8], rax
mov qword [rbp - 0x58], r8
mov r14, rdx
mov r13, rcx
lea rdx, [rcx + 0x28]
mov edi, 1
mov r8b, dil
lea rcx, [rbp - 0x48]
call fcn.14006d604
lea r9, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae r9, qword [rbp - 0x48]
movabs rdx, 0xcbf29ce484222325
mov rcx, r9
mov r11, qword [rbp - 0x38]
lea r8, [r11 + r11]
lea rax, [r8 + r9]
xor esi, esi
cmp r9, rax
cmova r8, rsi
test r8, r8
je 0x14009c220
movzx eax, byte [rcx]
xor rdx, rax
movabs r10, 0x100000001b3
imul rdx, r10
add rcx, rdi
mov rax, rcx
sub rax, r9
cmp rax, r8
jne 0x14009c1fe
and rdx, qword [0x1405494d0]
add rdx, rdx
mov rcx, qword [0x1405494b8]
mov rax, qword [rcx + rdx*8]
mov r10, qword [0x1405494a8]
cmp qword [rcx + rdx*8], r10
jne 0x14009c247
mov rcx, r10
jmp 0x14009c24f
mov rcx, qword [rcx + rdx*8 + 8]
mov rcx, qword [rcx]
cmp rax, rcx
je 0x14009c329
lea r8, [rax + 0x10]
lea rcx, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae rcx, qword [rbp - 0x48]
mov r9, r8
mov rbx, qword [r8 + 0x18]
mov qword [rbp - 0x60], rbx
cmp rbx, 8
jb 0x14009c27e
mov r9, qword [r8]
mov r15, qword [r8 + 0x10]
cmp r15, r11
jne 0x14009c2bf
mov r12, r15
test r15, r15
je 0x14009c2d2
movzx r8d, word [r9]
movzx ebx, word [rcx]
cmp r8w, bx
jb 0x14009c2bf
sub r9, rcx
cmp r8w, bx
ja 0x14009c2bf
cmp r12, rdi
je 0x14009c2ce
sub r12, rdi
add rcx, 2
movzx r8d, word [rcx + r9]
movzx ebx, word [rcx]
cmp r8w, bx
jae 0x14009c2a3
mov rax, qword [rax]
mov rcx, qword [0x1405494b8]
jmp 0x14009c23c
mov rbx, qword [rbp - 0x60]
lea rcx, [rax + 0x10]
cmp rbx, 8
jb 0x14009c2df
mov rcx, qword [rcx]
lea rdx, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae rdx, qword [rbp - 0x48]
cmp r11, r15
jne 0x14009c329
test r11, r11
je 0x14009c32c
movzx r8d, word [rdx]
movzx r9d, word [rcx]
cmp r8w, r9w
jb 0x14009c329
sub rdx, rcx
cmp r8w, r9w
ja 0x14009c329
cmp r11, rdi
je 0x14009c32c
sub r11, rdi
add rcx, 2
movzx r8d, word [rcx + rdx]
movzx r9d, word [rcx]
cmp r8w, r9w
jae 0x14009c30c
mov rax, r10
cmp rax, r10
jne 0x14009c339
mov r15b, dil
mov ebx, dword [rbp - 0x60]
jmp 0x14009c33f
mov ebx, dword [rax + 0x30]
mov r15b, sil
lea rcx, [rbp - 0x48]
call fcn.140055f70
test r15b, r15b
je 0x14009c354
xor al, al
jmp 0x14009c478
mov r12, qword [rbp - 0x58]
mov r9, r12
xor r8d, r8d
lea rdx, [rbp - 0x28]
mov rcx, r13
call fcn.14009c090
nop
test ebx, ebx
je 0x14009c457
sub ebx, 1
je 0x14009c449
sub ebx, 1
je 0x14009c3d0
sub ebx, 1
je 0x14009c3bc
sub ebx, 1
je 0x14009c3ab
cmp ebx, 1
je 0x14009c39a
call fcn.140329e68
jmp 0x14009c46c
lea rdx, [rbp - 0x28]
mov rcx, r14
call fcn.14024a1f8
jmp 0x14009c466
lea rdx, [rbp - 0x28]
mov rcx, r14
call fcn.140235758
jmp 0x14009c466
xor r9d, r9d
lea rdx, [rbp - 0x28]
mov rcx, r14
call fcn.1402356f8
jmp 0x14009c466
xor r8d, r8d
lea rdx, [rbp - 0x28]
mov rcx, r14
call fcn.140235678
test al, al
jne 0x14009c469
mov rbx, rdi
mov rax, qword [r13 + 0x50]
sub rax, qword [r13 + 0x48]
sar rax, 5
cmp rdi, rax
jae 0x14009c43d
mov r9, r12
mov r8, rbx
lea rdx, [rbp - 0x48]
mov rcx, r13
call fcn.14009c090
xor r8d, r8d
lea rdx, [rbp - 0x48]
mov rcx, r14
call fcn.140235678
lea rcx, [rbp - 0x48]
test al, al
jne 0x14009c442
call fcn.140055f70
add rbx, rdi
mov rax, qword [r13 + 0x50]
sub rax, qword [r13 + 0x48]
sar rax, 5
cmp rbx, rax
jb 0x14009c3fb
mov dil, sil
jmp 0x14009c469
call fcn.140055f70
jmp 0x14009c469
lea rdx, [rbp - 0x28]
mov rcx, r14
call fcn.1402357b4
jmp 0x14009c466
xor r8d, r8d
lea rdx, [rbp - 0x28]
mov rcx, r14
call fcn.140235678
mov dil, al
mov sil, dil
lea rcx, [rbp - 0x28]
call fcn.140055f70
mov al, sil
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.140356560
mov rbx, qword [rsp + 0xd8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret