Function at 0x140008690
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 0x140008ad0
lea rdi, [0x1400144a0]
not ecx
cmp r10, 0x2e
mov r8d, ecx
ja 0x140008800
cmp r10, 7
jbe 0x14000877c
lea r11, [r10 - 8]
mov rdx, rsi
lea rdi, [0x1400144a0]
mov rax, r11
shr rax, 3
lea r9, [rsi + rax*8 + 8]
nop dword [rax]
mov eax, r8d
xor r8b, byte [rdx]
add rdx, 8
shr eax, 8
movzx r8d, r8b
xor eax, dword [rdi + r8*4]
mov ecx, eax
xor al, byte [rdx - 7]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdi + rax*4]
mov eax, ecx
xor cl, byte [rdx - 6]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdi + rcx*4]
mov ecx, eax
xor al, byte [rdx - 5]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdi + rax*4]
mov eax, ecx
xor cl, byte [rdx - 4]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdi + rcx*4]
mov ecx, eax
xor al, byte [rdx - 3]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdi + rax*4]
mov eax, ecx
xor cl, byte [rdx - 2]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdi + rcx*4]
mov r8d, eax
xor al, byte [rdx - 1]
shr r8d, 8
movzx eax, al
xor r8d, dword [rdi + rax*4]
cmp rdx, r9
jne 0x1400086f0
and r11, 0xfffffffffffffff8
and r10d, 7
lea rsi, [rsi + r11 + 8]
test r10, r10
je 0x1400087be
lea rdi, [0x1400144a0]
add r10, rsi
nop word cs:[rax + rax]
nop word cs:[rax + rax]
add rsi, 1
mov eax, r8d
xor r8b, byte [rsi - 1]
shr eax, 8
movzx r8d, r8b
xor eax, dword [rdi + r8*4]
cmp rsi, r10
mov r8d, eax
jne 0x1400087a0
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
test sil, 7
je 0x140008aa3
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 0x140008800
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], rax
mov rdx, rsi
lea r9, [0x1400124a0]
mov qword [rsp + 0x10], rbx
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 0x1400088d0
sub qword [rsp], 1
mov rdx, qword [rsp + 0x78]
jne 0x140008870
mov rax, qword [rsp + 8]
mov edx, r13d
mov ecx, r12d
mov rbx, qword [rsp + 0x10]
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 0x140008980
xor rdx, qword [rsi + 8]
mov r8d, r8d
xor rdx, r8
mov r8d, 8
nop word cs:[rax + rax]
nop word cs:[rax + rax]
nop
mov r9, rdx
movzx edx, dl
mov edx, dword [rdi + rdx*4]
shr r9, 8
xor rdx, r9
sub r8d, 1
jne 0x1400089c0
xor rcx, qword [rsi + 0x10]
mov edx, edx
xor rdx, rcx
mov ecx, 8
nop word cs:[rax + rax]
nop word cs:[rax + rax]
nop word [rax + rax]
mov r8, rdx
movzx edx, dl
mov edx, dword [rdi + rdx*4]
shr r8, 8
xor rdx, r8
sub ecx, 1
jne 0x140008a00
xor rax, qword [rsi + 0x18]
mov edx, edx
xor rax, rdx
mov edx, 8
nop word cs:[rax + rax]
nop word cs:[rax + rax]
nop dword [rax]
mov rcx, rax
movzx eax, al
mov eax, dword [rdi + rax*4]
shr rcx, 8
xor rax, rcx
sub edx, 1
jne 0x140008a40
xor r11, qword [rsi + 0x20]
mov eax, eax
xor r11, rax
mov eax, 8
nop word cs:[rax + rax]
nop word cs:[rax + rax]
nop dword [rax]
mov rdx, r11
movzx r11d, r11b
mov r11d, dword [rdi + r11*4]
shr rdx, 8
xor r11, rdx
sub eax, 1
jne 0x140008a80
mov r8d, r11d
add rsi, 0x28
jmp 0x1400086c5
movabs rax, 0xcccccccccccccccd
mul r10
shr rdx, 5
lea rax, [rdx + rdx*4]
shl rax, 3
sub r10, rax
sub rdx, 1
je 0x140008ad7
mov rax, rdx
mov rbx, rsi
jmp 0x14000883a
xor eax, eax
jmp 0x1400087c3
xor r11d, r11d
xor eax, eax
xor ecx, ecx
jmp 0x140008971
mov r8d, r8d
jmp 0x140008690