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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
movdqa xmmword [rsp + 0xf0], xmm8
movdqa xmmword [rsp + 0xe0], xmm7
movdqa xmmword [rsp + 0xd0], xmm6
mov rbx, r8
mov rsi, rcx
mov qword [rsp + 0x20], 2
lea r9, str.::C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001flog4rs_1.2.0_srclib.rs
lea rcx, [rsp + 0x50]
call fcn.1800cfc40
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xc0], rbx
mov word [rsp + 0xc8], 1
pcmpeqd xmm6, xmm6
movabs rdi, 0x100000001b3
nop dword [rax + rax]
mov rbp, qword [rsp + 0x98]
lea rcx, [rsp + 0x38]
lea rdx, [rsp + 0x50]
call fcn.180099a10
cmp qword [rsp + 0x38], 0
je 0x18009b490
mov r15, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0xb8]
sub r15, rcx
add rbp, rcx
mov qword [rsp + 0xb8], rax
cmp qword [rsi + 0x38], 0
jne 0x18009b4f1
jmp 0x18009b6aa
cmp byte [rsp + 0xc9], 0
jne 0x18009b6aa
mov byte [rsp + 0xc9], 1
cmp byte [rsp + 0xc8], 0
je 0x18009b4c2
mov rbp, qword [rsp + 0xb8]
mov r15, qword [rsp + 0xc0]
jmp 0x18009b4db
mov rbp, qword [rsp + 0xb8]
mov r15, qword [rsp + 0xc0]
cmp r15, rbp
je 0x18009b6aa
sub r15, rbp
add rbp, qword [rsp + 0x98]
cmp qword [rsi + 0x38], 0
je 0x18009b6aa
movabs r12, 0xaf64724c8602eb6e
test r15, r15
je 0x18009b5d2
movabs rdx, 0xcbf29ce484222325
mov rax, rbp
cmp r15, 8
jb 0x18009b595
mov rcx, r15
and rcx, 0xfffffffffffffff8
mov rax, rbp
nop word cs:[rax + rax]
movzx r8d, byte [rax]
xor r8, rdx
imul r8, rdi
movzx edx, byte [rax + 1]
xor rdx, r8
imul rdx, rdi
movzx r8d, byte [rax + 2]
xor r8, rdx
imul r8, rdi
movzx edx, byte [rax + 3]
xor rdx, r8
imul rdx, rdi
movzx r8d, byte [rax + 4]
xor r8, rdx
imul r8, rdi
movzx edx, byte [rax + 5]
xor rdx, r8
imul rdx, rdi
movzx r8d, byte [rax + 6]
xor r8, rdx
imul r8, rdi
movzx edx, byte [rax + 7]
add rax, 8
xor rdx, r8
imul rdx, rdi
add rcx, 0xfffffffffffffff8
jne 0x18009b530
mov ecx, r15d
mov r12, rdx
and ecx, 7
je 0x18009b5c7
xor r8d, r8d
nop word cs:[rax + rax]
movzx r12d, byte [rax + r8]
xor r12, rdx
imul r12, rdi
inc r8
mov rdx, r12
cmp rcx, r8
jne 0x18009b5b0
xor r12, 0xff
imul r12, rdi
mov rcx, qword [rsi + 0x20]
mov qword [rsp + 0x30], rsi
mov rbx, qword [rsi + 0x28]
mov rax, r12
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm7, xmm0, 0
mov qword [rsp + 0x28], rcx
lea rdi, [rcx - 0x58]
xor r14d, r14d
and r12, rbx
mov rax, qword [rsp + 0x28]
movdqu xmm8, xmmword [rax + r12]
movdqa xmm0, xmm8
pcmpeqb xmm0, xmm7
pmovmskb r13d, xmm0
test r13d, r13d
jne 0x18009b64f
pcmpeqb xmm8, xmm6
pmovmskb eax, xmm8
test eax, eax
jne 0x18009b6a5
add r12, r14
add r12, 0x10
add r14, 0x10
jmp 0x18009b604
lea eax, [r13 - 1]
and eax, r13d
mov r13d, eax
test ax, ax
je 0x18009b625
tzcnt eax, r13d
add rax, r12
and rax, rbx
neg rax
imul rsi, rax, 0x58
cmp qword [rdi + rsi + 0x10], r15
jne 0x18009b640
lea rax, [rdi + rsi]
mov rdx, qword [rax + 8]
mov rcx, rbp
mov r8, r15
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x18009b640
mov rax, qword [rsp + 0x28]
add rsi, rax
add rsi, 0xffffffffffffffc0
cmp byte [rsp + 0xc9], 0
movabs rdi, 0x100000001b3
je 0x18009b440
jmp 0x18009b6aa
mov rsi, qword [rsp + 0x30]
mov rax, rsi
movaps xmm6, xmmword [rsp + 0xd0]
movaps xmm7, xmmword [rsp + 0xe0]
movaps xmm8, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret