Function at 0x140006af0
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rdi, r8
test rdx, rdx
je 0x140006b49
mov rsi, rdx
mov r8d, ecx
cmp rdi, 0x40
jb 0x140006b5e
cmp dword [0x1403986a8], 0
je 0x140006b5e
mov r14, rdi
and r14, 0xfffffffffffffff0
not r8d
mov rcx, rsi
mov rdx, r14
call fcn.1400e08c0
mov ebx, eax
and rdi, 0xf
je 0x1400073be
add rsi, r14
mov r8d, ebx
jmp 0x140007296
xor ebx, ebx
test rdi, rdi
jne 0x1400073c0
call fcn.140006a80
jmp 0x1400073c0
not r8d
cmp rdi, 0x2f
jb 0x140007296
test sil, 7
je 0x140006ceb
mov edx, r8d
shr edx, 8
xor r8b, byte [rsi]
lea rcx, [rsi + 1]
movzx r9d, r8b
lea rax, [0x140294710]
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
dec rdx
je 0x140006ce5
mov r9d, ecx
and r9d, 7
je 0x140006ce5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 2]
xor r8b, byte [rsi + 1]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffe
je 0x140006ce5
mov r9d, ecx
and r9d, 7
je 0x140006ce5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 3]
xor r8b, byte [rsi + 2]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffd
je 0x140006ce5
mov r9d, ecx
and r9d, 7
je 0x140006ce5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 4]
xor r8b, byte [rsi + 3]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffc
je 0x140006ce5
mov r9d, ecx
and r9d, 7
je 0x140006ce5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 5]
xor r8b, byte [rsi + 4]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffb
je 0x140006ce5
mov r9d, ecx
and r9d, 7
je 0x140006ce5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 6]
xor r8b, byte [rsi + 5]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffffa
je 0x140006ce5
mov r9d, ecx
and r9d, 7
je 0x140006ce5
mov edx, r8d
shr edx, 8
lea rcx, [rsi + 7]
xor r8b, byte [rsi + 6]
movzx r9d, r8b
mov r8d, edx
xor r8d, dword [rax + r9*4]
mov rdx, rdi
add rdx, 0xfffffffffffffff9
je 0x140006ce5
mov r9d, ecx
and r9d, 7
je 0x140006ce5
add rdi, 0xfffffffffffffff8
mov ecx, r8d
shr ecx, 8
xor r8b, byte [rsi + 7]
add rsi, 8
movzx edx, r8b
xor ecx, dword [rax + rdx*4]
mov r8d, ecx
jmp 0x140006ceb
mov rsi, rcx
mov rdi, rdx
movabs rcx, 0xcccccccccccccccd
mov rax, rdi
mul rcx
shr rdx, 5
lea rax, [rdx*8]
lea rbx, [rax + rax*4]
xor ecx, ecx
mov r9, rdx
dec r9
je 0x140007053
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], rdi
lea rax, [rdx + rdx*4]
lea rax, [rax*8 - 0x28]
mov qword [rsp + 0x20], rax
lea r14, [0x140294b10]
mov r12, rsi
xor edx, edx
xor r11d, r11d
xor ebx, ebx
nop word cs:[rax + rax]
mov eax, r8d
mov r8, qword [r12]
mov qword [rsp + 0x40], r8
mov r15, qword [r12 + 8]
mov qword [rsp + 0x38], r15
xor rax, r8
movzx r10d, al
movzx edi, ah
mov r8d, dword [r14 + rdi*4 + 0x400]
xor r8d, dword [r14 + r10*4]
mov r10, rax
shr r10, 0xe
and r10d, 0x3fc
xor r8d, dword [r10 + r14 + 0x800]
shr rax, 0x16
and eax, 0x3fc
xor r8d, dword [rax + r14 + 0xc00]
mov eax, ebx
xor rax, r15
movzx r10d, al
movzx edi, ah
mov ebx, dword [r14 + rdi*4 + 0x400]
xor ebx, dword [r14 + r10*4]
mov r10, rax
shr r10, 0xe
and r10d, 0x3fc
xor ebx, dword [r10 + r14 + 0x800]
shr rax, 0x16
and eax, 0x3fc
xor ebx, dword [rax + r14 + 0xc00]
mov eax, r11d
mov rbp, qword [r12 + 0x10]
xor rax, rbp
movzx r10d, al
movzx edi, ah
mov r11d, dword [r14 + rdi*4 + 0x400]
xor r11d, dword [r14 + r10*4]
mov r10, rax
shr r10, 0xe
and r10d, 0x3fc
xor r11d, dword [r10 + r14 + 0x800]
shr rax, 0x16
and eax, 0x3fc
xor r11d, dword [rax + r14 + 0xc00]
mov eax, edx
mov rdi, qword [r12 + 0x18]
xor rax, rdi
movzx r10d, al
movzx edx, ah
mov edx, dword [r14 + rdx*4 + 0x400]
xor edx, dword [r14 + r10*4]
mov r10, rax
shr r10, 0xe
and r10d, 0x3fc
xor edx, dword [r10 + r14 + 0x800]
shr rax, 0x16
and eax, 0x3fc
xor edx, dword [rax + r14 + 0xc00]
mov eax, ecx
mov r10, qword [r12 + 0x20]
xor rax, r10
mov r15, r9
movzx r9d, al
movzx ecx, ah
mov ecx, dword [r14 + rcx*4 + 0x400]
xor ecx, dword [r14 + r9*4]
mov r9, rax
shr r9, 0xe
and r9d, 0x3fc
xor ecx, dword [r9 + r14 + 0x800]
mov r9, r15
shr rax, 0x16
and eax, 0x3fc
xor ecx, dword [rax + r14 + 0xc00]
mov r13, qword [rsp + 0x40]
mov rax, r13
shr rax, 0x1e
and eax, 0x3fc
xor r8d, dword [rax + r14 + 0x1000]
mov r15, qword [rsp + 0x38]
mov rax, r15
shr rax, 0x1e
and eax, 0x3fc
xor ebx, dword [rax + r14 + 0x1000]
mov rax, rbp
shr rax, 0x1e
and eax, 0x3fc
xor r11d, dword [rax + r14 + 0x1000]
mov rax, rdi
shr rax, 0x1e
and eax, 0x3fc
xor edx, dword [rax + r14 + 0x1000]
mov rax, r10
shr rax, 0x1e
and eax, 0x3fc
xor ecx, dword [rax + r14 + 0x1000]
mov rax, r13
shr rax, 0x26
and eax, 0x3fc
xor r8d, dword [rax + r14 + 0x1400]
mov rax, r15
shr rax, 0x26
and eax, 0x3fc
xor ebx, dword [rax + r14 + 0x1400]
mov rax, rbp
shr rax, 0x26
and eax, 0x3fc
xor r11d, dword [rax + r14 + 0x1400]
mov rax, rdi
shr rax, 0x26
and eax, 0x3fc
xor edx, dword [rax + r14 + 0x1400]
mov rax, r10
shr rax, 0x26
and eax, 0x3fc
xor ecx, dword [rax + r14 + 0x1400]
mov rax, r13
shr rax, 0x2e
and eax, 0x3fc
xor r8d, dword [rax + r14 + 0x1800]
mov rax, r15
shr rax, 0x2e
and eax, 0x3fc
xor ebx, dword [rax + r14 + 0x1800]
mov rax, rbp
shr rax, 0x2e
and eax, 0x3fc
xor r11d, dword [rax + r14 + 0x1800]
mov rax, rdi
shr rax, 0x2e
and eax, 0x3fc
xor edx, dword [rax + r14 + 0x1800]
mov rax, r10
shr rax, 0x2e
and eax, 0x3fc
xor ecx, dword [rax + r14 + 0x1800]
shr r13, 0x38
xor r8d, dword [r14 + r13*4 + 0x1c00]
mov rax, r15
shr rax, 0x38
xor ebx, dword [r14 + rax*4 + 0x1c00]
shr rbp, 0x38
xor r11d, dword [r14 + rbp*4 + 0x1c00]
shr rdi, 0x38
xor edx, dword [r14 + rdi*4 + 0x1c00]
shr r10, 0x38
xor ecx, dword [r14 + r10*4 + 0x1c00]
add r12, 0x28
dec r9
jne 0x140006d50
add rsi, qword [rsp + 0x20]
mov r9d, ecx
mov ecx, ebx
mov r11d, r11d
mov r10d, edx
mov rdi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x28]
jmp 0x14000705c
xor r11d, r11d
xor r10d, r10d
xor r9d, r9d
mov eax, r8d
xor rax, qword [rsi]
movzx r8d, al
shr rax, 8
lea rdx, [0x140294710]
mov r8d, dword [rdx + r8*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
mov eax, dword [rdx + rax*4]
xor rax, r8
movzx r8d, al
shr rax, 8
mov r8d, dword [rdx + r8*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
mov eax, dword [rdx + rax*4]
xor rax, r8
movzx r8d, al
shr rax, 8
mov r8d, dword [rdx + r8*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
mov eax, dword [rdx + rax*4]
xor rax, r8
movzx r8d, al
shr rax, 8
mov r8d, dword [rdx + r8*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
xor r8d, dword [rdx + rax*4]
xor rcx, qword [rsi + 8]
xor r8, rcx
movzx eax, r8b
shr r8, 8
mov eax, dword [rdx + rax*4]
xor rax, r8
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
xor eax, dword [rdx + rcx*4]
xor r11, qword [rsi + 0x10]
xor rax, r11
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
xor ecx, dword [rdx + rax*4]
sub rdi, rbx
xor r10, qword [rsi + 0x18]
xor rcx, r10
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
xor eax, dword [rdx + rcx*4]
xor r9, qword [rsi + 0x20]
xor rax, r9
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov r8d, dword [rdx + rcx*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
xor r8d, dword [rdx + rax*4]
add rsi, 0x28
cmp rdi, 8
jb 0x140007337
lea rax, [0x140294710]
nop word [rax + rax]
mov ecx, r8d
xor r8b, byte [rsi]
shr ecx, 8
movzx edx, r8b
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [rsi + 1]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [rsi + 2]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [rsi + 3]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [rsi + 4]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
add rdi, 0xfffffffffffffff8
mov edx, ecx
xor cl, byte [rsi + 5]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
shr ecx, 8
xor dl, byte [rsi + 6]
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov r8d, ecx
shr r8d, 8
xor cl, byte [rsi + 7]
add rsi, 8
movzx ecx, cl
xor r8d, dword [rax + rcx*4]
cmp rdi, 7
ja 0x1400072b0
test rdi, rdi
je 0x14000734d
test dil, 1
jne 0x140007352
mov rax, rdi
cmp rdi, 1
jne 0x140007379
jmp 0x1400073be
mov ebx, r8d
jmp 0x1400073be
lea rax, [rdi - 1]
mov ebx, r8d
shr ebx, 8
xor r8b, byte [rsi]
inc rsi
movzx ecx, r8b
lea rdx, [0x140294710]
xor ebx, dword [rdx + rcx*4]
mov r8d, ebx
cmp rdi, 1
je 0x1400073be
xor ecx, ecx
lea rdx, [0x140294710]
mov ebx, r8d
nop word cs:[rax + rax]
mov r8d, ebx
shr r8d, 8
xor bl, byte [rsi + rcx]
movzx r9d, bl
xor r8d, dword [rdx + r9*4]
mov ebx, r8d
shr ebx, 8
xor r8b, byte [rsi + rcx + 1]
movzx r8d, r8b
xor ebx, dword [rdx + r8*4]
add rcx, 2
cmp rax, rcx
jne 0x140007390
not ebx
mov eax, ebx
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret