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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r14
push r15
sub rsp, 0x50
xor edi, edi
mov r14d, 4
mov r15, r8
mov rsi, rdx
test rdx, rdx
je 0x180180284
cmp dword [0x18025f0a4], edi
je 0x180180284
cmp byte [0x180257964], dil
jne 0x1801801e3
cmp byte [0x180257d5c], dil
je 0x180180284
mov edx, dword [0x180255e0c]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
mov ecx, dword [r14 + rax]
cmp dword [0x180268b24], ecx
jle 0x180180231
lea rcx, [0x180268b24]
call fcn.1801a548c
cmp dword [0x180268b24], 0xffffffff
jne 0x180180231
mov rax, qword [0x180252e88]
lea rcx, [0x180268b24]
mov qword [0x180268ab8], rax
call fcn.1801a5420
mov rax, qword [rsi]
mov rcx, rsi
mov rbx, qword [0x180268ab8]
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x38], edi
call qword [rax + 0x48]
mov r9d, 0x1b59
mov qword [rsp + 0x20], rdi
lea r8, [rsp + 0x30]
mov rcx, rsi
lea rdx, [rsp + 0x40]
movss xmm0, dword [rax]
movss dword [rsp + 0x40], xmm0
movss xmm1, dword [rax + 4]
movss dword [rsp + 0x44], xmm1
movss xmm0, dword [rax + 8]
movss dword [rsp + 0x48], xmm0
call rbx
cmp qword [0x18025ee48], 0xf
lea r9, [0x18025ee30]
mov ebx, 0x811c9dc5
mov rcx, 0xffffffffffffffff
cmova r9, qword [0x18025ee30]
mov esi, ebx
mov rdx, rcx
nop dword [rax]
inc rdx
cmp byte [r9 + rdx], dil
jne 0x1801802b0
mov r8, rdi
test rdx, rdx
je 0x1801802e5
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [r9 + r8]
inc r8
xor eax, esi
imul esi, eax, 0x1000193
cmp r8, rdx
jb 0x1801802d0
cmp qword [0x18025f158], 0xf
lea rdx, [0x18025f140]
cmova rdx, qword [0x18025f140]
nop dword [rax]
inc rcx
cmp byte [rdx + rcx], dil
jne 0x180180300
test rcx, rcx
je 0x180180324
nop
movsx eax, byte [rdx + rdi]
inc rdi
xor eax, ebx
imul ebx, eax, 0x1000193
cmp rdi, rcx
jb 0x180180310
cmp dword [0x180257e38], esi
jne 0x180180338
cmp dword [0x180257e28], ebx
je 0x180180449
test r15, r15
je 0x18018043d
mov rax, qword [r15]
mov rcx, r15
mov rdx, qword [rax + 0xbe8]
call rdx
cmp eax, 0x32
jne 0x18018043d
mov rax, qword gs:[0x58]
mov ecx, dword [0x180255e0c]
mov edi, r14d
mov r14, qword [rax + rcx*8]
mov eax, dword [r14 + rdi]
cmp dword [0x180268b00], eax
jle 0x1801803aa
lea rcx, [0x180268b00]
call fcn.1801a548c
cmp dword [0x180268b00], 0xffffffff
jne 0x1801803aa
mov rax, qword [0x180252f00]
lea rcx, [0x180268b00]
mov qword [0x180268af0], rax
call fcn.1801a5420
mov rcx, r15
call qword [0x180268af0]
mov eax, dword [r14 + rdi]
cmp dword [0x180268afc], eax
jle 0x1801803ee
lea rcx, [0x180268afc]
call fcn.1801a548c
cmp dword [0x180268afc], 0xffffffff
jne 0x1801803ee
mov rax, qword [0x180252ed8]
lea rcx, [0x180268afc]
mov qword [0x180268b18], rax
call fcn.1801a5420
mov rcx, r15
call qword [0x180268b18]
mov eax, dword [r14 + rdi]
cmp dword [0x180268b50], eax
jle 0x180180432
lea rcx, [0x180268b50]
call fcn.1801a548c
cmp dword [0x180268b50], 0xffffffff
jne 0x180180432
mov rax, qword [0x180252ed8]
lea rcx, [0x180268b50]
mov qword [0x180268b38], rax
call fcn.1801a5420
xor edx, edx
mov rcx, r15
call qword [0x180268b38]
mov dword [0x180257e38], esi
mov dword [0x180257e28], ebx
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x70]
mov r14, qword [rsp + 0x78]
add rsp, 0x50
pop r15
ret