Function at 0x180008c54
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 0x180008f30
cmp dword [rcx + 0x1c], r14d
je 0x180008f30
cmp qword [rcx + 0x80], r14
je 0x180008c8e
call fcn.180009260
lea r9, [rsp + 0x60]
mov rcx, rdi
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x68]
call fcn.180008a8c
test eax, eax
je 0x180008cb3
mov eax, 0xffffff99
jmp 0x180008f35
mov ecx, 0xb0
call fcn.18000f9f4
mov rbx, rax
test rax, rax
jne 0x180008ccf
mov eax, 0xffffff98
jmp 0x180008f35
mov ecx, 0x4000
call fcn.18000f9f4
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 0x180008cfd
mov rcx, rbx
call fcn.18000ef64
jmp 0x180008cc5
mov eax, dword [rdi + 0x40]
mov r15d, 1
mov ecx, dword [rdi + 0x38]
mov dword [rbx + 0x78], eax
mov rax, qword [rdi]
mov qword [rbx + 0x88], rax
mov eax, dword [rdi + 0x10]
mov dword [rbx + 0x94], eax
mov dword [rbx + 0x64], r14d
mov dword [rbx + 0x74], r14d
mov dword [rbx + 0x90], ecx
mov dword [rbx + 0x24], r14d
test ecx, ecx
je 0x180008e46
lea rsi, [rbx + 8]
mov qword [rbx + 0x38], r14
mov qword [rbx + 0x40], r14
mov qword [rbx + 0x48], r14
test rsi, rsi
je 0x180008e46
mov rax, qword [rsi + 0x30]
lea r8, [0x180007d44]
mov qword [rsi + 0x20], r14
test rax, rax
jne 0x180008d76
mov qword [rsi + 0x30], r8
mov rcx, r14
mov qword [rsi + 0x40], r14
mov rax, r8
jmp 0x180008d7a
mov rcx, qword [rsi + 0x40]
cmp qword [rsi + 0x38], r14
jne 0x180008d8b
lea rdx, [0x180007d50]
mov qword [rsi + 0x38], rdx
cmp rax, r8
jne 0x180008d9f
mov edx, 0x20
mov rcx, r15
call fcn.18000fa18
jmp 0x180008daa
mov r8d, 0x20
mov edx, r15d
call rax
mov qword [rsi + 0x28], rax
test rax, rax
je 0x180008e46
mov qword [rax + 0x18], r14
lea rdx, [0x180007bf8]
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.180006940
mov rdx, qword [rsi + 0x28]
mov qword [rdx + 0x18], rax
test rax, rax
jne 0x180008e0e
mov rcx, rsi
call fcn.180007d58
jmp 0x180008e46
mov rdx, qword [rsi + 0x28]
test rdx, rdx
je 0x180008e42
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.1800068c4
mov dword [rbx + 0x64], r15d
mov eax, dword [rdi + 0x44]
mov cl, byte [rdi + 0x34]
mov dword [rbx + 0x7c], eax
and cl, r15b
mov eax, dword [rdi + 0x48]
mov dword [rbx + 0x80], eax
mov eax, dword [rdi + 0x34]
shr eax, 3
mov byte [rbx + 0x98], cl
test r15b, al
je 0x180008e71
mov al, byte [rdi + 0x3d]
jmp 0x180008e74
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 0x180008f12
lea r8, [0x180021d20]
cmp byte [rbp], r14b
je 0x180008f12
mov edx, dword [rbx + 0x9c]
movsx rax, byte [rbp]
xor rax, rdx
shr edx, 8
movzx ecx, al
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 0x180008eb1
mov eax, dword [rsp + 0x68]
mov ecx, dword [rdi + 0x7c]
add eax, 0x1e
add ecx, eax
mov dword [rbx + 0x10], r14d
mov dword [rbx + 0x60], ecx
xor eax, eax
mov qword [rdi + 0x80], rbx
jmp 0x180008f35
mov eax, 0xffffff9a
mov rbx, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret