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

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
mov rax, qword [0x180063cb8]
mov r14, qword [rax + 0x18]
mov qword [rsp + 0xe0], r14
mov rdi, qword [rax + 0x20]
mov r15, qword [rax + 0x28]
movabs rbx, 0xcbf29ce484222325
movabs r12, 0x100000001b3
test r14, r14
je 0x180016ed5
mov rax, qword [0x180065e48]
mov rdx, qword [rax + r14 + 0x18]
mov rsi, rbx
nop
movsx rcx, byte [rdx]
lea rdx, [rdx + 1]
xor rsi, rcx
imul rsi, r12
test cl, cl
jne 0x180016ec0
jmp 0x180016ed7
xor esi, esi
xor r9d, r9d
lea r8, [rsp + 0xd0]
xor edx, edx
lea rcx, [0x180065ed0]
call qword [sym.imp.KERNEL32.dll_InitOnceBeginInitialize]
test eax, eax
je 0x1800173c6
cmp dword [rsp + 0xd0], 0
je 0x180016fa1
test r14, r14
je 0x180016f87
mov rax, qword [0x180063cb0]
cmp dword [rax + 4], 0
jle 0x180016f87
mov rax, qword [0x180065e48]
mov r8, qword [rax + r14 + 0x18]
mov rdx, rbx
nop dword [rax + rax]
movsx rcx, byte [r8]
lea r8, [r8 + 1]
xor rdx, rcx
imul rdx, r12
test cl, cl
jne 0x180016f30
mov qword [rsp + 0xd8], rdx
lea rdx, [rsp + 0xd8]
mov rcx, qword [0x180063cc0]
call fcn.180017550
mov rcx, qword [0x180063cb0]
movsxd rdx, dword [rcx + 4]
lea rdx, [rdx + rdx*2]
add rdx, rdx
mov rax, qword [rax]
mov r8d, dword [rax + rdx*8 - 8]
mov rdx, qword [rax + rdx*8 - 0x30]
mov rcx, r14
call fcn.18001a5e0
nop
xor r8d, r8d
xor edx, edx
lea rcx, [0x180065ed0]
call qword [sym.imp.KERNEL32.dll_InitOnceComplete]
test eax, eax
je 0x1800173c6
xor ebx, ebx
cmp dword [rdi + 0x10], ebx
jbe 0x180017060
movabs rbp, 0xf984545cfa78101f
movabs r13, 0x2d0a42b1a4f18a79
movabs r14, 0xcbf29ce484222325
nop word [rax + rax]
mov rax, qword [rdi + 8]
mov r10, qword [rax + rbx*8]
mov r9, qword [0x180065e48]
add r9, r10
mov rax, qword [r9 + 8]
cmp qword [r9], rax
je 0x18001704d
mov r8, qword [r9 + 0x18]
mov rax, r14
nop dword [rax]
nop word [rax + rax]
movsx rdx, byte [r8]
lea r8, [r8 + 1]
xor rax, rdx
imul rax, r12
test dl, dl
jne 0x180017000
cmp rax, rbp
je 0x18001704d
cmp rax, r13
je 0x18001704d
mov rax, qword [r9]
mov ecx, dword [r9 + 0x38]
cmp dword [rax + 0x20], ecx
je 0x18001704d
mov dword [rax + 0x20], ecx
mov rcx, qword [0x180065e48]
add rcx, r10
mov rax, qword [0x180063cb8]
mov r8, qword [0x180065ef0]
add r8, qword [rax]
mov dl, 1
call r8
nop
inc ebx
cmp ebx, dword [rdi + 0x10]
jb 0x180016fd0
mov r14, qword [rsp + 0xe0]
xor ebp, ebp
cmp dword [r15 + 0x10], ebp
jbe 0x1800173ab
lea r13, [0x18005b6b4]
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r15 + 8]
mov rdi, qword [rax + rbp*8]
mov rax, qword [0x180065e48]
mov rdx, qword [rax + rdi + 0x18]
movabs rbx, 0xcbf29ce484222325
nop
movsx rcx, byte [rdx]
lea rdx, [rdx + 1]
xor rbx, rcx
imul rbx, r12
test cl, cl
jne 0x1800170a0
mov rax, qword [0x180063cb8]
mov rdx, qword [0x180065ef8]
add rdx, qword [rax]
mov rcx, rdi
call rdx
mov rcx, rax
test rax, rax
je 0x1800172ab
movabs rax, 0x37d1bfa7d195ebf9
cmp rbx, rax
je 0x180017202
movabs rax, 0x92fe97d6caa88c20
cmp rbx, rax
je 0x180017202
movabs rax, 0xa854d43ddb55ddcc
cmp rbx, rax
je 0x180017202
movabs rax, 0xb8f3ad4931029355
cmp rbx, rax
je 0x180017202
movabs rax, 0xaedcd71796ade290
cmp rbx, rax
movabs rax, 0xdb76082138fdee7f
je 0x18001720c
cmp rbx, rax
je 0x18001720c
movabs rax, 0xf17870527758213f
cmp rbx, rax
je 0x18001739f
movabs rax, 0x8499db0ed7bb81cf
cmp rbx, rax
je 0x18001739f
mov rax, qword [0x180065e48]
mov r8d, dword [rax + rcx + 0x38]
cmp r8d, 0xffffffff
je 0x18001739f
lea r11, [rax + rdi]
cmp dword [r11 + 0x38], r8d
je 0x18001739f
mov dword [r11 + 0x38], r8d
mov rax, qword [r11]
mov qword [r11 + 8], rax
mov rax, qword [0x180063cb8]
mov r10, qword [0x180065ee8]
add r10, qword [rax]
mov dword [rsp + 0x80], 1
mov byte [rsp + 0x78], 0
xor ebx, ebx
mov dword [rsp + 0x70], ebx
mov qword [rsp + 0x68], r13
mov dword [rsp + 0x60], ebx
mov qword [rsp + 0x58], r13
mov byte [rsp + 0x50], 0xff
mov byte [rsp + 0x48], bl
mov byte [rsp + 0x40], 1
mov byte [rsp + 0x38], bl
mov byte [rsp + 0x30], bl
mov byte [rsp + 0x28], bl
mov byte [rsp + 0x20], bl
xor r9d, r9d
mov rdx, qword [r11 + 0x18]
mov rcx, r11
call r10
nop
jmp 0x18001739f
movabs rax, 0xdb76082138fdee7f
test r14, r14
je 0x18001721a
cmp rcx, r14
jne 0x18001739f
cmp rbx, rax
jne 0x18001739f
mov r11, qword [0x180065e48]
add r11, rdi
cmp dword [r11 + 0x38], 0
je 0x18001739f
xor ebx, ebx
mov dword [r11 + 0x38], ebx
mov rax, qword [r11]
mov qword [r11 + 8], rax
mov rax, qword [0x180063cb8]
mov r10, qword [0x180065ee8]
add r10, qword [rax]
mov dword [rsp + 0x80], 1
mov byte [rsp + 0x78], bl
mov dword [rsp + 0x70], ebx
mov qword [rsp + 0x68], r13
mov dword [rsp + 0x60], ebx
mov qword [rsp + 0x58], r13
mov byte [rsp + 0x50], 0xff
mov byte [rsp + 0x48], bl
mov byte [rsp + 0x40], 1
mov byte [rsp + 0x38], bl
mov byte [rsp + 0x30], bl
mov byte [rsp + 0x28], bl
mov byte [rsp + 0x20], bl
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [r11 + 0x18]
mov rcx, r11
call r10
nop
jmp 0x18001739f
movabs rax, 0x1ecf7680ae6d72bd
cmp rbx, rax
jne 0x1800172ce
movabs rax, 0xfca7b000ade2abcb
cmp rsi, rax
je 0x180017317
jmp 0x18001739f
movabs rax, 0xfcb981acde90c192
cmp rbx, rax
jne 0x1800172f1
movabs rax, 0x6972baf895e90386
cmp rsi, rax
je 0x180017317
jmp 0x18001739f
movabs rax, 0xfc61c19e80fc9d68
cmp rbx, rax
jne 0x18001739f
movabs rax, 0xf01bf70c1ff22b66
cmp rsi, rax
jne 0x18001739f
mov rax, qword [0x180065e48]
mov r8d, dword [rax + r14 + 0x38]
cmp r8d, 0xffffffff
je 0x18001739f
lea r11, [rax + rdi]
cmp dword [r11 + 0x38], r8d
je 0x18001739f
mov dword [r11 + 0x38], r8d
mov rax, qword [r11]
mov qword [r11 + 8], rax
mov rax, qword [0x180063cb8]
mov r10, qword [0x180065ee8]
add r10, qword [rax]
mov dword [rsp + 0x80], 1
mov byte [rsp + 0x78], 0
xor eax, eax
mov dword [rsp + 0x70], eax
mov qword [rsp + 0x68], r13
mov dword [rsp + 0x60], eax
mov qword [rsp + 0x58], r13
mov byte [rsp + 0x50], 0xff
mov byte [rsp + 0x48], al
mov byte [rsp + 0x40], 1
mov byte [rsp + 0x38], al
mov byte [rsp + 0x30], al
mov byte [rsp + 0x28], al
mov byte [rsp + 0x20], al
xor r9d, r9d
mov rdx, qword [r11 + 0x18]
mov rcx, r11
call r10
nop
inc ebp
cmp ebp, dword [r15 + 0x10]
jb 0x180017080
mov rbx, qword [rsp + 0xe8]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.18002d010
int3