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

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x28]
sub rsp, 0x128
mov r13, rcx
cmp byte [rcx + 0x500], 0
je 0x180088416
cmp byte [rcx + 0x501], 0
jne 0x18008893e
lea rax, [rbp - 0x60]
mov qword [rbp + 0x78], rax
xor ebx, ebx
mov qword [rbp - 0x28], 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 - 0x60], rax
mov qword [rbp - 0x58], r13
lea rax, [rbp - 0x60]
mov qword [rbp - 0x28], rax
lea rax, [rbp - 0x60]
mov qword [rbp + 0x80], rax
lea rax, [rbp - 0x20]
mov qword [rbp + 0x88], rax
mov qword [rbp + 0x18], rbx
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x18008846c
mov rax, qword [rbp - 0x60]
lea rdx, [rbp - 0x20]
call qword [rax]
mov qword [rbp + 0x18], rax
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x180088489
mov rax, qword [rcx]
lea rdx, [rbp - 0x60]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp - 0x28], rbx
mov rcx, qword [r13 + 0x4a0]
test rcx, rcx
je 0x1800884c9
add rcx, 0x28
call fcn.18007a100
test rax, rax
je 0x1800884c9
mov qword [r13 + 0x3a0], rax
mov rax, qword [r13 + 0x4a0]
movsd xmm0, qword [rax + 0x40]
movsd qword [r13 + 0x3a8], xmm0
mov eax, dword [rax + 0x48]
mov dword [r13 + 0x3b0], eax
mov rdi, qword [r13 + 0x4b0]
mov r14, qword [r13 + 0x4b8]
cmp rdi, r14
je 0x180088649
mov r15d, dword [0x1804deea8]
mov r12, qword gs:[0x58]
mov ebx, 0x44
nop word [rax + rax]
mov rcx, qword [rdi]
test rcx, rcx
je 0x18008863c
add rcx, 0x28
call fcn.18007a100
mov rsi, rax
test rax, rax
je 0x18008863c
mov edx, ebx
mov rcx, qword [r12 + r15*8]
mov ecx, dword [rdx + rcx]
cmp dword [0x1804d7f60], ecx
jg 0x1800889c1
mov eax, dword [0x1804c0678]
mov rcx, qword [rax + rsi]
test rcx, rcx
je 0x18008863c
mov rdx, qword [0x1804d7f58]
mov r8d, dword [0x1804c0680]
cmp rcx, rdx
je 0x18008856a
mov rcx, qword [r8 + rcx]
test rcx, rcx
jne 0x180088557
jmp 0x18008863c
mov rax, qword [rdi]
mov rcx, qword [rax + 0x60]
test rcx, rcx
je 0x1800885b3
cmp rcx, rsi
je 0x1800885b3
mov qword [rbp + 0x78], rcx
lea rbx, [r13 + 0x48]
mov qword [rsp + 0x50], rbx
mov byte [rsp + 0x58], 0
mov rcx, rbx
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov byte [rsp + 0x58], 1
lea rcx, [r13 + 0x350]
lea rdx, [rbp + 0x78]
call fcn.180072c90
nop
mov rcx, rbx
call sub.KERNEL32.dll_ReleaseSRWLockExclusive
mov r8, rsi
lea rdx, [rsp + 0x40]
mov rcx, r13
call fcn.180075810
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x1800885fe
mov rax, qword [rdi]
cmp byte [rcx + 0x28], 0
je 0x1800885e8
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x50], xmm1
jmp 0x1800885f7
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 + 0x48]
test rbx, rbx
je 0x180088637
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x180088637
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x180088637
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov ebx, 0x44
add rdi, 0x10
cmp rdi, r14
jne 0x180088500
mov rax, qword [r13 + 0x4d0]
cmp qword [r13 + 0x4c8], rax
je 0x180088907
call fcn.18022c1c0
mov rbx, rax
mov qword [rbp + 0x80], rax
mov r15, qword [r13 + 0x4c8]
mov rcx, qword [r13 + 0x4d0]
mov qword [rbp + 0x78], rcx
cmp r15, rcx
je 0x180088907
mov rax, rcx
nop word [rax + rax]
mov rcx, qword [r15]
test rcx, rcx
je 0x1800888fa
add rcx, 0x28
call fcn.18007a100
mov r14, rax
test rax, rax
je 0x1800888f6
mov rcx, qword [r15]
cmp byte [rcx + 0x58], 0
je 0x1800886e3
mov rdx, rbx
mov rcx, rax
call fcn.18020f1e0
test al, al
je 0x1800886e3
xor r8d, r8d
mov rcx, r14
cmp byte [r13 + 0x500], r8b
je 0x1800886dc
mov dl, 1
jmp 0x1800886de
xor edx, edx
call fcn.18022bab0
mov rax, qword [r15]
mov rsi, qword [rax + 0x40]
mov r12, qword [rax + 0x48]
cmp rsi, r12
je 0x1800888f6
nop word [rax + rax]
mov eax, dword [0x1804c0678]
mov rcx, qword [rax + r14]
mov rax, qword [rsi]
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x18008871a
mov rdx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x68], rax
lea rdx, [rsp + 0x60]
call fcn.18021eec0
mov rdi, rax
test rax, rax
je 0x1800888e2
mov ecx, dword [0x1804c06a4]
mov rax, qword [rcx + rax]
test rax, rax
je 0x1800888e2
mov ecx, dword [0x1804d7e4c]
add rcx, rax
lea rdx, [rsp + 0x20]
call fcn.180227d80
nop
lea rax, [rsp + 0x20]
cmp qword [rsp + 0x38], 8
cmovae rax, qword [rsp + 0x20]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x78], rax
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x80]
call fcn.180200970
nop
mov rcx, rax
cmp qword [rax + 0x18], 0x10
jb 0x1800887a1
mov rcx, qword [rax]
movabs rbx, 0xcbf29ce484222325
mov rdx, qword [rax + 0x10]
add rdx, rcx
cmp rcx, rdx
je 0x1800887d8
movabs r13, 0x100000001b3
movsx rax, byte [rcx]
xor rbx, rax
imul rbx, r13
inc rcx
cmp rcx, rdx
jne 0x1800887c1
mov r13, qword [rbp + 0x70]
mov rdx, qword [rbp - 0x68]
cmp rdx, 0x10
jb 0x180088813
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008880e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800889b5
call fcn.18026a1a0
xor eax, eax
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], 0xf
mov byte [rbp - 0x80], al
movabs rax, 0x4769ea4ae78e66cb
cmp rbx, rax
je 0x180088877
movabs rax, 0x4b1b2d85250bcc80
cmp rbx, rax
je 0x18008896c
movabs rax, 0x561bbcf554ac3791
cmp rbx, rax
je 0x180088952
movabs rax, 0x565b52d0a908345d
cmp rbx, rax
je 0x180088877
movabs rax, 0xbff301ad16684c48
cmp rbx, rax
jne 0x18008888b
mov eax, dword [0x1804d7cd4]
movsxd rdx, dword [rax + rdi]
mov rcx, qword [rsi]
mov eax, dword [rcx + 0x20]
mov dword [rdx + r14], eax
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x1800888cd
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800888c8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800889bb
call fcn.18026a1a0
xor eax, eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 7
mov word [rsp + 0x20], ax
add rsi, 0x10
cmp rsi, r12
jne 0x180088700
mov rbx, qword [rbp + 0x80]
mov rax, qword [rbp + 0x78]
add r15, 0x10
cmp r15, rax
jne 0x180088690
mov rcx, qword [rbp + 0x18]
test rcx, rcx
je 0x180088917
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
lea rax, [rbp - 0x20]
mov qword [rbp + 0x70], rax
mov rcx, qword [rbp + 0x18]
test rcx, rcx
je 0x18008893e
mov rax, qword [rcx]
lea rdx, [rbp - 0x20]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
xor eax, eax
mov qword [rbp + 0x18], rax
add rsp, 0x128
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov eax, dword [0x1804d7cd4]
mov rcx, qword [rsi]
movsxd rdx, dword [rax + rdi]
mov rax, qword [rcx + 0x20]
mov qword [rdx + r14], rax
jmp 0x18008888b
mov rax, qword [rsi]
movzx ecx, byte [rax + 0x20]
mov eax, dword [0x1804d7cd4]
movsxd r8, dword [rax + rdi]
add r8, r14
mov eax, dword [0x1804d7ed8]
movzx r10d, byte [rax + rdi]
mov r9d, dword [0x1804d7edc]
test cl, cl
je 0x18008899d
movzx edx, byte [r9 + rdi]
jmp 0x18008899f
xor dl, dl
movzx ecx, byte [r9 + rdi]
not cl
and cl, byte [r10 + r8]
or cl, dl
mov byte [r10 + r8], cl
jmp 0x18008888b
call fcn.18028cdc8
nop
call fcn.18028cdc8
int3
lea rcx, [0x1804d7f60]
call fcn.18026a604
cmp dword [0x1804d7f60], 0xffffffff
jne 0x180088536
call fcn.18022c1c0
mov qword [0x1804d7f58], rax
lea rcx, [0x1804d7f60]
call fcn.18026a598
jmp 0x180088536