Function at 0x140009680
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
test rdx, rdx
mov rsi, rdx
mov r10, r8
je 0x1400099f4
not ecx
cmp r10, 0x2e
mov r8d, ecx
jbe 0x140009906
test dl, 7
je 0x140009a3c
lea rdi, [0x14001d860]
jmp 0x1400096ca
test sil, 7
je 0x1400099f8
add rsi, 1
mov eax, r8d
xor r8b, byte [rsi - 1]
shr eax, 8
movzx r8d, r8b
xor eax, dword [rdi + r8*4]
sub r10, 1
mov r8d, eax
jne 0x1400096c0
mov rbx, rsi
mov rax, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
mov qword [rsp], rdx
xor r11d, r11d
xor r15d, r15d
xor r12d, r12d
xor r13d, r13d
mov qword [rsp + 8], rbx
mov rdx, rsi
lea r9, [0x14001b860]
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x80], r10
mov qword [rsp + 0x18], rdi
nop dword [rax + rax]
xor r8, qword [rdx]
add rdx, 0x28
mov r10d, 1
mov rdi, qword [rdx - 0x20]
mov rsi, qword [rdx - 0x18]
mov rbx, qword [rdx - 0x10]
mov r14, qword [rdx - 8]
movzx ecx, r8b
mov rbp, r8
mov qword [rsp + 0x78], rdx
xor rdi, r13
mov r8d, dword [r9 + rcx*4]
xor rsi, r12
movzx ecx, dil
xor rbx, r15
mov r13d, dword [r9 + rcx*4]
movzx ecx, sil
xor r14, r11
mov r12d, dword [r9 + rcx*4]
movzx ecx, bl
mov r15d, dword [r9 + rcx*4]
movzx ecx, r14b
mov r11d, dword [r9 + rcx*4]
nop dword [rax + rax]
lea ecx, [r10*8]
mov rdx, rbp
movsxd rax, r10d
shr rdx, cl
shl rax, 8
add r10d, 1
movzx edx, dl
add rdx, rax
xor r8d, dword [r9 + rdx*4]
mov rdx, rdi
shr rdx, cl
movzx edx, dl
add rdx, rax
xor r13d, dword [r9 + rdx*4]
mov rdx, rsi
shr rdx, cl
movzx edx, dl
add rdx, rax
xor r12d, dword [r9 + rdx*4]
mov rdx, rbx
shr rdx, cl
movzx edx, dl
add rdx, rax
xor r15d, dword [r9 + rdx*4]
mov rdx, r14
shr rdx, cl
movzx edx, dl
add rax, rdx
xor r11d, dword [r9 + rax*4]
cmp r10d, 8
jne 0x140009790
sub qword [rsp], 1
mov rdx, qword [rsp + 0x78]
jne 0x140009730
mov rax, qword [rsp + 0x10]
mov edx, r13d
mov ecx, r12d
mov rbx, qword [rsp + 8]
mov r10, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x18]
lea rax, [rax + rax*4]
lea rsi, [rbx + rax*8]
mov eax, r15d
xor r8, qword [rsi]
mov r9d, 8
nop word [rax + rax]
mov rbx, r8
movzx r8d, r8b
mov r8d, dword [rdi + r8*4]
shr rbx, 8
xor r8, rbx
sub r9d, 1
jne 0x140009840
xor rdx, qword [rsi + 8]
mov r8d, r8d
xor rdx, r8
mov r8d, 8
nop dword [rax + rax]
mov r9, rdx
movzx edx, dl
mov edx, dword [rdi + rdx*4]
shr r9, 8
xor rdx, r9
sub r8d, 1
jne 0x140009870
xor rcx, qword [rsi + 0x10]
mov edx, edx
xor rdx, rcx
mov ecx, 8
nop dword [rax]
mov r8, rdx
movzx edx, dl
mov edx, dword [rdi + rdx*4]
shr r8, 8
xor rdx, r8
sub ecx, 1
jne 0x140009898
xor rax, qword [rsi + 0x18]
mov edx, edx
xor rax, rdx
mov edx, 8
nop dword [rax + rax]
mov rcx, rax
movzx eax, al
mov eax, dword [rdi + rax*4]
shr rcx, 8
xor rax, rcx
sub edx, 1
jne 0x1400098c0
xor r11, qword [rsi + 0x20]
mov eax, eax
xor r11, rax
mov eax, 8
nop dword [rax + rax]
mov rdx, r11
movzx r11d, r11b
mov r11d, dword [rdi + r11*4]
shr rdx, 8
xor r11, rdx
sub eax, 1
jne 0x1400098e8
mov r8d, r11d
add rsi, 0x28
cmp r10, 7
jbe 0x140009a28
lea rax, [r10 - 8]
lea rdi, [0x14001d860]
shr rax, 3
lea rcx, [rsi + rax*8 + 8]
nop dword [rax]
mov eax, r8d
xor r8b, byte [rsi]
add rsi, 8
shr eax, 8
movzx r8d, r8b
xor eax, dword [rdi + r8*4]
mov edx, eax
xor al, byte [rsi - 7]
shr edx, 8
movzx eax, al
xor edx, dword [rdi + rax*4]
mov eax, edx
xor dl, byte [rsi - 6]
shr eax, 8
movzx edx, dl
xor eax, dword [rdi + rdx*4]
mov edx, eax
xor al, byte [rsi - 5]
shr edx, 8
movzx eax, al
xor edx, dword [rdi + rax*4]
mov eax, edx
xor dl, byte [rsi - 4]
shr eax, 8
movzx edx, dl
xor eax, dword [rdi + rdx*4]
mov edx, eax
xor al, byte [rsi - 3]
shr edx, 8
movzx eax, al
xor edx, dword [rdi + rax*4]
mov eax, edx
xor dl, byte [rsi - 2]
shr eax, 8
movzx edx, dl
xor eax, dword [rdi + rdx*4]
mov r8d, eax
xor al, byte [rsi - 1]
shr r8d, 8
movzx eax, al
xor r8d, dword [rdi + rax*4]
cmp rsi, rcx
jne 0x140009928
and r10d, 7
test r10, r10
je 0x1400099de
lea rdi, [0x14001d860]
add r10, rcx
nop word [rax + rax]
add rcx, 1
mov eax, r8d
xor r8b, byte [rcx - 1]
shr eax, 8
movzx r8d, r8b
xor eax, dword [rdi + r8*4]
cmp rcx, r10
mov r8d, eax
jne 0x1400099c0
mov eax, r8d
not eax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
jmp 0x1400099e3
movabs rax, 0xcccccccccccccccd
mul r10
shr rdx, 5
lea rax, [rdx + rdx*4]
sub rdx, 1
shl rax, 3
sub r10, rax
test rdx, rdx
je 0x140009a30
mov rax, rdx
mov rbx, rsi
jmp 0x1400096fa
mov rcx, rsi
jmp 0x1400099ab
xor r11d, r11d
xor eax, eax
xor ecx, ecx
jmp 0x140009831
movabs rax, 0xcccccccccccccccd
mul r10
lea rdi, [0x14001d860]
mov rax, rdx
shr rax, 5
lea rdx, [rax + rax*4]
shl rdx, 3
sub r10, rdx
lea rdx, [rax - 1]
jmp 0x140009a18
mov r8d, r8d
jmp 0x140009680