Function at 0x140016f30
Capabilities:
Hash data with crc32

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
mov r9, qword [0x1400f3ce8]
mov edi, edx
movaps xmmword [rax - 0x48], xmm6
mov r15, r8
movaps xmmword [rax - 0x58], xmm7
mov r13, rcx
movaps xmmword [rax - 0x68], xmm8
mov rbp, r9
or dword [r9 + 0x4a18], 0x100
mov rbx, 0xffffffffffffffff
mov rsi, qword [r9 + 0x4010]
mov dword [r9 + 0x4a50], 2
mov qword [rsp + 0xe0], rsi
movaps xmmword [rax - 0x78], xmm9
mov rsi, qword [rsi + 0x1b0]
movsxd rdx, dword [rsi]
mov r8, qword [rsi + 8]
mov r10, rdx
shl r10, 4
add r10, r8
test rdx, rdx
je 0x140016fed
nop word [rax + rax]
mov rcx, rdx
shr rcx, 1
mov rax, rcx
add rax, rax
cmp dword [r8 + rax*8], edi
jae 0x140016fe5
lea r8, [r8 + rax*8]
mov rax, rbx
sub rax, rcx
add r8, 0x10
add rdx, rax
jmp 0x140016fe8
mov rdx, rcx
test rdx, rdx
jne 0x140016fc0
xor r12d, r12d
cmp r8, r10
je 0x140017003
cmp dword [r8], edi
jne 0x140017003
mov r14, qword [r8 + 8]
test r14, r14
jne 0x140017027
mov ecx, 8
call fcn.140083d10
mov r8, rax
mov edx, edi
mov rcx, rsi
mov r14, rax
mov qword [rax], r12
call fcn.140041210
mov r9, qword [0x1400f3ce8]
movsd xmm8, qword [r15]
xorps xmm9, xmm9
comiss xmm9, xmm8
movsd qword [rsp + 0xd0], xmm8
jb 0x1400170ec
mov rax, qword [r9 + 0x4010]
mov rcx, qword [0x1400f4308]
movss xmm0, dword [rax + 0x98]
comiss xmm0, xmm9
mov rax, qword [0x1400f4298]
jbe 0x140017087
movss xmm0, dword [rcx + 0x40]
addss xmm0, dword [0x1400931e0]
mulss xmm0, dword [rax + 0x94]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
movaps xmm1, xmm0
jmp 0x1400170a5
movss xmm0, dword [rcx + 0x58]
mulss xmm0, dword [rax + 0x94]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
movaps xmm1, xmm0
mulss xmm1, dword [0x1400931e0]
mov r9, qword [0x1400f3ce8]
mov rax, qword [r9 + 0x4010]
cmp qword [rax + 0x1b8], r12
jne 0x1400170cc
lea rcx, [rax + 0x260]
cmp qword [r9 + 0x4e08], r12
je 0x1400170d3
lea rcx, [rax + 0x230]
movss xmm0, dword [rcx]
subss xmm0, dword [rax + 0x28]
subss xmm0, xmm1
mulss xmm0, dword [0x14009310c]
movaps xmm8, xmm0
movss xmm7, dword [rsp + 0xd4]
comiss xmm9, xmm7
jb 0x14001712f
mov rcx, qword [0x1400f4308]
mov rax, qword [0x1400f4298]
movss xmm0, dword [rcx + 0x5c]
mulss xmm0, dword [rax + 0x94]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
mov r9, qword [0x1400f3ce8]
movaps xmm7, xmm0
addss xmm7, xmm7
addss xmm7, dword [r14]
or dword [r9 + 0x4a18], 2
movss dword [r9 + 0x4a38], xmm8
movss dword [r9 + 0x4a3c], xmm7
mov dword [r9 + 0x4a20], 1
mov rcx, qword [0x1400f4308]
mov rax, qword [0x1400f4298]
movss xmm0, dword [rcx + 0x68]
mulss xmm0, dword [rax + 0x94]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
mov rax, qword [0x1400f4300]
lea rcx, [rsp + 0x40]
mov rsi, qword [rsp + 0xe0]
movaps xmm6, xmm0
movaps xmm0, xmm8
movups xmm1, xmmword [rax + 0x90]
mov rax, qword [0x1400f3ce8]
lea r12, [rsi + 0x110]
addss xmm0, dword [r12]
movups xmmword [rsp + 0x40], xmm1
shufps xmm1, xmm1, 0xff
mulss xmm1, dword [rax + 0x38e8]
movss dword [rsp + 0xd0], xmm0
movss dword [rsp + 0x4c], xmm1
movaps xmm1, xmm7
addss xmm1, dword [r12 + 4]
movss dword [rsp + 0xd4], xmm1
call fcn.140040ef0
mov rdx, qword [rsi + 0x2a8]
lea r9, [rsp + 0xd0]
mov dword [rsp + 0x30], 0
mov r8, r12
movss dword [rsp + 0x28], xmm6
mov dword [rsp + 0x20], eax
call fcn.14001e450
mov rcx, qword [0x1400f4308]
mov rax, qword [0x1400f4298]
movss xmm0, dword [rcx + 0x68]
mulss xmm0, dword [rax + 0x94]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
mov rax, qword [0x1400f4300]
lea rcx, [rsp + 0x40]
addss xmm8, dword [r12]
addss xmm7, dword [r12 + 4]
movaps xmm6, xmm0
movups xmm1, xmmword [rax + 0xa0]
mov rax, qword [0x1400f3ce8]
movss dword [rsp + 0xd0], xmm8
movups xmmword [rsp + 0x40], xmm1
shufps xmm1, xmm1, 0xff
mulss xmm1, dword [rax + 0x38e8]
movss dword [rsp + 0xd4], xmm7
movss dword [rsp + 0x4c], xmm1
call fcn.140040ef0
mov rdx, qword [rsi + 0x2a8]
lea r9, [rsp + 0xd0]
movss dword [rsp + 0x38], xmm9
mov r8, r12
movss dword [rsp + 0x28], xmm6
mov dword [rsp + 0x20], eax
call fcn.14001e510
mov r9, qword [rsi + 8]
lea rcx, [rsp + 0xd0]
xor edx, edx
test r13, r13
je 0x1400172d8
mov dword [rsp + 0x28], edi
lea r8, str._s__s__08X
mov qword [rsp + 0x20], r13
call fcn.1400406e0
jmp 0x1400172e8
lea r8, str._s__08X
mov dword [rsp + 0x20], edi
call fcn.1400406e0
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x40], rax
inc rbx
cmp byte [rax + rbx], 0
jne 0x1400172f5
mov rcx, qword [0x1400f4310]
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x48], rbx
mov r9d, 0x4100211f
movaps xmm0, xmmword [rsp + 0x40]
xor r8d, r8d
movdqa xmmword [rsp + 0x40], xmm0
call fcn.140014270
mov rsi, qword [rbp + 0x4010]
movzx r15d, al
mov ecx, dword [rsi + 0x44]
mov dword [rsi + 0x88], edi
mov dword [r14], ecx
cmp word [rsi + 0xcc], 1
jne 0x140017354
movsd xmm0, qword [rsi + 0x28]
movsd qword [r12], xmm0
mov r9d, edi
lea rdx, [0x14008f551]
not r9d
lea r10, [0x14008ad30]
mov ebx, r9d
mov r8b, 0x23
nop
cmp r8b, 0x23
jne 0x140017383
cmp byte [rdx], r8b
jne 0x140017383
cmp byte [rdx + 1], r8b
cmove ebx, r9d
movzx ecx, bl
movzx eax, r8b
movzx r8d, byte [rdx]
xor rcx, rax
shr ebx, 8
inc rdx
xor ebx, dword [r10 + rcx*4]
test r8b, r8b
jne 0x140017370
not ebx
cmp dword [rbp + 0x4074], ebx
jne 0x1400173b3
xor edx, edx
xor ecx, ecx
call fcn.1400447c0
cmp dword [rbp + 0x4b50], edi
jne 0x1400173f8
cmp word [rsi + 0x16c], 0
jne 0x1400173ce
cmp byte [rsi + 0x172], 0
je 0x1400173f8
xor edx, edx
mov rcx, rsi
call fcn.14004d440
xor edx, edx
mov rcx, rsi
call fcn.140053e70
mov rdx, rsi
mov ecx, ebx
call fcn.1400447c0
mov eax, dword [rbp + 0x4b7c]
mov dword [rbp + 0x40a0], eax
movaps xmm7, xmmword [rsp + 0x70]
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x48]
movzx eax, r15b
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x60
mov rcx, qword [0x1400f3ce8]
mov rbp, r8
mov rdi, qword [rdx]
xor edx, edx
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x40], xmm7
mov rax, qword [rcx + 0x4010]
mov byte [rax + 0xc0], 1
mov rbx, qword [rcx + 0x4010]
mov rcx, rdi
movsxd rax, dword [rbx + 0x100]
mov r8, qword [rbx + 0x108]
mov r8d, dword [r8 + rax*4 - 4]
call fcn.140040880
mov rcx, qword [rbx]
mov esi, eax
cmp dword [rcx + 0x405c], eax
jne 0x1400174a9
mov r8, rdi
mov edx, 0xb
mov ecx, eax
call fcn.140058ba0
mov rcx, qword [0x1400f4298]
mov rbx, qword [0x1400f4308]
movss xmm6, dword [rcx + 0x94]
movaps xmm0, xmm6
mulss xmm0, dword [rbx + 0x5c]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
mulss xmm6, dword [rbx + 0x58]
movaps xmm7, xmm0
movaps xmm0, xmm6
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
mov rbx, qword [0x1400f3ce8]
lea rdx, [rsp + 0x30]
movaps xmm6, xmm0
mov dword [rsp + 0x30], 2
movss xmm2, dword [rbx + 0x38f0]
lea rcx, [rbx + 0x4aa0]
movss xmm1, dword [rbx + 0x38f4]
movss dword [rsp + 0x34], xmm2
movss dword [rsp + 0x38], xmm1
call fcn.140010440
movss dword [rbx + 0x38f0], xmm6
movss dword [rbx + 0x38f4], xmm7
mov rax, qword [0x1400f4298]
mov rbx, qword [0x1400f4308]
movss xmm6, dword [rax + 0x94]
movaps xmm0, xmm6
mulss xmm0, dword [rbx + 0x64]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
mulss xmm6, dword [rbx + 0x60]
movaps xmm7, xmm0
movaps xmm0, xmm6
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
mov rbx, qword [0x1400f3ce8]
lea rdx, [rsp + 0x30]
movaps xmm6, xmm0
mov dword [rsp + 0x30], 0xe
movss xmm2, dword [rbx + 0x3934]
lea rcx, [rbx + 0x4aa0]
movss xmm1, dword [rbx + 0x3938]
movss dword [rsp + 0x34], xmm2
movss dword [rsp + 0x38], xmm1
call fcn.140010440
mov r8, rbp
movss dword [rbx + 0x3934], xmm6
mov edx, esi
movss dword [rbx + 0x3938], xmm7
mov rcx, rdi
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x40]
add rsp, 0x60
pop rdi
jmp 0x140016f30