Function at 0x1400903a0
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
test rdx, rdx
je 0x140090569
mov rsi, r8
mov rdi, rdx
not ecx
cmp r8, 0x2f
jb 0x140090b09
test dil, 7
je 0x140090575
mov edx, ecx
shr edx, 8
xor cl, byte [rdi]
movzx r8d, cl
lea rax, [0x1400d6ee0]
mov ecx, edx
xor ecx, dword [rax + r8*4]
lea r8, [rdi + 1]
mov rdx, rsi
dec rdx
setne r9b
test r8b, 7
setne r10b
and r10b, r9b
cmp r10b, 1
jne 0x140090570
mov edx, ecx
shr edx, 8
xor cl, byte [rdi + 1]
movzx r8d, cl
mov ecx, edx
xor ecx, dword [rax + r8*4]
lea r8, [rdi + 2]
mov rdx, rsi
add rdx, 0xfffffffffffffffe
setne r9b
test r8b, 7
setne r10b
and r10b, r9b
cmp r10b, 1
jne 0x140090570
mov edx, ecx
shr edx, 8
xor cl, byte [rdi + 2]
movzx r8d, cl
mov ecx, edx
xor ecx, dword [rax + r8*4]
lea r8, [rdi + 3]
mov rdx, rsi
add rdx, 0xfffffffffffffffd
setne r9b
test r8b, 7
setne r10b
and r10b, r9b
cmp r10b, 1
jne 0x140090570
mov edx, ecx
shr edx, 8
xor cl, byte [rdi + 3]
movzx r8d, cl
mov ecx, edx
xor ecx, dword [rax + r8*4]
lea r8, [rdi + 4]
mov rdx, rsi
add rdx, 0xfffffffffffffffc
setne r9b
test r8b, 7
setne r10b
and r10b, r9b
cmp r10b, 1
jne 0x140090570
mov edx, ecx
shr edx, 8
xor cl, byte [rdi + 4]
movzx r8d, cl
mov ecx, edx
xor ecx, dword [rax + r8*4]
lea r8, [rdi + 5]
mov rdx, rsi
add rdx, 0xfffffffffffffffb
setne r9b
test r8b, 7
setne r10b
and r10b, r9b
cmp r10b, 1
jne 0x140090570
mov edx, ecx
shr edx, 8
xor cl, byte [rdi + 5]
movzx r8d, cl
mov ecx, edx
xor ecx, dword [rax + r8*4]
lea r8, [rdi + 6]
mov rdx, rsi
add rdx, 0xfffffffffffffffa
setne r9b
test r8b, 7
setne r10b
and r10b, r9b
cmp r10b, 1
jne 0x140090570
mov edx, ecx
shr edx, 8
xor cl, byte [rdi + 6]
movzx r8d, cl
mov ecx, edx
xor ecx, dword [rax + r8*4]
lea r8, [rdi + 7]
mov rdx, rsi
add rdx, 0xfffffffffffffff9
setne r9b
test r8b, 7
setne r10b
and r10b, r9b
cmp r10b, 1
jne 0x140090570
add rsi, 0xfffffffffffffff8
mov edx, ecx
shr edx, 8
xor cl, byte [rdi + 7]
add rdi, 8
mov r8, rdi
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
jmp 0x140090578
xor eax, eax
jmp 0x140090c1c
mov rsi, rdx
jmp 0x140090578
mov r8, rdi
movabs rdx, 0xcccccccccccccccd
mov rax, rsi
mul rdx
mov rax, rdx
shr rax, 5
lea rdx, [rax*8]
lea rbx, [rdx + rdx*4]
mov r9, rax
dec r9
je 0x1400908ab
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], rsi
lea rax, [rax + rax*4]
lea rax, [rax*8 - 0x28]
mov qword [rsp + 8], rax
lea r11, [0x1400d72e0]
mov qword [rsp + 0x18], r8
xor r15d, r15d
xor edx, edx
xor ebx, ebx
xor eax, eax
nop word [rax + rax]
mov qword [rsp], r8
mov qword [rsp + 0x30], r9
mov r8, qword [r8]
mov qword [rsp + 0x28], r8
xor ecx, r8d
movzx r8d, cl
movzx esi, ch
mov ebp, dword [r11 + rsi*4 + 0x400]
xor ebp, dword [r11 + r8*4]
mov r8d, ecx
shr r8d, 0xe
and r8d, 0x3fc
xor ebp, dword [r8 + r11 + 0x800]
shr ecx, 0x18
xor ebp, dword [r11 + rcx*4 + 0xc00]
mov rcx, qword [rsp]
mov r12, qword [rcx + 8]
xor edx, r12d
movzx ecx, dl
movzx esi, dh
mov r13d, dword [r11 + rsi*4 + 0x400]
xor r13d, dword [r11 + rcx*4]
mov ecx, edx
shr ecx, 0xe
and ecx, 0x3fc
xor r13d, dword [rcx + r11 + 0x800]
shr edx, 0x18
xor r13d, dword [r11 + rdx*4 + 0xc00]
mov rcx, qword [rsp]
mov r9, qword [rcx + 0x10]
xor ebx, r9d
mov rcx, qword [rsp]
mov r10, qword [rcx + 0x18]
mov rdx, r15
xor edx, r10d
mov rcx, qword [rsp]
mov r14, qword [rcx + 0x20]
xor eax, r14d
movzx ecx, bl
movzx r8d, dl
movzx edi, al
movzx esi, bh
mov esi, dword [r11 + rsi*4 + 0x400]
xor esi, dword [r11 + rcx*4]
movzx ecx, dh
mov r15d, dword [r11 + rcx*4 + 0x400]
xor r15d, dword [r11 + r8*4]
movzx ecx, ah
mov r8d, dword [r11 + rcx*4 + 0x400]
xor r8d, dword [r11 + rdi*4]
mov ecx, ebx
shr ecx, 0xe
and ecx, 0x3fc
xor esi, dword [rcx + r11 + 0x800]
mov ecx, edx
shr ecx, 0xe
and ecx, 0x3fc
xor r15d, dword [rcx + r11 + 0x800]
mov ecx, eax
shr ecx, 0xe
and ecx, 0x3fc
xor r8d, dword [rcx + r11 + 0x800]
shr ebx, 0x18
xor esi, dword [r11 + rbx*4 + 0xc00]
shr edx, 0x18
xor r15d, dword [r11 + rdx*4 + 0xc00]
shr eax, 0x18
xor r8d, dword [r11 + rax*4 + 0xc00]
mov rcx, qword [rsp + 0x28]
mov rax, rcx
shr rax, 0x20
movzx eax, al
xor ebp, dword [r11 + rax*4 + 0x1000]
mov rax, r12
shr rax, 0x20
movzx eax, al
xor r13d, dword [r11 + rax*4 + 0x1000]
mov rax, r9
shr rax, 0x20
movzx eax, al
xor esi, dword [r11 + rax*4 + 0x1000]
mov rax, r10
shr rax, 0x20
movzx eax, al
xor r15d, dword [r11 + rax*4 + 0x1000]
mov rax, r14
shr rax, 0x20
movzx eax, al
xor r8d, dword [r11 + rax*4 + 0x1000]
mov rax, rcx
shr rax, 0x28
movzx eax, al
xor ebp, dword [r11 + rax*4 + 0x1400]
mov rax, r12
shr rax, 0x28
movzx eax, al
xor r13d, dword [r11 + rax*4 + 0x1400]
mov rax, r9
shr rax, 0x28
movzx eax, al
xor esi, dword [r11 + rax*4 + 0x1400]
mov rax, r10
shr rax, 0x28
movzx eax, al
xor r15d, dword [r11 + rax*4 + 0x1400]
mov rax, r14
shr rax, 0x28
movzx eax, al
xor r8d, dword [r11 + rax*4 + 0x1400]
mov rax, rcx
shr rax, 0x30
movzx eax, al
xor ebp, dword [r11 + rax*4 + 0x1800]
mov rax, r12
shr rax, 0x30
movzx eax, al
xor r13d, dword [r11 + rax*4 + 0x1800]
mov rax, r9
shr rax, 0x30
movzx eax, al
xor esi, dword [r11 + rax*4 + 0x1800]
mov rax, r10
shr rax, 0x30
movzx eax, al
xor r15d, dword [r11 + rax*4 + 0x1800]
mov rax, r14
shr rax, 0x30
movzx eax, al
xor r8d, dword [r11 + rax*4 + 0x1800]
mov rax, rcx
shr rax, 0x38
mov ecx, ebp
xor ecx, dword [r11 + rax*4 + 0x1c00]
shr r12, 0x38
mov edx, r13d
xor edx, dword [r11 + r12*4 + 0x1c00]
shr r9, 0x38
mov ebx, esi
xor ebx, dword [r11 + r9*4 + 0x1c00]
mov r9, qword [rsp + 0x30]
shr r10, 0x38
xor r15d, dword [r11 + r10*4 + 0x1c00]
shr r14, 0x38
mov eax, r8d
mov r8, qword [rsp]
xor eax, dword [r11 + r14*4 + 0x1c00]
add r8, 0x28
dec r9
jne 0x1400905e0
mov rdi, qword [rsp + 0x18]
add rdi, qword [rsp + 8]
mov edx, edx
mov r10d, eax
mov r8d, ebx
mov r11d, r15d
mov rsi, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x10]
jmp 0x1400908b9
xor edx, edx
xor r11d, r11d
xor r10d, r10d
mov rdi, r8
xor r8d, r8d
mov eax, ecx
xor rax, qword [rdi]
movzx ecx, al
shr rax, 8
lea r9, [0x1400d6ee0]
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
xor ecx, dword [r9 + rax*4]
xor rdx, qword [rdi + 8]
xor rcx, rdx
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
xor eax, dword [r9 + rcx*4]
xor r8, qword [rdi + 0x10]
xor rax, r8
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
xor ecx, dword [r9 + rax*4]
sub rsi, rbx
xor r11, qword [rdi + 0x18]
xor rcx, r11
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
xor eax, dword [r9 + rcx*4]
xor r10, qword [rdi + 0x20]
xor rax, r10
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [r9 + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [r9 + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
xor ecx, dword [r9 + rax*4]
add rdi, 0x28
cmp rsi, 8
jb 0x140090b9d
lea rax, [0x1400d6ee0]
nop word [rax + rax]
mov edx, ecx
xor cl, byte [rdi]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [rdi + 1]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [rdi + 2]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [rdi + 3]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [rdi + 4]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
add rsi, 0xfffffffffffffff8
mov ecx, edx
xor dl, byte [rdi + 5]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
shr edx, 8
xor cl, byte [rdi + 6]
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
shr ecx, 8
xor dl, byte [rdi + 7]
add rdi, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
cmp rsi, 7
ja 0x140090b20
test rsi, rsi
je 0x140090bb3
test sil, 1
jne 0x140090bb7
mov rdx, rsi
cmp rsi, 1
jne 0x140090bdb
jmp 0x140090c1a
mov eax, ecx
jmp 0x140090c1a
lea rdx, [rsi - 1]
mov eax, ecx
shr eax, 8
xor cl, byte [rdi]
inc rdi
movzx ecx, cl
lea r8, [0x1400d6ee0]
xor eax, dword [r8 + rcx*4]
mov ecx, eax
cmp rsi, 1
je 0x140090c1a
xor r8d, r8d
lea r9, [0x1400d6ee0]
mov eax, ecx
nop word [rax + rax]
mov ecx, eax
shr ecx, 8
xor al, byte [rdi + r8]
movzx eax, al
xor ecx, dword [r9 + rax*4]
mov eax, ecx
shr eax, 8
xor cl, byte [rdi + r8 + 1]
movzx ecx, cl
xor eax, dword [r9 + rcx*4]
add r8, 2
cmp rdx, r8
jne 0x140090bf0
not eax
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret