Function at 0x18008fca0
Capabilities:
Hash data with crc32

Disassembly:
push rbx
sub rsp, 0x20
movzx eax, word [r9 + 2]
mov ebx, r8d
mov r10d, edx
cmp ax, 2
jne 0x18008feea
movzx eax, word [r9 + 0xe]
cmp ax, 0x10
jne 0x18008fd83
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
sub r10d, eax
add ebx, r10d
lea eax, [r10 + 0x8000]
cmp eax, 0xffff
ja 0x18008fd69
lea eax, [rbx + 0x8000]
cmp eax, 0xffff
ja 0x18008fd69
mov r9, qword [rsp + 0x58]
mov r8, qword [rsp + 0x50]
movzx eax, r10b
mov word [r8], r10w
mov edx, dword [r9]
lea r11, [0x1800d1c90]
movzx ecx, dl
shr edx, 8
xor rcx, rax
mov eax, dword [r11 + rcx*4]
xor eax, edx
mov dword [r9], eax
mov edx, eax
movzx ecx, al
movzx eax, byte [r8 + 1]
shr edx, 8
xor rcx, rax
mov eax, dword [r11 + rcx*4]
xor eax, edx
mov dword [r9], eax
mov word [r8 + 2], bx
mov edx, dword [r9]
movzx ecx, dl
movzx eax, bl
shr edx, 8
xor rcx, rax
mov eax, dword [r11 + rcx*4]
xor eax, edx
mov edx, eax
movzx ecx, al
mov dword [r9], edx
movzx eax, byte [r8 + 3]
jmp 0x18008fff3
lea rdx, [0x18010cca8]
lea rcx, [rsp + 0x48]
mov dword [rsp + 0x48], 0xffffffff
call fcn.1800797b8
int3
cmp ax, 8
jne 0x18008fde9
mov r9, qword [rsp + 0x58]
mov r8, qword [rsp + 0x50]
mov eax, ebx
cdq
lea r11, [0x1800d1c90]
sub eax, edx
sar eax, 1
sub r10b, al
sub r10b, 0x80
mov byte [r8], r10b
mov edx, dword [r9]
movzx eax, r10b
movzx ecx, dl
shr edx, 8
add bl, r10b
xor rcx, rax
mov eax, dword [r11 + rcx*4]
movzx ecx, bl
xor eax, edx
mov dword [r9], eax
mov byte [r8 + 1], cl
mov edx, dword [r9]
movzx eax, dl
shr edx, 8
xor rax, rcx
mov eax, dword [r11 + rax*4]
xor eax, edx
mov dword [r9], eax
add rsp, 0x20
pop rbx
ret
cmp ax, 0x18
jne 0x180090002
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
sub r10d, eax
lea r8d, [r10 + r8]
jns 0x18008fe0f
add r10d, 0x800000
bts r10d, 0x17
mov rbx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
movzx eax, r10b
mov byte [r9], r10b
mov edx, dword [rbx]
lea r11, [0x1800d1c90]
movzx ecx, dl
shr edx, 8
xor rcx, rax
mov eax, dword [r11 + rcx*4]
xor eax, edx
mov dword [rbx], eax
mov eax, r10d
shr r10d, 0x10
shr eax, 8
mov byte [r9 + 1], al
mov edx, dword [rbx]
movzx eax, al
movzx ecx, dl
shr edx, 8
xor rcx, rax
mov eax, dword [r11 + rcx*4]
xor eax, edx
mov dword [rbx], eax
mov byte [r9 + 2], r10b
mov edx, dword [rbx]
movzx ecx, dl
movzx eax, r10b
shr edx, 8
xor rcx, rax
mov eax, dword [r11 + rcx*4]
xor eax, edx
mov dword [rbx], eax
test r8d, r8d
jns 0x18008fe8a
add r8d, 0x800000
bts r8d, 0x17
mov byte [r9 + 3], r8b
mov edx, dword [rbx]
movzx eax, r8b
movzx ecx, dl
shr edx, 8
xor rcx, rax
mov eax, dword [r11 + rcx*4]
xor eax, edx
mov dword [rbx], eax
mov eax, r8d
shr r8d, 0x10
shr eax, 8
mov byte [r9 + 4], al
mov edx, dword [rbx]
movzx eax, al
movzx ecx, dl
shr edx, 8
xor rcx, rax
mov eax, dword [r11 + rcx*4]
xor eax, edx
mov dword [rbx], eax
mov byte [r9 + 5], r8b
mov edx, dword [rbx]
movzx ecx, dl
movzx eax, r8b
shr edx, 8
xor rcx, rax
mov eax, dword [r11 + rcx*4]
xor eax, edx
mov dword [rbx], eax
add rsp, 0x20
pop rbx
ret
cmp ax, 1
jne 0x180090002
movzx eax, word [r9 + 0xe]
cmp ax, 0x10
jne 0x18008ff3c
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
lea r11, [0x1800d1c90]
mov word [r8], dx
mov edx, dword [r9]
movzx eax, byte [r8]
movzx ecx, dl
shr edx, 8
xor rcx, rax
mov eax, dword [r11 + rcx*4]
xor eax, edx
mov edx, eax
movzx ecx, al
mov dword [r9], edx
movzx eax, byte [r8 + 1]
jmp 0x18008fff3
cmp ax, 8
jne 0x18008ff78
mov rax, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
sub r10b, 0x80
movzx ecx, r10b
lea r11, [0x1800d1c90]
mov byte [rax], cl
mov edx, dword [r8]
movzx eax, dl
shr edx, 8
xor rax, rcx
mov eax, dword [r11 + rax*4]
xor eax, edx
mov dword [r8], eax
add rsp, 0x20
pop rbx
ret
cmp ax, 0x18
jne 0x180090002
test edx, edx
jns 0x18008ff92
add r10d, 0x800000
bts r10d, 0x17
mov r9, qword [rsp + 0x58]
mov r8, qword [rsp + 0x50]
movzx eax, r10b
mov byte [r8], r10b
mov edx, dword [r9]
lea r11, [0x1800d1c90]
movzx ecx, dl
shr edx, 8
xor rcx, rax
mov eax, dword [r11 + rcx*4]
xor eax, edx
mov dword [r9], eax
mov eax, r10d
shr eax, 8
mov byte [r8 + 1], al
mov edx, dword [r9]
movzx eax, al
movzx ecx, dl
shr edx, 8
xor rcx, rax
mov eax, dword [r11 + rcx*4]
xor eax, edx
shr r10d, 0x10
mov dword [r9], eax
mov byte [r8 + 2], r10b
mov edx, dword [r9]
movzx ecx, dl
movzx eax, r10b
xor rcx, rax
shr edx, 8
mov eax, dword [r11 + rcx*4]
xor eax, edx
mov dword [r9], eax
add rsp, 0x20
pop rbx
ret