Function at 0x699e1da0
Capabilities:
Hash data with crc32

Disassembly:
push rsi
push rbx
mov eax, ecx
not eax
test r8, r8
je 0x6987914d
test dl, 3
je 0x69878d40
lea rcx, [r8 - 1]
lea r9, [0x69a14ca0]
mov r10, rcx
and r10d, 3
je 0x69878cb0
movzx r8d, byte [rdx]
add rdx, 1
xor r8d, eax
shr eax, 8
movzx ebx, r8b
mov r8, rcx
xor eax, dword [r9 + rbx*4]
test dl, 3
je 0x69878d40
cmp r10, 1
je 0x69878cb0
cmp r10, 2
je 0x69878c8b
movzx esi, byte [rdx]
add rdx, 1
sub r8, 1
xor esi, eax
shr eax, 8
movzx r11d, sil
xor eax, dword [r9 + r11*4]
test dl, 3
je 0x69878d40
movzx ecx, byte [rdx]
add rdx, 1
sub r8, 1
xor ecx, eax
shr eax, 8
movzx r10d, cl
xor eax, dword [r9 + r10*4]
test dl, 3
je 0x69878d40
nop dword [rax]
movzx esi, byte [rdx]
lea rbx, [rdx + 1]
lea r10, [r8 - 1]
mov rdx, rbx
mov r8, r10
xor esi, eax
shr eax, 8
movzx r11d, sil
xor eax, dword [r9 + r11*4]
test r10, r10
je 0x69879148
test bl, 3
je 0x69878d40
movzx ecx, byte [rdx]
add rdx, 1
sub r8, 1
xor ecx, eax
shr eax, 8
movzx esi, cl
xor eax, dword [r9 + rsi*4]
test dl, 3
je 0x69878d40
movzx r8d, byte [rbx + 1]
lea rdx, [rbx + 2]
xor r8d, eax
shr eax, 8
movzx r11d, r8b
lea r8, [r10 - 2]
xor eax, dword [r9 + r11*4]
test dl, 3
je 0x69878d40
lea rdx, [rbx + 3]
movzx ebx, byte [rbx + 2]
lea r8, [r10 - 3]
xor ebx, eax
shr eax, 8
movzx ecx, bl
xor eax, dword [r9 + rcx*4]
test dl, 3
jne 0x69878cb0
nop dword [rax]
cmp r8, 0x1f
jbe 0x69878f18
lea r9, [r8 - 0x20]
lea rcx, [0x69a14ca0]
and r9, 0xffffffffffffffe0
lea rsi, [rdx + r9 + 0x20]
nop
xor eax, dword [rdx]
mov r10d, eax
mov r11d, eax
movzx ebx, al
movzx eax, ah
shr r10d, 0x10
shr r11d, 0x18
mov ebx, dword [rcx + rbx*4 + 0xc00]
movzx r9d, r10b
xor ebx, dword [rcx + r11*4]
xor ebx, dword [rdx + 4]
xor ebx, dword [rcx + rax*4 + 0x800]
xor ebx, dword [rcx + r9*4 + 0x400]
mov r10d, ebx
mov r11d, ebx
movzx eax, bl
movzx ebx, bh
shr r10d, 0x10
shr r11d, 0x18
mov eax, dword [rcx + rax*4 + 0xc00]
movzx r9d, r10b
xor eax, dword [rcx + r11*4]
xor eax, dword [rdx + 8]
xor eax, dword [rcx + rbx*4 + 0x800]
xor eax, dword [rcx + r9*4 + 0x400]
mov r10d, eax
mov r11d, eax
movzx ebx, al
movzx eax, ah
shr r10d, 0x10
shr r11d, 0x18
mov ebx, dword [rcx + rbx*4 + 0xc00]
movzx r9d, r10b
xor ebx, dword [rcx + r11*4]
xor ebx, dword [rdx + 0xc]
xor ebx, dword [rcx + rax*4 + 0x800]
xor ebx, dword [rcx + r9*4 + 0x400]
mov r10d, ebx
mov r11d, ebx
movzx eax, bl
movzx ebx, bh
shr r10d, 0x10
shr r11d, 0x18
mov eax, dword [rcx + rax*4 + 0xc00]
movzx r9d, r10b
xor eax, dword [rcx + r11*4]
xor eax, dword [rdx + 0x10]
xor eax, dword [rcx + rbx*4 + 0x800]
xor eax, dword [rcx + r9*4 + 0x400]
mov r10d, eax
mov r11d, eax
movzx ebx, al
movzx eax, ah
shr r10d, 0x10
shr r11d, 0x18
mov ebx, dword [rcx + rbx*4 + 0xc00]
movzx r9d, r10b
xor ebx, dword [rcx + r11*4]
xor ebx, dword [rdx + 0x14]
xor ebx, dword [rcx + rax*4 + 0x800]
xor ebx, dword [rcx + r9*4 + 0x400]
mov r10d, ebx
mov r11d, ebx
movzx eax, bl
movzx ebx, bh
shr r10d, 0x10
shr r11d, 0x18
mov eax, dword [rcx + rax*4 + 0xc00]
add rdx, 0x20
movzx r9d, r10b
xor eax, dword [rcx + r11*4]
xor eax, dword [rdx - 8]
xor eax, dword [rcx + rbx*4 + 0x800]
xor eax, dword [rcx + r9*4 + 0x400]
mov r10d, eax
mov r11d, eax
movzx ebx, al
movzx eax, ah
shr r10d, 0x10
shr r11d, 0x18
mov ebx, dword [rcx + rbx*4 + 0xc00]
movzx r9d, r10b
xor ebx, dword [rcx + r11*4]
xor ebx, dword [rdx - 4]
xor ebx, dword [rcx + rax*4 + 0x800]
xor ebx, dword [rcx + r9*4 + 0x400]
mov r10d, ebx
mov r11d, ebx
movzx eax, bl
movzx ebx, bh
shr r10d, 0x10
shr r11d, 0x18
mov eax, dword [rcx + rax*4 + 0xc00]
movzx r9d, r10b
xor eax, dword [rcx + r11*4]
xor eax, dword [rcx + rbx*4 + 0x800]
xor eax, dword [rcx + r9*4 + 0x400]
cmp rdx, rsi
jne 0x69878d60
and r8d, 0x1f
cmp r8, 3
jbe 0x698790fd
xor eax, dword [rdx]
lea rcx, [0x69a14ca0]
mov esi, eax
mov r10d, eax
movzx r9d, al
movzx eax, ah
mov eax, dword [rcx + rax*4 + 0x800]
shr esi, 0x10
shr r10d, 0x18
movzx r11d, sil
mov ebx, dword [rcx + r10*4]
xor ebx, dword [rcx + r9*4 + 0xc00]
xor eax, ebx
xor eax, dword [rcx + r11*4 + 0x400]
lea r11, [r8 - 4]
cmp r11, 3
jbe 0x698790f0
xor eax, dword [rdx + 4]
mov esi, eax
mov r10d, eax
movzx r9d, al
movzx eax, ah
shr esi, 0x10
mov eax, dword [rcx + rax*4 + 0x800]
shr r10d, 0x18
movzx ebx, sil
mov esi, dword [rcx + r10*4]
xor esi, dword [rcx + r9*4 + 0xc00]
xor eax, esi
xor eax, dword [rcx + rbx*4 + 0x400]
lea rbx, [r8 - 8]
cmp rbx, 3
jbe 0x698790f0
xor eax, dword [rdx + 8]
mov r10d, eax
mov r9d, eax
movzx esi, al
movzx eax, ah
shr r10d, 0x10
mov eax, dword [rcx + rax*4 + 0x800]
shr r9d, 0x18
movzx ebx, r10b
mov r10d, dword [rcx + r9*4]
xor r10d, dword [rcx + rsi*4 + 0xc00]
xor eax, r10d
xor eax, dword [rcx + rbx*4 + 0x400]
lea rbx, [r8 - 0xc]
cmp rbx, 3
jbe 0x698790f0
xor eax, dword [rdx + 0xc]
mov r9d, eax
mov r10d, eax
movzx esi, al
movzx eax, ah
shr r9d, 0x10
mov eax, dword [rcx + rax*4 + 0x800]
shr r10d, 0x18
movzx ebx, r9b
mov r10d, dword [rcx + r10*4]
lea r9, [r8 - 0x10]
xor r10d, dword [rcx + rsi*4 + 0xc00]
xor eax, r10d
xor eax, dword [rcx + rbx*4 + 0x400]
cmp r9, 3
jbe 0x698790f0
xor eax, dword [rdx + 0x10]
lea r9, [r8 - 0x14]
mov ebx, eax
mov r10d, eax
movzx esi, al
movzx eax, ah
mov eax, dword [rcx + rax*4 + 0x800]
shr ebx, 0x10
shr r10d, 0x18
mov r10d, dword [rcx + r10*4]
movzx ebx, bl
xor r10d, dword [rcx + rsi*4 + 0xc00]
xor eax, r10d
xor eax, dword [rcx + rbx*4 + 0x400]
cmp r9, 3
jbe 0x698790f0
xor eax, dword [rdx + 0x14]
lea r9, [r8 - 0x18]
mov ebx, eax
mov r10d, eax
movzx esi, al
movzx eax, ah
mov eax, dword [rcx + rax*4 + 0x800]
shr ebx, 0x10
shr r10d, 0x18
mov r10d, dword [rcx + r10*4]
movzx ebx, bl
xor r10d, dword [rcx + rsi*4 + 0xc00]
xor eax, r10d
xor eax, dword [rcx + rbx*4 + 0x400]
cmp r9, 3
jbe 0x698790f0
xor eax, dword [rdx + 0x18]
mov ebx, eax
movzx r10d, al
mov r9d, eax
movzx eax, ah
shr ebx, 0x10
mov eax, dword [rcx + rax*4 + 0x800]
shr r9d, 0x18
movzx esi, bl
mov ebx, dword [rcx + r10*4 + 0xc00]
xor ebx, dword [rcx + r9*4]
xor eax, ebx
xor eax, dword [rcx + rsi*4 + 0x400]
shr r11, 2
and r8d, 3
lea rdx, [rdx + r11*4 + 4]
test r8, r8
je 0x69879148
movzx ecx, byte [rdx]
lea r11, [0x69a14ca0]
xor ecx, eax
shr eax, 8
movzx esi, cl
xor eax, dword [r11 + rsi*4]
sub r8, 1
je 0x69879148
movzx r10d, byte [rdx + 1]
xor r10d, eax
shr eax, 8
movzx r9d, r10b
xor eax, dword [r11 + r9*4]
cmp r8, 1
je 0x69879148
movzx edx, byte [rdx + 2]
xor edx, eax
shr eax, 8
movzx r8d, dl
xor eax, dword [r11 + r8*4]
not eax
pop rbx
pop rsi
ret
mov eax, ecx
jmp 0x6987914a
test rdx, rdx
je 0x699e1db0
mov r8d, r8d
jmp 0x69878c10
xor eax, eax
ret