Function at 0x18010bd70
Capabilities:
Hash data with crc32

Disassembly:
mov rax, rsp
push rbx
push rsi
push rdi
push r14
sub rsp, 0x98
mov r14, qword [0x1801fbf58]
lea ecx, [rdx + 0x11223347]
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x78], xmm10
mov qword [rax + 8], rbp
mov qword [rax + 0x18], r13
mov r13d, edx
mov qword [rax - 0x28], r15
mov r15d, r8d
movaps xmmword [rax - 0x68], xmm9
mov rax, qword [r14 + 0x3ea0]
mov byte [rax + 0x98], 1
mov rsi, qword [r14 + 0x3ea0]
mov byte [rsi + 0x98], 1
mov rbx, qword [r14 + 0x3ea0]
call fcn.1800dcfb0
movsxd rcx, dword [rbx + 0xd0]
lea rdx, [0x180195f11]
mov rax, qword [rbx + 0xd8]
lea r10, [0x180191110]
mov r8b, 0x63
mov r9d, dword [rax + rcx*4 - 4]
not r9d
mov ebx, r9d
cmp r8b, 0x23
jne 0x18010be1a
cmp byte [rdx], r8b
jne 0x18010be1a
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 0x18010be07
mov rax, qword [0x1801fbf58]
not ebx
cmp dword [rax + 0x3ed4], ebx
jne 0x18010be62
lea r8, [0x180195f10]
mov edx, 0xb
mov ecx, ebx
call fcn.1800e6970
mov rax, qword [0x1801fbf58]
mov rax, qword [rax + 0x3ea0]
mov edx, ebx
mov rcx, rsi
dec dword [rax + 0xd0]
call fcn.18010bb20
movss xmm7, dword [0x180196090]
mov rdi, rax
movss xmm9, dword [0x1801960c8]
xor ebp, ebp
xorps xmm8, xmm8
mov dword [rax + 0xc], ebp
mov dword [rax + 0x10], r13d
mov dword [rax + 4], r15d
mov ecx, dword [rsi + 0xe4]
mov qword [rsi + 0x188], rax
mov dword [rax + 0x24], ecx
mov ecx, dword [rsi + 0xf8]
mov dword [rax + 0x28], ecx
movups xmm0, xmmword [rsi + 0x218]
movups xmmword [rax + 0x2c], xmm0
movups xmm0, xmmword [rsi + 0x208]
movups xmmword [rax + 0x4c], xmm0
movss xmm1, dword [rsi + 0x48]
movups xmm0, xmmword [rsi + 0x1f8]
movss xmm3, dword [rsi + 0x124]
movaps xmm4, xmm1
movups xmmword [rsi + 0x208], xmm0
mov edx, dword [rdi + 0x60]
mov ecx, edx
movss xmm10, dword [r14 + 0x382c]
mulss xmm4, xmm7
movaps xmm0, xmm10
subss xmm0, xmm1
movss xmm1, dword [rsi + 0x200]
subss xmm3, xmm10
movaps xmm2, xmm1
addss xmm2, xmm10
maxss xmm4, dword [rsi + 0x54]
maxss xmm0, xmm8
subss xmm2, xmm0
addss xmm3, xmm0
movss dword [rax + 0x14], xmm3
addss xmm3, xmm9
cvttss2si eax, xmm4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
minss xmm2, xmm0
subss xmm2, dword [rsi + 0x18]
maxss xmm2, xmm3
movss dword [rdi + 0x18], xmm2
movss xmm0, dword [rsi + 0xe4]
movss dword [rdi + 0x20], xmm0
movss dword [rdi + 0x1c], xmm0
test edx, edx
je 0x18010c004
lea eax, [r13 + 1]
cmp edx, eax
je 0x18010c004
mov ecx, dword [rdi + 0x64]
test ecx, ecx
jns 0x18010bffb
mov eax, ecx
mov ebx, ebp
cdq
sub eax, edx
sar eax, 1
add eax, ecx
test eax, eax
cmovg ebx, eax
cmp ebx, ecx
jle 0x18010bffb
mov rax, qword [0x1801fbf58]
test rax, rax
je 0x18010bfaa
inc dword [rax + 0xf4]
movsxd rax, ebx
imul rcx, rax, 0x1c
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdx, qword [rdi + 0x68]
mov r14, rax
test rdx, rdx
je 0x18010bff4
movsxd rcx, dword [rdi + 0x60]
imul r8, rcx, 0x1c
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rdi + 0x68]
test rcx, rcx
je 0x18010bfee
mov rax, qword [0x1801fbf58]
test rax, rax
je 0x18010bfee
dec dword [rax + 0xf4]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rdi + 0x68], r14
mov dword [rdi + 0x64], ebx
mov dword [rdi + 0x60], ebp
mov byte [rdi + 8], 1
jmp 0x18010c014
test ecx, ecx
sete al
mov byte [rdi + 8], al
test ecx, ecx
jne 0x18010c190
mov qword [rsp + 0xc8], r12
lea r12d, [r13 + 1]
cmp r12d, dword [rdi + 0x64]
jle 0x18010c08a
mov rax, qword [0x1801fbf58]
test rax, rax
je 0x18010c038
inc dword [rax + 0xf4]
movsxd rax, r12d
imul rcx, rax, 0x1c
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdx, qword [rdi + 0x68]
mov rbx, rax
test rdx, rdx
je 0x18010c082
movsxd rcx, dword [rdi + 0x60]
imul r8, rcx, 0x1c
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rdi + 0x68]
test rcx, rcx
je 0x18010c07c
mov rax, qword [0x1801fbf58]
test rax, rax
je 0x18010c07c
dec dword [rax + 0xf4]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rdi + 0x68], rbx
mov dword [rdi + 0x64], r12d
mov r14d, ebp
test r12d, r12d
jle 0x18010c188
movd xmm6, r13d
cvtdq2ps xmm6, xmm6
nop
mov ecx, dword [rdi + 0x64]
xorps xmm0, xmm0
mov ebx, dword [rdi + 0x60]
movd xmm1, r14d
mov qword [rsp + 0x34], rbp
cvtdq2ps xmm1, xmm1
movdqu xmmword [rsp + 0x24], xmm0
divss xmm1, xmm6
movss dword [rsp + 0x20], xmm1
cmp ebx, ecx
jne 0x18010c150
inc ebx
test ecx, ecx
je 0x18010c0df
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18010c0e4
mov eax, 8
cmp eax, ebx
cmovg ebx, eax
cmp ebx, ecx
jle 0x18010c150
mov rax, qword [0x1801fbf58]
test rax, rax
je 0x18010c0ff
inc dword [rax + 0xf4]
movsxd rax, ebx
imul rcx, rax, 0x1c
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdx, qword [rdi + 0x68]
mov r15, rax
test rdx, rdx
je 0x18010c149
movsxd rcx, dword [rdi + 0x60]
imul r8, rcx, 0x1c
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rdi + 0x68]
test rcx, rcx
je 0x18010c143
mov rdx, qword [0x1801fbf58]
test rdx, rdx
je 0x18010c143
dec dword [rdx + 0xf4]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rdi + 0x68], r15
mov dword [rdi + 0x64], ebx
movsxd rax, dword [rdi + 0x60]
inc r14d
mov rcx, qword [rdi + 0x68]
movups xmm0, xmmword [rsp + 0x20]
movsd xmm1, qword [rsp + 0x30]
imul rdx, rax, 0x1c
mov eax, dword [rsp + 0x38]
movups xmmword [rdx + rcx], xmm0
movsd qword [rdx + rcx + 0x10], xmm1
mov dword [rdx + rcx + 0x18], eax
inc dword [rdi + 0x60]
cmp r14d, r12d
jl 0x18010c0a0
mov r12, qword [rsp + 0xc8]
mov r14, qword [0x1801fbf58]
mov r15, qword [rsp + 0x90]
test r13d, r13d
jle 0x18010c332
mov dword [rsp + 0x24], 0xff7fffff
mov rdx, rbp
mov dword [rsp + 0x2c], 0x7f7fffff
nop dword [rax + rax]
mov rax, qword [r14 + 0x3ea0]
movss xmm2, dword [rsi + 0x18]
mov r8, qword [rdi + 0x68]
movaps xmm0, xmm2
mov r9, qword [rax + 0x188]
test r9, r9
jne 0x18010c1f6
addss xmm0, xmm8
movaps xmm1, xmm8
addss xmm0, xmm7
cvttss2si eax, xmm0
movd xmm3, eax
jmp 0x18010c24c
movss xmm1, dword [r9 + 0x18]
subss xmm1, dword [r9 + 0x14]
movsxd rax, ebp
imul rcx, rax, 0x1c
mov rax, qword [r9 + 0x68]
mulss xmm1, dword [rcx + rax]
addss xmm1, dword [r9 + 0x14]
addss xmm0, xmm1
movss xmm1, dword [r9 + 0x18]
subss xmm1, dword [r9 + 0x14]
addss xmm0, xmm7
cvttss2si eax, xmm0
movd xmm3, eax
lea eax, [rbp + 1]
cdqe
imul rcx, rax, 0x1c
mov rax, qword [r9 + 0x68]
mulss xmm1, dword [rcx + rax]
addss xmm1, dword [r9 + 0x14]
addss xmm2, xmm1
xorps xmm0, xmm0
movups xmm1, xmmword [rsp + 0x20]
cvtdq2ps xmm3, xmm3
subss xmm2, xmm9
movss xmm1, xmm3
shufps xmm1, xmm1, 0xd2
addss xmm2, xmm7
cvttss2si eax, xmm2
cvtsi2ss xmm0, eax
movss xmm1, xmm0
shufps xmm1, xmm1, 0xc9
movups xmmword [rdx + r8 + 0xc], xmm1
movss xmm0, dword [rdx + r8 + 0x10]
movups xmmword [rsp + 0x20], xmm1
movss xmm1, dword [rsi + 0x21c]
comiss xmm1, xmm0
ja 0x18010c2a7
movss xmm1, dword [rsi + 0x224]
minss xmm1, xmm0
movss xmm2, dword [rdx + r8 + 0xc]
movss xmm0, dword [rsi + 0x218]
comiss xmm0, xmm2
ja 0x18010c2c7
movss xmm0, dword [rsi + 0x220]
minss xmm0, xmm2
movss dword [rdx + r8 + 0xc], xmm0
movss dword [rdx + r8 + 0x10], xmm1
movss xmm0, dword [rdx + r8 + 0x18]
movss xmm1, dword [rsi + 0x21c]
comiss xmm1, xmm0
ja 0x18010c2f5
movss xmm1, dword [rsi + 0x224]
minss xmm1, xmm0
movss xmm2, dword [rdx + r8 + 0x14]
movss xmm0, dword [rsi + 0x218]
comiss xmm0, xmm2
ja 0x18010c315
movss xmm0, dword [rsi + 0x220]
minss xmm0, xmm2
movss dword [rdx + r8 + 0x14], xmm0
inc ebp
movss dword [rdx + r8 + 0x18], xmm1
add rdx, 0x1c
cmp ebp, r13d
jl 0x18010c1c0
mov r8d, dword [rdi + 0x10]
movaps xmm9, xmmword [rsp + 0x50]
mov r13, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xc0]
cmp r8d, 1
jle 0x18010c4b6
inc r8d
lea rcx, [rdi + 0x70]
call fcn.1801005a0
movsxd rax, dword [rdi + 0x70]
mov rbx, qword [rsi + 0x278]
cmp eax, 1
je 0x18010c42b
movups xmm0, xmmword [rbx]
mov rcx, rax
mov rax, qword [rdi + 0x80]
shl rcx, 5
movups xmmword [rcx + rax], xmm0
movsxd rcx, dword [rdi + 0x70]
mov rax, qword [rdi + 0x80]
movups xmm0, xmmword [rbx + 0x10]
shl rcx, 5
movups xmmword [rcx + rax + 0x10], xmm0
mov rax, qword [rdi + 0x80]
mov dword [rdi + 0x70], 1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rbx], xmm0
mov rax, qword [rdi + 0x80]
movups xmm0, xmmword [rax + 0x30]
movups xmmword [rbx + 0x10], xmm0
mov rax, qword [rbx + 0x18]
movsxd rcx, dword [rbx + 0x10]
lea rcx, [rax + rcx*2]
movsxd rax, dword [rbx]
mov qword [rbx + 0x50], rcx
test eax, eax
je 0x18010c423
imul rcx, rax, 0x38
mov rax, qword [rbx + 8]
add rax, 0xffffffffffffffc8
add rcx, rax
je 0x18010c423
cmp dword [rcx + 0x20], 0
lea rdx, [rbx + 0x88]
jne 0x18010c414
movups xmm0, xmmword [rdx]
movups xmmword [rcx], xmm0
movsd xmm1, qword [rdx + 0x10]
movsd qword [rcx + 0x10], xmm1
mov eax, dword [rdx + 0x18]
mov dword [rcx + 0x18], eax
jmp 0x18010c42b
mov r8d, 0x1c
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x18010c42b
mov rcx, rbx
call fcn.1800fd4f0
mov r8, qword [0x1801fbf58]
xor r9d, r9d
mov rax, qword [r8 + 0x3ea0]
mov rcx, qword [rax + 0x188]
mov rdx, qword [rcx + 0x68]
mov byte [rax + 0x98], 1
mov rbx, qword [r8 + 0x3ea0]
lea r8, [rdx + 0x14]
add rdx, 0xc
mov rcx, qword [rbx + 0x278]
call fcn.1800fd6b0
mov rax, qword [rbx + 0x278]
movsxd rcx, dword [rax + 0x58]
mov rax, qword [rax + 0x60]
add rcx, rcx
movss xmm0, dword [rax + rcx*8 - 0xc]
movss xmm1, dword [rax + rcx*8 - 8]
movss xmm2, dword [rax + rcx*8 - 4]
mov eax, dword [rax + rcx*8 - 0x10]
mov dword [rbx + 0x218], eax
movss dword [rbx + 0x21c], xmm0
movss dword [rbx + 0x220], xmm1
movss dword [rbx + 0x224], xmm2
mov r14, qword [0x1801fbf58]
mov rax, qword [r14 + 0x3ea0]
mov r8d, dword [rdi + 0xc]
mov ecx, r8d
mov rdx, qword [rax + 0x188]
test rdx, rdx
jne 0x18010c4da
movaps xmm1, xmm8
movaps xmm6, xmm8
jmp 0x18010c52a
test ecx, ecx
jns 0x18010c4e1
mov ecx, dword [rdx + 0xc]
movss xmm0, dword [rdx + 0x14]
movss xmm1, dword [rdx + 0x18]
movsxd rax, ecx
subss xmm1, xmm0
imul rcx, rax, 0x1c
mov rax, qword [rdx + 0x68]
mulss xmm1, dword [rcx + rax]
lea eax, [r8 + 1]
addss xmm1, xmm0
test eax, eax
jns 0x18010c50e
mov eax, dword [rdx + 0xc]
movss xmm6, dword [rdx + 0x18]
cdqe
subss xmm6, xmm0
imul rcx, rax, 0x1c
mov rax, qword [rdx + 0x68]
mulss xmm6, dword [rcx + rax]
addss xmm6, xmm0
mov rbx, qword [r14 + 0x3ea0]
movaps xmm7, xmm6
subss xmm7, xmm1
lea rcx, [rbx + 0x1a8]
lea rdx, [rbx + 0x19c]
mulss xmm7, dword [0x18019609c]
call fcn.1800e7590
ucomiss xmm7, xmm8
jp 0x18010c563
jne 0x18010c563
movss xmm7, dword [rbx + 0x248]
movss dword [rbx + 0x19c], xmm7
movaps xmm1, xmm10
and dword [r14 + 0x3f58], 0xfffffffe
movss xmm2, dword [rsi + 0x18]
subss xmm1, dword [rsi + 0x48]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm0, xmm2
addss xmm0, dword [rsi + 0x124]
addss xmm2, xmm6
movaps xmm6, xmmword [rsp + 0x80]
maxss xmm1, xmm8
movaps xmm8, xmmword [rsp + 0x60]
subss xmm2, xmm10
movaps xmm10, xmmword [rsp + 0x40]
addss xmm0, xmm1
movss dword [rsi + 0x128], xmm1
movss dword [rsi + 0x200], xmm2
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsi + 0xe0], xmm0
add rsp, 0x98
pop r14
pop rdi
pop rsi
pop rbx
ret