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

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x90]
sub rsp, 0x190
mov r13, rcx
cmp byte [rcx + 0x510], 0
je 0x180098bc8
cmp byte [rcx + 0x511], 0
jne 0x1800991c0
lea rax, [rbp - 0x40]
mov qword [rbp + 0xd0], rax
xor ebx, ebx
mov qword [rbp - 8], rbx
lea rax, vtable.std::_Func_impl_no_alloc_class__private:_void___cdecl_UObjectHook::update_persistent_states_void____ptr64::_2::_lambda_1___void___.0
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], r13
lea rax, [rbp - 0x40]
mov qword [rbp - 8], rax
lea rax, [rbp - 0x40]
mov qword [rbp + 0xd8], rax
lea rax, [rbp]
mov qword [rbp + 0xe0], rax
mov qword [rbp + 0x38], rbx
mov rcx, qword [rbp - 8]
test rcx, rcx
je 0x180098c21
mov rax, qword [rbp - 0x40]
lea rdx, [rbp]
call qword [rax]
mov qword [rbp + 0x38], rax
mov rcx, qword [rbp - 8]
test rcx, rcx
je 0x180098c3e
mov rax, qword [rcx]
lea rdx, [rbp - 0x40]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp - 8], rbx
mov rcx, qword [r13 + 0x4b0]
test rcx, rcx
je 0x180098c88
add rcx, 0x28
lea rdx, [rsp + 0x20]
call fcn.1800898f0
mov rax, qword [rsp + 0x20]
test rax, rax
je 0x180098c88
mov qword [r13 + 0x3b0], rax
mov rax, qword [r13 + 0x4b0]
movsd xmm0, qword [rax + 0x40]
movsd qword [r13 + 0x3b8], xmm0
mov eax, dword [rax + 0x48]
mov dword [r13 + 0x3c0], eax
mov rdi, qword [r13 + 0x4c0]
mov r14, qword [r13 + 0x4c8]
cmp rdi, r14
je 0x180098e08
mov r15d, dword [0x1804fbc9c]
mov r12, qword gs:[0x58]
mov ebx, 0x44
mov rcx, qword [rdi]
test rcx, rcx
je 0x180098dfb
add rcx, 0x28
lea rdx, [rbp + 0x50]
call fcn.1800898f0
mov rsi, qword [rbp + 0x50]
test rsi, rsi
je 0x180098dfb
mov ecx, ebx
mov rax, qword [r12 + r15*8]
mov eax, dword [rcx + rax]
cmp dword [0x1804f4b80], eax
jg 0x18009924a
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x180098dfb
mov rdx, qword [0x1804f4b78]
mov r8d, dword [0x1804dc85c]
nop word [rax + rax]
cmp rcx, rdx
je 0x180098d23
mov rcx, qword [r8 + rcx]
test rcx, rcx
jne 0x180098d10
jmp 0x180098dfb
mov rax, qword [rdi]
mov rcx, qword [rax + 0x60]
test rcx, rcx
je 0x180098d72
cmp rsi, rcx
je 0x180098d72
mov qword [rbp + 0xd0], rcx
lea rbx, [r13 + 0x58]
mov qword [rsp + 0x68], rbx
mov byte [rsp + 0x70], 0
mov rcx, rbx
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov byte [rsp + 0x70], 1
lea rcx, [r13 + 0x360]
lea rdx, [rbp + 0xd0]
call fcn.1800827a0
nop
mov rcx, rbx
call sub.KERNEL32.dll_ReleaseSRWLockExclusive
mov r8, rsi
lea rdx, [rsp + 0x58]
mov rcx, r13
call fcn.1800508f0
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x180098dbd
mov rax, qword [rdi]
cmp byte [rcx + 0x28], 0
je 0x180098da7
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x50], xmm1
jmp 0x180098db6
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x10], xmm1
mov rax, qword [rdi]
mov qword [rax + 0x60], rsi
mov rbx, qword [rsp + 0x60]
test rbx, rbx
je 0x180098df6
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x180098df6
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x180098df6
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov ebx, 0x44
add rdi, 0x10
cmp rdi, r14
jne 0x180098cb4
mov rax, qword [r13 + 0x4e0]
cmp qword [r13 + 0x4d8], rax
je 0x180099186
call fcn.18023f300
mov rdi, rax
mov qword [rbp + 0xe0], rax
call fcn.180242470
mov rsi, rax
mov qword [rbp + 0xd8], rax
mov r12, qword [r13 + 0x4d8]
mov rcx, qword [r13 + 0x4e0]
mov qword [rbp + 0xd0], rcx
cmp r12, rcx
je 0x180099186
mov rax, rcx
nop dword [rax + rax]
mov rcx, qword [r12]
test rcx, rcx
je 0x180099179
add rcx, 0x28
lea rdx, [rsp + 0x20]
call fcn.1800898f0
mov r14, qword [rsp + 0x20]
test r14, r14
je 0x180099172
mov rbx, qword [r12]
mov r8, qword [rsp + 0x28]
cmp byte [rbx + 0x58], 0
je 0x180098f55
mov rcx, r8
mov edx, dword [0x1804dc85c]
test r8, r8
je 0x180098ebe
nop word [rax + rax]
cmp rcx, rsi
je 0x180098ee0
mov rcx, qword [rdx + rcx]
test rcx, rcx
jne 0x180098eb0
mov rcx, r8
test r8, r8
je 0x180098f55
nop word [rax + rax]
cmp rcx, rdi
je 0x180098f35
mov rcx, qword [rdx + rcx]
test rcx, rcx
jne 0x180098ed0
jmp 0x180098f55
mov rcx, r14
cmp byte [r13 + 0x510], 0
je 0x180098efd
mov r8b, 1
lea rdx, [rbp + 0x68]
call fcn.180242350
mov dl, 1
jmp 0x180098f45
movzx ebx, byte [rbx + 0x59]
xor r8d, r8d
lea rdx, [rbp + 0x40]
call fcn.180242350
cmp byte [rbp + 0x48], 0
je 0x180098f17
test bl, bl
je 0x180098f24
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.18023ebf0
xor r8d, r8d
lea rdx, [rbp + 0x78]
mov rcx, r14
call fcn.180242230
jmp 0x180098f50
cmp byte [r13 + 0x510], 0
je 0x180098f43
mov dl, 1
jmp 0x180098f45
xor edx, edx
xor r8d, r8d
mov rcx, r14
call fcn.18023ebf0
mov r8, qword [rsp + 0x28]
mov rax, qword [r12]
mov rsi, qword [rax + 0x40]
mov r15, qword [rax + 0x48]
cmp rsi, r15
je 0x18009916b
nop word [rax + rax]
mov rax, qword [rsi]
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180098f80
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x78], rax
lea rdx, [rbp - 0x80]
mov rcx, r8
call fcn.1802384f0
mov rdi, rax
test rax, rax
je 0x180099152
mov ecx, dword [0x1804dc864]
mov rax, qword [rcx + rax]
test rax, rax
je 0x180099152
mov ecx, dword [0x1804f48d4]
add rcx, rax
lea rdx, [rsp + 0x38]
call fcn.18021fc00
nop
lea rax, [rsp + 0x38]
cmp qword [rsp + 0x50], 7
cmova rax, qword [rsp + 0x38]
mov qword [rbp - 0x70], rax
mov rax, qword [rsp + 0x48]
mov qword [rbp - 0x68], rax
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x60]
call fcn.18020d920
nop
mov rcx, rax
cmp qword [rax + 0x18], 0xf
jbe 0x180099004
mov rcx, qword [rax]
movabs rbx, 0xcbf29ce484222325
mov rdx, qword [rax + 0x10]
add rdx, rcx
cmp rcx, rdx
je 0x180099048
movabs r14, 0x100000001b3
nop dword [rax]
nop dword [rax + rax]
movsx rax, byte [rcx]
xor rbx, rax
imul rbx, r14
inc rcx
cmp rcx, rdx
jne 0x180099030
mov r14, qword [rsp + 0x20]
mov rdx, qword [rbp - 0x48]
cmp rdx, 0xf
jbe 0x180099083
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18009907e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009923e
call fcn.18027ee90
xor eax, eax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], 0xf
mov byte [rbp - 0x60], al
movabs rax, 0x4769ea4ae78e66cb
cmp rbx, rax
je 0x1800990e7
movabs rax, 0x4b1b2d85250bcc80
cmp rbx, rax
je 0x1800991f5
movabs rax, 0x561bbcf554ac3791
cmp rbx, rax
je 0x1800991db
movabs rax, 0x565b52d0a908345d
cmp rbx, rax
je 0x1800990e7
movabs rax, 0xbff301ad16684c48
cmp rbx, rax
jne 0x1800990fb
mov eax, dword [0x1804f48d8]
movsxd rdx, dword [rax + rdi]
mov rcx, qword [rsi]
mov eax, dword [rcx + 0x20]
mov dword [rdx + r14], eax
mov rdx, qword [rsp + 0x50]
cmp rdx, 7
jbe 0x18009913d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180099138
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180099244
call fcn.18027ee90
xor eax, eax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 7
mov word [rsp + 0x38], ax
add rsi, 0x10
cmp rsi, r15
mov r8, qword [rsp + 0x28]
jne 0x180098f70
mov rdi, qword [rbp + 0xe0]
mov rsi, qword [rbp + 0xd8]
mov rax, qword [rbp + 0xd0]
add r12, 0x10
cmp r12, rax
jne 0x180098e60
mov rcx, qword [rbp + 0x38]
test rcx, rcx
je 0x180099196
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
lea rax, [rbp]
mov qword [rbp + 0xd0], rax
mov rcx, qword [rbp + 0x38]
test rcx, rcx
je 0x1800991c0
mov rax, qword [rcx]
lea rdx, [rbp]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
xor eax, eax
mov qword [rbp + 0x38], rax
mov rbx, qword [rsp + 0x1e8]
add rsp, 0x190
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov eax, dword [0x1804f48d8]
mov rcx, qword [rsi]
movsxd rdx, dword [rax + rdi]
mov rax, qword [rcx + 0x20]
mov qword [rdx + r14], rax
jmp 0x1800990fb
mov rax, qword [rsi]
movzx ecx, byte [rax + 0x20]
mov eax, dword [0x1804f48d8]
movsxd r8, dword [rax + rdi]
add r8, r14
mov eax, dword [0x1804f4af8]
movzx r10d, byte [rax + rdi]
mov r9d, dword [0x1804f4afc]
test cl, cl
je 0x180099226
movzx edx, byte [r9 + rdi]
jmp 0x180099228
xor dl, dl
movzx ecx, byte [r9 + rdi]
not cl
and cl, byte [r10 + r8]
or cl, dl
mov byte [r10 + r8], cl
jmp 0x1800990fb
call fcn.1802a2050
nop
call fcn.1802a2050
int3
lea rcx, [0x1804f4b80]
call fcn.18027f2e4
cmp dword [0x1804f4b80], 0xffffffff
jne 0x180098cef
call fcn.18023f300
mov qword [0x1804f4b78], rax
lea rcx, [0x1804f4b80]
call fcn.18027f278
jmp 0x180098cef