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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
mov qword [rsp + 8], rcx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
vmovaps xmmword [rsp + 0x50], xmm6
mov rbp, r9
mov r12d, r8d
mov r13, rdx
cmp byte [0x180272e41], 0
je 0x18016f5ba
mov ecx, dword [0x180265dfc]
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
mov eax, dword [rdx + rax]
cmp dword [0x180278d50], eax
jle 0x18016f3e7
lea rcx, [0x180278d50]
call fcn.1801b3c6c
cmp dword [0x180278d50], 0xffffffff
jne 0x18016f3e7
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 0xf
mov ecx, 0x30
call fcn.1801b3ce4
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x40], 0x20
mov qword [rsp + 0x48], 0x2f
vmovups ymm0, ymmword [str.CBaseAnimating_InternalDrawModel]
vmovups ymmword [rax], ymm0
mov byte [rax + 0x20], 0
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x20]
vzeroupper
call fcn.1800eb590
mov rcx, qword [rax]
mov rax, qword [rcx + 0x30]
mov qword [0x180278d80], rax
mov rdx, qword [rsp + 0x48]
cmp rdx, 0xf
jbe 0x18016f3db
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18016f3d5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18016f3d5
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1801b3bbc
nop
lea rcx, [0x180278d50]
call fcn.1801b3c00
mov rcx, qword [0x180267708]
mov rax, qword [rcx]
call qword [rax + 0x320]
mov r15, rax
cmp qword [0x180278d80], 0
je 0x18016f5ba
test rax, rax
je 0x18016f5ba
mov rbx, qword [0x180272ed8]
cmp rbx, qword [0x180272ee0]
je 0x18016f567
lea r14, [rbx + 0x20]
nop dword [rax]
mov rdx, rbx
cmp qword [r14 - 8], 0xf
jbe 0x18016f43d
mov rdx, qword [rbx]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
nop word [rax + rax]
inc rcx
cmp byte [rdx + rcx], 0
jne 0x18016f450
xor r8d, r8d
test rcx, rcx
je 0x18016f478
movsx eax, byte [r8 + rdx]
xor eax, r9d
imul r9d, eax, 0x1000193
inc r8
cmp r8, rcx
jb 0x18016f461
mov edx, r9d
call fcn.180180700
mov rdi, rax
xor sil, sil
test rax, rax
je 0x18016f4d3
mov rcx, qword [rax]
mov r10, qword [rcx + 0x58]
xor r9d, r9d
lea r8, [rsp + 0x90]
lea rdx, str._invertcull
mov rcx, rax
call r10
cmp byte [rsp + 0x90], sil
je 0x18016f4d3
test rax, rax
je 0x18016f4d3
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0xd0]
movzx esi, sil
test eax, eax
mov eax, 1
cmovne esi, eax
mov r8d, dword [r14]
mov rdx, rdi
call fcn.180180580
mov rcx, qword [0x180267760]
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, rdi
call qword [rax + 8]
test sil, sil
je 0x18016f53c
mov rax, qword [r15]
xor edx, edx
cmp byte [0x180267d60], dl
sete dl
mov rcx, r15
call qword [rax + 0x140]
mov rax, qword [0x180278d80]
mov r8, qword [rax]
mov edx, r12d
mov rcx, r13
call r8
mov dword [rbp], eax
mov rax, qword [r15]
xor edx, edx
cmp byte [0x180267d60], dl
setne dl
mov rcx, r15
call qword [rax + 0x140]
jmp 0x18016f552
mov rax, qword [0x180278d80]
mov r8, qword [rax]
mov edx, r12d
mov rcx, r13
call r8
mov dword [rbp], eax
add rbx, 0x28
add r14, 0x28
cmp rbx, qword [0x180272ee0]
jne 0x18016f430
mov rcx, qword [0x1802676d8]
vmovss xmm6, dword [0x18023bc20]
vmovss dword [rsp + 0x20], xmm6
vmovss dword [rsp + 0x24], xmm6
vmovss dword [rsp + 0x28], xmm6
mov rax, qword [rcx]
lea rdx, [rsp + 0x20]
call qword [rax + 0x30]
mov rcx, qword [0x1802676d8]
mov rax, qword [rcx]
vmovaps xmm1, xmm6
call qword [rax + 0x20]
mov rcx, qword [0x180267760]
mov rax, qword [rcx]
xor r8d, r8d
xor edx, edx
call qword [rax + 8]
mov al, 1
jmp 0x18016f5bc
xor al, al
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
vmovaps xmm6, xmmword [rsp + 0x50]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret