Function at 0x140075e60
Capabilities:
Hash data with crc32

Disassembly:
push rsi
push rdi
push rbp
push rbx
test rdx, rdx
je 0x140075eab
not ecx
test r8, r8
je 0x1400760ec
lea rsi, [r8 - 0x20]
xor r11d, r11d
lea r9, [0x14015c870]
lea rdi, [rdx + r11]
test dil, 3
je 0x140075eb2
movzx eax, byte [rdi]
movzx edi, cl
xor edi, eax
shr ecx, 8
xor ecx, dword [r9 + rdi*4]
inc r11
dec rsi
cmp r8, r11
jne 0x140075e82
jmp 0x1400760ec
xor ecx, ecx
jmp 0x1400760ee
mov r10, r8
sub r10, r11
cmp r10, 0x20
jb 0x14007606f
xor ecx, dword [rdi]
movzx ebx, cl
movzx eax, ch
mov eax, dword [r9 + rax*4 + 0x800]
xor eax, dword [r9 + rbx*4 + 0xc00]
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
xor eax, dword [r9 + rbx*4 + 0x400]
shr ecx, 0x18
xor eax, dword [r9 + rcx*4]
xor eax, dword [rdi + 4]
movzx ebx, al
movzx ecx, ah
mov ecx, dword [r9 + rcx*4 + 0x800]
xor ecx, dword [r9 + rbx*4 + 0xc00]
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
xor ecx, dword [r9 + rbx*4 + 0x400]
shr eax, 0x18
xor ecx, dword [r9 + rax*4]
xor ecx, dword [rdi + 8]
movzx ebx, cl
movzx eax, ch
mov eax, dword [r9 + rax*4 + 0x800]
xor eax, dword [r9 + rbx*4 + 0xc00]
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
xor eax, dword [r9 + rbx*4 + 0x400]
shr ecx, 0x18
xor eax, dword [r9 + rcx*4]
xor eax, dword [rdi + 0xc]
movzx ebx, al
movzx ecx, ah
mov ecx, dword [r9 + rcx*4 + 0x800]
xor ecx, dword [r9 + rbx*4 + 0xc00]
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
xor ecx, dword [r9 + rbx*4 + 0x400]
shr eax, 0x18
xor ecx, dword [r9 + rax*4]
xor ecx, dword [rdi + 0x10]
movzx ebx, cl
movzx eax, ch
mov eax, dword [r9 + rax*4 + 0x800]
xor eax, dword [r9 + rbx*4 + 0xc00]
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
xor eax, dword [r9 + rbx*4 + 0x400]
shr ecx, 0x18
xor eax, dword [r9 + rcx*4]
xor eax, dword [rdi + 0x14]
movzx ebx, al
movzx ecx, ah
mov ecx, dword [r9 + rcx*4 + 0x800]
xor ecx, dword [r9 + rbx*4 + 0xc00]
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
xor ecx, dword [r9 + rbx*4 + 0x400]
shr eax, 0x18
xor ecx, dword [r9 + rax*4]
xor ecx, dword [rdi + 0x18]
movzx ebx, cl
movzx eax, ch
mov eax, dword [r9 + rax*4 + 0x800]
xor eax, dword [r9 + rbx*4 + 0xc00]
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
xor eax, dword [r9 + rbx*4 + 0x400]
shr ecx, 0x18
xor eax, dword [r9 + rcx*4]
xor eax, dword [rdi + 0x1c]
movzx ebx, al
movzx ecx, ah
mov ecx, dword [r9 + rcx*4 + 0x800]
xor ecx, dword [r9 + rbx*4 + 0xc00]
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
xor ecx, dword [r9 + rbx*4 + 0x400]
shr eax, 0x18
xor ecx, dword [r9 + rax*4]
add r10, 0xffffffffffffffe0
add rdi, 0x20
cmp r10, 0x1f
ja 0x140075ec2
and rsi, 0xffffffffffffffe0
add rdx, rsi
lea rdi, [r11 + rdx]
add rdi, 0x20
add r8, 0xffffffffffffffe0
sub r8, rsi
sub r8, r11
mov r10, r8
cmp r10, 4
jb 0x1400760d0
lea rdx, [r10 - 4]
mov r8, rdx
shr r8, 2
mov rax, rdi
xor ecx, dword [rax]
movzx ebx, cl
movzx ebp, ch
mov esi, ecx
mov ebp, dword [r9 + rbp*4 + 0x800]
xor ebp, dword [r9 + rbx*4 + 0xc00]
add rax, 4
shr ecx, 0x10
movzx ecx, cl
xor ebp, dword [r9 + rcx*4 + 0x400]
shr esi, 0x18
mov ecx, ebp
xor ecx, dword [r9 + rsi*4]
add r10, 0xfffffffffffffffc
cmp r10, 3
ja 0x140076083
lea rdi, [rdi + r8*4]
add rdi, 4
and edx, 3
mov r10, rdx
test r10, r10
je 0x1400760ec
movzx eax, byte [rdi]
inc rdi
movzx edx, cl
xor edx, eax
shr ecx, 8
xor ecx, dword [r9 + rdx*4]
dec r10
jne 0x1400760d5
not ecx
mov eax, ecx
pop rbx
pop rbp
pop rdi
pop rsi
ret
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov edi, r8d
mov rbx, rdx
mov esi, ecx
test rbx, rbx
je 0x14007615e
cmp edi, 0x40
jb 0x140076148
mov eax, dword [0x140195754]
test eax, eax
je 0x140076148
mov r14d, edi
and r14d, 0xfffffff0
not esi
mov rcx, rbx
mov rdx, r14
mov r8d, esi
call fcn.140005c50
mov esi, eax
not esi
sub edi, r14d
je 0x140076169
add rbx, r14
mov r8d, edi
mov ecx, esi
mov rdx, rbx
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
jmp 0x140075e60
xor esi, esi
test edi, edi
jne 0x140076169
call fcn.140075dc0
mov eax, esi
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret