Function at 0x14000a940
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
mov rsi, rdx
test rdx, rdx
je 0x14000b333
not ecx
lea r13, [0x140029860]
cmp r8, 0x2e
ja 0x14000acf8
cmp r8, 7
jbe 0x14000ac36
mov r9d, ecx
lea rdx, [0x140029860]
lea r10, [r8 - 8]
xor cl, byte [rsi]
movzx ecx, cl
shr r9d, 8
xor r9d, dword [rdx + rcx*4]
mov ecx, r9d
xor cl, byte [rsi + 1]
mov eax, r9d
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [rsi + 2]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [rsi + 3]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [rsi + 4]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [rsi + 5]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov r9d, eax
xor al, byte [rsi + 6]
movzx eax, al
shr r9d, 8
xor r9d, dword [rdx + rax*4]
mov ecx, r9d
xor r9b, byte [rsi + 7]
movzx r9d, r9b
shr ecx, 8
xor ecx, dword [rdx + r9*4]
cmp r10, 7
jbe 0x14000ac29
mov r9d, ecx
xor cl, byte [rsi + 8]
movzx ecx, cl
shr r9d, 8
xor r9d, dword [rdx + rcx*4]
mov ecx, r9d
xor cl, byte [rsi + 9]
mov eax, r9d
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [rsi + 0xa]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [rsi + 0xb]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [rsi + 0xc]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [rsi + 0xd]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov r9d, eax
xor al, byte [rsi + 0xe]
movzx eax, al
shr r9d, 8
xor r9d, dword [rdx + rax*4]
lea rax, [r8 - 0x10]
mov ecx, r9d
xor r9b, byte [rsi + 0xf]
movzx r9d, r9b
shr ecx, 8
xor ecx, dword [rdx + r9*4]
cmp rax, 7
jbe 0x14000ac29
mov r9d, ecx
xor cl, byte [rsi + 0x10]
movzx ecx, cl
shr r9d, 8
xor r9d, dword [rdx + rcx*4]
mov ecx, r9d
xor cl, byte [rsi + 0x11]
mov eax, r9d
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [rsi + 0x12]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [rsi + 0x13]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [rsi + 0x14]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [rsi + 0x15]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov r9d, eax
xor al, byte [rsi + 0x16]
movzx eax, al
shr r9d, 8
xor r9d, dword [rdx + rax*4]
lea rax, [r8 - 0x18]
mov ecx, r9d
xor r9b, byte [rsi + 0x17]
movzx r9d, r9b
shr ecx, 8
xor ecx, dword [rdx + r9*4]
cmp rax, 7
jbe 0x14000ac29
mov r9d, ecx
xor cl, byte [rsi + 0x18]
movzx ecx, cl
shr r9d, 8
xor r9d, dword [rdx + rcx*4]
mov ecx, r9d
xor cl, byte [rsi + 0x19]
mov eax, r9d
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [rsi + 0x1a]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [rsi + 0x1b]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [rsi + 0x1c]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [rsi + 0x1d]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov r9d, eax
xor al, byte [rsi + 0x1e]
movzx eax, al
shr r9d, 8
xor r9d, dword [rdx + rax*4]
lea rax, [r8 - 0x20]
mov ecx, r9d
xor r9b, byte [rsi + 0x1f]
movzx r9d, r9b
shr ecx, 8
xor ecx, dword [rdx + r9*4]
cmp rax, 7
jbe 0x14000ac29
mov r9d, ecx
xor cl, byte [rsi + 0x20]
movzx ecx, cl
shr r9d, 8
xor r9d, dword [rdx + rcx*4]
mov ecx, r9d
xor cl, byte [rsi + 0x21]
mov eax, r9d
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [rsi + 0x22]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [rsi + 0x23]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [rsi + 0x24]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [rsi + 0x25]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov r9d, eax
xor al, byte [rsi + 0x26]
movzx eax, al
shr r9d, 8
xor r9d, dword [rdx + rax*4]
mov ecx, r9d
xor r9b, byte [rsi + 0x27]
movzx r9d, r9b
shr ecx, 8
xor ecx, dword [rdx + r9*4]
shr r10, 3
and r8d, 7
lea rsi, [rsi + r10*8 + 8]
test r8, r8
je 0x14000ace0
mov eax, ecx
xor cl, byte [rsi]
lea rdx, [0x140029860]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
cmp r8, 1
je 0x14000ace0
xor cl, byte [rsi + 1]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov ecx, eax
cmp r8, 2
je 0x14000ace0
xor cl, byte [rsi + 2]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov ecx, eax
cmp r8, 3
je 0x14000ace0
xor cl, byte [rsi + 3]
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
mov ecx, eax
cmp r8, 4
je 0x14000ace0
xor cl, byte [rsi + 4]
mov r9d, eax
movzx eax, cl
shr r9d, 8
mov ecx, dword [rdx + rax*4]
xor ecx, r9d
sub r8, 5
je 0x14000ace0
mov r9d, ecx
xor cl, byte [rsi + 5]
movzx eax, cl
shr r9d, 8
mov ecx, dword [rdx + rax*4]
xor ecx, r9d
cmp r8, 1
je 0x14000ace0
mov r8d, ecx
xor cl, byte [rsi + 6]
movzx eax, cl
shr r8d, 8
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
test sil, 7
je 0x14000b2f7
add rsi, 1
mov eax, ecx
xor cl, byte [rsi - 1]
shr eax, 8
movzx ecx, cl
xor eax, dword [r13 + rcx*4]
mov ecx, eax
sub r8, 1
jne 0x14000acf8
mov qword [rsp + 8], 0xffffffffffffffff
mov r15, qword [rsp + 8]
mov r14, rsi
xor r9d, r9d
xor r10d, r10d
xor r11d, r11d
xor eax, eax
lea rdx, [0x140027860]
nop dword [rax]
mov ebx, ecx
xor rbx, qword [r14]
mov edi, r9d
mov r12d, r11d
mov r9, rbx
movzx ecx, bl
mov eax, eax
xor rax, qword [r14 + 8]
shr r9, 0x38
mov ecx, dword [rdx + rcx*4]
mov ebp, r10d
mov r10, rax
shr r10, 0x38
xor r12, qword [r14 + 0x10]
xor rbp, qword [r14 + 0x18]
add r14, 0x28
xor ecx, dword [rdx + r9*4 + 0x1c00]
mov r9, rbx
xor rdi, qword [r14 - 8]
mov r11d, ecx
movzx ecx, bh
shr r9, 0x10
mov ecx, dword [rdx + rcx*4 + 0x400]
movzx r9d, r9b
xor ecx, r11d
xor ecx, dword [rdx + r9*4 + 0x800]
mov r9, rbx
shr r9, 0x18
movzx r9d, r9b
xor ecx, dword [rdx + r9*4 + 0xc00]
mov r9, rbx
shr r9, 0x20
movzx r9d, r9b
xor ecx, dword [rdx + r9*4 + 0x1000]
mov r9, rbx
shr rbx, 0x30
shr r9, 0x28
movzx ebx, bl
movzx r9d, r9b
xor ecx, dword [rdx + r9*4 + 0x1400]
movzx r9d, al
xor ecx, dword [rdx + rbx*4 + 0x1800]
movzx ebx, ah
mov r9d, dword [rdx + r9*4]
xor r9d, dword [rdx + r10*4 + 0x1c00]
mov r10, rax
shr r10, 0x10
xor r9d, dword [rdx + rbx*4 + 0x400]
mov rbx, r12
movzx r10d, r10b
movzx ebx, bh
xor r9d, dword [rdx + r10*4 + 0x800]
mov r10, rax
shr r10, 0x18
movzx r10d, r10b
xor r9d, dword [rdx + r10*4 + 0xc00]
mov r10, rax
shr r10, 0x20
movzx r10d, r10b
xor r9d, dword [rdx + r10*4 + 0x1000]
mov r10, rax
shr rax, 0x30
shr r10, 0x28
movzx eax, al
movzx r10d, r10b
xor r9d, dword [rdx + r10*4 + 0x1400]
xor r9d, dword [rdx + rax*4 + 0x1800]
movzx r10d, r12b
mov eax, r9d
mov r9, r12
mov r11d, dword [rdx + r10*4]
movzx r10d, bpl
shr r9, 0x38
mov r10d, dword [rdx + r10*4]
xor r11d, dword [rdx + r9*4 + 0x1c00]
mov r9, r12
xor r11d, dword [rdx + rbx*4 + 0x400]
mov rbx, rbp
shr r9, 0x10
movzx ebx, bh
movzx r9d, r9b
xor r11d, dword [rdx + r9*4 + 0x800]
mov r9, r12
shr r9, 0x18
movzx r9d, r9b
xor r11d, dword [rdx + r9*4 + 0xc00]
mov r9, r12
shr r9, 0x20
movzx r9d, r9b
xor r11d, dword [rdx + r9*4 + 0x1000]
mov r9, r12
shr r12, 0x30
shr r9, 0x28
movzx r12d, r12b
movzx r9d, r9b
xor r11d, dword [rdx + r9*4 + 0x1400]
mov r9, rbp
xor r11d, dword [rdx + r12*4 + 0x1800]
shr r9, 0x38
xor r10d, dword [rdx + r9*4 + 0x1c00]
mov r9, rbp
xor r10d, dword [rdx + rbx*4 + 0x400]
mov rbx, rdi
shr r9, 0x10
shr rbx, 0x38
movzx r9d, r9b
xor r10d, dword [rdx + r9*4 + 0x800]
mov r9, rbp
shr r9, 0x18
movzx r9d, r9b
xor r10d, dword [rdx + r9*4 + 0xc00]
mov r9, rbp
shr r9, 0x20
movzx r9d, r9b
xor r10d, dword [rdx + r9*4 + 0x1000]
mov r9, rbp
shr rbp, 0x30
shr r9, 0x28
movzx ebp, bpl
movzx r9d, r9b
xor r10d, dword [rdx + r9*4 + 0x1400]
movzx r9d, dil
xor r10d, dword [rdx + rbp*4 + 0x1800]
mov r9d, dword [rdx + r9*4]
xor r9d, dword [rdx + rbx*4 + 0x1c00]
mov rbx, rdi
movzx ebx, bh
xor r9d, dword [rdx + rbx*4 + 0x400]
mov rbx, rdi
shr rbx, 0x10
movzx ebx, bl
xor r9d, dword [rdx + rbx*4 + 0x800]
mov rbx, rdi
shr rbx, 0x18
movzx ebx, bl
xor r9d, dword [rdx + rbx*4 + 0xc00]
mov rbx, rdi
shr rbx, 0x20
movzx ebx, bl
xor r9d, dword [rdx + rbx*4 + 0x1000]
mov rbx, rdi
shr rdi, 0x30
shr rbx, 0x28
movzx edi, dil
movzx ebx, bl
xor r9d, dword [rdx + rbx*4 + 0x1400]
xor r9d, dword [rdx + rdi*4 + 0x1800]
sub r15, 1
jne 0x14000ad48
mov rdi, qword [rsp + 8]
mov qword [rsp + 8], rax
lea rdx, [rdi + rdi*4]
lea rsi, [rsi + rdx*8]
xor rcx, qword [rsi]
movzx eax, cl
shr rcx, 8
mov edx, dword [r13 + rax*4]
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov eax, dword [r13 + rdx*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov edx, dword [r13 + rax*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov eax, dword [r13 + rdx*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov edx, dword [r13 + rax*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov eax, dword [r13 + rdx*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov edx, dword [r13 + rax*4]
shr rcx, 8
mov rax, qword [rsp + 8]
xor rax, qword [rsi + 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 rcx, rax
movzx eax, al
mov edx, dword [r13 + rax*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov eax, dword [r13 + rdx*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov edx, dword [r13 + rax*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov eax, dword [r13 + rdx*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov edx, dword [r13 + rax*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov eax, dword [r13 + rdx*4]
shr rcx, 8
xor rax, rcx
xor r11, qword [rsi + 0x10]
xor r10, qword [rsi + 0x18]
mov rdx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rdx, 8
xor rax, rdx
xor r11, rax
movzx eax, r11b
shr r11, 8
mov eax, dword [r13 + rax*4]
xor r11, rax
mov rax, r11
movzx r11d, r11b
mov edx, dword [r13 + r11*4]
shr rax, 8
xor rdx, rax
mov rcx, rdx
movzx edx, dl
mov eax, dword [r13 + rdx*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov edx, dword [r13 + rax*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov eax, dword [r13 + rdx*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov edx, dword [r13 + rax*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov eax, dword [r13 + rdx*4]
shr rcx, 8
xor rax, rcx
mov rdx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rdx, 8
xor rax, rdx
xor r10, rax
movzx eax, r10b
shr r10, 8
mov eax, dword [r13 + rax*4]
xor r10, rax
mov rax, r10
movzx r10d, r10b
mov edx, dword [r13 + r10*4]
shr rax, 8
xor rdx, rax
mov rcx, rdx
movzx edx, dl
mov eax, dword [r13 + rdx*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov edx, dword [r13 + rax*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov eax, dword [r13 + rdx*4]
shr rcx, 8
xor rax, rcx
xor r9, qword [rsi + 0x20]
add rsi, 0x28
mov rcx, rax
movzx eax, al
mov edx, dword [r13 + rax*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov eax, dword [r13 + rdx*4]
shr rcx, 8
xor rax, rcx
mov rdx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rdx, 8
xor rax, rdx
xor r9, rax
movzx eax, r9b
shr r9, 8
mov eax, dword [r13 + rax*4]
xor r9, rax
mov rdx, r9
movzx r9d, r9b
mov eax, dword [r13 + r9*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
mov eax, dword [r13 + rdx*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov edx, dword [r13 + rax*4]
shr rcx, 8
xor rdx, rcx
mov rcx, rdx
movzx edx, dl
mov eax, dword [r13 + rdx*4]
shr rcx, 8
xor rax, rcx
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]
jmp 0x14000a96f
movabs rdx, 0xcccccccccccccccd
mov rax, r8
mul rdx
shr rdx, 5
lea rax, [rdx + rdx*4]
shl rax, 3
sub r8, rax
sub rdx, 1
mov qword [rsp + 8], rdx
jne 0x14000ad27
xor r9d, r9d
xor r10d, r10d
xor r11d, r11d
jmp 0x14000b006
xor eax, eax
jmp 0x14000ace4
mov r8d, r8d
jmp 0x14000a940