Function at 0x180099a80
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 0x180099ab8
cmp byte [rcx + 0x511], 0
jne 0x18009a0b0
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 0x180099b11
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 0x180099b2e
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 0x180099b78
add rcx, 0x28
lea rdx, [rsp + 0x20]
call fcn.18008a7e0
mov rax, qword [rsp + 0x20]
test rax, rax
je 0x180099b78
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 0x180099cf8
mov r15d, dword [0x1804e1ddc]
mov r12, qword gs:[0x58]
mov ebx, 0x44
mov rcx, qword [rdi]
test rcx, rcx
je 0x180099ceb
add rcx, 0x28
lea rdx, [rbp + 0x50]
call fcn.18008a7e0
mov rsi, qword [rbp + 0x50]
test rsi, rsi
je 0x180099ceb
mov ecx, ebx
mov rax, qword [r12 + r15*8]
mov eax, dword [rcx + rax]
cmp dword [0x1804dabb0], eax
jg 0x18009a13a
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x180099ceb
mov rdx, qword [0x1804daba8]
mov r8d, dword [0x1804c3864]
nop word [rax + rax]
cmp rcx, rdx
je 0x180099c13
mov rcx, qword [r8 + rcx]
test rcx, rcx
jne 0x180099c00
jmp 0x180099ceb
mov rax, qword [rdi]
mov rcx, qword [rax + 0x60]
test rcx, rcx
je 0x180099c62
cmp rsi, rcx
je 0x180099c62
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.180083690
nop
mov rcx, rbx
call sub.KERNEL32.dll_ReleaseSRWLockExclusive
mov r8, rsi
lea rdx, [rsp + 0x58]
mov rcx, r13
call fcn.1800518c0
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x180099cad
mov rax, qword [rdi]
cmp byte [rcx + 0x28], 0
je 0x180099c97
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x50], xmm1
jmp 0x180099ca6
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 0x180099ce6
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x180099ce6
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x180099ce6
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov ebx, 0x44
add rdi, 0x10
cmp rdi, r14
jne 0x180099ba4
mov rax, qword [r13 + 0x4e0]
cmp qword [r13 + 0x4d8], rax
je 0x18009a076
call fcn.1802466e0
mov rdi, rax
mov qword [rbp + 0xe0], rax
call fcn.180249850
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 0x18009a076
mov rax, rcx
nop dword [rax + rax]
mov rcx, qword [r12]
test rcx, rcx
je 0x18009a069
add rcx, 0x28
lea rdx, [rsp + 0x20]
call fcn.18008a7e0
mov r14, qword [rsp + 0x20]
test r14, r14
je 0x18009a062
mov rbx, qword [r12]
mov r8, qword [rsp + 0x28]
cmp byte [rbx + 0x58], 0
je 0x180099e45
mov rcx, r8
mov edx, dword [0x1804c3864]
test r8, r8
je 0x180099dae
nop word [rax + rax]
cmp rcx, rsi
je 0x180099dd0
mov rcx, qword [rdx + rcx]
test rcx, rcx
jne 0x180099da0
mov rcx, r8
test r8, r8
je 0x180099e45
nop word [rax + rax]
cmp rcx, rdi
je 0x180099e25
mov rcx, qword [rdx + rcx]
test rcx, rcx
jne 0x180099dc0
jmp 0x180099e45
mov rcx, r14
cmp byte [r13 + 0x510], 0
je 0x180099ded
mov r8b, 1
lea rdx, [rbp + 0x68]
call fcn.180249730
mov dl, 1
jmp 0x180099e35
movzx ebx, byte [rbx + 0x59]
xor r8d, r8d
lea rdx, [rbp + 0x40]
call fcn.180249730
cmp byte [rbp + 0x48], 0
je 0x180099e07
test bl, bl
je 0x180099e14
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.180245fd0
xor r8d, r8d
lea rdx, [rbp + 0x78]
mov rcx, r14
call fcn.180249610
jmp 0x180099e40
cmp byte [r13 + 0x510], 0
je 0x180099e33
mov dl, 1
jmp 0x180099e35
xor edx, edx
xor r8d, r8d
mov rcx, r14
call fcn.180245fd0
mov r8, qword [rsp + 0x28]
mov rax, qword [r12]
mov rsi, qword [rax + 0x40]
mov r15, qword [rax + 0x48]
cmp rsi, r15
je 0x18009a05b
nop word [rax + rax]
mov rax, qword [rsi]
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180099e70
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.18023f8d0
mov rdi, rax
test rax, rax
je 0x18009a042
mov ecx, dword [0x1804c386c]
mov rax, qword [rcx + rax]
test rax, rax
je 0x18009a042
mov ecx, dword [0x1804da904]
add rcx, rax
lea rdx, [rsp + 0x38]
call fcn.180227150
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.180211eb0
nop
mov rcx, rax
cmp qword [rax + 0x18], 0xf
jbe 0x180099ef4
mov rcx, qword [rax]
movabs rbx, 0xcbf29ce484222325
mov rdx, qword [rax + 0x10]
add rdx, rcx
cmp rcx, rdx
je 0x180099f38
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 0x180099f20
mov r14, qword [rsp + 0x20]
mov rdx, qword [rbp - 0x48]
cmp rdx, 0xf
jbe 0x180099f73
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180099f6e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009a12e
call fcn.180286270
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 0x180099fd7
movabs rax, 0x4b1b2d85250bcc80
cmp rbx, rax
je 0x18009a0e5
movabs rax, 0x561bbcf554ac3791
cmp rbx, rax
je 0x18009a0cb
movabs rax, 0x565b52d0a908345d
cmp rbx, rax
je 0x180099fd7
movabs rax, 0xbff301ad16684c48
cmp rbx, rax
jne 0x180099feb
mov eax, dword [0x1804da908]
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 0x18009a02d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18009a028
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009a134
call fcn.180286270
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 0x180099e60
mov rdi, qword [rbp + 0xe0]
mov rsi, qword [rbp + 0xd8]
mov rax, qword [rbp + 0xd0]
add r12, 0x10
cmp r12, rax
jne 0x180099d50
mov rcx, qword [rbp + 0x38]
test rcx, rcx
je 0x18009a086
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 0x18009a0b0
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 [0x1804da908]
mov rcx, qword [rsi]
movsxd rdx, dword [rax + rdi]
mov rax, qword [rcx + 0x20]
mov qword [rdx + r14], rax
jmp 0x180099feb
mov rax, qword [rsi]
movzx ecx, byte [rax + 0x20]
mov eax, dword [0x1804da908]
movsxd r8, dword [rax + rdi]
add r8, r14
mov eax, dword [0x1804dab28]
movzx r10d, byte [rax + rdi]
mov r9d, dword [0x1804dab2c]
test cl, cl
je 0x18009a116
movzx edx, byte [r9 + rdi]
jmp 0x18009a118
xor dl, dl
movzx ecx, byte [r9 + rdi]
not cl
and cl, byte [r10 + r8]
or cl, dl
mov byte [r10 + r8], cl
jmp 0x180099feb
call fcn.18028ddc0
nop
call fcn.18028ddc0
int3
lea rcx, [0x1804dabb0]
call fcn.1802866bc
cmp dword [0x1804dabb0], 0xffffffff
jne 0x180099bdf
call fcn.1802466e0
mov qword [0x1804daba8], rax
lea rcx, [0x1804dabb0]
call fcn.180286650
jmp 0x180099bdf