// File: /workspace/github_c_makefile_star2_O0/mohuangrui[P]ArtraCFD/computational_geometry.c
// Function: PointTriangleDistance
Real PointTriangleDistance(const Real p[restrict], const Real v0[restrict], const Real e01[restrict],
        const Real e02[restrict], Real para[restrict])
{
    const RealVec D = {v0[X] - p[X], v0[Y] - p[Y], v0[Z] - p[Z]};
    const Real a = Dot(e01, e01);
    const Real b = Dot(e01, e02);
    const Real c = Dot(e02, e02);
    const Real d = Dot(e01, D);
    const Real e = Dot(e02, D);
    const Real f = Dot(D, D);
    const Real det = a * c - b * b;
    const Real zero = 0.0;
    const Real one = 1.0;
    Real s = b * e - c * d;
    Real t = b * d - a * e;
    Real distSquare = zero;
    if (s + t <= det) {
        if (s < zero) {
            if (t < zero) {
                /* region 4 */;
                if (d < zero) {
                    t = zero;
                    if (-d >= a) {
                        s = one;
                        distSquare = a + 2.0 * d + f;
                    } else {
                        s = -d / a;
                        distSquare = d * s + f;
                    }
                } else {
                    s = zero;
                    if (e >= zero) {
                        t = zero;
                        distSquare = f;
                    } else {
                        if (-e >= c) {
                            t = one;
                            distSquare = c + 2.0 * e + f;
                        } else {
                            t = -e / c;
                            distSquare = e * t + f;
                        }
                    }
                }
            } else {
                /* region 3 */
                s = zero;
                if (e >= zero) {
                    t = zero;
                    distSquare = f;
                } else {
                    if (-e >= c) {
                        t = one;
                        distSquare = c + 2.0 * e + f;
                    } else {
                        t = -e / c;
                        distSquare = e * t + f;
                    }
                }
            }
        } else {
            if (t < zero) {
                /* region 5 */;
                t = zero;
                if (d >= zero) {
                    s = zero;
                    distSquare = f;
                } else {
                    if (-d >= a) {
                        s = one;
                        distSquare = a + 2.0 * d + f;
                    } else {
                        s = -d / a;
                        distSquare = d * s + f;
                    }
                }
            } else {
                /* region 0 */
                s = s / det;
                t = t / det;
                distSquare = s * (a * s + b * t + 2.0 * d) + t * (b * s + c * t + 2.0 * e) + f;
            }
        }
    } else {
        if (s < zero) {
            /* region 2 */
            const Real tmp0 = b + d;
            const Real tmp1 = c + e;
            if (tmp1 > tmp0) {
                const Real numer = tmp1 - tmp0;
                const Real denom = a - 2.0 * b + c;
                if (numer >= denom) {
                    s = one;
                    t = zero;
                    distSquare = a + 2.0 * d + f;
                } else {
                    s = numer / denom;
                    t = one - s;
                    distSquare = s * (a * s + b * t + 2.0 * d) + t * (b * s + c * t + 2.0 * e) + f;
                }
            } else {
                s = zero;
                if (tmp1 <= zero) {
                    t = one;
                    distSquare = c + 2.0 * e + f;
                } else {
                    if (e >= zero) {
                        t = zero;
                        distSquare = f;
                    } else {
                        t = -e / c;
                        distSquare = e * t + f;
                    }
                }
            }
        } else {
            if (t < zero) {
                /* region 6 */;
                const Real tmp0 = b + e;
                const Real tmp1 = a + d;
                if (tmp1 > tmp0) {
                    const Real numer = tmp1 - tmp0;
                    const Real denom = a - 2.0 * b + c;
                    if (numer >= denom) {
                        t = one;
                        s = zero;
                        distSquare = c + 2.0 * e + f;
                    } else {
                        t = numer / denom;
                        s = one - t;
                        distSquare = s * (a * s + b * t + 2.0 * d) + t * (b * s + c * t + 2.0 * e) + f;
                    }
                } else {
                    t = zero;
                    if (tmp1 <= zero) {
                        s = one;
                        distSquare = a + 2.0 * d + f;
                    } else {
                        if (d >= zero) {
                            s = zero;
                            distSquare = f;
                        } else {
                            s = -d / a;
                            distSquare = d * s + f;
                        }
                    }
                }
            } else {
                /* region 1 */
                const Real numer = c + e - b - d;
                if (numer <= zero) {
                    s = zero;
                    t = one;
                    distSquare = c + 2.0 * e + f;
                } else {
                    const Real denom = a - 2.0 * b + c;
                    if (numer >= denom) {
                        s = one;
                        t = zero;
                        distSquare = a + 2.0 * d + f;
                    } else {
                        s = numer / denom;
                        t = one - s;
                        distSquare = s * (a * s + b * t + 2.0 * d) + t * (b * s + c * t + 2.0 * e) + f;
                    }
                }
            }
        }
    }
    para[0] = one - s - t;
    para[1] = s;
    para[2] = t;
    /* account for numerical round-off error */
    if (zero > distSquare) {
        distSquare = zero;
    }
    return distSquare;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x10(%rbp), %rax
movsd (%rax), %xmm0
movq -0x8(%rbp), %rax
subsd (%rax), %xmm0
movsd %xmm0, -0x40(%rbp)
movq -0x10(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
subsd 0x8(%rax), %xmm0
movsd %xmm0, -0x38(%rbp)
movq -0x10(%rbp), %rax
movsd 0x10(%rax), %xmm0
movq -0x8(%rbp), %rax
subsd 0x10(%rax), %xmm0
movsd %xmm0, -0x30(%rbp)
movq -0x18(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9880
movsd %xmm0, -0x48(%rbp)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x9880
movsd %xmm0, -0x50(%rbp)
movq -0x20(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x9880
movsd %xmm0, -0x58(%rbp)
movq -0x18(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x9880
movsd %xmm0, -0x60(%rbp)
movq -0x20(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x9880
movsd %xmm0, -0x68(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x9880
movsd %xmm0, -0x70(%rbp)
movsd -0x48(%rbp), %xmm0
movsd -0x58(%rbp), %xmm2
movsd -0x50(%rbp), %xmm1
mulsd -0x50(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x78(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x80(%rbp)
movsd 0x185ba(%rip), %xmm0    # 0x27710
movsd %xmm0, -0x88(%rbp)
movsd -0x50(%rbp), %xmm0
movsd -0x68(%rbp), %xmm2
movsd -0x58(%rbp), %xmm1
mulsd -0x60(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x50(%rbp), %xmm0
movsd -0x60(%rbp), %xmm2
movsd -0x48(%rbp), %xmm1
mulsd -0x68(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x98(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0xa0(%rbp)
movsd -0x90(%rbp), %xmm1
addsd -0x98(%rbp), %xmm1
movsd -0x78(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0xf63e
xorps %xmm0, %xmm0
ucomisd -0x90(%rbp), %xmm0
jbe 0xf499
xorps %xmm0, %xmm0
ucomisd -0x98(%rbp), %xmm0
jbe 0xf3bb
xorps %xmm0, %xmm0
ucomisd -0x60(%rbp), %xmm0
jbe 0xf2dd
xorps %xmm0, %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x60(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
ucomisd -0x48(%rbp), %xmm0
jb 0xf28d
movsd 0x184ac(%rip), %xmm0    # 0x27710
movsd %xmm0, -0x90(%rbp)
movsd -0x48(%rbp), %xmm1
movsd -0x60(%rbp), %xmm0
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf2d8
movsd -0x60(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
divsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x60(%rbp), %xmm0
movsd -0x90(%rbp), %xmm2
movsd -0x70(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf3b6
xorps %xmm0, %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x68(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xf313
xorps %xmm0, %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf3b4
movsd -0x68(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
ucomisd -0x58(%rbp), %xmm0
jb 0xf367
movsd 0x183d2(%rip), %xmm0    # 0x27710
movsd %xmm0, -0x98(%rbp)
movsd -0x58(%rbp), %xmm1
movsd -0x68(%rbp), %xmm0
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf3b2
movsd -0x68(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
divsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x68(%rbp), %xmm0
movsd -0x98(%rbp), %xmm2
movsd -0x70(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf3b4
jmp 0xf3b6
jmp 0xf494
xorps %xmm0, %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x68(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xf3f1
xorps %xmm0, %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf492
movsd -0x68(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
ucomisd -0x58(%rbp), %xmm0
jb 0xf445
movsd 0x182f4(%rip), %xmm0    # 0x27710
movsd %xmm0, -0x98(%rbp)
movsd -0x58(%rbp), %xmm1
movsd -0x68(%rbp), %xmm0
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf490
movsd -0x68(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
divsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x68(%rbp), %xmm0
movsd -0x98(%rbp), %xmm2
movsd -0x70(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf492
jmp 0xf494
jmp 0xf639
xorps %xmm0, %xmm0
ucomisd -0x98(%rbp), %xmm0
jbe 0xf586
xorps %xmm0, %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x60(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xf4e0
xorps %xmm0, %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf581
movsd -0x60(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
ucomisd -0x48(%rbp), %xmm0
jb 0xf534
movsd 0x18205(%rip), %xmm0    # 0x27710
movsd %xmm0, -0x90(%rbp)
movsd -0x48(%rbp), %xmm1
movsd -0x60(%rbp), %xmm0
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf57f
movsd -0x60(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
divsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x60(%rbp), %xmm0
movsd -0x90(%rbp), %xmm2
movsd -0x70(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf581
jmp 0xf637
movsd -0x90(%rbp), %xmm0
divsd -0x78(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x98(%rbp), %xmm0
divsd -0x78(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x90(%rbp), %xmm0
movsd -0x48(%rbp), %xmm1
movsd -0x90(%rbp), %xmm3
movsd -0x50(%rbp), %xmm2
mulsd -0x98(%rbp), %xmm2
mulsd %xmm3, %xmm1
addsd %xmm2, %xmm1
movsd -0x60(%rbp), %xmm2
addsd %xmm2, %xmm2
addsd %xmm1, %xmm2
movsd -0x98(%rbp), %xmm1
movsd -0x50(%rbp), %xmm4
movsd -0x90(%rbp), %xmm5
movsd -0x58(%rbp), %xmm3
mulsd -0x98(%rbp), %xmm3
mulsd %xmm5, %xmm4
addsd %xmm3, %xmm4
movsd -0x68(%rbp), %xmm3
addsd %xmm3, %xmm3
addsd %xmm4, %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf639
jmp 0xfc7d
xorps %xmm0, %xmm0
ucomisd -0x90(%rbp), %xmm0
jbe 0xf892
movsd -0x50(%rbp), %xmm0
addsd -0x60(%rbp), %xmm0
movsd %xmm0, -0xa8(%rbp)
movsd -0x58(%rbp), %xmm0
addsd -0x68(%rbp), %xmm0
movsd %xmm0, -0xb0(%rbp)
movsd -0xb0(%rbp), %xmm0
ucomisd -0xa8(%rbp), %xmm0
jbe 0xf7cd
movsd -0xb0(%rbp), %xmm0
subsd -0xa8(%rbp), %xmm0
movsd %xmm0, -0xb8(%rbp)
movsd -0x48(%rbp), %xmm0
movsd -0x50(%rbp), %xmm1
addsd %xmm1, %xmm1
subsd %xmm1, %xmm0
addsd -0x58(%rbp), %xmm0
movsd %xmm0, -0xc0(%rbp)
movsd -0xb8(%rbp), %xmm0
ucomisd -0xc0(%rbp), %xmm0
jb 0xf711
movsd 0x18036(%rip), %xmm0    # 0x27710
movsd %xmm0, -0x90(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x48(%rbp), %xmm1
movsd -0x60(%rbp), %xmm0
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf7c8
movsd -0xb8(%rbp), %xmm0
divsd -0xc0(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd 0x17fdf(%rip), %xmm0    # 0x27710
subsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x90(%rbp), %xmm0
movsd -0x48(%rbp), %xmm1
movsd -0x90(%rbp), %xmm3
movsd -0x50(%rbp), %xmm2
mulsd -0x98(%rbp), %xmm2
mulsd %xmm3, %xmm1
addsd %xmm2, %xmm1
movsd -0x60(%rbp), %xmm2
addsd %xmm2, %xmm2
addsd %xmm1, %xmm2
movsd -0x98(%rbp), %xmm1
movsd -0x50(%rbp), %xmm4
movsd -0x90(%rbp), %xmm5
movsd -0x58(%rbp), %xmm3
mulsd -0x98(%rbp), %xmm3
mulsd %xmm5, %xmm4
addsd %xmm3, %xmm4
movsd -0x68(%rbp), %xmm3
addsd %xmm3, %xmm3
addsd %xmm4, %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf88d
xorps %xmm0, %xmm0
movsd %xmm0, -0x90(%rbp)
xorps %xmm0, %xmm0
ucomisd -0xb0(%rbp), %xmm0
jb 0xf816
movsd 0x17f23(%rip), %xmm0    # 0x27710
movsd %xmm0, -0x98(%rbp)
movsd -0x58(%rbp), %xmm1
movsd -0x68(%rbp), %xmm0
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf88b
movsd -0x68(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xf83e
xorps %xmm0, %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf889
movsd -0x68(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
divsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x68(%rbp), %xmm0
movsd -0x98(%rbp), %xmm2
movsd -0x70(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xf88b
jmp 0xf88d
jmp 0xfc7b
xorps %xmm0, %xmm0
ucomisd -0x98(%rbp), %xmm0
jbe 0xfae6
movsd -0x50(%rbp), %xmm0
addsd -0x68(%rbp), %xmm0
movsd %xmm0, -0xc8(%rbp)
movsd -0x48(%rbp), %xmm0
addsd -0x60(%rbp), %xmm0
movsd %xmm0, -0xd0(%rbp)
movsd -0xd0(%rbp), %xmm0
ucomisd -0xc8(%rbp), %xmm0
jbe 0xfa21
movsd -0xd0(%rbp), %xmm0
subsd -0xc8(%rbp), %xmm0
movsd %xmm0, -0xd8(%rbp)
movsd -0x48(%rbp), %xmm0
movsd -0x50(%rbp), %xmm1
addsd %xmm1, %xmm1
subsd %xmm1, %xmm0
addsd -0x58(%rbp), %xmm0
movsd %xmm0, -0xe0(%rbp)
movsd -0xd8(%rbp), %xmm0
ucomisd -0xe0(%rbp), %xmm0
jb 0xf965
movsd 0x17de2(%rip), %xmm0    # 0x27710
movsd %xmm0, -0x98(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x58(%rbp), %xmm1
movsd -0x68(%rbp), %xmm0
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xfa1c
movsd -0xd8(%rbp), %xmm0
divsd -0xe0(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd 0x17d8b(%rip), %xmm0    # 0x27710
subsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x90(%rbp), %xmm0
movsd -0x48(%rbp), %xmm1
movsd -0x90(%rbp), %xmm3
movsd -0x50(%rbp), %xmm2
mulsd -0x98(%rbp), %xmm2
mulsd %xmm3, %xmm1
addsd %xmm2, %xmm1
movsd -0x60(%rbp), %xmm2
addsd %xmm2, %xmm2
addsd %xmm1, %xmm2
movsd -0x98(%rbp), %xmm1
movsd -0x50(%rbp), %xmm4
movsd -0x90(%rbp), %xmm5
movsd -0x58(%rbp), %xmm3
mulsd -0x98(%rbp), %xmm3
mulsd %xmm5, %xmm4
addsd %xmm3, %xmm4
movsd -0x68(%rbp), %xmm3
addsd %xmm3, %xmm3
addsd %xmm4, %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xfae1
xorps %xmm0, %xmm0
movsd %xmm0, -0x98(%rbp)
xorps %xmm0, %xmm0
ucomisd -0xd0(%rbp), %xmm0
jb 0xfa6a
movsd 0x17ccf(%rip), %xmm0    # 0x27710
movsd %xmm0, -0x90(%rbp)
movsd -0x48(%rbp), %xmm1
movsd -0x60(%rbp), %xmm0
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xfadf
movsd -0x60(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xfa92
xorps %xmm0, %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xfadd
movsd -0x60(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
divsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x60(%rbp), %xmm0
movsd -0x90(%rbp), %xmm2
movsd -0x70(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xfadf
jmp 0xfae1
jmp 0xfc79
movsd -0x58(%rbp), %xmm0
addsd -0x68(%rbp), %xmm0
subsd -0x50(%rbp), %xmm0
subsd -0x60(%rbp), %xmm0
movsd %xmm0, -0xe8(%rbp)
xorps %xmm0, %xmm0
ucomisd -0xe8(%rbp), %xmm0
jb 0xfb4e
xorps %xmm0, %xmm0
movsd %xmm0, -0x90(%rbp)
movsd 0x17bee(%rip), %xmm0    # 0x27710
movsd %xmm0, -0x98(%rbp)
movsd -0x58(%rbp), %xmm1
movsd -0x68(%rbp), %xmm0
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xfc77
movsd -0x48(%rbp), %xmm0
movsd -0x50(%rbp), %xmm1
addsd %xmm1, %xmm1
subsd %xmm1, %xmm0
addsd -0x58(%rbp), %xmm0
movsd %xmm0, -0xf0(%rbp)
movsd -0xe8(%rbp), %xmm0
ucomisd -0xf0(%rbp), %xmm0
jb 0xfbbe
movsd 0x17b89(%rip), %xmm0    # 0x27710
movsd %xmm0, -0x90(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x48(%rbp), %xmm1
movsd -0x60(%rbp), %xmm0
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xfc75
movsd -0xe8(%rbp), %xmm0
divsd -0xf0(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd 0x17b32(%rip), %xmm0    # 0x27710
subsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x90(%rbp), %xmm0
movsd -0x48(%rbp), %xmm1
movsd -0x90(%rbp), %xmm3
movsd -0x50(%rbp), %xmm2
mulsd -0x98(%rbp), %xmm2
mulsd %xmm3, %xmm1
addsd %xmm2, %xmm1
movsd -0x60(%rbp), %xmm2
addsd %xmm2, %xmm2
addsd %xmm1, %xmm2
movsd -0x98(%rbp), %xmm1
movsd -0x50(%rbp), %xmm4
movsd -0x90(%rbp), %xmm5
movsd -0x58(%rbp), %xmm3
mulsd -0x98(%rbp), %xmm3
mulsd %xmm5, %xmm4
addsd %xmm3, %xmm4
movsd -0x68(%rbp), %xmm3
addsd %xmm3, %xmm3
addsd %xmm4, %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0xfc77
jmp 0xfc79
jmp 0xfc7b
jmp 0xfc7d
movsd 0x17a8b(%rip), %xmm0    # 0x27710
subsd -0x90(%rbp), %xmm0
subsd -0x98(%rbp), %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x90(%rbp), %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movsd -0x98(%rbp), %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, 0x10(%rax)
xorps %xmm0, %xmm0
ucomisd -0xa0(%rbp), %xmm0
jbe 0xfcd7
xorps %xmm0, %xmm0
movsd %xmm0, -0xa0(%rbp)
movsd -0xa0(%rbp), %xmm0
addq $0xf0, %rsp
popq %rbp
retq
nopl (%rax,%rax)