Function at 0x14009cf0c
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x20
xor r14d, r14d
mov rbp, rdx
mov rdi, rcx
test rcx, rcx
je 0x14009d1e7
cmp dword [rcx + 0x1c], r14d
je 0x14009d1e7
cmp qword [rcx + 0x80], r14
je 0x14009cf46
call fcn.14009d528
lea r9, [rsp + 0x60]
mov rcx, rdi
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x68]
call fcn.14009cd44
test eax, eax
je 0x14009cf6b
mov eax, 0xffffff99
jmp 0x14009d1ec
mov ecx, 0xb0
call fcn.1401072ac
mov rbx, rax
test rax, rax
jne 0x14009cf87
mov eax, 0xffffff98
jmp 0x14009d1ec
mov ecx, 0x4000
call fcn.1401072ac
mov ecx, dword [rsp + 0x50]
mov dword [rbx + 0x68], ecx
mov ecx, dword [rsp + 0x60]
mov dword [rbx + 0x6c], ecx
mov qword [rbx], rax
mov dword [rbx + 0x70], r14d
test rax, rax
jne 0x14009cfb5
mov rcx, rbx
call fcn.140107298
jmp 0x14009cf7d
mov dword [rbx + 0x64], r14d
mov r15d, 1
mov eax, dword [rdi + 0x40]
mov ecx, dword [rdi + 0x38]
mov dword [rbx + 0x78], eax
mov dword [rbx + 0x74], r14d
mov eax, dword [rdi + 0x38]
mov dword [rbx + 0x90], eax
mov rax, qword [rdi]
mov qword [rbx + 0x88], rax
mov eax, dword [rdi + 0x10]
mov dword [rbx + 0x94], eax
mov dword [rbx + 0x24], r14d
test ecx, ecx
je 0x14009d0fd
lea rsi, [rbx + 8]
mov qword [rbx + 0x38], r14
mov qword [rbx + 0x40], r14
mov qword [rbx + 0x48], r14
test rsi, rsi
je 0x14009d0fd
mov r9, qword [rsi + 0x30]
lea rdx, [0x14009bff4]
mov qword [rsi + 0x20], r14
test r9, r9
jne 0x14009d02c
mov qword [rsi + 0x30], rdx
mov r9, rdx
mov qword [rsi + 0x40], r14
cmp qword [rsi + 0x38], r14
jne 0x14009d03d
lea rcx, [0x14009c000]
mov qword [rsi + 0x38], rcx
mov rcx, qword [rsi + 0x40]
cmp r9, rdx
jne 0x14009d055
mov edx, 0x20
mov rcx, r15
call fcn.140109ad8
jmp 0x14009d061
mov r8d, 0x20
mov edx, r15d
call r9
mov qword [rsi + 0x28], rax
test rax, rax
je 0x14009d0fd
mov qword [rax + 0x18], r14
lea rdx, [0x14009bea8]
mov rax, qword [rsi + 0x28]
mov r8d, 0x8000
mov rcx, rsi
mov dword [rax + 0xc], r14d
mov rax, qword [rsi + 0x28]
mov dword [rax + 0xc], r15d
mov rax, qword [rsi + 0x28]
mov dword [rax + 0x10], 0xf
mov rax, qword [rsi + 0x28]
cmp dword [rax + 0xc], r14d
cmovne rdx, r14
call fcn.14009aaec
mov rdx, qword [rsi + 0x28]
mov qword [rdx + 0x18], rax
test rax, rax
jne 0x14009d0c5
mov rcx, rsi
call fcn.14009c008
jmp 0x14009d0fd
mov rdx, qword [rsi + 0x28]
test rdx, rdx
je 0x14009d0f9
mov dword [rsi + 0x1c], r14d
mov dword [rsi + 0xc], r14d
mov qword [rsi + 0x20], r14
mov eax, dword [rdx + 0xc]
neg eax
sbb ecx, ecx
xor r8d, r8d
and ecx, 7
mov dword [rdx], ecx
mov rdx, rsi
mov rcx, qword [rsi + 0x28]
mov rcx, qword [rcx + 0x18]
call fcn.14009aa70
mov dword [rbx + 0x64], r15d
mov eax, dword [rdi + 0x44]
mov dword [rbx + 0x7c], eax
mov eax, dword [rdi + 0x48]
mov dword [rbx + 0x80], eax
mov cl, byte [rdi + 0x34]
and cl, r15b
mov byte [rbx + 0x98], cl
mov eax, dword [rdi + 0x34]
shr eax, 3
test r15b, al
je 0x14009d128
mov al, byte [rdi + 0x3d]
jmp 0x14009d12b
mov al, byte [rdi + 0x43]
mov byte [rbx + 0xac], al
neg cl
mov dword [rbx + 0x9c], 0x12345678
sbb eax, eax
mov dword [rbx + 0xa0], 0x23456789
and eax, 0xc
mov dword [rbx + 0xa4], 0x34567890
mov dword [rbx + 0xa8], eax
test rbp, rbp
je 0x14009d1c9
lea r8, [0x14013cc30]
cmp byte [rbp], r14b
je 0x14009d1c9
movsx rax, byte [rbp]
mov edx, dword [rbx + 0x9c]
xor rax, rdx
movzx ecx, al
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx eax, dl
add eax, dword [rbx + 0xa0]
imul ecx, eax, 0x8088405
mov dword [rbx + 0x9c], edx
mov edx, dword [rbx + 0xa4]
add ecx, r15d
mov dword [rbx + 0xa0], ecx
movzx eax, byte [rbx + 0xa3]
movzx ecx, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
mov dword [rbx + 0xa4], edx
add rbp, r15
jne 0x14009d168
mov ecx, dword [rdi + 0x7c]
mov eax, dword [rsp + 0x68]
add eax, 0x1e
mov dword [rbx + 0x10], r14d
add ecx, eax
mov dword [rbx + 0x60], ecx
xor eax, eax
mov qword [rdi + 0x80], rbx
jmp 0x14009d1ec
mov eax, 0xffffff9a
mov rbx, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret