Function at 0x140096ad0
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, 0xd8
mov rbp, rdx
mov rdi, rcx
mov rbx, qword [r9 + 8]
mov r15, qword [r9 + 0x10]
mov rcx, qword [r8 + 0x10]
test r15, r15
je 0x140096c2c
lea rdx, [r15*8]
movabs rax, 0xcbf29ce484222325
xor r14d, r14d
movabs rsi, 0x100000001b3
nop dword [rax]
movzx r10d, byte [rbx + r14 + 4]
xor r10, rax
imul r10, rsi
movzx r11d, byte [rbx + r14 + 5]
xor r11, r10
imul r11, rsi
mov eax, dword [rbx + r14]
xor rax, r11
imul rax, rsi
add r14, 8
cmp rdx, r14
jne 0x140096b20
test rcx, rcx
je 0x140096c3f
xor edx, edx
div rcx
mov rax, qword [r8 + 8]
mov r12, rdx
shl r12, 5
movzx ecx, word [rax + r12 + 0x1c]
cmp cx, word [r8 + 0x20]
jne 0x140096bc4
add rax, r12
cmp qword [rax + 0x10], r15
jne 0x140096bc4
mov rcx, qword [rax + 8]
xor esi, esi
nop word cs:[rax + rax]
cmp r15, rsi
je 0x140096d96
movzx r10d, byte [rcx + rsi*8 + 4]
cmp r10b, byte [rbx + rsi*8 + 4]
jne 0x140096bc4
movzx r10d, byte [rcx + rsi*8 + 5]
cmp r10b, byte [rbx + rsi*8 + 5]
jne 0x140096bc4
mov r11d, dword [rcx + rsi*8]
lea r10, [rsi + 1]
cmp r11d, dword [rbx + rsi*8]
mov rsi, r10
je 0x140096b90
mov qword [rsp + 0x30], r8
mov rax, r15
shr rax, 0x3d
jne 0x140096dc3
lea r13, [r15*8]
movabs rax, 0x7ffffffffffffffd
cmp r13, rax
jae 0x140096dc3
mov qword [rsp + 0x28], rdx
mov r14, rbp
mov qword [rsp + 0x20], r9
test r13, r13
je 0x140096c4b
movzx eax, byte [0x1402a5340]
xor ecx, ecx
mov rdx, r13
call fcn.1401af7e0
mov rbp, rax
mov rsi, r15
test rax, rax
jne 0x140096c52
mov ecx, 4
mov rdx, r13
call fcn.1401d11bf
movabs rax, 0xcbf29ce484222325
test rcx, rcx
jne 0x140096b57
lea rcx, str.C:UsersUser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_regex_automata_0.4.9_src_nfa_thompsonmap.rs
call fcn.1401d1d20
mov ebp, 4
xor esi, esi
mov rcx, rbp
mov rdx, rbx
mov r8, r13
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x50], r15
mov dword [rsp + 0x38], 2
lea rcx, [rsp + 0x58]
lea r8, [rsp + 0x38]
mov rdx, r14
call fcn.14008ece0
mov rax, qword [rsp + 0x58]
movabs r15, 0x8000000000000008
mov ebp, dword [rsp + 0x60]
cmp rax, r15
jne 0x140096d07
mov r8, qword [rsp + 0x30]
mov rdx, qword [r8 + 0x10]
mov rcx, qword [rsp + 0x28]
cmp rdx, rcx
jbe 0x140096dc8
mov rax, qword [r8 + 8]
movzx ebx, word [r8 + 0x20]
lea r14, [rax + r12]
cmp qword [rax + r12], 0
je 0x140096cdf
mov r8, qword [r14 + 8]
mov rcx, qword [0x1402a52c8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rcx, qword [rsp + 0x20]
mov rax, qword [rcx + 0x10]
mov qword [r14 + 0x10], rax
movups xmm0, xmmword [rcx]
movups xmmword [r14], xmm0
mov dword [r14 + 0x18], ebp
mov word [r14 + 0x1c], bx
mov dword [rdi + 8], ebp
mov qword [rdi], r15
jmp 0x140096daf
mov ecx, dword [rsp + 0xd4]
mov dword [rdi + 0x7c], ecx
movups xmm0, xmmword [rsp + 0xc4]
movups xmmword [rdi + 0x6c], xmm0
movups xmm0, xmmword [rsp + 0xb4]
movups xmmword [rdi + 0x5c], xmm0
movups xmm0, xmmword [rsp + 0xa4]
movups xmmword [rdi + 0x4c], xmm0
movups xmm0, xmmword [rsp + 0x64]
movups xmm1, xmmword [rsp + 0x74]
movups xmm2, xmmword [rsp + 0x84]
movups xmm3, xmmword [rsp + 0x94]
movups xmmword [rdi + 0x3c], xmm3
movups xmmword [rdi + 0x2c], xmm2
movups xmmword [rdi + 0x1c], xmm1
movups xmmword [rdi + 0xc], xmm0
mov qword [rdi], rax
mov dword [rdi + 8], ebp
mov r9, qword [rsp + 0x20]
cmp qword [r9], 0
je 0x140096daf
mov rcx, qword [0x1402a52c8]
xor edx, edx
mov r8, rbx
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [rax + 0x18]
mov dword [rdi + 8], eax
movabs rax, 0x8000000000000008
mov qword [rdi], rax
cmp qword [r9], 0
jne 0x140096d70
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.140043510
lea r8, str.C:UsersUser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_regex_automata_0.4.9_src_nfa_thompsonmap.rs
call fcn.1401d162f
int3