Function at 0x140087a60
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
test rdx, rdx
je 0x140087c11
mov rdi, r8
mov r14, rdx
not ecx
cmp r8, 0x2f
jb 0x140088197
test r14b, 7
je 0x140087c1e
mov r8d, ecx
shr r8d, 8
xor cl, byte [r14]
lea r9, [r14 + 1]
movzx r10d, cl
lea rax, [0x1400cef90]
mov ecx, r8d
xor ecx, dword [rax + r10*4]
mov r8, rdi
dec r8
je 0x140087c18
mov r10d, r9d
and r10d, 7
je 0x140087c18
mov r8d, ecx
shr r8d, 8
lea r9, [r14 + 2]
xor cl, byte [r14 + 1]
movzx r10d, cl
mov ecx, r8d
xor ecx, dword [rax + r10*4]
mov r8, rdi
add r8, 0xfffffffffffffffe
je 0x140087c18
mov r10d, r9d
and r10d, 7
je 0x140087c18
mov r8d, ecx
shr r8d, 8
lea r9, [r14 + 3]
xor cl, byte [r14 + 2]
movzx r10d, cl
mov ecx, r8d
xor ecx, dword [rax + r10*4]
mov r8, rdi
add r8, 0xfffffffffffffffd
je 0x140087c18
mov r10d, r9d
and r10d, 7
je 0x140087c18
mov r8d, ecx
shr r8d, 8
lea r9, [r14 + 4]
xor cl, byte [r14 + 3]
movzx r10d, cl
mov ecx, r8d
xor ecx, dword [rax + r10*4]
mov r8, rdi
add r8, 0xfffffffffffffffc
je 0x140087c18
mov r10d, r9d
and r10d, 7
je 0x140087c18
mov r8d, ecx
shr r8d, 8
lea r9, [r14 + 5]
xor cl, byte [r14 + 4]
movzx r10d, cl
mov ecx, r8d
xor ecx, dword [rax + r10*4]
mov r8, rdi
add r8, 0xfffffffffffffffb
je 0x140087c18
mov r10d, r9d
and r10d, 7
je 0x140087c18
mov r8d, ecx
shr r8d, 8
lea r9, [r14 + 6]
xor cl, byte [r14 + 5]
movzx r10d, cl
mov ecx, r8d
xor ecx, dword [rax + r10*4]
mov r8, rdi
add r8, 0xfffffffffffffffa
je 0x140087c18
mov r10d, r9d
and r10d, 7
je 0x140087c18
mov r8d, ecx
shr r8d, 8
lea r9, [r14 + 7]
xor cl, byte [r14 + 6]
movzx r10d, cl
mov ecx, r8d
xor ecx, dword [rax + r10*4]
mov r8, rdi
add r8, 0xfffffffffffffff9
je 0x140087c18
mov r10d, r9d
and r10d, 7
je 0x140087c18
add rdi, 0xfffffffffffffff8
mov r8d, ecx
shr r8d, 8
xor cl, byte [r14 + 7]
add r14, 8
movzx ecx, cl
xor r8d, dword [rax + rcx*4]
mov ecx, r8d
jmp 0x140087c1e
xor eax, eax
jmp 0x1400882bc
mov r14, r9
mov rdi, r8
movabs rdx, 0xcccccccccccccccd
mov rax, rdi
mul rdx
shr rdx, 5
lea rax, [rdx*8]
lea r8, [rax + rax*4]
xor r9d, r9d
mov r10, rdx
dec r10
je 0x140087f40
mov qword [rsp + 8], r8
mov qword [rsp + 0x18], rdi
lea rax, [rdx + rdx*4]
lea rax, [rax*8 - 0x28]
mov qword [rsp], rax
lea r15, [0x1400cf390]
mov qword [rsp + 0x10], r14
xor esi, esi
xor ebp, ebp
xor ebx, ebx
nop dword [rax]
mov qword [rsp + 0x20], r10
mov eax, ecx
mov rdx, qword [r14]
xor rax, rdx
movzx r10d, al
movzx ecx, ah
mov ecx, dword [r15 + rcx*4 + 0x400]
xor ecx, dword [r15 + r10*4]
mov r10d, eax
shr r10d, 0x10
movzx r10d, r10b
xor ecx, dword [r15 + r10*4 + 0x800]
mov r12, qword [r14 + 8]
shr eax, 0x18
xor ecx, dword [r15 + rax*4 + 0xc00]
mov eax, ebp
xor rax, r12
movzx r10d, al
movzx ebp, ah
mov ebp, dword [r15 + rbp*4 + 0x400]
xor ebp, dword [r15 + r10*4]
mov r10d, eax
shr r10d, 0x10
movzx r10d, r10b
xor ebp, dword [r15 + r10*4 + 0x800]
shr eax, 0x18
xor ebp, dword [r15 + rax*4 + 0xc00]
mov eax, ebx
mov r13, qword [r14 + 0x10]
xor rax, r13
movzx r10d, al
movzx ebx, ah
mov ebx, dword [r15 + rbx*4 + 0x400]
xor ebx, dword [r15 + r10*4]
mov r10d, eax
shr r10d, 0x10
movzx r10d, r10b
xor ebx, dword [r15 + r10*4 + 0x800]
shr eax, 0x18
xor ebx, dword [r15 + rax*4 + 0xc00]
mov eax, esi
mov r10, qword [r14 + 0x18]
xor rax, r10
movzx r11d, al
movzx esi, ah
mov esi, dword [r15 + rsi*4 + 0x400]
xor esi, dword [r15 + r11*4]
mov r11d, eax
shr r11d, 0x10
movzx r11d, r11b
xor esi, dword [r15 + r11*4 + 0x800]
shr eax, 0x18
xor esi, dword [r15 + rax*4 + 0xc00]
mov eax, r9d
mov r11, qword [r14 + 0x20]
xor rax, r11
movzx r8d, al
movzx edi, ah
mov r9d, dword [r15 + rdi*4 + 0x400]
xor r9d, dword [r15 + r8*4]
mov r8d, eax
shr r8d, 0x10
movzx r8d, r8b
xor r9d, dword [r15 + r8*4 + 0x800]
shr eax, 0x18
xor r9d, dword [r15 + rax*4 + 0xc00]
mov rax, rdx
shr rax, 0x1e
and eax, 0x3fc
xor ecx, dword [rax + r15 + 0x1000]
mov rax, r12
shr rax, 0x1e
and eax, 0x3fc
xor ebp, dword [rax + r15 + 0x1000]
mov rax, r13
shr rax, 0x1e
and eax, 0x3fc
xor ebx, dword [rax + r15 + 0x1000]
mov rax, r10
shr rax, 0x1e
and eax, 0x3fc
xor esi, dword [rax + r15 + 0x1000]
mov rax, r11
shr rax, 0x1e
and eax, 0x3fc
xor r9d, dword [rax + r15 + 0x1000]
mov rax, rdx
shr rax, 0x26
and eax, 0x3fc
xor ecx, dword [rax + r15 + 0x1400]
mov rax, r12
shr rax, 0x26
and eax, 0x3fc
xor ebp, dword [rax + r15 + 0x1400]
mov rax, r13
shr rax, 0x26
and eax, 0x3fc
xor ebx, dword [rax + r15 + 0x1400]
mov rax, r10
shr rax, 0x26
and eax, 0x3fc
xor esi, dword [rax + r15 + 0x1400]
mov rax, r11
shr rax, 0x26
and eax, 0x3fc
xor r9d, dword [rax + r15 + 0x1400]
mov rax, rdx
shr rax, 0x2e
and eax, 0x3fc
xor ecx, dword [rax + r15 + 0x1800]
mov rax, r12
shr rax, 0x2e
and eax, 0x3fc
xor ebp, dword [rax + r15 + 0x1800]
mov rax, r13
shr rax, 0x2e
and eax, 0x3fc
xor ebx, dword [rax + r15 + 0x1800]
mov rax, r10
shr rax, 0x2e
and eax, 0x3fc
xor esi, dword [rax + r15 + 0x1800]
mov rax, r11
shr rax, 0x2e
and eax, 0x3fc
xor r9d, dword [rax + r15 + 0x1800]
shr rdx, 0x38
xor ecx, dword [r15 + rdx*4 + 0x1c00]
shr r12, 0x38
xor ebp, dword [r15 + r12*4 + 0x1c00]
shr r13, 0x38
xor ebx, dword [r15 + r13*4 + 0x1c00]
shr r10, 0x38
xor esi, dword [r15 + r10*4 + 0x1c00]
mov r10, qword [rsp + 0x20]
shr r11, 0x38
xor r9d, dword [r15 + r11*4 + 0x1c00]
add r14, 0x28
dec r10
jne 0x140087c80
mov r14, qword [rsp + 0x10]
add r14, qword [rsp]
mov eax, ebp
mov r11d, r9d
mov r9d, ebx
mov esi, esi
mov rdi, qword [rsp + 0x18]
mov r8, qword [rsp + 8]
jmp 0x140087f47
xor eax, eax
xor esi, esi
xor r11d, r11d
mov ecx, ecx
xor rcx, qword [r14]
movzx edx, cl
shr rcx, 8
lea r10, [0x1400cef90]
mov edx, dword [r10 + rdx*4]
xor rdx, rcx
movzx ecx, dl
shr rdx, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rdx
movzx edx, cl
shr rcx, 8
mov edx, dword [r10 + rdx*4]
xor rdx, rcx
movzx ecx, dl
shr rdx, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rdx
movzx edx, cl
shr rcx, 8
mov edx, dword [r10 + rdx*4]
xor rdx, rcx
movzx ecx, dl
shr rdx, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rdx
movzx edx, cl
shr rcx, 8
mov edx, dword [r10 + rdx*4]
xor rdx, rcx
movzx ecx, dl
shr rdx, 8
xor edx, dword [r10 + rcx*4]
xor rax, qword [r14 + 8]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [r10 + rax*4]
xor rax, rdx
movzx ecx, al
shr rax, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r10 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r10 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r10 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
xor eax, dword [r10 + rcx*4]
xor r9, qword [r14 + 0x10]
xor rax, r9
movzx ecx, al
shr rax, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r10 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r10 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r10 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
xor ecx, dword [r10 + rax*4]
sub rdi, r8
xor rsi, qword [r14 + 0x18]
xor rcx, rsi
movzx eax, cl
shr rcx, 8
mov eax, dword [r10 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r10 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r10 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r10 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
xor eax, dword [r10 + rcx*4]
xor r11, qword [r14 + 0x20]
xor rax, r11
movzx ecx, al
shr rax, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r10 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r10 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r10 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r10 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
xor ecx, dword [r10 + rax*4]
add r14, 0x28
cmp rdi, 8
jb 0x140088239
lea rax, [0x1400cef90]
nop dword [rax + rax]
mov edx, ecx
xor cl, byte [r14]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [r14 + 1]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [r14 + 2]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [r14 + 3]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [r14 + 4]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
add rdi, 0xfffffffffffffff8
mov ecx, edx
xor dl, byte [r14 + 5]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
shr edx, 8
xor cl, byte [r14 + 6]
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
shr ecx, 8
xor dl, byte [r14 + 7]
add r14, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
cmp rdi, 7
ja 0x1400881b0
test rdi, rdi
je 0x14008824f
test dil, 1
jne 0x140088253
mov r9, rdi
cmp rdi, 1
jne 0x140088277
jmp 0x1400882ba
mov eax, ecx
jmp 0x1400882ba
lea r9, [rdi - 1]
mov eax, ecx
shr eax, 8
xor cl, byte [r14]
inc r14
movzx ecx, cl
lea rdx, [0x1400cef90]
xor eax, dword [rdx + rcx*4]
mov ecx, eax
cmp rdi, 1
je 0x1400882ba
xor r8d, r8d
lea r10, [0x1400cef90]
mov eax, ecx
nop word cs:[rax + rax]
mov ecx, eax
shr ecx, 8
xor al, byte [r14 + r8]
movzx eax, al
xor ecx, dword [r10 + rax*4]
mov eax, ecx
shr eax, 8
xor cl, byte [r14 + r8 + 1]
movzx ecx, cl
xor eax, dword [r10 + rcx*4]
add r8, 2
cmp r9, r8
jne 0x140088290
not eax
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret