Function at 0x140066920
Capabilities:
Hash data with crc32

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x148
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0xb0], xmm13
movaps xmmword [rbp + 0xa0], xmm12
movaps xmmword [rbp + 0x90], xmm11
movaps xmmword [rbp + 0x80], xmm10
movaps xmmword [rbp + 0x70], xmm9
movaps xmmword [rbp + 0x60], xmm8
movaps xmmword [rbp + 0x50], xmm7
movaps xmmword [rbp + 0x40], xmm6
mov qword [rbp + 0x38], 0xfffffffffffffffe
mov r15, qword [rcx + 0x20]
test r15, r15
je 0x140066b63
mov rbx, rcx
mov rsi, qword [rcx + 0x28]
test byte [r15 + 0xcc], 1
je 0x140066b52
test byte [rsi + 0xcc], 1
je 0x140066b4a
mov r13, qword [0x140114180]
mov r14d, dword [rbx + 0x60]
movsxd r12, r14d
mov rax, qword [r15 + 0x48]
mov qword [rbp - 0x20], rax
mov rax, qword [rsi + 0x48]
mov qword [rbp - 0x18], rax
movss xmm0, dword [r15 + r12*4 + 0x50]
addss xmm0, dword [rbp + r12*4 - 0x20]
movss dword [rbp + r12*4 - 0x20], xmm0
mov rax, r12
xor rax, 1
movss xmm0, dword [rsi + rax*4 + 0x50]
addss xmm0, dword [rbp + rax*4 - 0x18]
movss dword [rbp + rax*4 - 0x18], xmm0
mov qword [rbp + 0x18], rsi
mov eax, dword [rsi + 0x10]
or eax, dword [r15 + 0x10]
test al, 0x20
jne 0x140066a18
xor ecx, ecx
test r14d, r14d
setne cl
shl ecx, 0x10
add ecx, 0x10000
test eax, ecx
je 0x140066ba9
lea r8, [rbp - 0x18]
mov rax, qword [r13 + 0x4180]
mov rcx, qword [rax + 0x2e8]
movss xmm8, dword [r13 + 0x3a3c]
movss xmm0, dword [r13 + 0x3c98]
movss xmm7, dword [r13 + 0x3c9c]
movss xmm5, dword [r13 + 0x3ca0]
movss xmm1, dword [r13 + 0x3ca4]
mulss xmm1, dword [r13 + 0x39f8]
movss xmm4, dword [0x1400d9774]
movaps xmm2, xmm4
minss xmm2, xmm0
movss xmm9, dword [0x1400d6030]
mulss xmm2, xmm9
movss xmm3, dword [0x1400d9768]
addss xmm2, xmm3
xorps xmm10, xmm10
cmpltss xmm0, xmm10
movaps xmm6, xmm0
andnps xmm6, xmm2
andps xmm0, xmm3
orps xmm0, xmm6
cvttss2si eax, xmm0
movaps xmm0, xmm4
minss xmm0, xmm7
mulss xmm0, xmm9
addss xmm0, xmm3
cmpltss xmm7, xmm10
movaps xmm2, xmm7
andnps xmm2, xmm0
andps xmm7, xmm3
orps xmm7, xmm2
cvttss2si edx, xmm7
shl edx, 8
or edx, eax
movaps xmm0, xmm4
minss xmm0, xmm5
mulss xmm0, xmm9
addss xmm0, xmm3
cmpltss xmm5, xmm10
movaps xmm2, xmm5
andnps xmm2, xmm0
andps xmm5, xmm3
orps xmm5, xmm2
cvttss2si eax, xmm5
shl eax, 0x10
or eax, edx
minss xmm4, xmm1
mulss xmm4, xmm9
addss xmm4, xmm3
cmpltss xmm1, xmm10
movaps xmm0, xmm1
andnps xmm0, xmm4
andps xmm1, xmm3
orps xmm1, xmm0
cvttss2si r9d, xmm1
shl r9d, 0x18
or r9d, eax
movss dword [rsp + 0x20], xmm8
mov dword [rsp + 0x28], 0
lea rdx, [rbp - 0x20]
call fcn.14006ea80
mov rsi, qword [rbp + 0x18]
test byte [r15 + 0xcc], 1
je 0x140066b52
mov rcx, r15
call fcn.140066920
test byte [rsi + 0xcc], 1
je 0x140066b63
mov rcx, rsi
call fcn.140066920
movaps xmm6, xmmword [rbp + 0x40]
movaps xmm7, xmmword [rbp + 0x50]
movaps xmm8, xmmword [rbp + 0x60]
movaps xmm9, xmmword [rbp + 0x70]
movaps xmm10, xmmword [rbp + 0x80]
movaps xmm11, xmmword [rbp + 0x90]
movaps xmm12, xmmword [rbp + 0xa0]
movaps xmm13, xmmword [rbp + 0xb0]
add rsp, 0x148
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov ecx, dword [rbx]
call fcn.140054a60
xorps xmm0, xmm0
movaps xmmword [rbp], xmm0
movaps xmmword [rbp - 0x10], xmm0
movss xmm8, dword [r13 + r12*4 + 0x3a10]
mov rax, qword [rbx + 0x20]
mov rcx, qword [rbx + 0x28]
movss xmm7, dword [rax + r12*4 + 0x48]
movss xmm6, dword [rcx + r12*4 + 0x48]
addss xmm6, dword [rcx + r12*4 + 0x50]
mov rax, qword [0x140114180]
mov r8, qword [rax + 0x4180]
mov rax, qword [r8 + 0x140]
movsxd rcx, dword [r8 + 0x138]
mov r9d, dword [rax + rcx*4 - 4]
not r9d
mov al, 0x23
lea rdx, [0x1400f08ff]
mov edi, r9d
jmp 0x140066c40
movzx eax, al
movzx esi, dil
shr edi, 8
xor esi, eax
lea rax, [0x1400d97e0]
xor edi, dword [rax + rsi*4]
add rdx, 1
mov eax, ecx
test cl, cl
je 0x140066c58
movzx ecx, byte [rdx - 1]
cmp al, 0x23
jne 0x140066c20
cmp cl, 0x23
jne 0x140066c20
cmp byte [rdx], 0x23
cmove edi, r9d
mov cl, 0x23
jmp 0x140066c20
not edi
mov rax, qword [r8]
cmp dword [rax + 0x41d4], edi
jne 0x140066c7b
lea r8, str.Splitter
mov ecx, edi
mov edx, 0xb
xor r9d, r9d
call fcn.140054480
addss xmm7, xmm8
subss xmm6, xmm8
cmp dword [r13 + 0x41ec], edi
jne 0x140066da0
lea r9, [rbp - 0x10]
mov rcx, r15
mov edx, r14d
mov r8d, 1
call fcn.140067760
lea r9, [rbp]
mov rcx, qword [rbp + 0x18]
mov edx, r14d
xor r8d, r8d
call fcn.140067760
mov eax, dword [rbp - 0x10]
test eax, eax
jle 0x140066d32
mov rcx, qword [rbp - 8]
xor edx, edx
nop word [rax + rax]
mov rdi, qword [rcx + rdx*8]
movss xmm0, dword [rdi + 0x48]
movss xmm1, dword [rdi + 0x4c]
movss xmm2, dword [rdi + 0x54]
addss xmm2, xmm1
movss xmm3, dword [rdi + 0x50]
addss xmm3, xmm0
movss dword [rbp + 0x20], xmm0
movss dword [rbp + 0x24], xmm1
movss dword [rbp + 0x28], xmm3
movss dword [rbp + 0x2c], xmm2
movss xmm1, dword [rbp + r12*4 + 0x20]
addss xmm1, xmm8
movaps xmm0, xmm1
cmpless xmm0, xmm7
movaps xmm2, xmm0
andnps xmm2, xmm1
andps xmm0, xmm7
orps xmm0, xmm2
add rdx, 1
movaps xmm7, xmm0
cmp rax, rdx
jne 0x140066cd0
jmp 0x140066d35
movaps xmm0, xmm7
mov eax, dword [rbp]
test eax, eax
jle 0x140066d9d
mov rcx, qword [rbp + 8]
xor edx, edx
nop word cs:[rax + rax]
nop dword [rax]
mov rdi, qword [rcx + rdx*8]
movss xmm1, dword [rdi + 0x48]
movss xmm2, dword [rdi + 0x4c]
movss xmm3, dword [rdi + 0x54]
addss xmm3, xmm2
movss xmm4, dword [rdi + 0x50]
addss xmm4, xmm1
movss dword [rbp + 0x20], xmm1
movss dword [rbp + 0x24], xmm2
movss dword [rbp + 0x28], xmm4
movss dword [rbp + 0x2c], xmm3
movss xmm1, dword [rbp + r12*4 + 0x28]
subss xmm1, xmm8
minss xmm6, xmm1
add rdx, 1
cmp rax, rdx
jne 0x140066d50
movaps xmm7, xmm0
movss xmm0, dword [r15 + r12*4 + 0x50]
movss dword [rbp + 0x20], xmm0
mov rax, qword [rbp + 0x18]
movss xmm0, dword [rax + r12*4 + 0x50]
movss dword [rbp + 0x34], xmm0
movss xmm8, dword [rax + r12*4 + 0x48]
addss xmm8, dword [rax + r12*4 + 0x50]
movss xmm10, dword [r15 + r12*4 + 0x48]
mov rax, qword [0x140114180]
movss xmm9, dword [rax + 0x3b08]
movss xmm4, dword [rax + 0x3b0c]
movss xmm3, dword [rax + 0x3b10]
movss xmm0, dword [rax + 0x3b14]
mulss xmm0, dword [rax + 0x39f8]
movss xmm5, dword [0x1400d9774]
movaps xmm1, xmm5
minss xmm1, xmm9
movss xmm11, dword [0x1400d6030]
mulss xmm1, xmm11
movss xmm13, dword [0x1400d9768]
addss xmm1, xmm13
xorps xmm12, xmm12
cmpltss xmm9, xmm12
movaps xmm2, xmm9
andnps xmm2, xmm1
andps xmm9, xmm13
orps xmm9, xmm2
movaps xmm1, xmm5
minss xmm1, xmm4
mulss xmm1, xmm11
addss xmm1, xmm13
cmpltss xmm4, xmm12
movaps xmm2, xmm4
andnps xmm2, xmm1
andps xmm4, xmm13
orps xmm4, xmm2
cvttss2si r13d, xmm4
shl r13d, 8
movaps xmm1, xmm5
minss xmm1, xmm3
mulss xmm1, xmm11
addss xmm1, xmm13
cmpltss xmm3, xmm12
movaps xmm2, xmm3
andnps xmm2, xmm1
andps xmm3, xmm13
orps xmm3, xmm2
cvttss2si ecx, xmm3
shl ecx, 0x10
mov dword [rbp - 0x28], ecx
minss xmm5, xmm0
mulss xmm5, xmm11
addss xmm5, xmm13
cmpltss xmm0, xmm12
movaps xmm1, xmm0
andnps xmm1, xmm5
andps xmm0, xmm13
orps xmm0, xmm1
cvttss2si ecx, xmm0
shl ecx, 0x18
mov dword [rbp - 0x24], ecx
mov r8, qword [rax + 0x4180]
mov rax, qword [r8 + 0x140]
movsxd rcx, dword [r8 + 0x138]
mov r9d, dword [rax + rcx*4 - 4]
not r9d
mov al, 0x23
lea rdx, [0x1400f08ff]
mov edi, r9d
jmp 0x140066f20
movzx eax, al
movzx esi, dil
shr edi, 8
xor esi, eax
lea rax, [0x1400d97e0]
xor edi, dword [rax + rsi*4]
add rdx, 1
mov eax, ecx
test cl, cl
je 0x140066f38
movzx ecx, byte [rdx - 1]
cmp al, 0x23
jne 0x140066f00
cmp cl, 0x23
jne 0x140066f00
cmp byte [rdx], 0x23
cmove edi, r9d
mov cl, 0x23
jmp 0x140066f00
not edi
mov rax, qword [r8]
cmp dword [rax + 0x41d4], edi
jne 0x140066f5b
lea r8, str.Splitter
mov ecx, edi
mov edx, 0xb
xor r9d, r9d
call fcn.140054480
subss xmm7, xmm10
cvttss2si eax, xmm9
subss xmm8, xmm6
or r13d, eax
or r13d, dword [rbp - 0x28]
or r13d, dword [rbp - 0x24]
mov dword [rsp + 0x48], r13d
movss dword [rsp + 0x30], xmm8
movss dword [rsp + 0x28], xmm7
lea rax, [rbp + 0x34]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x40], 0x3d23d70a
mov dword [rsp + 0x38], 0x40800000
lea rcx, [rbp - 0x20]
lea r9, [rbp + 0x20]
mov edx, edi
mov r8d, r14d
call fcn.1400882a0
test al, al
je 0x140067121
cmp dword [rbp - 0x10], 0
jle 0x140067121
cmp dword [rbp], 0
jle 0x140067121
movss xmm0, dword [rbp + 0x20]
movss dword [r15 + r12*4 + 0x58], xmm0
movss dword [r15 + r12*4 + 0x50], xmm0
movss xmm0, dword [rbp + 0x34]
mov rax, qword [rbp + 0x18]
subss xmm0, dword [rax + r12*4 + 0x50]
movss xmm1, dword [rax + r12*4 + 0x48]
subss xmm1, xmm0
movss dword [rax + r12*4 + 0x48], xmm1
movss xmm0, dword [rbp + 0x34]
movss dword [rax + r12*4 + 0x58], xmm0
movss dword [rax + r12*4 + 0x50], xmm0
mov r12, rax
movsxd r8, dword [rbp - 0x10]
test r8, r8
jle 0x140067079
mov rcx, qword [rbp - 8]
xor edx, edx
jmp 0x140067033
add rdx, 1
cmp rdx, r8
jge 0x140067079
mov rdi, qword [rcx + rdx*8]
mov rax, qword [rdi + 0x18]
cmp rax, rbx
je 0x14006702a
add rdi, 0x18
jmp 0x140067063
mov rdi, rax
mov rsi, qword [rax + 0x18]
add rdi, 0x18
mov rax, rsi
cmp rsi, rbx
je 0x14006702a
cmp dword [rax + 0x60], r14d
jne 0x140067050
mov rax, qword [rax + 0x20]
or byte [rax + 0xcc], 0x80
mov rax, qword [rdi]
jmp 0x140067050
movsxd r8, dword [rbp]
test r8, r8
jle 0x1400670d9
mov rcx, qword [rbp + 8]
xor edx, edx
jmp 0x140067093
add rdx, 1
cmp rdx, r8
jge 0x1400670d9
mov rdi, qword [rcx + rdx*8]
mov rax, qword [rdi + 0x18]
cmp rax, rbx
je 0x14006708a
add rdi, 0x18
jmp 0x1400670c3
mov rdi, rax
mov rsi, qword [rax + 0x18]
add rdi, 0x18
mov rax, rsi
cmp rsi, rbx
je 0x14006708a
cmp dword [rax + 0x60], r14d
jne 0x1400670b0
mov rax, qword [rax + 0x28]
or byte [rax + 0xcc], 0x80
mov rax, qword [rdi]
jmp 0x1400670b0
mov rdx, qword [r15 + 0x48]
mov r8, qword [r15 + 0x50]
mov rcx, r15
xor r9d, r9d
call fcn.140066590
mov rdx, qword [r12 + 0x48]
mov r8, qword [r12 + 0x50]
mov rcx, r12
xor r9d, r9d
call fcn.140066590
mov rax, qword [0x140114180]
xorps xmm0, xmm0
ucomiss xmm0, dword [rax + 0x61d4]
jb 0x140067121
movss xmm0, dword [rax + 0x1c]
movss dword [rax + 0x61d4], xmm0
mov rax, qword [0x140114180]
mov rcx, qword [rax + 0x4180]
add dword [rcx + 0x138], 0xffffffff
mov rcx, qword [rbp + 8]
test rcx, rcx
mov rsi, qword [rbp + 0x18]
je 0x1400671d1
mov r8d, dword [rax + 0x40c8]
movzx edi, word [rax + 0x6370]
movsx rbx, di
cmp dword [rax + rbx*8 + 0x6374], r8d
jne 0x140067170
movzx edx, word [rax + rbx*8 + 0x637a]
add edx, 1
jmp 0x1400671b5
movsx ebx, di
add ebx, 1
movsxd rbx, ebx
imul rdi, rbx, 0x2aaaaaab
mov rdx, rdi
shr rdx, 0x3f
shr rdi, 0x20
add edi, edx
add edi, edi
lea edi, [rdi + rdi*2]
sub ebx, edi
mov word [rax + 0x6370], bx
movsxd rbx, ebx
mov dword [rax + rbx*8 + 0x6374], r8d
mov dword [rax + rbx*8 + 0x6378], 0
mov dx, 1
mov word [rax + rbx*8 + 0x637a], dx
add dword [rax + 0x636c], 1
mov rdx, qword [0x140114190]
call qword [0x14010a9a0]
mov rcx, qword [rbp - 8]
test rcx, rcx
je 0x140066b40
mov rax, qword [0x140114180]
test rax, rax
je 0x140067267
mov r8d, dword [rax + 0x40c8]
movzx edi, word [rax + 0x6370]
movsx rbx, di
cmp dword [rax + rbx*8 + 0x6374], r8d
jne 0x140067213
movzx edx, word [rax + rbx*8 + 0x637a]
add edx, 1
jmp 0x140067258
movsx ebx, di
add ebx, 1
movsxd rbx, ebx
imul rdi, rbx, 0x2aaaaaab
mov rdx, rdi
shr rdx, 0x3f
shr rdi, 0x20
add edi, edx
add edi, edi
lea edi, [rdi + rdi*2]
sub ebx, edi
mov word [rax + 0x6370], bx
movsxd rbx, ebx
mov dword [rax + rbx*8 + 0x6374], r8d
mov dword [rax + rbx*8 + 0x6378], 0
mov dx, 1
mov word [rax + rbx*8 + 0x637a], dx
add dword [rax + 0x636c], 1
mov rdx, qword [0x140114190]
call qword [0x14010a9a0]
jmp 0x140066b40