Function at 0x14001a1e0
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x18
test rdx, rdx
mov r9, rdx
je 0x14001abb1
cmp r8, 0x2e
not ecx
jbe 0x14001a801
test dl, 7
je 0x14001abf4
lea r13, [0x140028180]
jmp 0x14001a22a
test r9b, 7
je 0x14001abb5
add r9, 1
mov eax, ecx
xor cl, byte [r9 - 1]
shr eax, 8
movzx ecx, cl
xor eax, dword [r13 + rcx*4]
sub r8, 1
mov ecx, eax
jne 0x14001a220
mov qword [rsp + 8], r9
mov r15, 0xffffffffffffffff
mov r14, 0xffffffffffffffff
xor eax, eax
xor r10d, r10d
xor r11d, r11d
lea rdx, [0x140026180]
xor ebx, ebx
nop dword [rax + rax]
mov esi, ecx
mov eax, eax
xor rsi, qword [r9]
mov ebx, ebx
xor rax, qword [r9 + 0x20]
mov r10d, r10d
mov r11d, r11d
xor rbx, qword [r9 + 8]
add r9, 0x28
xor r10, qword [r9 - 0x10]
movzx ecx, sil
xor r11, qword [r9 - 0x18]
mov rdi, rax
mov rax, rsi
mov ecx, dword [rdx + rcx*4]
shr rax, 0x38
xor ecx, dword [rdx + rax*4 + 0x1c00]
mov rax, rsi
mov rbp, r10
mov r10, rbx
movzx eax, ah
shr r10, 0x38
xor ecx, dword [rdx + rax*4 + 0x400]
mov rax, rsi
mov r12, r11
shr rax, 0x10
movzx eax, al
xor ecx, dword [rdx + rax*4 + 0x800]
mov rax, rsi
shr rax, 0x18
movzx eax, al
xor ecx, dword [rdx + rax*4 + 0xc00]
mov rax, rsi
shr rax, 0x20
movzx eax, al
xor ecx, dword [rdx + rax*4 + 0x1000]
mov rax, rsi
shr rsi, 0x30
shr rax, 0x28
movzx esi, sil
movzx eax, al
xor ecx, dword [rdx + rax*4 + 0x1400]
movzx eax, bl
mov eax, dword [rdx + rax*4]
xor eax, dword [rdx + r10*4 + 0x1c00]
mov r10, rbx
shr r10, 0x10
xor ecx, dword [rdx + rsi*4 + 0x1800]
movzx esi, bh
movzx r10d, r10b
xor eax, dword [rdx + rsi*4 + 0x400]
mov rsi, rdi
xor eax, dword [rdx + r10*4 + 0x800]
mov r10, rbx
shr r10, 0x18
movzx r10d, r10b
xor eax, dword [rdx + r10*4 + 0xc00]
mov r10, rbx
shr r10, 0x20
movzx r10d, r10b
xor eax, dword [rdx + r10*4 + 0x1000]
mov r10, rbx
shr rbx, 0x30
shr r10, 0x28
movzx ebx, bl
movzx r10d, r10b
xor eax, dword [rdx + r10*4 + 0x1400]
movzx r10d, r11b
xor eax, dword [rdx + rbx*4 + 0x1800]
mov ebx, eax
mov rax, r11
mov r11d, dword [rdx + r10*4]
movzx r10d, bpl
shr rax, 0x38
mov r10d, dword [rdx + r10*4]
shr rsi, 0x38
xor r11d, dword [rdx + rax*4 + 0x1c00]
mov rax, r12
movzx eax, ah
xor r11d, dword [rdx + rax*4 + 0x400]
mov rax, r12
shr rax, 0x10
movzx eax, al
xor r11d, dword [rdx + rax*4 + 0x800]
mov rax, r12
shr rax, 0x18
movzx eax, al
xor r11d, dword [rdx + rax*4 + 0xc00]
mov rax, r12
shr rax, 0x20
movzx eax, al
xor r11d, dword [rdx + rax*4 + 0x1000]
mov rax, r12
shr r12, 0x30
shr rax, 0x28
movzx r12d, r12b
movzx eax, al
xor r11d, dword [rdx + rax*4 + 0x1400]
mov rax, rbp
shr rax, 0x38
xor r11d, dword [rdx + r12*4 + 0x1800]
xor r10d, dword [rdx + rax*4 + 0x1c00]
mov rax, rbp
movzx eax, ah
xor r10d, dword [rdx + rax*4 + 0x400]
mov rax, rbp
shr rax, 0x10
movzx eax, al
xor r10d, dword [rdx + rax*4 + 0x800]
mov rax, rbp
shr rax, 0x18
movzx eax, al
xor r10d, dword [rdx + rax*4 + 0xc00]
mov rax, rbp
shr rax, 0x20
movzx eax, al
xor r10d, dword [rdx + rax*4 + 0x1000]
mov rax, rbp
shr rbp, 0x30
shr rax, 0x28
movzx ebp, bpl
movzx eax, al
xor r10d, dword [rdx + rax*4 + 0x1400]
movzx eax, dil
mov eax, dword [rdx + rax*4]
xor eax, dword [rdx + rsi*4 + 0x1c00]
xor r10d, dword [rdx + rbp*4 + 0x1800]
mov ebp, eax
mov rax, rdi
movzx esi, ah
mov eax, dword [rdx + rsi*4 + 0x400]
mov rsi, rdi
shr rsi, 0x10
movzx esi, sil
xor eax, ebp
xor eax, dword [rdx + rsi*4 + 0x800]
mov rsi, rdi
shr rsi, 0x18
movzx esi, sil
xor eax, dword [rdx + rsi*4 + 0xc00]
mov rsi, rdi
shr rsi, 0x20
movzx esi, sil
xor eax, dword [rdx + rsi*4 + 0x1000]
mov rsi, rdi
shr rdi, 0x30
shr rsi, 0x28
movzx edi, dil
movzx esi, sil
xor eax, dword [rdx + rsi*4 + 0x1400]
xor eax, dword [rdx + rdi*4 + 0x1800]
sub r14, 1
jne 0x14001a270
mov rdi, qword [rsp + 8]
lea rdx, [r15 + r15*4]
mov r14d, ebx
lea r9, [rdi + rdx*8]
xor rcx, qword [r9]
xor r14, qword [r9 + 8]
movzx edx, cl
shr rcx, 8
mov edx, dword [r13 + rdx*4]
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
xor r14, rdx
movzx edx, r14b
shr r14, 8
mov edx, dword [r13 + rdx*4]
xor rdx, r14
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
xor r11, qword [r9 + 0x10]
mov rcx, rdx
movzx edx, dl
xor r10, qword [r9 + 0x18]
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
xor r11, rdx
movzx edx, r11b
shr r11, 8
mov edx, dword [r13 + rdx*4]
xor rdx, r11
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
xor r10, rdx
movzx edx, r10b
shr r10, 8
mov edx, dword [r13 + rdx*4]
xor rdx, r10
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
xor rax, qword [r9 + 0x20]
add r9, 0x28
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov edx, dword [r13 + rdx*4]
shr rcx, 8
xor rdx, rcx
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [r13 + rdx*4]
xor rax, rdx
mov rdx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rdx, 8
xor rax, rdx
mov rdx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rdx, 8
xor rax, rdx
mov rdx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rdx, 8
xor rax, rdx
mov rdx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rdx, 8
xor rax, rdx
mov rdx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rdx, 8
xor rax, rdx
mov rcx, rax
movzx eax, al
mov edx, dword [r13 + rax*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
shr rcx, 8
xor ecx, dword [r13 + rdx*4]
cmp r8, 7
jbe 0x14001aaeb
lea rdx, [0x140028180]
mov r10d, ecx
xor cl, byte [r9]
shr r10d, 8
lea r11, [r8 - 8]
movzx ecx, cl
xor r10d, dword [rdx + rcx*4]
mov ecx, r10d
xor cl, byte [r9 + 1]
mov eax, r10d
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r9 + 2]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r9 + 3]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r9 + 4]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r9 + 5]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov r10d, eax
xor al, byte [r9 + 6]
shr r10d, 8
movzx eax, al
xor r10d, dword [rdx + rax*4]
mov ecx, r10d
xor r10b, byte [r9 + 7]
shr ecx, 8
movzx r10d, r10b
xor ecx, dword [rdx + r10*4]
cmp r11, 7
jbe 0x14001aade
mov r10d, ecx
xor cl, byte [r9 + 8]
shr r10d, 8
movzx ecx, cl
xor r10d, dword [rdx + rcx*4]
mov ecx, r10d
xor cl, byte [r9 + 9]
mov eax, r10d
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r9 + 0xa]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r9 + 0xb]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r9 + 0xc]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r9 + 0xd]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov r10d, eax
xor al, byte [r9 + 0xe]
shr r10d, 8
movzx eax, al
xor r10d, dword [rdx + rax*4]
lea rax, [r8 - 0x10]
mov ecx, r10d
xor r10b, byte [r9 + 0xf]
shr ecx, 8
movzx r10d, r10b
xor ecx, dword [rdx + r10*4]
cmp rax, 7
jbe 0x14001aade
mov r10d, ecx
xor cl, byte [r9 + 0x10]
shr r10d, 8
movzx ecx, cl
xor r10d, dword [rdx + rcx*4]
mov ecx, r10d
xor cl, byte [r9 + 0x11]
mov eax, r10d
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r9 + 0x12]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r9 + 0x13]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r9 + 0x14]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r9 + 0x15]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov r10d, eax
xor al, byte [r9 + 0x16]
shr r10d, 8
movzx eax, al
xor r10d, dword [rdx + rax*4]
lea rax, [r8 - 0x18]
mov ecx, r10d
xor r10b, byte [r9 + 0x17]
shr ecx, 8
movzx r10d, r10b
xor ecx, dword [rdx + r10*4]
cmp rax, 7
jbe 0x14001aade
mov r10d, ecx
xor cl, byte [r9 + 0x18]
shr r10d, 8
movzx eax, cl
mov ecx, dword [rdx + rax*4]
xor ecx, r10d
mov eax, ecx
xor cl, byte [r9 + 0x19]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r9 + 0x1a]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r9 + 0x1b]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r9 + 0x1c]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r9 + 0x1d]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov r10d, eax
xor al, byte [r9 + 0x1e]
shr r10d, 8
movzx eax, al
xor r10d, dword [rdx + rax*4]
lea rax, [r8 - 0x20]
mov ecx, r10d
xor r10b, byte [r9 + 0x1f]
shr ecx, 8
movzx r10d, r10b
xor ecx, dword [rdx + r10*4]
cmp rax, 7
jbe 0x14001aade
mov r10d, ecx
xor cl, byte [r9 + 0x20]
shr r10d, 8
movzx eax, cl
mov ecx, dword [rdx + rax*4]
xor ecx, r10d
mov eax, ecx
xor cl, byte [r9 + 0x21]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r9 + 0x22]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r9 + 0x23]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r9 + 0x24]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r9 + 0x25]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov r10d, eax
xor al, byte [r9 + 0x26]
shr r10d, 8
movzx eax, al
xor r10d, dword [rdx + rax*4]
mov ecx, r10d
xor r10b, byte [r9 + 0x27]
shr ecx, 8
movzx r10d, r10b
xor ecx, dword [rdx + r10*4]
shr r11, 3
and r8d, 7
lea r9, [r9 + r11*8 + 8]
test r8, r8
je 0x14001ab9c
lea rdx, [0x140028180]
mov eax, ecx
xor cl, byte [r9]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
cmp r8, 1
mov ecx, eax
je 0x14001ab9c
xor cl, byte [r9 + 1]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
cmp r8, 2
mov ecx, eax
je 0x14001ab9c
xor cl, byte [r9 + 2]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
cmp r8, 3
mov ecx, eax
je 0x14001ab9c
xor cl, byte [r9 + 3]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
cmp r8, 4
mov ecx, eax
je 0x14001ab9c
xor cl, byte [r9 + 4]
mov r10d, eax
shr r10d, 8
movzx eax, cl
mov ecx, dword [rdx + rax*4]
xor ecx, r10d
cmp r8, 5
je 0x14001ab9c
mov r10d, ecx
xor cl, byte [r9 + 5]
shr r10d, 8
movzx eax, cl
mov ecx, dword [rdx + rax*4]
xor ecx, r10d
cmp r8, 6
je 0x14001ab9c
mov r8d, ecx
xor cl, byte [r9 + 6]
shr r8d, 8
movzx eax, cl
mov ecx, dword [rdx + rax*4]
xor ecx, r8d
mov eax, ecx
not eax
add rsp, 0x18
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
jmp 0x14001aba0
movabs rax, 0xcccccccccccccccd
mul r8
shr rdx, 5
lea rax, [rdx + rdx*4]
lea r14, [rdx - 1]
shl rax, 3
sub r8, rax
test r14, r14
je 0x14001abe7
mov r15, r14
mov qword [rsp + 8], r9
jmp 0x14001a25a
xor eax, eax
xor r10d, r10d
xor r11d, r11d
jmp 0x14001a51d
movabs rax, 0xcccccccccccccccd
mul r8
lea r13, [0x140028180]
mov rax, rdx
shr rax, 5
lea r14, [rax - 1]
lea rax, [rax + rax*4]
shl rax, 3
sub r8, rax
jmp 0x14001abd5