Function at 0x180091d40
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.1800c9d50
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.180090390
cmp qword [rsp + 0x38], 0
je 0x180091e10
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 0x180091e71
jmp 0x18009202a
cmp byte [rsp + 0xc9], 0
jne 0x18009202a
mov byte [rsp + 0xc9], 1
cmp byte [rsp + 0xc8], 0
je 0x180091e42
mov rbp, qword [rsp + 0xb8]
mov r15, qword [rsp + 0xc0]
jmp 0x180091e5b
mov rbp, qword [rsp + 0xb8]
mov r15, qword [rsp + 0xc0]
cmp r15, rbp
je 0x18009202a
sub r15, rbp
add rbp, qword [rsp + 0x98]
cmp qword [rsi + 0x38], 0
je 0x18009202a
movabs r12, 0xaf64724c8602eb6e
test r15, r15
je 0x180091f52
movabs rdx, 0xcbf29ce484222325
mov rax, rbp
cmp r15, 8
jb 0x180091f15
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 0x180091eb0
mov ecx, r15d
mov r12, rdx
and ecx, 7
je 0x180091f47
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 0x180091f30
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 0x180091fcf
pcmpeqb xmm8, xmm6
pmovmskb eax, xmm8
test eax, eax
jne 0x180092025
add r12, r14
add r12, 0x10
add r14, 0x10
jmp 0x180091f84
lea eax, [r13 - 1]
and eax, r13d
mov r13d, eax
test ax, ax
je 0x180091fa5
tzcnt eax, r13d
add rax, r12
and rax, rbx
neg rax
imul rsi, rax, 0x58
cmp qword [rdi + rsi + 0x10], r15
jne 0x180091fc0
lea rax, [rdi + rsi]
mov rdx, qword [rax + 8]
mov rcx, rbp
mov r8, r15
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x180091fc0
mov rax, qword [rsp + 0x28]
add rsi, rax
add rsi, 0xffffffffffffffc0
cmp byte [rsp + 0xc9], 0
movabs rdi, 0x100000001b3
je 0x180091dc0
jmp 0x18009202a
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