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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0xa0
cmp byte [0x18029d691], 0
je 0x180165837
xor al, al
jmp 0x180165afd
mov rbx, qword [0x180285a40]
test rbx, rbx
je 0x180165af6
mov rcx, rbx
call fcn.1800b6850
cmp byte [rax], 0
jne 0x180165af6
lea rcx, [rsp + 0x20]
call fcn.1801cdcd0
nop
lea rcx, [rsp + 0xb0]
call fcn.1800b6ac0
mov rax, qword [rsp + 0xb0]
sub rax, qword [0x18028c440]
cmp rax, 0x59682f00
jl 0x180165aec
lea rcx, [rsp + 0xb0]
call fcn.1800b6ac0
mov rcx, qword [rax]
mov qword [0x18028c440], rcx
mov rdx, qword [0x180284eb0]
movsxd rax, dword [rdx + 3]
mov rbp, qword [rax + rdx + 7]
test rbp, rbp
je 0x180165aec
mov rcx, rbp
call fcn.180154210
cmp dword [rax], 3
je 0x180165b16
mov rcx, rbx
call fcn.1800ca2d0
cmp dword [rax], 3
jne 0x180165ae5
mov ecx, dword [0x18028ab2c]
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
mov ecx, dword [rdx + rax]
cmp dword [0x18028cc68], ecx
jle 0x180165a5e
lea rcx, [0x18028cc68]
call fcn.1801d1cb0
cmp dword [0x18028cc68], 0xffffffff
jne 0x180165a5e
mov rcx, qword [0x18028c720]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
xor edi, edi
test rax, rax
je 0x180165a4c
nop dword [rax + rax]
mov r9, qword [r10 + 0x10]
mov rax, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rax
cmp byte [r9 + rax], dil
jne 0x180165951
mov rdx, rdi
test rax, rax
je 0x180165990
nop dword [rax]
nop word [rax + rax]
movsx ecx, byte [r9 + rdx]
xor ecx, r8d
imul r8d, ecx, 0x1000193
inc rdx
cmp rdx, rax
jb 0x180165970
cmp r8d, 0x13914a63
je 0x18016599e
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180165940
jmp 0x180165a4c
mov r10, qword [r10 + 0x18]
mov ebx, edi
mov esi, dword [r10 + 8]
test esi, esi
jle 0x180165a4c
mov r10, qword [r10]
nop dword [rax]
nop word [rax + rax]
movups xmm3, xmmword [r10 + 0x40]
mov r9d, 0x811c9dc5
mov r8, qword [r10]
mov rcx, 0xffffffffffffffff
inc rcx
cmp byte [r8 + rcx], dil
jne 0x1801659d5
mov rdx, rdi
test rcx, rcx
je 0x180165a10
nop word [rax + rax]
movsx eax, byte [rdx + r8]
xor eax, r9d
imul r9d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x1801659f0
cmp r9d, 0xbe4413db
je 0x180165a36
movq rdx, xmm3
test rdx, rdx
je 0x180165a2a
lea r8, str.m_bInSetup
call fcn.1801d1920
test eax, eax
jne 0x180165a41
inc ebx
add r10, 0x60
cmp ebx, esi
jl 0x1801659c0
jmp 0x180165a4c
psrldq xmm3, 8
movd edi, xmm3
jmp 0x180165a4c
psrldq xmm3, 8
movd edi, xmm3
add edi, eax
mov dword [0x18028cc9c], edi
lea rcx, [0x18028cc68]
call fcn.1801d1c44
movsxd rax, dword [0x18028cc9c]
cmp byte [rax + rbp], 0
jne 0x180165b16
mov rcx, rbp
call fcn.180154310
cmp byte [rax], 0
je 0x180165ae5
lea rdx, [rsp + 0x20]
mov r8, qword [rsp + 0x20]
mov r9, qword [rsp + 0x38]
cmp r9, 0xf
cmova rdx, r8
mov r11d, 0x5f
mov r10, qword [rsp + 0x30]
cmp r10, 3
jb 0x180165abb
movzx ecx, word [rdx]
mov eax, 0x6c70
sub ecx, eax
jne 0x180165ab7
movzx ecx, byte [rdx + 2]
sub ecx, r11d
test ecx, ecx
je 0x180165b16
lea rdx, [rsp + 0x20]
cmp r9, 0xf
cmova rdx, r8
cmp r10, 3
jb 0x180165ae5
movzx ecx, word [rdx]
mov eax, 0x7063
sub ecx, eax
jne 0x180165ae1
movzx ecx, byte [rdx + 2]
sub ecx, r11d
test ecx, ecx
je 0x180165b16
mov byte [0x18028c5cd], 0
lea rcx, [rsp + 0x20]
call fcn.1800a3670
movzx eax, byte [0x18028c5cd]
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
mov byte [0x18028c5cd], 1
lea rcx, [rsp + 0x20]
call fcn.1800a3670
mov al, 1
jmp 0x180165afd