Function at 0x1800fa580
Capabilities:
Hash data with crc32

Disassembly:
mov rax, rsp
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x98
mov rbp, qword [0x1801e3228]
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 + 0x10], r13
mov r13d, edx
mov qword [rax + 0x18], r14
mov qword [rax - 0x28], r15
mov r15d, r8d
movaps xmmword [rax - 0x68], xmm9
mov rax, qword [rbp + 0x3ea0]
mov byte [rax + 0x98], 1
mov rsi, qword [rbp + 0x3ea0]
mov byte [rsi + 0x98], 1
mov rbx, qword [rbp + 0x3ea0]
call fcn.1800ca5d0
movsxd rcx, dword [rbx + 0xd0]
lea rdx, [0x180181619]
mov rax, qword [rbx + 0xd8]
lea r10, [0x18017c700]
mov r8b, 0x63
mov r9d, dword [rax + rcx*4 - 4]
not r9d
mov ebx, r9d
cmp r8b, 0x23
jne 0x1800fa629
cmp byte [rdx], r8b
jne 0x1800fa629
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 0x1800fa616
mov rax, qword [0x1801e3228]
not ebx
cmp dword [rax + 0x3ed4], ebx
jne 0x1800fa671
lea r8, str.columns
mov edx, 0xb
mov ecx, ebx
call fcn.1800d3960
mov rax, qword [0x1801e3228]
mov rax, qword [rax + 0x3ea0]
mov edx, ebx
mov rcx, rsi
dec dword [rax + 0xd0]
call fcn.1800fa320
movss xmm7, dword [0x18018166c]
mov rdi, rax
movss xmm9, dword [0x1801816a4]
xor r14d, r14d
xorps xmm8, xmm8
mov dword [rax + 0xc], r14d
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
movups xmm0, xmmword [rsi + 0x1f8]
movss xmm4, dword [rsi + 0x48]
movss xmm1, dword [rsi + 0x200]
movss xmm5, dword [rsi + 0x124]
movaps xmm2, xmm1
movss xmm3, dword [rsi + 0x54]
movups xmmword [rsi + 0x208], xmm0
mov edx, dword [rdi + 0x60]
mov ecx, edx
movss xmm10, dword [rbp + 0x382c]
addss xmm2, xmm10
movaps xmm0, xmm10
subss xmm0, xmm4
mulss xmm4, xmm7
subss xmm5, xmm10
maxss xmm4, xmm3
maxss xmm0, xmm8
subss xmm2, xmm0
addss xmm5, xmm0
movss dword [rax + 0x14], xmm5
addss xmm5, xmm9
cvttss2si eax, xmm4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
minss xmm2, xmm0
subss xmm2, dword [rsi + 0x18]
maxss xmm2, xmm5
movss dword [rdi + 0x18], xmm2
movss xmm0, dword [rsi + 0xe4]
movss dword [rdi + 0x20], xmm0
movss dword [rdi + 0x1c], xmm0
test edx, edx
je 0x1800fa815
lea eax, [r13 + 1]
cmp edx, eax
je 0x1800fa815
mov ecx, dword [rdi + 0x64]
test ecx, ecx
jns 0x1800fa80b
mov eax, ecx
mov ebx, r14d
cdq
sub eax, edx
sar eax, 1
add eax, ecx
test eax, eax
cmovg ebx, eax
cmp ebx, ecx
jle 0x1800fa80b
mov rax, qword [0x1801e3228]
test rax, rax
je 0x1800fa7bd
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 rbp, qword [rdi + 0x68]
mov r15, rax
test rbp, rbp
je 0x1800fa804
movsxd rdx, dword [rdi + 0x60]
mov rcx, rax
imul r8, rdx, 0x1c
mov rdx, rbp
call sub.VCRUNTIME140.dll_memcpy
mov rdx, qword [0x1801e3228]
test rdx, rdx
je 0x1800fa7fb
dec dword [rdx + 0xf4]
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rdi + 0x68], r15
mov dword [rdi + 0x64], ebx
mov dword [rdi + 0x60], r14d
mov byte [rdi + 8], 1
jmp 0x1800fa825
test ecx, ecx
sete al
mov byte [rdi + 8], al
test ecx, ecx
jne 0x1800fa99e
mov qword [rsp + 0xc0], r12
lea r12d, [r13 + 1]
cmp r12d, dword [rdi + 0x64]
jle 0x1800fa898
mov rax, qword [0x1801e3228]
test rax, rax
je 0x1800fa849
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 rbx, qword [rdi + 0x68]
mov rbp, rax
test rbx, rbx
je 0x1800fa890
movsxd rdx, dword [rdi + 0x60]
mov rcx, rax
imul r8, rdx, 0x1c
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov rdx, qword [0x1801e3228]
test rdx, rdx
je 0x1800fa887
dec dword [rdx + 0xf4]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rdi + 0x68], rbp
mov dword [rdi + 0x64], r12d
mov ebp, r14d
test r12d, r12d
jle 0x1800fa996
movd xmm6, r13d
cvtdq2ps xmm6, xmm6
nop dword [rax]
mov ecx, dword [rdi + 0x64]
xorps xmm0, xmm0
mov ebx, dword [rdi + 0x60]
movd xmm1, ebp
mov qword [rsp + 0x34], r14
cvtdq2ps xmm1, xmm1
movdqu xmmword [rsp + 0x24], xmm0
divss xmm1, xmm6
movss dword [rsp + 0x20], xmm1
cmp ebx, ecx
jne 0x1800fa95f
inc ebx
test ecx, ecx
je 0x1800fa8ee
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x1800fa8f3
mov eax, 8
cmp eax, ebx
cmovg ebx, eax
cmp ebx, ecx
jle 0x1800fa95f
mov rax, qword [0x1801e3228]
test rax, rax
je 0x1800fa90e
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 0x1800fa958
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 0x1800fa952
mov rdx, qword [0x1801e3228]
test rdx, rdx
je 0x1800fa952
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 ebp
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 ebp, r12d
jl 0x1800fa8b0
mov r12, qword [rsp + 0xc0]
mov rbp, qword [0x1801e3228]
mov r15, qword [rsp + 0x90]
test r13d, r13d
jle 0x1800fab32
movss xmm4, dword [0x1801817c4]
mov rdx, r14
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rbp + 0x3ea0]
mov r8, qword [rdi + 0x68]
movss xmm2, dword [rsi + 0x18]
mov r9, qword [rax + 0x188]
test r9, r9
jne 0x1800fa9fa
movaps xmm0, xmm2
movaps xmm3, xmm8
addss xmm0, xmm8
jmp 0x1800faa46
movss xmm0, dword [r9 + 0x14]
movss xmm1, dword [r9 + 0x18]
movss xmm3, dword [r9 + 0x18]
subss xmm1, xmm0
subss xmm3, xmm0
movsxd rax, r14d
imul rcx, rax, 0x1c
mov rax, qword [r9 + 0x68]
mulss xmm1, dword [rcx + rax]
lea eax, [r14 + 1]
cdqe
imul rcx, rax, 0x1c
addss xmm1, xmm0
mov rax, qword [r9 + 0x68]
mulss xmm3, dword [rcx + rax]
addss xmm3, xmm0
movaps xmm0, xmm2
addss xmm0, xmm1
addss xmm0, xmm7
addss xmm2, xmm3
cvttss2si eax, xmm0
subss xmm2, xmm9
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm2, xmm7
movss dword [rdx + r8 + 0xc], xmm1
mov dword [rdx + r8 + 0x10], 0xff7fffff
cvttss2si eax, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rdx + r8 + 0x14], xmm0
mov dword [rdx + r8 + 0x18], 0x7f7fffff
movss xmm1, dword [rsi + 0x21c]
comiss xmm1, xmm4
ja 0x1800faaa6
movss xmm1, dword [rsi + 0x224]
minss xmm1, xmm4
movss xmm2, dword [rdx + r8 + 0xc]
movss xmm0, dword [rsi + 0x218]
comiss xmm0, xmm2
ja 0x1800faac6
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 0x1800faaf4
movss xmm1, dword [rsi + 0x224]
minss xmm1, xmm0
movss xmm2, dword [rdx + r8 + 0x14]
movss xmm0, dword [rsi + 0x218]
comiss xmm0, xmm2
ja 0x1800fab14
movss xmm0, dword [rsi + 0x220]
minss xmm0, xmm2
movss dword [rdx + r8 + 0x14], xmm0
inc r14d
movss dword [rdx + r8 + 0x18], xmm1
add rdx, 0x1c
cmp r14d, r13d
jl 0x1800fa9d0
mov r8d, dword [rdi + 0x10]
movaps xmm9, xmmword [rsp + 0x50]
mov r13, qword [rsp + 0xc8]
cmp r8d, 1
jle 0x1800facae
inc r8d
lea rcx, [rdi + 0x70]
call fcn.1800ee080
movsxd rax, dword [rdi + 0x70]
mov rbx, qword [rsi + 0x278]
cmp eax, 1
je 0x1800fac23
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 0x1800fac1b
imul rcx, rax, 0x38
mov rax, qword [rbx + 8]
add rax, 0xffffffffffffffc8
add rcx, rax
je 0x1800fac1b
cmp dword [rcx + 0x20], 0
lea rdx, [rbx + 0x88]
jne 0x1800fac0c
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 0x1800fac23
mov r8d, 0x1c
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1800fac23
mov rcx, rbx
call fcn.1800eada0
mov r8, qword [0x1801e3228]
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.1800eaf70
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 rbp, qword [0x1801e3228]
mov rax, qword [rbp + 0x3ea0]
mov r8d, dword [rdi + 0xc]
mov ecx, r8d
mov r14, qword [rsp + 0xd0]
mov rdx, qword [rax + 0x188]
test rdx, rdx
jne 0x1800facda
movaps xmm1, xmm8
movaps xmm6, xmm8
jmp 0x1800fad2a
test ecx, ecx
jns 0x1800face1
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 0x1800fad0e
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 [rbp + 0x3ea0]
movaps xmm7, xmm6
subss xmm7, xmm1
lea rcx, [rbx + 0x1a8]
lea rdx, [rbx + 0x19c]
mulss xmm7, dword [0x180181678]
call fcn.1800d46a0
ucomiss xmm7, xmm8
jp 0x1800fad63
jne 0x1800fad63
movss xmm7, dword [rbx + 0x248]
movss dword [rbx + 0x19c], xmm7
movaps xmm1, xmm10
and dword [rbp + 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 rdi
pop rsi
pop rbp
pop rbx
ret