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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x38]
sub rsp, 0x138
movaps xmmword [rsp + 0x120], xmm6
xor r15d, r15d
mov dword [rbp + 0x80], r15d
mov rax, qword [rdx]
mov rbx, qword [rax + 8]
mov qword [rbp + 0x98], rbx
test rbx, rbx
je 0x140088aed
lock inc dword [rbx + 8]
mov rbx, qword [rax + 8]
mov qword [rbp + 0x98], rbx
mov rdx, qword [rax]
mov qword [rbp + 0x90], rdx
mov qword [rbp - 0x80], rdx
mov qword [rbp - 0x78], rbx
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rbp + 0x10], xmm0
mov rdi, r15
mov qword [rbp + 0x88], r15
mov r13, qword [rcx]
mov rax, qword [rcx + 8]
mov qword [rsp + 0x70], rax
mov r12d, 0xffffffff
cmp r13, rax
je 0x140088ef5
lea rdi, [0x1404ff520]
nop dword [rax]
nop dword [rax + rax]
cmp qword [0x140527cb0], 0
je 0x14008916f
mov rax, qword [0x140527cb8]
test rax, rax
je 0x140088b5e
lock inc dword [rax + 8]
movups xmm0, xmmword [0x140527cb0]
movups xmmword [rbp], xmm0
or dword [rbp + 0x80], 1
mov r15, qword [0x140527cb0]
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x30], xmm0
lea rsi, [r15 + 0x40]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockShared]
nop dword [rax + rax]
mov qword [rbp - 0x50], rsi
mov r8, r13
lea rdx, [rbp - 0x20]
mov rcx, r15
call fcn.140089d70
mov r14, qword [rax]
mov qword [rbp - 0x70], r14
mov rdi, qword [rax + 8]
mov qword [rbp - 0x68], rdi
xor ecx, ecx
mov qword [rax], rcx
mov qword [rax + 8], rcx
movaps xmm6, xmmword [rbp - 0x70]
movdqa xmmword [rbp - 0x30], xmm6
mov rbx, qword [rbp - 0x18]
test rbx, rbx
je 0x140088be0
mov eax, r12d
lock xadd dword [rbx + 8], eax
cmp eax, 1
je 0x140089000
test rsi, rsi
je 0x140088bf5
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
nop dword [rax + rax]
nop
test r14, r14
je 0x140088f3d
test rdi, rdi
jne 0x140088fee
movdqa xmmword [rsp + 0x40], xmm6
lea rax, [rsp + 0x40]
or dword [rbp + 0x80], 2
mov rsi, qword [rax + 8]
xor r15d, r15d
mov qword [rax], r15
mov qword [rax + 8], r15
mov eax, dword [rbp + 0x80]
or eax, 8
mov dword [rbp + 0x80], eax
test al, 4
jne 0x140089151
mov eax, dword [rbp + 0x80]
test al, 2
je 0x140088c6a
and dword [rbp + 0x80], 0xfffffffd
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140088c6a
mov eax, r12d
lock xadd dword [rcx + 8], eax
cmp eax, 1
je 0x1400890db
test rdi, rdi
je 0x140088c80
mov eax, r12d
lock xadd dword [rdi + 8], eax
cmp eax, 1
je 0x140089049
test r14, r14
je 0x140088f2a
mov r8, qword [r14 + 0x40]
movzx edx, r8b
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movabs r14, 0x100000001b3
imul rdx, r14
mov rax, r8
shr rax, 8
movzx ecx, al
xor rdx, rcx
imul rdx, r14
mov rax, r8
shr rax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r14
mov rax, r8
shr rax, 0x18
movzx ecx, al
xor rdx, rcx
imul rdx, r14
mov rax, r8
shr rax, 0x20
movzx ecx, al
xor rdx, rcx
imul rdx, r14
mov rax, r8
shr rax, 0x28
movzx ecx, al
xor rdx, rcx
imul rdx, r14
mov rax, r8
shr rax, 0x30
movzx ecx, al
xor rdx, rcx
imul rdx, r14
mov rax, r8
shr rax, 0x38
xor rdx, rax
imul rdx, r14
mov rdi, qword [rbp + 0x90]
mov rax, qword [rdi + 0xb8]
and rax, rdx
mov rcx, qword [rdi + 0xa0]
mov rbx, rax
add rbx, rbx
mov rbx, qword [rcx + rbx*8 + 8]
mov rdx, qword [rdi + 0x90]
cmp rbx, rdx
je 0x140088d65
add rax, rax
mov rcx, qword [rcx + rax*8]
cmp r8, qword [rbx + 0x10]
je 0x140088d6a
cmp rbx, rcx
jne 0x140088ff7
mov rbx, rdx
jmp 0x140088d6f
test rbx, rbx
je 0x140088d65
test rsi, rsi
je 0x140088d85
mov eax, r12d
lock xadd dword [rsi + 8], eax
cmp eax, 1
je 0x140089092
mov rcx, qword [rbp + 8]
test rcx, rcx
je 0x140088d93
call fcn.14008a480
cmp rbx, qword [rdi + 0x90]
je 0x140088f5b
cmp dword [rbx + 0x74], 0
jl 0x140088ed1
mov r15, qword [rbx + 0x58]
mov r14, qword [rbx + 0x60]
sub r14, r15
movabs rcx, 0xcbf29ce484222325
mov edx, 0
mov al, 0x25
mov sil, reloc.Cabinet.dll_CloseCompressor
mov dil, CloseCompressor
mov bl, 0x84
mov r11b, 0xe4
mov r10b, 0x9c
mov r9b, MsiGetProductInfoExW
mov r8d, 0xcb
je 0x140088e3e
movabs r12, 0x100000001b3
nop dword [rax]
movzx eax, byte [r15 + rdx]
xor rcx, rax
imul rcx, r12
mov rax, rcx
mov r8, rcx
shr r8, 0x38
mov r9, rcx
shr r9, 0x30
mov r10, rcx
shr r10, 0x28
mov r11, rcx
shr r11, 0x20
mov rbx, rcx
shr rbx, 0x18
mov rdi, rcx
shr rdi, 0x10
mov rsi, rcx
shr rsi, 8
inc rdx
cmp rdx, r14
jb 0x140088df0
mov r12d, 0xffffffff
movzx ecx, al
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs rdx, 0x100000001b3
imul rcx, rdx
movzx eax, sil
xor rcx, rax
imul rcx, rdx
movzx eax, dil
xor rcx, rax
imul rcx, rdx
movzx eax, bl
xor rcx, rax
imul rcx, rdx
movzx eax, r11b
xor rcx, rax
imul rcx, rdx
movzx eax, r10b
xor rcx, rax
imul rcx, rdx
movzx eax, r9b
xor rcx, rax
imul rcx, rdx
xor rcx, r8
imul rcx, rdx
mov r8, qword [rbp + 0x88]
mov rax, r8
shl rax, 6
mov rdx, r8
shr rdx, 2
add rcx, rax
mov eax, 0x9e3779b9
add rax, rdx
add rcx, rax
xor r8, rcx
mov qword [rbp + 0x88], r8
add r13, 0x40
cmp r13, qword [rsp + 0x70]
lea rdi, [0x1404ff520]
jne 0x140088b40
mov rbx, qword [rbp + 0x98]
mov rdi, qword [rbp + 0x88]
test rbx, rbx
je 0x140088f0a
lock xadd dword [rbx + 8], r12d
cmp r12d, 1
je 0x14008912b
mov rax, rdi
movaps xmm6, xmmword [rsp + 0x120]
add rsp, 0x138
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdi, qword [rbp + 0x90]
mov rbx, qword [rdi + 0x90]
jmp 0x140088d6f
mov r8, r13
lea rdx, [rbp - 0x10]
mov rcx, r15
call fcn.14008a2a0
or dword [rbp + 0x80], 4
mov r14, qword [rax]
jmp 0x140088c19
lea rdx, [0x14015a890]
call fcn.1400abd0c
mov rcx, qword [rax + 8]
cmp dword [rcx], 3
jbe 0x140088ed1
lea rax, [rdi + 0xc8]
mov qword [rsp + 0x50], rax
lea rax, [rdi + 0x118]
cmp qword [rax + 0x18], 8
jb 0x140088f91
mov rax, qword [rax]
mov qword [rsp + 0x58], rax
mov rax, r13
cmp qword [r13 + 0x18], 8
jb 0x140088fa4
mov rax, qword [r13]
mov qword [rsp + 0x60], rax
lea rax, str.Property_not_found_and_wont_be_part_of_the_key
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
lea rdx, [0x14046669d]
call fcn.140002ae4
jmp 0x140088ed1
lock inc dword [rdi + 8]
jmp 0x140088c07
mov rbx, qword [rbx + 8]
jmp 0x140088d56
mov rax, qword [rbx]
movabs r10, 0xa545274f70dcb170
mov rcx, rbx
mov rax, qword [rax]
call qword [case.0x140084760.0]
mov eax, r12d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140088be0
mov rax, qword [rbx]
movabs r10, 0x9e241f5a3adb5a70
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x140084760.0]
jmp 0x140088be0
mov rax, qword [rdi]
movabs r10, 0xa545274f70dcb170
mov rcx, rdi
mov rax, qword [rax]
call qword [case.0x140084760.0]
mov eax, r12d
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x140088c80
mov rax, qword [rdi]
movabs r10, 0x9e241f5a3adb5a70
mov rcx, rdi
mov rax, qword [rax + 8]
call qword [case.0x140084760.0]
jmp 0x140088c80
mov rax, qword [rsi]
movabs r10, 0xa545274f70dcb170
mov rcx, rsi
mov rax, qword [rax]
call qword [case.0x140084760.0]
mov eax, r12d
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x140088d85
mov rax, qword [rsi]
movabs r10, 0x9e241f5a3adb5a70
mov rcx, rsi
mov rax, qword [rax + 8]
call qword [case.0x140084760.0]
jmp 0x140088d85
mov rbx, qword [rsp + 0x48]
mov rax, qword [rbx]
movabs r10, 0xa545274f70dcb170
mov rcx, rbx
mov rax, qword [rax]
call qword [case.0x140084760.0]
mov eax, r12d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140088c6a
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
movabs r10, 0x9e241f5a3adb5a70
mov rax, qword [rax + 8]
call qword [case.0x140084760.0]
jmp 0x140088c6a
mov rdx, qword [rbx]
movabs r10, 0xa545274f70dcb170
mov rcx, rbx
mov rax, qword [rdx]
call qword [case.0x140084760.0]
mov rcx, rbx
call fcn.140084740
jmp 0x140088f0a
and dword [rbp + 0x80], 0xfffffffb
mov rcx, qword [rbp - 8]
test rcx, rcx
je 0x140088c3e
call fcn.14008a480
jmp 0x140088c3e
mov qword [rbp - 0x60], rdi
mov rcx, rdi
call fcn.1400e809c
nop
cmp qword [0x140527cb0], 0
jne 0x1400891f6
mov ecx, 0x48
call fcn.1401568fc
mov rbx, rax
mov qword [rbp - 0x58], rax
xor edx, edx
lea r8d, [rdx + 0x48]
mov rcx, rax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov rcx, rbx
call fcn.1400e8188
nop
mov rdx, rax
lea rcx, [rbp - 0x48]
call fcn.1400e8120
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [0x140527cb0]
mov qword [rdx], rax
mov qword [0x140527cb0], rcx
mov rcx, qword [rdx + 8]
mov rax, qword [0x140527cb8]
mov qword [rdx + 8], rax
mov qword [0x140527cb8], rcx
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x1400891f6
call fcn.14008a480
nop
mov rcx, rdi
call qword [sym.imp.msvcp_win.dll__Mtx_unlock]
nop dword [rax + rax]
jmp 0x140088b4e