void NURBSsurfaceRegularEval(int orderU, int orderV, double *cp, int ncp,
                             int kcp, double *knotU, double *knotV, double u0,
                             double deltau, int numu, double v0, double deltav,
                             int numv, double *ep) {
  int i, j, ii, jj, indi, indj, epind, indi2, indj2, ind, myint, myint2;
  int numuMinusOne, numvMinusOne, ncpMinusOne, kcpMinusOne, fourncp,
      fourncpMinusFour;
  int degU, degV, *spanArray, sdU, spanScalar, sdV;
  double *left, *right, *N, *Npoly;
  double utmp, vtmp, wgh, NN;
  char uBounds, vBounds;
  numuMinusOne = numu - 1;
  numvMinusOne = numv - 1;
  ncpMinusOne = ncp - 1;
  kcpMinusOne = kcp - 1;
  degU = orderU - 1;
  degV = orderV - 1;
  if (u0 < (knotU[degU] + 1e-12) &&
      (u0 + numuMinusOne * deltau) > (knotU[ncp] - 1e-12)) {
    uBounds = 1;
  } else {
    uBounds = 0;
  }
  if (v0 < (knotV[degV] + 1e-12) &&
      (v0 + numvMinusOne * deltav) > (knotV[kcp] - 1e-12)) {
    vBounds = 1;
  } else {
    vBounds = 0;
  }
  myint = MAX(orderU, orderV);
  left = (double *)malloc(myint * sizeof(double) + 1);
  right = (double *)malloc(myint * sizeof(double) + 1);
  fourncp = 4 * ncp;
  fourncpMinusFour = fourncp - 4;
  if ((numu * orderU * sizeof(double) + numu * sizeof(int) +
       orderV * sizeof(double)) <
      (numv * orderV * sizeof(double) + numv * sizeof(int) +
       orderU * sizeof(double))) {
    N = (double *)malloc(orderV * sizeof(double) + 1);
    spanArray = (int *)malloc(numu * sizeof(int) + 1);
    Npoly = (double *)malloc(numu * orderU * sizeof(double) + 1);
    if (uBounds && vBounds) {
      spanArray[0] = degU;
      sdU = 0;
      ep[0] = cp[0] / cp[3];
      ep[1] = cp[1] / cp[3];
      ep[2] = cp[2] / cp[3];
      utmp = u0;
      for (ii = 1; ii < numuMinusOne; ii++) {
        epind = 3 * ii;
        indi2 = ii * orderU;
        utmp += deltau;
        spanArray[ii] = FindSpanIncSeq(ncp, utmp, knotU, spanArray[ii - 1]);
        BasisFuns(spanArray[ii], utmp, degU, knotU, &Npoly[indi2], left, right);
        spanArray[ii - 1] = sdU;
        sdU = spanArray[ii] - degU;
        wgh = 0.0;
        for (j = 0; j <= degU; j++) {
          indj = 4 * (sdU + j);
          indj2 = indi2 + j;
          ep[epind] += Npoly[indj2] * cp[indj];
          ep[epind + 1] += Npoly[indj2] * cp[indj + 1];
          ep[epind + 2] += Npoly[indj2] * cp[indj + 2];
          wgh += Npoly[indj2] * cp[indj + 3];
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
      }
      spanArray[numu - 2] = sdU;
      epind = 3 * numuMinusOne;
      indj = fourncp - 1;
      ep[epind] = cp[indj - 3] / cp[indj];
      ep[epind + 1] = cp[indj - 2] / cp[indj];
      ep[epind + 2] = cp[indj - 1] / cp[indj];
      spanScalar = degV;
      vtmp = v0;
      for (jj = 1; jj < numvMinusOne; jj++) {
        vtmp += deltav;
        spanScalar = FindSpanIncSeq(kcp, vtmp, knotV, spanScalar);
        BasisFuns(spanScalar, vtmp, degV, knotV, N, left, right);
        sdV = spanScalar - degV;
        ind = jj * numu;
        epind = 3 * ind;
        wgh = 0.0;
        for (i = 0; i <= degV; i++) {
          indj = fourncp * (sdV + i);
          ep[epind] += N[i] * cp[indj];
          ep[epind + 1] += N[i] * cp[indj + 1];
          ep[epind + 2] += N[i] * cp[indj + 2];
          wgh += N[i] * cp[indj + 3];
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
        myint2 = sdV * ncp;
        for (ii = 1; ii < numuMinusOne; ii++) {
          epind = 3 * (ii + ind);
          indi2 = ii * orderU;
          myint = myint2 + spanArray[ii];
          wgh = 0.0;
          for (i = 0; i <= degV; i++) {
            indi = ncp * i + myint;
            for (j = 0; j <= degU; j++) {
              indj = 4 * (indi + j);
              NN = N[i] * Npoly[indi2 + j];
              ep[epind] += NN * cp[indj];
              ep[epind + 1] += NN * cp[indj + 1];
              ep[epind + 2] += NN * cp[indj + 2];
              wgh += NN * cp[indj + 3];
            }
          }
          ep[epind] = ep[epind] / wgh;
          ep[epind + 1] = ep[epind + 1] / wgh;
          ep[epind + 2] = ep[epind + 2] / wgh;
        }
        epind = 3 * (numuMinusOne + ind);
        indi = fourncp * sdV + fourncpMinusFour;
        wgh = 0.0;
        for (i = 0; i <= degV; i++) {
          indj = fourncp * i + indi;
          ep[epind] += N[i] * cp[indj];
          ep[epind + 1] += N[i] * cp[indj + 1];
          ep[epind + 2] += N[i] * cp[indj + 2];
          wgh += N[i] * cp[indj + 3];
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
      }
      ind = numvMinusOne * numu;
      epind = 3 * ind;
      indj = kcpMinusOne * fourncp + 3;
      ep[epind] = cp[indj - 3] / cp[indj];
      ep[epind + 1] = cp[indj - 2] / cp[indj];
      ep[epind + 2] = cp[indj - 1] / cp[indj];
      myint = kcpMinusOne * ncp;
      for (ii = 1; ii < numuMinusOne; ii++) {
        epind = 3 * (ii + ind);
        indi2 = ii * orderU;
        wgh = 0.0;
        indi = myint + spanArray[ii];
        for (j = 0; j <= degU; j++) {
          indj = 4 * (indi + j);
          indj2 = indi2 + j;
          ep[epind] += Npoly[indj2] * cp[indj];
          ep[epind + 1] += Npoly[indj2] * cp[indj + 1];
          ep[epind + 2] += Npoly[indj2] * cp[indj + 2];
          wgh += Npoly[indj2] * cp[indj + 3];
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
      }
      epind = 3 * (numu * numv - 1);
      indj = fourncp * kcp - 1;
      ep[epind] = cp[indj - 3] / cp[indj];
      ep[epind + 1] = cp[indj - 2] / cp[indj];
      ep[epind + 2] = cp[indj - 1] / cp[indj];
    } else if (vBounds) {
      spanArray[0] = FindSpan(ncp, degU, u0, knotU);
      BasisFuns(spanArray[0], u0, degU, knotU, Npoly, left, right);
      sdU = spanArray[0] - degU;
      wgh = 0.0;
      for (j = 0; j <= degU; j++) {
        indj = 4 * (sdU + j);
        ep[0] += Npoly[j] * cp[indj];
        ep[1] += Npoly[j] * cp[indj + 1];
        ep[2] += Npoly[j] * cp[indj + 2];
        wgh += Npoly[j] * cp[indj + 3];
      }
      ep[0] = ep[0] / wgh;
      ep[1] = ep[1] / wgh;
      ep[2] = ep[2] / wgh;
      utmp = u0;
      for (ii = 1; ii < numu; ii++) {
        epind = 3 * ii;
        indi2 = ii * orderU;
        utmp += deltau;
        spanArray[ii] = FindSpanIncSeq(ncp, utmp, knotU, spanArray[ii - 1]);
        BasisFuns(spanArray[ii], utmp, degU, knotU, &Npoly[indi2], left, right);
        spanArray[ii - 1] = sdU;
        sdU = spanArray[ii] - degU;
        wgh = 0.0;
        for (j = 0; j <= degU; j++) {
          indj = 4 * (sdU + j);
          indj2 = indi2 + j;
          ep[epind] += Npoly[indj2] * cp[indj];
          ep[epind + 1] += Npoly[indj2] * cp[indj + 1];
          ep[epind + 2] += Npoly[indj2] * cp[indj + 2];
          wgh += Npoly[indj2] * cp[indj + 3];
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
      }
      spanArray[numuMinusOne] = sdU;
      spanScalar = degV;
      vtmp = v0;
      for (jj = 1; jj < numvMinusOne; jj++) {
        vtmp += deltav;
        spanScalar = FindSpanIncSeq(kcp, vtmp, knotV, spanScalar);
        BasisFuns(spanScalar, vtmp, degV, knotV, N, left, right);
        sdV = spanScalar - degV;
        ind = jj * numu;
        myint2 = sdV * ncp;
        for (ii = 0; ii < numu; ii++) {
          epind = 3 * (ii + ind);
          indi2 = ii * orderU;
          myint = myint2 + spanArray[ii];
          wgh = 0.0;
          for (i = 0; i <= degV; i++) {
            indi = ncp * i + myint;
            for (j = 0; j <= degU; j++) {
              indj = 4 * (indi + j);
              NN = N[i] * Npoly[indi2 + j];
              ep[epind] += NN * cp[indj];
              ep[epind + 1] += NN * cp[indj + 1];
              ep[epind + 2] += NN * cp[indj + 2];
              wgh += NN * cp[indj + 3];
            }
          }
          ep[epind] = ep[epind] / wgh;
          ep[epind + 1] = ep[epind + 1] / wgh;
          ep[epind + 2] = ep[epind + 2] / wgh;
        }
      }
      ind = numvMinusOne * numu;
      myint = kcpMinusOne * ncp;
      for (ii = 0; ii < numu; ii++) {
        epind = 3 * (ii + ind);
        indi2 = ii * orderU;
        wgh = 0.0;
        indi = myint + spanArray[ii];
        for (j = 0; j <= degU; j++) {
          indj = 4 * (indi + j);
          indj2 = indi2 + j;
          ep[epind] += Npoly[indj2] * cp[indj];
          ep[epind + 1] += Npoly[indj2] * cp[indj + 1];
          ep[epind + 2] += Npoly[indj2] * cp[indj + 2];
          wgh += Npoly[indj2] * cp[indj + 3];
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
      }
    } else if (uBounds) {
      spanArray[0] = degU;
      sdU = 0;
      spanScalar = FindSpan(kcp, degV, v0, knotV);
      BasisFuns(spanScalar, v0, degV, knotV, N, left, right);
      sdV = spanScalar - degV;
      myint2 = sdV * ncp;
      wgh = 0.0;
      for (i = 0; i <= degV; i++) {
        indj = fourncp * (sdV + i);
        ep[0] += N[i] * cp[indj];
        ep[1] += N[i] * cp[indj + 1];
        ep[2] += N[i] * cp[indj + 2];
        wgh += N[i] * cp[indj + 3];
      }
      ep[0] = ep[0] / wgh;
      ep[1] = ep[1] / wgh;
      ep[2] = ep[2] / wgh;
      utmp = u0;
      for (ii = 1; ii < numuMinusOne; ii++) {
        epind = 3 * ii;
        indi2 = ii * orderU;
        utmp += deltau;
        spanArray[ii] = FindSpanIncSeq(ncp, utmp, knotU, spanArray[ii - 1]);
        BasisFuns(spanArray[ii], utmp, degU, knotU, &Npoly[indi2], left, right);
        spanArray[ii - 1] = sdU;
        sdU = spanArray[ii] - degU;
        myint = myint2 + sdU;
        wgh = 0.0;
        for (i = 0; i <= degV; i++) {
          indi = ncp * i + myint;
          for (j = 0; j <= degU; j++) {
            indj = 4 * (indi + j);
            NN = N[i] * Npoly[indi2 + j];
            ep[epind] += NN * cp[indj];
            ep[epind + 1] += NN * cp[indj + 1];
            ep[epind + 2] += NN * cp[indj + 2];
            wgh += NN * cp[indj + 3];
          }
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
      }
      spanArray[numu - 2] = sdU;
      epind = 3 * numuMinusOne;
      indi2 = numuMinusOne * orderU;
      indi = fourncp * sdV + fourncpMinusFour;
      wgh = 0.0;
      for (i = 0; i <= degV; i++) {
        indj = fourncp * i + indi;
        ep[epind] += N[i] * cp[indj];
        ep[epind + 1] += N[i] * cp[indj + 1];
        ep[epind + 2] += N[i] * cp[indj + 2];
        wgh += N[i] * cp[indj + 3];
      }
      ep[epind] = ep[epind] / wgh;
      ep[epind + 1] = ep[epind + 1] / wgh;
      ep[epind + 2] = ep[epind + 2] / wgh;
      vtmp = v0;
      for (jj = 1; jj < numv; jj++) {
        vtmp += deltav;
        spanScalar = FindSpanIncSeq(kcp, vtmp, knotV, spanScalar);
        BasisFuns(spanScalar, vtmp, degV, knotV, N, left, right);
        sdV = spanScalar - degV;
        ind = jj * numu;
        epind = 3 * ind;
        wgh = 0.0;
        for (i = 0; i <= degV; i++) {
          indj = fourncp * (sdV + i);
          ep[epind] += N[i] * cp[indj];
          ep[epind + 1] += N[i] * cp[indj + 1];
          ep[epind + 2] += N[i] * cp[indj + 2];
          wgh += N[i] * cp[indj + 3];
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
        myint2 = sdV * ncp;
        for (ii = 1; ii < numuMinusOne; ii++) {
          epind = 3 * (ii + ind);
          indi2 = ii * orderU;
          myint = myint2 + spanArray[ii];
          wgh = 0.0;
          for (i = 0; i <= degV; i++) {
            indi = ncp * i + myint;
            for (j = 0; j <= degU; j++) {
              indj = 4 * (indi + j);
              NN = N[i] * Npoly[indi2 + j];
              ep[epind] += NN * cp[indj];
              ep[epind + 1] += NN * cp[indj + 1];
              ep[epind + 2] += NN * cp[indj + 2];
              wgh += NN * cp[indj + 3];
            }
          }
          ep[epind] = ep[epind] / wgh;
          ep[epind + 1] = ep[epind + 1] / wgh;
          ep[epind + 2] = ep[epind + 2] / wgh;
        }
        epind = 3 * (numuMinusOne + ind);
        indi = fourncp * sdV + fourncpMinusFour;
        wgh = 0.0;
        for (i = 0; i <= degV; i++) {
          indj = fourncp * i + indi;
          ep[epind] += N[i] * cp[indj];
          ep[epind + 1] += N[i] * cp[indj + 1];
          ep[epind + 2] += N[i] * cp[indj + 2];
          wgh += N[i] * cp[indj + 3];
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
      }
    } else {
      spanArray[0] = FindSpan(ncp, degU, u0, knotU);
      BasisFuns(spanArray[0], u0, degU, knotU, Npoly, left, right);
      sdU = spanArray[0] - degU;
      spanScalar = FindSpan(kcp, degV, v0, knotV);
      BasisFuns(spanScalar, v0, degV, knotV, N, left, right);
      sdV = spanScalar - degV;
      myint2 = sdV * ncp;
      myint = myint2 + sdU;
      wgh = 0.0;
      for (i = 0; i <= degV; i++) {
        indi = ncp * i + myint;
        for (j = 0; j <= degU; j++) {
          indj = 4 * (indi + j);
          NN = N[i] * Npoly[j];
          ep[0] += NN * cp[indj];
          ep[1] += NN * cp[indj + 1];
          ep[2] += NN * cp[indj + 2];
          wgh += NN * cp[indj + 3];
        }
      }
      ep[0] = ep[0] / wgh;
      ep[1] = ep[1] / wgh;
      ep[2] = ep[2] / wgh;
      utmp = u0;
      for (ii = 1; ii < numu; ii++) {
        epind = 3 * ii;
        indi2 = ii * orderU;
        utmp += deltau;
        spanArray[ii] = FindSpanIncSeq(ncp, utmp, knotU, spanArray[ii - 1]);
        BasisFuns(spanArray[ii], utmp, degU, knotU, &Npoly[indi2], left, right);
        spanArray[ii - 1] = sdU;
        sdU = spanArray[ii] - degU;
        myint = myint2 + sdU;
        wgh = 0.0;
        for (i = 0; i <= degV; i++) {
          indi = ncp * i + myint;
          for (j = 0; j <= degU; j++) {
            indj = 4 * (indi + j);
            NN = N[i] * Npoly[indi2 + j];
            ep[epind] += NN * cp[indj];
            ep[epind + 1] += NN * cp[indj + 1];
            ep[epind + 2] += NN * cp[indj + 2];
            wgh += NN * cp[indj + 3];
          }
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
      }
      spanArray[numuMinusOne] = sdU;
      vtmp = v0;
      for (jj = 1; jj < numv; jj++) {
        vtmp += deltav;
        spanScalar = FindSpanIncSeq(kcp, vtmp, knotV, spanScalar);
        BasisFuns(spanScalar, vtmp, degV, knotV, N, left, right);
        sdV = spanScalar - degV;
        ind = jj * numu;
        myint2 = sdV * ncp;
        for (ii = 0; ii < numu; ii++) {
          epind = 3 * (ii + ind);
          indi2 = ii * orderU;
          myint = myint2 + spanArray[ii];
          wgh = 0.0;
          for (i = 0; i <= degV; i++) {
            indi = ncp * i + myint;
            for (j = 0; j <= degU; j++) {
              indj = 4 * (indi + j);
              NN = N[i] * Npoly[indi2 + j];
              ep[epind] += NN * cp[indj];
              ep[epind + 1] += NN * cp[indj + 1];
              ep[epind + 2] += NN * cp[indj + 2];
              wgh += NN * cp[indj + 3];
            }
          }
          ep[epind] = ep[epind] / wgh;
          ep[epind + 1] = ep[epind + 1] / wgh;
          ep[epind + 2] = ep[epind + 2] / wgh;
        }
      }
    }
  } else {
    N = (double *)malloc(orderU * sizeof(double) + 1);
    spanArray = (int *)malloc(numv * sizeof(int) + 1);
    Npoly = (double *)malloc(numv * orderV * sizeof(double) + 1);
    myint2 = 3 * numu;
    if (uBounds && vBounds) {
      spanArray[0] = degV;
      sdV = 0;
      ep[0] = cp[0] / cp[3];
      ep[1] = cp[1] / cp[3];
      ep[2] = cp[2] / cp[3];
      vtmp = v0;
      for (ii = 1; ii < numvMinusOne; ii++) {
        epind = ii * myint2;
        indi2 = ii * orderV;
        vtmp += deltav;
        spanArray[ii] = FindSpanIncSeq(kcp, vtmp, knotV, spanArray[ii - 1]);
        BasisFuns(spanArray[ii], vtmp, degV, knotV, &Npoly[indi2], left, right);
        spanArray[ii - 1] = sdV;
        sdV = spanArray[ii] - degV;
        wgh = 0.0;
        for (i = 0; i <= degV; i++) {
          indj = fourncp * (sdV + i);
          indj2 = indi2 + i;
          ep[epind] += Npoly[indj2] * cp[indj];
          ep[epind + 1] += Npoly[indj2] * cp[indj + 1];
          ep[epind + 2] += Npoly[indj2] * cp[indj + 2];
          wgh += Npoly[indj2] * cp[indj + 3];
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
      }
      spanArray[numv - 2] = sdV;
      epind = numvMinusOne * myint2;
      indj = fourncp * kcpMinusOne + 3;
      ep[epind] = cp[indj - 3] / cp[indj];
      ep[epind + 1] = cp[indj - 2] / cp[indj];
      ep[epind + 2] = cp[indj - 1] / cp[indj];
      spanScalar = degU;
      utmp = u0;
      for (jj = 1; jj < numuMinusOne; jj++) {
        utmp += deltau;
        spanScalar = FindSpanIncSeq(ncp, utmp, knotU, spanScalar);
        BasisFuns(spanScalar, utmp, degU, knotU, N, left, right);
        sdU = spanScalar - degU;
        ind = 3 * jj;
        epind = ind;
        wgh = 0.0;
        for (j = 0; j <= degU; j++) {
          indj = 4 * (sdU + j);
          ep[epind] += N[j] * cp[indj];
          ep[epind + 1] += N[j] * cp[indj + 1];
          ep[epind + 2] += N[j] * cp[indj + 2];
          wgh += N[j] * cp[indj + 3];
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
        for (ii = 1; ii < numvMinusOne; ii++) {
          epind = myint2 * ii + ind;
          indi2 = ii * orderV;
          myint = sdU + spanArray[ii] * ncp;
          wgh = 0.0;
          for (i = 0; i <= degV; i++) {
            indi = ncp * i + myint;
            indj2 = indi2 + i;
            for (j = 0; j <= degU; j++) {
              indj = 4 * (indi + j);
              ep[epind] += Npoly[indj2] * N[j] * cp[indj];
              ep[epind + 1] += Npoly[indj2] * N[j] * cp[indj + 1];
              ep[epind + 2] += Npoly[indj2] * N[j] * cp[indj + 2];
              wgh += Npoly[indj2] * N[j] * cp[indj + 3];
            }
          }
          ep[epind] = ep[epind] / wgh;
          ep[epind + 1] = ep[epind + 1] / wgh;
          ep[epind + 2] = ep[epind + 2] / wgh;
        }
        epind = myint2 * numvMinusOne + ind;
        myint = sdU + kcpMinusOne * ncp;
        wgh = 0.0;
        for (j = 0; j <= degU; j++) {
          indj = 4 * (j + myint);
          ep[epind] += N[j] * cp[indj];
          ep[epind + 1] += N[j] * cp[indj + 1];
          ep[epind + 2] += N[j] * cp[indj + 2];
          wgh += N[j] * cp[indj + 3];
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
      }
      ind = 3 * numuMinusOne;
      epind = ind;
      indj = fourncp - 1;
      ep[epind] = cp[indj - 3] / cp[indj];
      ep[epind + 1] = cp[indj - 2] / cp[indj];
      ep[epind + 2] = cp[indj - 1] / cp[indj];
      for (ii = 1; ii < numvMinusOne; ii++) {
        epind = myint2 * ii + ind;
        indi2 = ii * orderV;
        wgh = 0.0;
        indi = fourncp * spanArray[ii] + fourncpMinusFour;
        for (i = 0; i <= degV; i++) {
          indj = fourncp * i + indi;
          indj2 = indi2 + i;
          ep[epind] += Npoly[indj2] * cp[indj];
          ep[epind + 1] += Npoly[indj2] * cp[indj + 1];
          ep[epind + 2] += Npoly[indj2] * cp[indj + 2];
          wgh += Npoly[indj2] * cp[indj + 3];
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
      }
      epind = 3 * (numu * numv - 1);
      indj = fourncp * kcp - 1;
      ep[epind] = cp[indj - 3] / cp[indj];
      ep[epind + 1] = cp[indj - 2] / cp[indj];
      ep[epind + 2] = cp[indj - 1] / cp[indj];
    } else if (vBounds) {
      spanArray[0] = degV;
      sdV = 0;
      spanScalar = FindSpan(ncp, degU, u0, knotU);
      BasisFuns(spanScalar, u0, degU, knotU, N, left, right);
      sdU = spanScalar - degU;
      wgh = 0.0;
      for (j = 0; j <= degU; j++) {
        indj = 4 * (sdU + j);
        ep[0] += N[j] * cp[indj];
        ep[1] += N[j] * cp[indj + 1];
        ep[2] += N[j] * cp[indj + 2];
        wgh += N[j] * cp[indj + 3];
      }
      ep[0] = ep[0] / wgh;
      ep[1] = ep[1] / wgh;
      ep[2] = ep[2] / wgh;
      vtmp = v0;
      for (ii = 1; ii < numvMinusOne; ii++) {
        epind = ii * myint2;
        indi2 = ii * orderV;
        vtmp += deltav;
        spanArray[ii] = FindSpanIncSeq(kcp, vtmp, knotV, spanArray[ii - 1]);
        BasisFuns(spanArray[ii], vtmp, degV, knotV, &Npoly[indi2], left, right);
        spanArray[ii - 1] = sdV;
        sdV = spanArray[ii] - degV;
        myint = sdV * ncp + sdU;
        wgh = 0.0;
        for (i = 0; i <= degV; i++) {
          indi = ncp * i + myint;
          indj2 = indi2 + i;
          for (j = 0; j <= degU; j++) {
            indj = 4 * (indi + j);
            NN = Npoly[indj2] * N[j];
            ep[epind] += NN * cp[indj];
            ep[epind + 1] += NN * cp[indj + 1];
            ep[epind + 2] += NN * cp[indj + 2];
            wgh += NN * cp[indj + 3];
          }
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
      }
      spanArray[numv - 2] = sdV;
      epind = numvMinusOne * myint2;
      indi = ncp * kcpMinusOne + sdU;
      wgh = 0.0;
      for (j = 0; j <= degU; j++) {
        indj = 4 * (indi + j);
        ep[epind] += N[j] * cp[indj];
        ep[epind + 1] += N[j] * cp[indj + 1];
        ep[epind + 2] += N[j] * cp[indj + 2];
        wgh += N[j] * cp[indj + 3];
      }
      ep[epind] = ep[epind] / wgh;
      ep[epind + 1] = ep[epind + 1] / wgh;
      ep[epind + 2] = ep[epind + 2] / wgh;
      utmp = u0;
      for (jj = 1; jj < numu; jj++) {
        utmp += deltau;
        spanScalar = FindSpanIncSeq(ncp, utmp, knotU, spanScalar);
        BasisFuns(spanScalar, utmp, degU, knotU, N, left, right);
        sdU = spanScalar - degU;
        ind = 3 * jj;
        epind = ind;
        wgh = 0.0;
        for (j = 0; j <= degU; j++) {
          indj = 4 * (sdU + j);
          ep[epind] += N[j] * cp[indj];
          ep[epind + 1] += N[j] * cp[indj + 1];
          ep[epind + 2] += N[j] * cp[indj + 2];
          wgh += N[j] * cp[indj + 3];
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
        for (ii = 1; ii < numvMinusOne; ii++) {
          epind = myint2 * ii + ind;
          indi2 = ii * orderV;
          myint = sdU + spanArray[ii] * ncp;
          wgh = 0.0;
          for (i = 0; i <= degV; i++) {
            indi = ncp * i + myint;
            indj2 = indi2 + i;
            for (j = 0; j <= degU; j++) {
              indj = 4 * (indi + j);
              NN = Npoly[indj2] * N[j];
              ep[epind] += NN * cp[indj];
              ep[epind + 1] += NN * cp[indj + 1];
              ep[epind + 2] += NN * cp[indj + 2];
              wgh += NN * cp[indj + 3];
            }
          }
          ep[epind] = ep[epind] / wgh;
          ep[epind + 1] = ep[epind + 1] / wgh;
          ep[epind + 2] = ep[epind + 2] / wgh;
        }
        epind = myint2 * numvMinusOne + ind;
        indi = ncp * kcpMinusOne + sdU;
        wgh = 0.0;
        for (j = 0; j <= degU; j++) {
          indj = 4 * (indi + j);
          ep[epind] += N[j] * cp[indj];
          ep[epind + 1] += N[j] * cp[indj + 1];
          ep[epind + 2] += N[j] * cp[indj + 2];
          wgh += N[j] * cp[indj + 3];
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
      }
    } else if (uBounds) {
      spanArray[0] = FindSpan(kcp, degV, v0, knotV);
      BasisFuns(spanArray[0], v0, degV, knotV, Npoly, left, right);
      sdV = spanArray[0] - degV;
      wgh = 0.0;
      for (i = 0; i <= degV; i++) {
        indj = fourncp * (sdV + i);
        ep[0] += Npoly[i] * cp[indj];
        ep[1] += Npoly[i] * cp[indj + 1];
        ep[2] += Npoly[i] * cp[indj + 2];
        wgh += Npoly[i] * cp[indj + 3];
      }
      ep[0] = ep[0] / wgh;
      ep[1] = ep[1] / wgh;
      ep[2] = ep[2] / wgh;
      vtmp = v0;
      for (ii = 1; ii < numv; ii++) {
        epind = ii * myint2;
        indi2 = ii * orderV;
        vtmp += deltav;
        spanArray[ii] = FindSpanIncSeq(kcp, vtmp, knotV, spanArray[ii - 1]);
        BasisFuns(spanArray[ii], vtmp, degV, knotV, &Npoly[indi2], left, right);
        spanArray[ii - 1] = sdV;
        sdV = spanArray[ii] - degV;
        wgh = 0.0;
        for (i = 0; i <= degV; i++) {
          indj2 = indi2 + i;
          indj = fourncp * (sdV + i);
          ep[epind] += Npoly[indj2] * cp[indj];
          ep[epind + 1] += Npoly[indj2] * cp[indj + 1];
          ep[epind + 2] += Npoly[indj2] * cp[indj + 2];
          wgh += Npoly[indj2] * cp[indj + 3];
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
      }
      spanArray[numvMinusOne] = sdV;
      spanScalar = degU;
      utmp = u0;
      for (jj = 1; jj < numuMinusOne; jj++) {
        utmp += deltau;
        spanScalar = FindSpanIncSeq(ncp, utmp, knotU, spanScalar);
        BasisFuns(spanScalar, utmp, degU, knotU, N, left, right);
        sdU = spanScalar - degU;
        ind = 3 * jj;
        for (ii = 0; ii < numv; ii++) {
          epind = myint2 * ii + ind;
          indi2 = ii * orderV;
          myint = sdU + spanArray[ii] * ncp;
          wgh = 0.0;
          for (i = 0; i <= degV; i++) {
            indi = ncp * i + myint;
            indj2 = indi2 + i;
            for (j = 0; j <= degU; j++) {
              indj = 4 * (indi + j);
              NN = Npoly[indj2] * N[j];
              ep[epind] += NN * cp[indj];
              ep[epind + 1] += NN * cp[indj + 1];
              ep[epind + 2] += NN * cp[indj + 2];
              wgh += NN * cp[indj + 3];
            }
          }
          ep[epind] = ep[epind] / wgh;
          ep[epind + 1] = ep[epind + 1] / wgh;
          ep[epind + 2] = ep[epind + 2] / wgh;
        }
      }
      ind = 3 * numuMinusOne;
      for (ii = 0; ii < numv; ii++) {
        epind = myint2 * ii + ind;
        indi2 = ii * orderV;
        indi = fourncp * spanArray[ii] + fourncpMinusFour;
        wgh = 0.0;
        for (i = 0; i <= degV; i++) {
          indj2 = indi2 + i;
          indj = fourncp * i + indi;
          ep[epind] += Npoly[indj2] * cp[indj];
          ep[epind + 1] += Npoly[indj2] * cp[indj + 1];
          ep[epind + 2] += Npoly[indj2] * cp[indj + 2];
          wgh += Npoly[indj2] * cp[indj + 3];
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
      }
    } else {
      spanArray[0] = FindSpan(kcp, degV, v0, knotV);
      BasisFuns(spanArray[0], v0, degV, knotV, Npoly, left, right);
      sdV = spanArray[0] - degV;
      spanScalar = FindSpan(ncp, degU, u0, knotU);
      BasisFuns(spanScalar, u0, degU, knotU, N, left, right);
      sdU = spanScalar - degU;
      myint = sdV * ncp + sdU;
      wgh = 0.0;
      for (i = 0; i <= degV; i++) {
        indi = ncp * i + myint;
        for (j = 0; j <= degU; j++) {
          indj = 4 * (indi + j);
          NN = Npoly[i] * N[j];
          ep[0] += NN * cp[indj];
          ep[1] += NN * cp[indj + 1];
          ep[2] += NN * cp[indj + 2];
          wgh += NN * cp[indj + 3];
        }
      }
      ep[0] = ep[0] / wgh;
      ep[1] = ep[1] / wgh;
      ep[2] = ep[2] / wgh;
      vtmp = v0;
      for (ii = 1; ii < numv; ii++) {
        epind = ii * myint2;
        indi2 = ii * orderV;
        vtmp += deltav;
        spanArray[ii] = FindSpanIncSeq(kcp, vtmp, knotV, spanArray[ii - 1]);
        BasisFuns(spanArray[ii], vtmp, degV, knotV, &Npoly[indi2], left, right);
        spanArray[ii - 1] = sdV;
        sdV = spanArray[ii] - degV;
        myint = sdV * ncp + sdU;
        wgh = 0.0;
        for (i = 0; i <= degV; i++) {
          indi = ncp * i + myint;
          indj2 = indi2 + i;
          for (j = 0; j <= degU; j++) {
            indj = 4 * (indi + j);
            NN = Npoly[indj2] * N[j];
            ep[epind] += NN * cp[indj];
            ep[epind + 1] += NN * cp[indj + 1];
            ep[epind + 2] += NN * cp[indj + 2];
            wgh += NN * cp[indj + 3];
          }
        }
        ep[epind] = ep[epind] / wgh;
        ep[epind + 1] = ep[epind + 1] / wgh;
        ep[epind + 2] = ep[epind + 2] / wgh;
      }
      spanArray[numvMinusOne] = sdV;
      utmp = u0;
      for (jj = 1; jj < numu; jj++) {
        utmp += deltau;
        spanScalar = FindSpanIncSeq(ncp, utmp, knotU, spanScalar);
        BasisFuns(spanScalar, utmp, degU, knotU, N, left, right);
        sdU = spanScalar - degU;
        ind = 3 * jj;
        for (ii = 0; ii < numv; ii++) {
          epind = myint2 * ii + ind;
          indi2 = ii * orderV;
          myint = sdU + spanArray[ii] * ncp;
          wgh = 0.0;
          for (i = 0; i <= degV; i++) {
            indi = ncp * i + myint;
            indj2 = indi2 + i;
            for (j = 0; j <= degU; j++) {
              indj = 4 * (indi + j);
              NN = Npoly[indj2] * N[j];
              ep[epind] += NN * cp[indj];
              ep[epind + 1] += NN * cp[indj + 1];
              ep[epind + 2] += NN * cp[indj + 2];
              wgh += NN * cp[indj + 3];
            }
          }
          ep[epind] = ep[epind] / wgh;
          ep[epind + 1] = ep[epind + 1] / wgh;
          ep[epind + 2] = ep[epind + 2] / wgh;
        }
      }
    }
  }
  free(spanArray);
  free(Npoly);
  free(left);
  free(right);
  free(N);
}


x86 assembly (clang, -O0):
<NURBSsurfaceRegularEval>:
push   %rbp
mov    %rsp,%rbp
sub    $0xf0,%rsp
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%eax
mov    0x18(%rbp),%eax
mov    0x10(%rbp),%rax
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %rdx,-0x10(%rbp)
mov    %ecx,-0x14(%rbp)
mov    %r8d,-0x18(%rbp)
mov    %r9,-0x20(%rbp)
movsd  %xmm0,-0x28(%rbp)
movsd  %xmm1,-0x30(%rbp)
movsd  %xmm2,-0x38(%rbp)
movsd  %xmm3,-0x40(%rbp)
mov    0x18(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x74(%rbp)
mov    0x20(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x78(%rbp)
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x7c(%rbp)
mov    -0x18(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x80(%rbp)
mov    -0x4(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x8c(%rbp)
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x90(%rbp)
movsd  -0x28(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movslq -0x8c(%rbp),%rcx
movsd  0x6e0a(%rip),%xmm0
addsd  (%rax,%rcx,8),%xmm0
ucomisd %xmm1,%xmm0
jbe    124b <NURBSsurfaceRegularEval+0xeb>
movsd  -0x28(%rbp),%xmm1
cvtsi2sdl -0x74(%rbp),%xmm0
movsd  -0x30(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x20(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
movsd  0x6dcf(%rip),%xmm2
subsd  %xmm2,%xmm1
ucomisd %xmm1,%xmm0
jbe    124b <NURBSsurfaceRegularEval+0xeb>
movb   $0x1,-0xe9(%rbp)
jmp    1252 <NURBSsurfaceRegularEval+0xf2>
movb   $0x0,-0xe9(%rbp)
movsd  -0x38(%rbp),%xmm1
mov    0x10(%rbp),%rax
movslq -0x90(%rbp),%rcx
movsd  0x6d96(%rip),%xmm0
addsd  (%rax,%rcx,8),%xmm0
ucomisd %xmm1,%xmm0
jbe    12bf <NURBSsurfaceRegularEval+0x15f>
movsd  -0x38(%rbp),%xmm1
cvtsi2sdl -0x78(%rbp),%xmm0
movsd  -0x40(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
movsd  0x6d5b(%rip),%xmm2
subsd  %xmm2,%xmm1
ucomisd %xmm1,%xmm0
jbe    12bf <NURBSsurfaceRegularEval+0x15f>
movb   $0x1,-0xea(%rbp)
jmp    12c6 <NURBSsurfaceRegularEval+0x166>
movb   $0x0,-0xea(%rbp)
mov    -0x4(%rbp),%edi
mov    -0x8(%rbp),%esi
mov    $0x0,%al
call   1050 <MAX@plt>
mov    %eax,-0x6c(%rbp)
movslq -0x6c(%rbp),%rdi
shl    $0x3,%rdi
add    $0x1,%rdi
call   1080 <malloc@plt>
mov    %rax,-0xb0(%rbp)
movslq -0x6c(%rbp),%rdi
shl    $0x3,%rdi
add    $0x1,%rdi
call   1080 <malloc@plt>
mov    %rax,-0xb8(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x84(%rbp)
mov    -0x84(%rbp),%eax
sub    $0x4,%eax
mov    %eax,-0x88(%rbp)
mov    0x18(%rbp),%eax
imul   -0x4(%rbp),%eax
cltq
shl    $0x3,%rax
movslq 0x18(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
movslq -0x8(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    0x20(%rbp),%ecx
imul   -0x8(%rbp),%ecx
movslq %ecx,%rcx
shl    $0x3,%rcx
movslq 0x20(%rbp),%rdx
shl    $0x2,%rdx
add    %rdx,%rcx
movslq -0x4(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
cmp    %rcx,%rax
jae    4192 <NURBSsurfaceRegularEval+0x3032>
movslq -0x8(%rbp),%rdi
shl    $0x3,%rdi
add    $0x1,%rdi
call   1080 <malloc@plt>
mov    %rax,-0xc0(%rbp)
movslq 0x18(%rbp),%rdi
shl    $0x2,%rdi
add    $0x1,%rdi
call   1080 <malloc@plt>
mov    %rax,-0x98(%rbp)
mov    0x18(%rbp),%eax
imul   -0x4(%rbp),%eax
movslq %eax,%rdi
shl    $0x3,%rdi
add    $0x1,%rdi
call   1080 <malloc@plt>
mov    %rax,-0xc8(%rbp)
movsbl -0xe9(%rbp),%eax
cmp    $0x0,%eax
je     21ae <NURBSsurfaceRegularEval+0x104e>
movsbl -0xea(%rbp),%eax
cmp    $0x0,%eax
je     21ae <NURBSsurfaceRegularEval+0x104e>
mov    -0x8c(%rbp),%ecx
mov    -0x98(%rbp),%rax
mov    %ecx,(%rax)
movl   $0x0,-0x9c(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  0x18(%rax),%xmm0
mov    0x28(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  0x18(%rax),%xmm0
mov    0x28(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  0x18(%rax),%xmm0
mov    0x28(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movl   $0x1,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x74(%rbp),%eax
jge    1702 <NURBSsurfaceRegularEval+0x5a2>
imul   $0x3,-0x4c(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x4(%rbp),%eax
mov    %eax,-0x60(%rbp)
movsd  -0x30(%rbp),%xmm0
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x14(%rbp),%edi
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rsi
mov    -0x98(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,%edx
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%edi
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x8c(%rbp),%esi
mov    -0x20(%rbp),%rdx
mov    -0xc8(%rbp),%rcx
movslq -0x60(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0x9c(%rbp),%edx
mov    -0x98(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
sub    -0x8c(%rbp),%eax
mov    %eax,-0x9c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     167a <NURBSsurfaceRegularEval+0x51a>
mov    -0x9c(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0x60(%rbp),%eax
add    -0x48(%rbp),%eax
mov    %eax,-0x64(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    1552 <NURBSsurfaceRegularEval+0x3f2>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    145b <NURBSsurfaceRegularEval+0x2fb>
mov    -0x9c(%rbp),%edx
mov    -0x98(%rbp),%rax
mov    0x18(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
imul   $0x3,-0x74(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x84(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x58(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x90(%rbp),%eax
mov    %eax,-0xa0(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movl   $0x1,-0x50(%rbp)
mov    -0x50(%rbp),%eax
cmp    -0x78(%rbp),%eax
jge    1e46 <NURBSsurfaceRegularEval+0xce6>
movsd  -0x40(%rbp),%xmm0
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x18(%rbp),%edi
movsd  -0xd8(%rbp),%xmm0
ff
mov    0x10(%rbp),%rsi
mov    -0xa0(%rbp),%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,-0xa0(%rbp)
mov    -0xa0(%rbp),%edi
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0x90(%rbp),%esi
mov    0x10(%rbp),%rdx
mov    -0xc0(%rbp),%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0xa0(%rbp),%eax
sub    -0x90(%rbp),%eax
mov    %eax,-0xa4(%rbp)
mov    -0x50(%rbp),%eax
imul   0x18(%rbp),%eax
mov    %eax,-0x68(%rbp)
imul   $0x3,-0x68(%rbp),%eax
mov    %eax,-0x5c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     19ad <NURBSsurfaceRegularEval+0x84d>
mov    -0x84(%rbp),%eax
mov    -0xa4(%rbp),%ecx
add    -0x44(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    1888 <NURBSsurfaceRegularEval+0x728>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xa4(%rbp),%eax
imul   -0x14(%rbp),%eax
mov    %eax,-0x70(%rbp)
movl   $0x1,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x74(%rbp),%eax
jge    1c6a <NURBSsurfaceRegularEval+0xb0a>
mov    -0x4c(%rbp),%eax
add    -0x68(%rbp),%eax
imul   $0x3,%eax,%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x4(%rbp),%eax
mov    %eax,-0x60(%rbp)
mov    -0x70(%rbp),%eax
mov    -0x98(%rbp),%rcx
movslq -0x4c(%rbp),%rdx
add    (%rcx,%rdx,4),%eax
mov    %eax,-0x6c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     1be2 <NURBSsurfaceRegularEval+0xa82>
mov    -0x14(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x6c(%rbp),%eax
mov    %eax,-0x54(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     1bcf <NURBSsurfaceRegularEval+0xa6f>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc8(%rbp),%rax
mov    -0x60(%rbp),%ecx
add    -0x48(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    1aa6 <NURBSsurfaceRegularEval+0x946>
jmp    1bd4 <NURBSsurfaceRegularEval+0xa74>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    1a83 <NURBSsurfaceRegularEval+0x923>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1a3b <NURBSsurfaceRegularEval+0x8db>
mov    -0x74(%rbp),%eax
add    -0x68(%rbp),%eax
imul   $0x3,%eax,%eax
mov    %eax,-0x5c(%rbp)
mov    -0x84(%rbp),%eax
imul   -0xa4(%rbp),%eax
add    -0x88(%rbp),%eax
mov    %eax,-0x54(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     1dbe <NURBSsurfaceRegularEval+0xc5e>
mov    -0x84(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x54(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    1c9e <NURBSsurfaceRegularEval+0xb3e>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
jmp    17dc <NURBSsurfaceRegularEval+0x67c>
mov    -0x78(%rbp),%eax
imul   0x18(%rbp),%eax
mov    %eax,-0x68(%rbp)
imul   $0x3,-0x68(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x80(%rbp),%eax
imul   -0x84(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x58(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x80(%rbp),%eax
imul   -0x14(%rbp),%eax
mov    %eax,-0x6c(%rbp)
movl   $0x1,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x74(%rbp),%eax
jge    20fb <NURBSsurfaceRegularEval+0xf9b>
mov    -0x4c(%rbp),%eax
add    -0x68(%rbp),%eax
imul   $0x3,%eax,%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x4(%rbp),%eax
mov    %eax,-0x60(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x6c(%rbp),%eax
mov    -0x98(%rbp),%rcx
movslq -0x4c(%rbp),%rdx
add    (%rcx,%rdx,4),%eax
mov    %eax,-0x54(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     2073 <NURBSsurfaceRegularEval+0xf13>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0x60(%rbp),%eax
add    -0x48(%rbp),%eax
mov    %eax,-0x64(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    1f4e <NURBSsurfaceRegularEval+0xdee>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1f06 <NURBSsurfaceRegularEval+0xda6>
mov    0x18(%rbp),%eax
imul   0x20(%rbp),%eax
sub    $0x1,%eax
imul   $0x3,%eax,%eax
mov    %eax,-0x5c(%rbp)
mov    -0x84(%rbp),%eax
imul   -0x18(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x58(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
jmp    418d <NURBSsurfaceRegularEval+0x302d>
cmpb   $0x0,-0xea(%rbp)
je     2b7a <NURBSsurfaceRegularEval+0x1a1a>
mov    -0x14(%rbp),%edi
mov    -0x8c(%rbp),%esi
movsd  -0x28(%rbp),%xmm0
mov    -0x20(%rbp),%rdx
mov    $0x1,%al
call   1070 <FindSpan@plt>
mov    %eax,%ecx
mov    -0x98(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x98(%rbp),%rax
mov    (%rax),%edi
movsd  -0x28(%rbp),%xmm0
mov    -0x8c(%rbp),%esi
mov    -0x20(%rbp),%rdx
mov    -0xc8(%rbp),%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0x98(%rbp),%rax
mov    (%rax),%eax
sub    -0x8c(%rbp),%eax
mov    %eax,-0x9c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     2341 <NURBSsurfaceRegularEval+0x11e1>
mov    -0x9c(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
mov    -0xc8(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  0x8(%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x8(%rax)
mov    -0xc8(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  0x10(%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rax)
mov    -0xc8(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    223a <NURBSsurfaceRegularEval+0x10da>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movl   $0x1,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    0x18(%rbp),%eax
jge    2648 <NURBSsurfaceRegularEval+0x14e8>
imul   $0x3,-0x4c(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x4(%rbp),%eax
mov    %eax,-0x60(%rbp)
movsd  -0x30(%rbp),%xmm0
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x14(%rbp),%edi
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rsi
mov    -0x98(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,%edx
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%edi
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x8c(%rbp),%esi
mov    -0x20(%rbp),%rdx
mov    -0xc8(%rbp),%rcx
movslq -0x60(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0x9c(%rbp),%edx
mov    -0x98(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
sub    -0x8c(%rbp),%eax
mov    %eax,-0x9c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     25c0 <NURBSsurfaceRegularEval+0x1460>
mov    -0x9c(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0x60(%rbp),%eax
add    -0x48(%rbp),%eax
mov    %eax,-0x64(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    2498 <NURBSsurfaceRegularEval+0x1338>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    23a1 <NURBSsurfaceRegularEval+0x1241>
mov    -0x9c(%rbp),%edx
mov    -0x98(%rbp),%rax
movslq -0x74(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x90(%rbp),%eax
mov    %eax,-0xa0(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movl   $0x1,-0x50(%rbp)
mov    -0x50(%rbp),%eax
cmp    -0x78(%rbp),%eax
jge    2965 <NURBSsurfaceRegularEval+0x1805>
movsd  -0x40(%rbp),%xmm0
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x18(%rbp),%edi
movsd  -0xd8(%rbp),%xmm0
ff
mov    0x10(%rbp),%rsi
mov    -0xa0(%rbp),%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,-0xa0(%rbp)
mov    -0xa0(%rbp),%edi
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0x90(%rbp),%esi
mov    0x10(%rbp),%rdx
mov    -0xc0(%rbp),%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0xa0(%rbp),%eax
sub    -0x90(%rbp),%eax
mov    %eax,-0xa4(%rbp)
mov    -0x50(%rbp),%eax
imul   0x18(%rbp),%eax
mov    %eax,-0x68(%rbp)
mov    -0xa4(%rbp),%eax
imul   -0x14(%rbp),%eax
mov    %eax,-0x70(%rbp)
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    0x18(%rbp),%eax
jge    2952 <NURBSsurfaceRegularEval+0x17f2>
mov    -0x4c(%rbp),%eax
add    -0x68(%rbp),%eax
imul   $0x3,%eax,%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x4(%rbp),%eax
mov    %eax,-0x60(%rbp)
mov    -0x70(%rbp),%eax
mov    -0x98(%rbp),%rcx
movslq -0x4c(%rbp),%rdx
add    (%rcx,%rdx,4),%eax
mov    %eax,-0x6c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     28ca <NURBSsurfaceRegularEval+0x176a>
mov    -0x14(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x6c(%rbp),%eax
mov    %eax,-0x54(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     28b7 <NURBSsurfaceRegularEval+0x1757>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc8(%rbp),%rax
mov    -0x60(%rbp),%ecx
add    -0x48(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    278e <NURBSsurfaceRegularEval+0x162e>
jmp    28bc <NURBSsurfaceRegularEval+0x175c>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    276b <NURBSsurfaceRegularEval+0x160b>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    2723 <NURBSsurfaceRegularEval+0x15c3>
jmp    2957 <NURBSsurfaceRegularEval+0x17f7>
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
jmp    267c <NURBSsurfaceRegularEval+0x151c>
mov    -0x78(%rbp),%eax
imul   0x18(%rbp),%eax
mov    %eax,-0x68(%rbp)
mov    -0x80(%rbp),%eax
imul   -0x14(%rbp),%eax
mov    %eax,-0x6c(%rbp)
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    0x18(%rbp),%eax
jge    2b75 <NURBSsurfaceRegularEval+0x1a15>
mov    -0x4c(%rbp),%eax
add    -0x68(%rbp),%eax
imul   $0x3,%eax,%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x4(%rbp),%eax
mov    %eax,-0x60(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x6c(%rbp),%eax
mov    -0x98(%rbp),%rcx
movslq -0x4c(%rbp),%rdx
add    (%rcx,%rdx,4),%eax
mov    %eax,-0x54(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     2aed <NURBSsurfaceRegularEval+0x198d>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0x60(%rbp),%eax
add    -0x48(%rbp),%eax
mov    %eax,-0x64(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    29c8 <NURBSsurfaceRegularEval+0x1868>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    2980 <NURBSsurfaceRegularEval+0x1820>
jmp    4188 <NURBSsurfaceRegularEval+0x3028>
cmpb   $0x0,-0xe9(%rbp)
je     38e7 <NURBSsurfaceRegularEval+0x2787>
mov    -0x8c(%rbp),%ecx
mov    -0x98(%rbp),%rax
mov    %ecx,(%rax)
movl   $0x0,-0x9c(%rbp)
mov    -0x18(%rbp),%edi
mov    -0x90(%rbp),%esi
movsd  -0x38(%rbp),%xmm0
mov    0x10(%rbp),%rdx
mov    $0x1,%al
call   1070 <FindSpan@plt>
mov    %eax,-0xa0(%rbp)
mov    -0xa0(%rbp),%edi
movsd  -0x38(%rbp),%xmm0
mov    -0x90(%rbp),%esi
mov    0x10(%rbp),%rdx
mov    -0xc0(%rbp),%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0xa0(%rbp),%eax
sub    -0x90(%rbp),%eax
mov    %eax,-0xa4(%rbp)
mov    -0xa4(%rbp),%eax
imul   -0x14(%rbp),%eax
mov    %eax,-0x70(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     2d2e <NURBSsurfaceRegularEval+0x1bce>
mov    -0x84(%rbp),%eax
mov    -0xa4(%rbp),%ecx
add    -0x44(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  0x8(%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x8(%rax)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  0x10(%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rax)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    2c21 <NURBSsurfaceRegularEval+0x1ac1>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movl   $0x1,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x74(%rbp),%eax
jge    3078 <NURBSsurfaceRegularEval+0x1f18>
imul   $0x3,-0x4c(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x4(%rbp),%eax
mov    %eax,-0x60(%rbp)
movsd  -0x30(%rbp),%xmm0
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x14(%rbp),%edi
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rsi
mov    -0x98(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,%edx
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%edi
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x8c(%rbp),%esi
mov    -0x20(%rbp),%rdx
mov    -0xc8(%rbp),%rcx
movslq -0x60(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0x9c(%rbp),%edx
mov    -0x98(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
sub    -0x8c(%rbp),%eax
mov    %eax,-0x9c(%rbp)
mov    -0x70(%rbp),%eax
add    -0x9c(%rbp),%eax
mov    %eax,-0x6c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     2ff0 <NURBSsurfaceRegularEval+0x1e90>
mov    -0x14(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x6c(%rbp),%eax
mov    %eax,-0x54(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     2fdd <NURBSsurfaceRegularEval+0x1e7d>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc8(%rbp),%rax
mov    -0x60(%rbp),%ecx
add    -0x48(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    2eb4 <NURBSsurfaceRegularEval+0x1d54>
jmp    2fe2 <NURBSsurfaceRegularEval+0x1e82>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    2e91 <NURBSsurfaceRegularEval+0x1d31>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    2d8e <NURBSsurfaceRegularEval+0x1c2e>
mov    -0x9c(%rbp),%edx
mov    -0x98(%rbp),%rax
mov    0x18(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
imul   $0x3,-0x74(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x74(%rbp),%eax
imul   -0x4(%rbp),%eax
mov    %eax,-0x60(%rbp)
mov    -0x84(%rbp),%eax
imul   -0xa4(%rbp),%eax
add    -0x88(%rbp),%eax
mov    %eax,-0x54(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     31ea <NURBSsurfaceRegularEval+0x208a>
mov    -0x84(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x54(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    30ca <NURBSsurfaceRegularEval+0x1f6a>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movl   $0x1,-0x50(%rbp)
mov    -0x50(%rbp),%eax
cmp    0x20(%rbp),%eax
jge    38e2 <NURBSsurfaceRegularEval+0x2782>
movsd  -0x40(%rbp),%xmm0
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x18(%rbp),%edi
movsd  -0xd8(%rbp),%xmm0
ff
mov    0x10(%rbp),%rsi
mov    -0xa0(%rbp),%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,-0xa0(%rbp)
mov    -0xa0(%rbp),%edi
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0x90(%rbp),%esi
mov    0x10(%rbp),%rdx
mov    -0xc0(%rbp),%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0xa0(%rbp),%eax
sub    -0x90(%rbp),%eax
mov    %eax,-0xa4(%rbp)
mov    -0x50(%rbp),%eax
imul   0x18(%rbp),%eax
mov    %eax,-0x68(%rbp)
imul   $0x3,-0x68(%rbp),%eax
mov    %eax,-0x5c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     3449 <NURBSsurfaceRegularEval+0x22e9>
mov    -0x84(%rbp),%eax
mov    -0xa4(%rbp),%ecx
add    -0x44(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    3324 <NURBSsurfaceRegularEval+0x21c4>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xa4(%rbp),%eax
imul   -0x14(%rbp),%eax
mov    %eax,-0x70(%rbp)
movl   $0x1,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x74(%rbp),%eax
jge    3706 <NURBSsurfaceRegularEval+0x25a6>
mov    -0x4c(%rbp),%eax
add    -0x68(%rbp),%eax
imul   $0x3,%eax,%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x4(%rbp),%eax
mov    %eax,-0x60(%rbp)
mov    -0x70(%rbp),%eax
mov    -0x98(%rbp),%rcx
movslq -0x4c(%rbp),%rdx
add    (%rcx,%rdx,4),%eax
mov    %eax,-0x6c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     367e <NURBSsurfaceRegularEval+0x251e>
mov    -0x14(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x6c(%rbp),%eax
mov    %eax,-0x54(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     366b <NURBSsurfaceRegularEval+0x250b>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc8(%rbp),%rax
mov    -0x60(%rbp),%ecx
add    -0x48(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    3542 <NURBSsurfaceRegularEval+0x23e2>
jmp    3670 <NURBSsurfaceRegularEval+0x2510>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    351f <NURBSsurfaceRegularEval+0x23bf>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    34d7 <NURBSsurfaceRegularEval+0x2377>
mov    -0x74(%rbp),%eax
add    -0x68(%rbp),%eax
imul   $0x3,%eax,%eax
mov    %eax,-0x5c(%rbp)
mov    -0x84(%rbp),%eax
imul   -0xa4(%rbp),%eax
add    -0x88(%rbp),%eax
mov    %eax,-0x54(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     385a <NURBSsurfaceRegularEval+0x26fa>
mov    -0x84(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x54(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    373a <NURBSsurfaceRegularEval+0x25da>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
jmp    3278 <NURBSsurfaceRegularEval+0x2118>
jmp    4183 <NURBSsurfaceRegularEval+0x3023>
mov    -0x14(%rbp),%edi
mov    -0x8c(%rbp),%esi
movsd  -0x28(%rbp),%xmm0
mov    -0x20(%rbp),%rdx
mov    $0x1,%al
call   1070 <FindSpan@plt>
mov    %eax,%ecx
mov    -0x98(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x98(%rbp),%rax
mov    (%rax),%edi
movsd  -0x28(%rbp),%xmm0
mov    -0x8c(%rbp),%esi
mov    -0x20(%rbp),%rdx
mov    -0xc8(%rbp),%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0x98(%rbp),%rax
mov    (%rax),%eax
sub    -0x8c(%rbp),%eax
mov    %eax,-0x9c(%rbp)
mov    -0x18(%rbp),%edi
mov    -0x90(%rbp),%esi
movsd  -0x38(%rbp),%xmm0
mov    0x10(%rbp),%rdx
mov    $0x1,%al
call   1070 <FindSpan@plt>
mov    %eax,-0xa0(%rbp)
mov    -0xa0(%rbp),%edi
movsd  -0x38(%rbp),%xmm0
mov    -0x90(%rbp),%esi
mov    0x10(%rbp),%rdx
mov    -0xc0(%rbp),%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0xa0(%rbp),%eax
sub    -0x90(%rbp),%eax
mov    %eax,-0xa4(%rbp)
mov    -0xa4(%rbp),%eax
imul   -0x14(%rbp),%eax
mov    %eax,-0x70(%rbp)
mov    -0x70(%rbp),%eax
add    -0x9c(%rbp),%eax
mov    %eax,-0x6c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     3b23 <NURBSsurfaceRegularEval+0x29c3>
mov    -0x14(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x6c(%rbp),%eax
mov    %eax,-0x54(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     3b10 <NURBSsurfaceRegularEval+0x29b0>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc8(%rbp),%rax
movslq -0x48(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  0x8(%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x8(%rax)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  0x10(%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rax)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    3a04 <NURBSsurfaceRegularEval+0x28a4>
jmp    3b15 <NURBSsurfaceRegularEval+0x29b5>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    39e1 <NURBSsurfaceRegularEval+0x2881>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movl   $0x1,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    0x18(%rbp),%eax
jge    3e6d <NURBSsurfaceRegularEval+0x2d0d>
imul   $0x3,-0x4c(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x4(%rbp),%eax
mov    %eax,-0x60(%rbp)
movsd  -0x30(%rbp),%xmm0
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x14(%rbp),%edi
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rsi
mov    -0x98(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,%edx
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%edi
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x8c(%rbp),%esi
mov    -0x20(%rbp),%rdx
mov    -0xc8(%rbp),%rcx
movslq -0x60(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0x9c(%rbp),%edx
mov    -0x98(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
sub    -0x8c(%rbp),%eax
mov    %eax,-0x9c(%rbp)
mov    -0x70(%rbp),%eax
add    -0x9c(%rbp),%eax
mov    %eax,-0x6c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     3de5 <NURBSsurfaceRegularEval+0x2c85>
mov    -0x14(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x6c(%rbp),%eax
mov    %eax,-0x54(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     3dd2 <NURBSsurfaceRegularEval+0x2c72>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc8(%rbp),%rax
mov    -0x60(%rbp),%ecx
add    -0x48(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    3ca9 <NURBSsurfaceRegularEval+0x2b49>
jmp    3dd7 <NURBSsurfaceRegularEval+0x2c77>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    3c86 <NURBSsurfaceRegularEval+0x2b26>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    3b83 <NURBSsurfaceRegularEval+0x2a23>
mov    -0x9c(%rbp),%edx
mov    -0x98(%rbp),%rax
movslq -0x74(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movl   $0x1,-0x50(%rbp)
mov    -0x50(%rbp),%eax
cmp    0x20(%rbp),%eax
jge    417e <NURBSsurfaceRegularEval+0x301e>
movsd  -0x40(%rbp),%xmm0
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x18(%rbp),%edi
movsd  -0xd8(%rbp),%xmm0
ff
mov    0x10(%rbp),%rsi
mov    -0xa0(%rbp),%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,-0xa0(%rbp)
mov    -0xa0(%rbp),%edi
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0x90(%rbp),%esi
mov    0x10(%rbp),%rdx
mov    -0xc0(%rbp),%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0xa0(%rbp),%eax
sub    -0x90(%rbp),%eax
mov    %eax,-0xa4(%rbp)
mov    -0x50(%rbp),%eax
imul   0x18(%rbp),%eax
mov    %eax,-0x68(%rbp)
mov    -0xa4(%rbp),%eax
imul   -0x14(%rbp),%eax
mov    %eax,-0x70(%rbp)
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    0x18(%rbp),%eax
jge    416b <NURBSsurfaceRegularEval+0x300b>
mov    -0x4c(%rbp),%eax
add    -0x68(%rbp),%eax
imul   $0x3,%eax,%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x4(%rbp),%eax
mov    %eax,-0x60(%rbp)
mov    -0x70(%rbp),%eax
mov    -0x98(%rbp),%rcx
movslq -0x4c(%rbp),%rdx
add    (%rcx,%rdx,4),%eax
mov    %eax,-0x6c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     40e3 <NURBSsurfaceRegularEval+0x2f83>
mov    -0x14(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x6c(%rbp),%eax
mov    %eax,-0x54(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     40d0 <NURBSsurfaceRegularEval+0x2f70>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc8(%rbp),%rax
mov    -0x60(%rbp),%ecx
add    -0x48(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    3fa7 <NURBSsurfaceRegularEval+0x2e47>
jmp    40d5 <NURBSsurfaceRegularEval+0x2f75>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    3f84 <NURBSsurfaceRegularEval+0x2e24>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    3f3c <NURBSsurfaceRegularEval+0x2ddc>
jmp    4170 <NURBSsurfaceRegularEval+0x3010>
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
jmp    3e95 <NURBSsurfaceRegularEval+0x2d35>
jmp    4183 <NURBSsurfaceRegularEval+0x3023>
jmp    4188 <NURBSsurfaceRegularEval+0x3028>
jmp    418d <NURBSsurfaceRegularEval+0x302d>
jmp    6fdc <NURBSsurfaceRegularEval+0x5e7c>
movslq -0x4(%rbp),%rdi
shl    $0x3,%rdi
add    $0x1,%rdi
call   1080 <malloc@plt>
mov    %rax,-0xc0(%rbp)
movslq 0x20(%rbp),%rdi
shl    $0x2,%rdi
add    $0x1,%rdi
call   1080 <malloc@plt>
mov    %rax,-0x98(%rbp)
mov    0x20(%rbp),%eax
imul   -0x8(%rbp),%eax
movslq %eax,%rdi
shl    $0x3,%rdi
add    $0x1,%rdi
call   1080 <malloc@plt>
mov    %rax,-0xc8(%rbp)
imul   $0x3,0x18(%rbp),%eax
mov    %eax,-0x70(%rbp)
movsbl -0xe9(%rbp),%eax
cmp    $0x0,%eax
je     500b <NURBSsurfaceRegularEval+0x3eab>
movsbl -0xea(%rbp),%eax
cmp    $0x0,%eax
je     500b <NURBSsurfaceRegularEval+0x3eab>
mov    -0x90(%rbp),%ecx
mov    -0x98(%rbp),%rax
mov    %ecx,(%rax)
movl   $0x0,-0xa4(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  0x18(%rax),%xmm0
mov    0x28(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  0x18(%rax),%xmm0
mov    0x28(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  0x18(%rax),%xmm0
mov    0x28(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movl   $0x1,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x78(%rbp),%eax
jge    4533 <NURBSsurfaceRegularEval+0x33d3>
mov    -0x4c(%rbp),%eax
imul   -0x70(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x8(%rbp),%eax
mov    %eax,-0x60(%rbp)
movsd  -0x40(%rbp),%xmm0
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x18(%rbp),%edi
movsd  -0xd8(%rbp),%xmm0
ff
mov    0x10(%rbp),%rsi
mov    -0x98(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,%edx
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%edi
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0x90(%rbp),%esi
mov    0x10(%rbp),%rdx
mov    -0xc8(%rbp),%rcx
movslq -0x60(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0xa4(%rbp),%edx
mov    -0x98(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
sub    -0x90(%rbp),%eax
mov    %eax,-0xa4(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     44ab <NURBSsurfaceRegularEval+0x334b>
mov    -0x84(%rbp),%eax
mov    -0xa4(%rbp),%ecx
add    -0x44(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x58(%rbp)
mov    -0x60(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x64(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    437d <NURBSsurfaceRegularEval+0x321d>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    4283 <NURBSsurfaceRegularEval+0x3123>
mov    -0xa4(%rbp),%edx
mov    -0x98(%rbp),%rax
mov    0x20(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x78(%rbp),%eax
imul   -0x70(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x84(%rbp),%eax
imul   -0x80(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x58(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8c(%rbp),%eax
mov    %eax,-0xa0(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movl   $0x1,-0x50(%rbp)
mov    -0x50(%rbp),%eax
cmp    -0x74(%rbp),%eax
jge    4ca6 <NURBSsurfaceRegularEval+0x3b46>
movsd  -0x30(%rbp),%xmm0
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x14(%rbp),%edi
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rsi
mov    -0xa0(%rbp),%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,-0xa0(%rbp)
mov    -0xa0(%rbp),%edi
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x8c(%rbp),%esi
mov    -0x20(%rbp),%rdx
mov    -0xc0(%rbp),%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0xa0(%rbp),%eax
sub    -0x8c(%rbp),%eax
mov    %eax,-0x9c(%rbp)
imul   $0x3,-0x50(%rbp),%eax
mov    %eax,-0x68(%rbp)
mov    -0x68(%rbp),%eax
mov    %eax,-0x5c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     47db <NURBSsurfaceRegularEval+0x367b>
mov    -0x9c(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    46bc <NURBSsurfaceRegularEval+0x355c>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movl   $0x1,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x78(%rbp),%eax
jge    4ad1 <NURBSsurfaceRegularEval+0x3971>
mov    -0x70(%rbp),%eax
imul   -0x4c(%rbp),%eax
add    -0x68(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x8(%rbp),%eax
mov    %eax,-0x60(%rbp)
mov    -0x9c(%rbp),%eax
mov    -0x98(%rbp),%rcx
movslq -0x4c(%rbp),%rdx
mov    (%rcx,%rdx,4),%ecx
imul   -0x14(%rbp),%ecx
add    %ecx,%eax
mov    %eax,-0x6c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     4a49 <NURBSsurfaceRegularEval+0x38e9>
mov    -0x14(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x6c(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x60(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x64(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     4a36 <NURBSsurfaceRegularEval+0x38d6>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    48da <NURBSsurfaceRegularEval+0x377a>
jmp    4a3b <NURBSsurfaceRegularEval+0x38db>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    48ae <NURBSsurfaceRegularEval+0x374e>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    485c <NURBSsurfaceRegularEval+0x36fc>
mov    -0x70(%rbp),%eax
imul   -0x78(%rbp),%eax
add    -0x68(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x9c(%rbp),%eax
mov    -0x80(%rbp),%ecx
imul   -0x14(%rbp),%ecx
add    %ecx,%eax
mov    %eax,-0x6c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     4c1e <NURBSsurfaceRegularEval+0x3abe>
mov    -0x48(%rbp),%eax
add    -0x6c(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    4b02 <NURBSsurfaceRegularEval+0x39a2>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
jmp    4614 <NURBSsurfaceRegularEval+0x34b4>
imul   $0x3,-0x74(%rbp),%eax
mov    %eax,-0x68(%rbp)
mov    -0x68(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x84(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x58(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movl   $0x1,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x78(%rbp),%eax
jge    4f58 <NURBSsurfaceRegularEval+0x3df8>
mov    -0x70(%rbp),%eax
imul   -0x4c(%rbp),%eax
add    -0x68(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x8(%rbp),%eax
mov    %eax,-0x60(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x84(%rbp),%eax
mov    -0x98(%rbp),%rcx
movslq -0x4c(%rbp),%rdx
imul   (%rcx,%rdx,4),%eax
add    -0x88(%rbp),%eax
mov    %eax,-0x54(%rbp)
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     4ed0 <NURBSsurfaceRegularEval+0x3d70>
mov    -0x84(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x54(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0x60(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x64(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    4da7 <NURBSsurfaceRegularEval+0x3c47>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    4d54 <NURBSsurfaceRegularEval+0x3bf4>
mov    0x18(%rbp),%eax
imul   0x20(%rbp),%eax
sub    $0x1,%eax
imul   $0x3,%eax,%eax
mov    %eax,-0x5c(%rbp)
mov    -0x84(%rbp),%eax
imul   -0x18(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x58(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
divsd  (%rax,%rcx,8),%xmm0
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
jmp    6fd7 <NURBSsurfaceRegularEval+0x5e77>
cmpb   $0x0,-0xea(%rbp)
je     5d50 <NURBSsurfaceRegularEval+0x4bf0>
mov    -0x90(%rbp),%ecx
mov    -0x98(%rbp),%rax
mov    %ecx,(%rax)
movl   $0x0,-0xa4(%rbp)
mov    -0x14(%rbp),%edi
mov    -0x8c(%rbp),%esi
movsd  -0x28(%rbp),%xmm0
mov    -0x20(%rbp),%rdx
mov    $0x1,%al
call   1070 <FindSpan@plt>
mov    %eax,-0xa0(%rbp)
mov    -0xa0(%rbp),%edi
movsd  -0x28(%rbp),%xmm0
mov    -0x8c(%rbp),%esi
mov    -0x20(%rbp),%rdx
mov    -0xc0(%rbp),%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0xa0(%rbp),%eax
sub    -0x8c(%rbp),%eax
mov    %eax,-0x9c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     51ac <NURBSsurfaceRegularEval+0x404c>
mov    -0x9c(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  0x8(%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x8(%rax)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  0x10(%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rax)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    50a5 <NURBSsurfaceRegularEval+0x3f45>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movl   $0x1,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x78(%rbp),%eax
jge    5504 <NURBSsurfaceRegularEval+0x43a4>
mov    -0x4c(%rbp),%eax
imul   -0x70(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x8(%rbp),%eax
mov    %eax,-0x60(%rbp)
movsd  -0x40(%rbp),%xmm0
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x18(%rbp),%edi
movsd  -0xd8(%rbp),%xmm0
ff
mov    0x10(%rbp),%rsi
mov    -0x98(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,%edx
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%edi
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0x90(%rbp),%esi
mov    0x10(%rbp),%rdx
mov    -0xc8(%rbp),%rcx
movslq -0x60(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0xa4(%rbp),%edx
mov    -0x98(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
sub    -0x90(%rbp),%eax
mov    %eax,-0xa4(%rbp)
mov    -0xa4(%rbp),%eax
imul   -0x14(%rbp),%eax
add    -0x9c(%rbp),%eax
mov    %eax,-0x6c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     547c <NURBSsurfaceRegularEval+0x431c>
mov    -0x14(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x6c(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x60(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x64(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     5469 <NURBSsurfaceRegularEval+0x4309>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    5345 <NURBSsurfaceRegularEval+0x41e5>
jmp    546e <NURBSsurfaceRegularEval+0x430e>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    5319 <NURBSsurfaceRegularEval+0x41b9>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    520c <NURBSsurfaceRegularEval+0x40ac>
mov    -0xa4(%rbp),%edx
mov    -0x98(%rbp),%rax
mov    0x20(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x78(%rbp),%eax
imul   -0x70(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x14(%rbp),%eax
imul   -0x80(%rbp),%eax
add    -0x9c(%rbp),%eax
mov    %eax,-0x54(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     5665 <NURBSsurfaceRegularEval+0x4505>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    5549 <NURBSsurfaceRegularEval+0x43e9>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movl   $0x1,-0x50(%rbp)
mov    -0x50(%rbp),%eax
cmp    0x18(%rbp),%eax
jge    5d4b <NURBSsurfaceRegularEval+0x4beb>
movsd  -0x30(%rbp),%xmm0
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x14(%rbp),%edi
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rsi
mov    -0xa0(%rbp),%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,-0xa0(%rbp)
mov    -0xa0(%rbp),%edi
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x8c(%rbp),%esi
mov    -0x20(%rbp),%rdx
mov    -0xc0(%rbp),%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0xa0(%rbp),%eax
sub    -0x8c(%rbp),%eax
mov    %eax,-0x9c(%rbp)
imul   $0x3,-0x50(%rbp),%eax
mov    %eax,-0x68(%rbp)
mov    -0x68(%rbp),%eax
mov    %eax,-0x5c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     58ba <NURBSsurfaceRegularEval+0x475a>
mov    -0x9c(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    579b <NURBSsurfaceRegularEval+0x463b>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movl   $0x1,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x78(%rbp),%eax
jge    5b78 <NURBSsurfaceRegularEval+0x4a18>
mov    -0x70(%rbp),%eax
imul   -0x4c(%rbp),%eax
add    -0x68(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x8(%rbp),%eax
mov    %eax,-0x60(%rbp)
mov    -0x9c(%rbp),%eax
mov    -0x98(%rbp),%rcx
movslq -0x4c(%rbp),%rdx
mov    (%rcx,%rdx,4),%ecx
imul   -0x14(%rbp),%ecx
add    %ecx,%eax
mov    %eax,-0x6c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     5af0 <NURBSsurfaceRegularEval+0x4990>
mov    -0x14(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x6c(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x60(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x64(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     5add <NURBSsurfaceRegularEval+0x497d>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    59b9 <NURBSsurfaceRegularEval+0x4859>
jmp    5ae2 <NURBSsurfaceRegularEval+0x4982>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    598d <NURBSsurfaceRegularEval+0x482d>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    593b <NURBSsurfaceRegularEval+0x47db>
mov    -0x70(%rbp),%eax
imul   -0x78(%rbp),%eax
add    -0x68(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x14(%rbp),%eax
imul   -0x80(%rbp),%eax
add    -0x9c(%rbp),%eax
mov    %eax,-0x54(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     5cc3 <NURBSsurfaceRegularEval+0x4b63>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    5ba7 <NURBSsurfaceRegularEval+0x4a47>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
jmp    56f3 <NURBSsurfaceRegularEval+0x4593>
jmp    6fd2 <NURBSsurfaceRegularEval+0x5e72>
cmpb   $0x0,-0xe9(%rbp)
je     672b <NURBSsurfaceRegularEval+0x55cb>
mov    -0x18(%rbp),%edi
mov    -0x90(%rbp),%esi
movsd  -0x38(%rbp),%xmm0
mov    0x10(%rbp),%rdx
mov    $0x1,%al
call   1070 <FindSpan@plt>
mov    %eax,%ecx
mov    -0x98(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x98(%rbp),%rax
mov    (%rax),%edi
movsd  -0x38(%rbp),%xmm0
mov    -0x90(%rbp),%esi
mov    0x10(%rbp),%rdx
mov    -0xc8(%rbp),%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0x98(%rbp),%rax
mov    (%rax),%eax
sub    -0x90(%rbp),%eax
mov    %eax,-0xa4(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     5ee9 <NURBSsurfaceRegularEval+0x4d89>
mov    -0x84(%rbp),%eax
mov    -0xa4(%rbp),%ecx
add    -0x44(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
mov    -0xc8(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  0x8(%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x8(%rax)
mov    -0xc8(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  0x10(%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rax)
mov    -0xc8(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    5ddc <NURBSsurfaceRegularEval+0x4c7c>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movl   $0x1,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    0x20(%rbp),%eax
jge    61f9 <NURBSsurfaceRegularEval+0x5099>
mov    -0x4c(%rbp),%eax
imul   -0x70(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x8(%rbp),%eax
mov    %eax,-0x60(%rbp)
movsd  -0x40(%rbp),%xmm0
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x18(%rbp),%edi
movsd  -0xd8(%rbp),%xmm0
ff
mov    0x10(%rbp),%rsi
mov    -0x98(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,%edx
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%edi
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0x90(%rbp),%esi
mov    0x10(%rbp),%rdx
mov    -0xc8(%rbp),%rcx
movslq -0x60(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0xa4(%rbp),%edx
mov    -0x98(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
sub    -0x90(%rbp),%eax
mov    %eax,-0xa4(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     6171 <NURBSsurfaceRegularEval+0x5011>
mov    -0x60(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x64(%rbp)
mov    -0x84(%rbp),%eax
mov    -0xa4(%rbp),%ecx
add    -0x44(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    6043 <NURBSsurfaceRegularEval+0x4ee3>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    5f49 <NURBSsurfaceRegularEval+0x4de9>
mov    -0xa4(%rbp),%edx
mov    -0x98(%rbp),%rax
movslq -0x78(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x8c(%rbp),%eax
mov    %eax,-0xa0(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movl   $0x1,-0x50(%rbp)
mov    -0x50(%rbp),%eax
cmp    -0x74(%rbp),%eax
jge    6514 <NURBSsurfaceRegularEval+0x53b4>
movsd  -0x30(%rbp),%xmm0
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x14(%rbp),%edi
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rsi
mov    -0xa0(%rbp),%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,-0xa0(%rbp)
mov    -0xa0(%rbp),%edi
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x8c(%rbp),%esi
mov    -0x20(%rbp),%rdx
mov    -0xc0(%rbp),%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0xa0(%rbp),%eax
sub    -0x8c(%rbp),%eax
mov    %eax,-0x9c(%rbp)
imul   $0x3,-0x50(%rbp),%eax
mov    %eax,-0x68(%rbp)
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    0x20(%rbp),%eax
jge    6501 <NURBSsurfaceRegularEval+0x53a1>
mov    -0x70(%rbp),%eax
imul   -0x4c(%rbp),%eax
add    -0x68(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x8(%rbp),%eax
mov    %eax,-0x60(%rbp)
mov    -0x9c(%rbp),%eax
mov    -0x98(%rbp),%rcx
movslq -0x4c(%rbp),%rdx
mov    (%rcx,%rdx,4),%ecx
imul   -0x14(%rbp),%ecx
add    %ecx,%eax
mov    %eax,-0x6c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     6479 <NURBSsurfaceRegularEval+0x5319>
mov    -0x14(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x6c(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x60(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x64(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     6466 <NURBSsurfaceRegularEval+0x5306>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    6342 <NURBSsurfaceRegularEval+0x51e2>
jmp    646b <NURBSsurfaceRegularEval+0x530b>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    6316 <NURBSsurfaceRegularEval+0x51b6>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    62c4 <NURBSsurfaceRegularEval+0x5164>
jmp    6506 <NURBSsurfaceRegularEval+0x53a6>
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
jmp    622d <NURBSsurfaceRegularEval+0x50cd>
imul   $0x3,-0x74(%rbp),%eax
mov    %eax,-0x68(%rbp)
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    0x20(%rbp),%eax
jge    6726 <NURBSsurfaceRegularEval+0x55c6>
mov    -0x70(%rbp),%eax
imul   -0x4c(%rbp),%eax
add    -0x68(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x8(%rbp),%eax
mov    %eax,-0x60(%rbp)
mov    -0x84(%rbp),%eax
mov    -0x98(%rbp),%rcx
movslq -0x4c(%rbp),%rdx
imul   (%rcx,%rdx,4),%eax
add    -0x88(%rbp),%eax
mov    %eax,-0x54(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     669e <NURBSsurfaceRegularEval+0x553e>
mov    -0x60(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x64(%rbp)
mov    -0x84(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x54(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    6575 <NURBSsurfaceRegularEval+0x5415>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    6522 <NURBSsurfaceRegularEval+0x53c2>
jmp    6fcd <NURBSsurfaceRegularEval+0x5e6d>
mov    -0x18(%rbp),%edi
mov    -0x90(%rbp),%esi
movsd  -0x38(%rbp),%xmm0
mov    0x10(%rbp),%rdx
mov    $0x1,%al
call   1070 <FindSpan@plt>
mov    %eax,%ecx
mov    -0x98(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x98(%rbp),%rax
mov    (%rax),%edi
movsd  -0x38(%rbp),%xmm0
mov    -0x90(%rbp),%esi
mov    0x10(%rbp),%rdx
mov    -0xc8(%rbp),%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0x98(%rbp),%rax
mov    (%rax),%eax
sub    -0x90(%rbp),%eax
mov    %eax,-0xa4(%rbp)
mov    -0x14(%rbp),%edi
mov    -0x8c(%rbp),%esi
movsd  -0x28(%rbp),%xmm0
mov    -0x20(%rbp),%rdx
mov    $0x1,%al
call   1070 <FindSpan@plt>
mov    %eax,-0xa0(%rbp)
mov    -0xa0(%rbp),%edi
movsd  -0x28(%rbp),%xmm0
mov    -0x8c(%rbp),%esi
mov    -0x20(%rbp),%rdx
mov    -0xc0(%rbp),%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0xa0(%rbp),%eax
sub    -0x8c(%rbp),%eax
mov    %eax,-0x9c(%rbp)
mov    -0xa4(%rbp),%eax
imul   -0x14(%rbp),%eax
add    -0x9c(%rbp),%eax
mov    %eax,-0x6c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     6961 <NURBSsurfaceRegularEval+0x5801>
mov    -0x14(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x6c(%rbp),%eax
mov    %eax,-0x54(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     694e <NURBSsurfaceRegularEval+0x57ee>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  0x8(%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x8(%rax)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movsd  0x10(%rax),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rax)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    6842 <NURBSsurfaceRegularEval+0x56e2>
jmp    6953 <NURBSsurfaceRegularEval+0x57f3>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    681f <NURBSsurfaceRegularEval+0x56bf>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movl   $0x1,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    0x20(%rbp),%eax
jge    6cb9 <NURBSsurfaceRegularEval+0x5b59>
mov    -0x4c(%rbp),%eax
imul   -0x70(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x8(%rbp),%eax
mov    %eax,-0x60(%rbp)
movsd  -0x40(%rbp),%xmm0
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x18(%rbp),%edi
movsd  -0xd8(%rbp),%xmm0
mov    0x10(%rbp),%rsi
mov    -0x98(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,%edx
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%edi
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0x90(%rbp),%esi
mov    0x10(%rbp),%rdx
mov    -0xc8(%rbp),%rcx
movslq -0x60(%rbp),%rax
shl    $0x3,%rax
add    %rax,%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0xa4(%rbp),%edx
mov    -0x98(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x98(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
sub    -0x90(%rbp),%eax
mov    %eax,-0xa4(%rbp)
mov    -0xa4(%rbp),%eax
imul   -0x14(%rbp),%eax
add    -0x9c(%rbp),%eax
mov    %eax,-0x6c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     6c31 <NURBSsurfaceRegularEval+0x5ad1>
mov    -0x14(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x6c(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x60(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x64(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     6c1e <NURBSsurfaceRegularEval+0x5abe>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    6afa <NURBSsurfaceRegularEval+0x599a>
jmp    6c23 <NURBSsurfaceRegularEval+0x5ac3>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    6ace <NURBSsurfaceRegularEval+0x596e>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    69c1 <NURBSsurfaceRegularEval+0x5861>
mov    -0xa4(%rbp),%edx
mov    -0x98(%rbp),%rax
movslq -0x78(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movl   $0x1,-0x50(%rbp)
mov    -0x50(%rbp),%eax
cmp    0x18(%rbp),%eax
jge    6fc8 <NURBSsurfaceRegularEval+0x5e68>
movsd  -0x30(%rbp),%xmm0
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x14(%rbp),%edi
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rsi
mov    -0xa0(%rbp),%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,-0xa0(%rbp)
mov    -0xa0(%rbp),%edi
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x8c(%rbp),%esi
mov    -0x20(%rbp),%rdx
mov    -0xc0(%rbp),%rcx
mov    -0xb0(%rbp),%r8
mov    -0xb8(%rbp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    -0xa0(%rbp),%eax
sub    -0x8c(%rbp),%eax
mov    %eax,-0x9c(%rbp)
imul   $0x3,-0x50(%rbp),%eax
mov    %eax,-0x68(%rbp)
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    0x20(%rbp),%eax
jge    6fb5 <NURBSsurfaceRegularEval+0x5e55>
mov    -0x70(%rbp),%eax
imul   -0x4c(%rbp),%eax
add    -0x68(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x4c(%rbp),%eax
imul   -0x8(%rbp),%eax
mov    %eax,-0x60(%rbp)
mov    -0x9c(%rbp),%eax
mov    -0x98(%rbp),%rcx
movslq -0x4c(%rbp),%rdx
mov    (%rcx,%rdx,4),%ecx
imul   -0x14(%rbp),%ecx
add    %ecx,%eax
mov    %eax,-0x6c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x90(%rbp),%eax
jg     6f2d <NURBSsurfaceRegularEval+0x5dcd>
mov    -0x14(%rbp),%eax
imul   -0x44(%rbp),%eax
add    -0x6c(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x60(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x64(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     6f1a <NURBSsurfaceRegularEval+0x5dba>
mov    -0x54(%rbp),%eax
add    -0x48(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x58(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x64(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0xc0(%rbp),%rax
movslq -0x48(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x58(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    6df6 <NURBSsurfaceRegularEval+0x5c96>
jmp    6f1f <NURBSsurfaceRegularEval+0x5dbf>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    6dca <NURBSsurfaceRegularEval+0x5c6a>
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
mov    0x28(%rbp),%rax
mov    -0x5c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    6d78 <NURBSsurfaceRegularEval+0x5c18>
jmp    6fba <NURBSsurfaceRegularEval+0x5e5a>
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
jmp    6ce1 <NURBSsurfaceRegularEval+0x5b81>
jmp    6fcd <NURBSsurfaceRegularEval+0x5e6d>
jmp    6fd2 <NURBSsurfaceRegularEval+0x5e72>
jmp    6fd7 <NURBSsurfaceRegularEval+0x5e77>
jmp    6fdc <NURBSsurfaceRegularEval+0x5e7c>
mov    -0x98(%rbp),%rdi
call   1030 <free@plt>
mov    -0xc8(%rbp),%rdi
call   1030 <free@plt>
mov    -0xb0(%rbp),%rdi
call   1030 <free@plt>
mov    -0xb8(%rbp),%rdi
call   1030 <free@plt>
mov    -0xc0(%rbp),%rdi
call   1030 <free@plt>
add    $0xf0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<NURBSsurfaceRegularEval>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x118,%rsp
movsd  %xmm3,0xf0(%rsp)
movsd  %xmm2,0x38(%rsp)
mov    %r8,0xb0(%rsp)
mov    %ecx,%r13d
mov    %rdx,%rbx
mov    0x160(%rsp),%ecx
mov    0x158(%rsp),%edx
mov    0x150(%rsp),%rbp
mov    %rdx,%rax
mov    %rdx,0x98(%rsp)
lea    -0x1(%rdx),%r8d
mov    %rsi,%rax
mov    %rsi,0x20(%rsp)
lea    -0x1(%rsi),%edx
mov    %rdi,%rax
mov    %rdi,0x10(%rsp)
movslq %edi,%r14
movsd  -0x8(%r9,%r14,8),%xmm2
addsd  0x4e28(%rip),%xmm2
ucomisd %xmm0,%xmm2
movsd  %xmm1,0xe8(%rsp)
movsd  %xmm0,0x30(%rsp)
jbe    1227 <NURBSsurfaceRegularEval+0xc7>
xorps  %xmm2,%xmm2
cvtsi2sd %r8d,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm0,%xmm2
movslq %r13d,%rax
movsd  (%r9,%rax,8),%xmm1
addsd  0x4dfa(%rip),%xmm1
ucomisd %xmm1,%xmm2
jbe    1227 <NURBSsurfaceRegularEval+0xc7>
mov    $0x1,%al
mov    %eax,0x58(%rsp)
movl   $0x0,0x108(%rsp)
jmp    1238 <NURBSsurfaceRegularEval+0xd8>
mov    $0x1,%al
mov    %eax,0x108(%rsp)
movl   $0x0,0x58(%rsp)
movsd  0x38(%rsp),%xmm1
lea    -0x1(%rcx),%esi
movslq %edx,%rax
movsd  0x0(%rbp,%rax,8),%xmm0
addsd  0x4dae(%rip),%xmm0
ucomisd %xmm1,%xmm0
mov    %rcx,0xc0(%rsp)
mov    %rbp,0x80(%rsp)
mov    %edx,0x78(%rsp)
mov    %r9,0xa0(%rsp)
mov    %r8,0xd0(%rsp)
mov    %rsi,0xf8(%rsp)
jbe    12c7 <NURBSsurfaceRegularEval+0x167>
xorps  %xmm0,%xmm0
cvtsi2sd %esi,%xmm0
mulsd  0xf0(%rsp),%xmm0
addsd  %xmm1,%xmm0
movslq 0xb0(%rsp),%rax
movsd  0x0(%rbp,%rax,8),%xmm1
addsd  0x4d5a(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    12c7 <NURBSsurfaceRegularEval+0x167>
mov    $0x1,%al
mov    %eax,0x50(%rsp)
movl   $0x0,0x88(%rsp)
jmp    12d8 <NURBSsurfaceRegularEval+0x178>
mov    $0x1,%al
mov    %eax,0x88(%rsp)
movl   $0x0,0x50(%rsp)
mov    0x168(%rsp),%r15
mov    0xb0(%rsp),%rax
add    $0xffffffff,%eax
mov    %rax,0xe0(%rsp)
lea    -0x1(%r14),%eax
mov    %eax,0x48(%rsp)
mov    %r14d,%edi
mov    0x20(%rsp),%r12
mov    %r12d,%esi
xor    %eax,%eax
call   1050 <MAX@plt>
cltq
lea    0x1(,%rax,8),%rbp
mov    %rbp,%rdi
call   1080 <malloc@plt>
mov    %rax,0x68(%rsp)
mov    %rbp,%rdi
call   1080 <malloc@plt>
mov    %rax,0xa8(%rsp)
lea    0x0(,%r13,4),%eax
mov    %eax,0xc(%rsp)
lea    -0x4(,%r13,4),%r10d
ff
mov    %r13,%r11
mov    0x98(%rsp),%r13
mov    %r13d,%eax
imul   0x10(%rsp),%eax
movslq %eax,%rcx
movslq %r13d,%r9
movslq %r12d,%r8
lea    0x0(,%r8,8),%rsi
lea    (%rsi,%r9,4),%rax
mov    %rcx,0x40(%rsp)
lea    (%rax,%rcx,8),%rax
mov    0xc0(%rsp),%rdx
mov    %edx,%ecx
imul   %r12d,%ecx
movslq %ecx,%rbp
movslq %edx,%rdx
lea    0x0(,%r14,8),%rdi
lea    (%rdi,%rdx,4),%rcx
lea    (%rcx,%rbp,8),%rcx
cmp    %rcx,%rax
mov    %r11,0x70(%rsp)
mov    %r10d,0x100(%rsp)
jae    1657 <NURBSsurfaceRegularEval+0x4f7>
mov    %r14,0xb8(%rsp)
mov    %rdi,0x60(%rsp)
mov    0x40(%rsp),%rbp
shl    $0x3,%rbp
mov    %r9,0xd8(%rsp)
lea    0x0(,%r9,4),%r14
or     $0x1,%rsi
mov    %rsi,%rdi
call   1080 <malloc@plt>
mov    %rax,%r12
or     $0x1,%r14
mov    %r14,%rdi
call   1080 <malloc@plt>
mov    %rax,%r14
or     $0x1,%rbp
mov    %rbp,%rdi
call   1080 <malloc@plt>
mov    %rax,%rcx
mov    0x58(%rsp),%eax
and    0x50(%rsp),%al
cmp    $0x1,%al
mov    %r14,0x18(%rsp)
mov    %rcx,0x40(%rsp)
jne    1924 <NURBSsurfaceRegularEval+0x7c4>
mov    0x48(%rsp),%edi
mov    %edi,(%r14)
movsd  (%rbx),%xmm0
divsd  0x18(%rbx),%xmm0
movsd  %xmm0,(%r15)
movsd  0x8(%rbx),%xmm0
divsd  0x18(%rbx),%xmm0
movsd  %xmm0,0x8(%r15)
movsd  0x10(%rbx),%xmm0
divsd  0x18(%rbx),%xmm0
movsd  %xmm0,0x10(%r15)
xor    %ebp,%ebp
cmpl   $0x3,0x98(%rsp)
03
jl     1b12 <NURBSsurfaceRegularEval+0x9b2>
mov    0xd0(%rsp),%eax
mov    %rax,0x88(%rsp)
mov    0x10(%rsp),%rax
mov    %eax,%r14d
lea    0x0(,%rax,4),%eax
neg    %eax
mov    %rax,0x28(%rsp)
mov    0x40(%rsp),%rax
mov    0x60(%rsp),%rcx
lea    (%rax,%rcx,1),%r13
shl    $0x2,%r14
xor    %ebp,%ebp
mov    $0x1,%r9d
mov    %edi,%edx
jmp    150b <NURBSsurfaceRegularEval+0x3ab>
nopl   0x0(%rax,%rax,1)
lea    0x1(%r8),%esi
add    $0x2,%r8d
xorpd  %xmm0,%xmm0
mov    0x48(%rsp),%edi
mov    %edx,%ebp
sub    %edi,%ebp
movsd  (%r15,%rcx,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rcx,8)
movsd  (%r15,%rsi,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rsi,8)
movsd  (%r15,%r8,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r8,8)
add    $0x1,%r9
add    0x60(%rsp),%r13
cmp    0x88(%rsp),%r9
je     1b12 <NURBSsurfaceRegularEval+0x9b2>
mov    %rbp,0x90(%rsp)
mov    %r9,0x58(%rsp)
imul   0xb8(%rsp),%r9
mov    %r9,0x50(%rsp)
movsd  0x30(%rsp),%xmm0
addsd  0xe8(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
mov    0x70(%rsp),%rdi
mov    0xa0(%rsp),%rsi
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    0x18(%rsp),%rbp
mov    0x58(%rsp),%rcx
mov    %eax,0x0(%rbp,%rcx,4)
mov    0x40(%rsp),%rcx
mov    0x50(%rsp),%rdx
lea    (%rcx,%rdx,8),%rcx
mov    %eax,%edi
movsd  0x30(%rsp),%xmm0
mov    0x48(%rsp),%esi
mov    0xa0(%rsp),%rdx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x58(%rsp),%r9
mov    0x0(%rbp,%r9,4),%edx
lea    (%r9,%r9,2),%r8
mov    0x90(%rsp),%rax
mov    %eax,-0x4(%rbp,%r9,4)
mov    %r8d,%ecx
cmpl   $0x0,0x10(%rsp)
jle    14b0 <NURBSsurfaceRegularEval+0x350>
lea    0x1(%r8),%esi
add    $0x2,%r8d
mov    0x28(%rsp),%rax
lea    (%rax,%rdx,4),%edi
xorpd  %xmm0,%xmm0
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
lea    (%rdi,%rbp,1),%eax
add    $0x4,%eax
cltq
movsd  0x0(%r13,%rbp,2),%xmm1
movsd  (%rbx,%rax,8),%xmm2
mulsd  %xmm1,%xmm2
addsd  (%r15,%rcx,8),%xmm2
lea    0x5(%rdi,%rbp,1),%eax
cltq
movsd  %xmm2,(%r15,%rcx,8)
movsd  (%rbx,%rax,8),%xmm2
mulsd  %xmm1,%xmm2
addsd  (%r15,%rsi,8),%xmm2
movsd  %xmm2,(%r15,%rsi,8)
lea    0x6(%rdi,%rbp,1),%eax
cltq
movsd  (%rbx,%rax,8),%xmm2
mulsd  %xmm1,%xmm2
addsd  (%r15,%r8,8),%xmm2
movsd  %xmm2,(%r15,%r8,8)
lea    0x7(%rdi,%rbp,1),%eax
cltq
mulsd  (%rbx,%rax,8),%xmm1
addsd  %xmm1,%xmm0
add    $0x4,%rbp
cmp    %rbp,%r14
jne    15e0 <NURBSsurfaceRegularEval+0x480>
jmp    14bc <NURBSsurfaceRegularEval+0x35c>
mov    %rsi,0x28(%rsp)
mov    %r8,0x90(%rsp)
shl    $0x3,%rbp
mov    %rdx,0x110(%rsp)
lea    0x0(,%rdx,4),%r14
or     $0x1,%rdi
call   1080 <malloc@plt>
mov    %rax,%r12
or     $0x1,%r14
mov    %r14,%rdi
call   1080 <malloc@plt>
mov    %rax,%r14
or     $0x1,%rbp
mov    %rbp,%rdi
call   1080 <malloc@plt>
mov    %rax,%rcx
lea    0x0(%r13,%r13,2),%eax
mov    %rax,0xc8(%rsp)
mov    0x58(%rsp),%eax
and    0x50(%rsp),%al
cmp    $0x1,%al
mov    %r14,0x18(%rsp)
mov    %rcx,0x40(%rsp)
jne    2075 <NURBSsurfaceRegularEval+0xf15>
mov    0x78(%rsp),%eax
mov    %eax,(%r14)
movsd  (%rbx),%xmm0
divsd  0x18(%rbx),%xmm0
movsd  %xmm0,(%r15)
movsd  0x8(%rbx),%xmm0
divsd  0x18(%rbx),%xmm0
movsd  %xmm0,0x8(%r15)
movsd  0x10(%rbx),%xmm0
divsd  0x18(%rbx),%xmm0
movsd  %xmm0,0x10(%r15)
xor    %r10d,%r10d
cmpl   $0x3,0xc0(%rsp)
03
mov    0x20(%rsp),%rdi
jl     2263 <NURBSsurfaceRegularEval+0x1103>
movslq 0xc8(%rsp),%rax
mov    %rax,0x88(%rsp)
mov    0xf8(%rsp),%eax
mov    %rax,0xb8(%rsp)
mov    %edi,%ebp
mov    0x40(%rsp),%rax
mov    0x28(%rsp),%rcx
lea    (%rax,%rcx,1),%r14
xor    %r10d,%r10d
mov    $0x1,%r11d
mov    0x78(%rsp),%edx
jmp    17b7 <NURBSsurfaceRegularEval+0x657>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movsd  (%r15,%r13,8),%xmm1
movsd  0x8(%r15,%r13,8),%xmm0
lea    0x1(%r13),%r8
lea    0x2(%r13),%r9
xorpd  %xmm2,%xmm2
mov    0x28(%rsp),%rax
divsd  %xmm2,%xmm1
movsd  %xmm1,(%r15,%r13,8)
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r8,8)
movsd  (%r15,%r9,8),%xmm0
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r9,8)
add    $0x1,%r11
add    %rax,%r14
cmp    0xb8(%rsp),%r11
je     2263 <NURBSsurfaceRegularEval+0x1103>
mov    %r11,0x58(%rsp)
mov    %r10d,0x60(%rsp)
mov    %r11,%r13
imul   0x88(%rsp),%r13
imul   0x90(%rsp),%r11
mov    %r11,0x50(%rsp)
movsd  0x38(%rsp),%xmm0
addsd  0xf0(%rsp),%xmm0
movsd  %xmm0,0x38(%rsp)
mov    0xb0(%rsp),%rdi
mov    0x80(%rsp),%rsi
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    0x58(%rsp),%rcx
mov    0x18(%rsp),%rdx
mov    %eax,(%rdx,%rcx,4)
mov    0x40(%rsp),%rcx
mov    0x50(%rsp),%rdx
lea    (%rcx,%rdx,8),%rcx
mov    %eax,%edi
movsd  0x38(%rsp),%xmm0
mov    0x78(%rsp),%esi
mov    0x80(%rsp),%rdx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x58(%rsp),%r11
mov    0x20(%rsp),%rdi
mov    0x18(%rsp),%rcx
mov    (%rcx,%r11,4),%edx
mov    %edx,%r10d
sub    0x78(%rsp),%r10d
mov    0x60(%rsp),%eax
mov    %eax,-0x4(%rcx,%r11,4)
test   %edi,%edi
jle    1760 <NURBSsurfaceRegularEval+0x600>
lea    0x1(%r13),%r8
lea    0x2(%r13),%r9
movsd  (%r15,%r13,8),%xmm1
movsd  0x8(%r15,%r13,8),%xmm0
movsd  0x10(%r15,%r13,8),%xmm3
mov    0xc(%rsp),%eax
mov    %eax,%edi
imul   %r10d,%edi
xorpd  %xmm2,%xmm2
xor    %esi,%esi
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movslq %edi,%rdi
movsd  (%r14,%rsi,8),%xmm4
movsd  (%rbx,%rdi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm1
movsd  %xmm1,(%r15,%r13,8)
lea    0x1(%rdi),%ecx
movslq %ecx,%rcx
movsd  (%rbx,%rcx,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
lea    0x2(%rdi),%ecx
movslq %ecx,%rcx
movsd  %xmm0,0x8(%r15,%r13,8)
movsd  (%rbx,%rcx,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
movsd  %xmm3,0x10(%r15,%r13,8)
lea    0x3(%rdi),%ecx
movslq %ecx,%rcx
mulsd  (%rbx,%rcx,8),%xmm4
addsd  %xmm4,%xmm2
add    $0x1,%rsi
add    %eax,%edi
cmp    %rsi,%rbp
jne    18b0 <NURBSsurfaceRegularEval+0x750>
mov    0x20(%rsp),%rdi
jmp    1779 <NURBSsurfaceRegularEval+0x619>
cmpb   $0x0,0x88(%rsp)
movsd  0x30(%rsp),%xmm0
je     2bc8 <NURBSsurfaceRegularEval+0x1a68>
cmpb   $0x0,0x108(%rsp)
je     2df7 <NURBSsurfaceRegularEval+0x1c97>
mov    0x70(%rsp),%rdi
mov    0x48(%rsp),%r14d
mov    %r14d,%esi
mov    0xa0(%rsp),%r13
mov    %r13,%rdx
mov    $0x1,%al
call   1070 <FindSpan@plt>
mov    0x18(%rsp),%rbp
mov    %eax,0x0(%rbp)
mov    %eax,%edi
movsd  0x30(%rsp),%xmm0
mov    %r14d,%esi
mov    %r13,%rdx
mov    0x40(%rsp),%rcx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x0(%rbp),%eax
mov    %rax,0x90(%rsp)
mov    0xb0(%rsp),%rdi
mov    0x78(%rsp),%ebp
mov    %ebp,%esi
movsd  0x38(%rsp),%xmm0
mov    0x80(%rsp),%r13
mov    %r13,%rdx
mov    $0x1,%al
call   1070 <FindSpan@plt>
mov    %eax,%r14d
mov    %eax,%edi
movsd  0x38(%rsp),%xmm0
mov    %ebp,%esi
mov    %r13,%rdx
mov    %r12,%rcx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    %r14,%rax
mov    %r14,0x28(%rsp)
sub    %ebp,%r14d
mov    0x20(%rsp),%rax
test   %eax,%eax
jle    3eb6 <NURBSsurfaceRegularEval+0x2d56>
mov    %eax,%r8d
mov    0x10(%rsp),%rax
mov    %eax,%ecx
mov    0x70(%rsp),%rdx
imul   %r14d,%edx
mov    0x90(%rsp),%rsi
mov    %rsi,%r13
lea    0x0(,%rsi,4),%esi
lea    (%rsi,%rdx,4),%edx
lea    0x0(,%rax,4),%esi
sub    %esi,%edx
mov    0xc(%rsp),%r10d
mov    %r10d,%r9d
shl    $0x2,%rcx
xorpd  %xmm0,%xmm0
xor    %edi,%edi
mov    0x40(%rsp),%rsi
mov    0x98(%rsp),%r11
jmp    1a75 <NURBSsurfaceRegularEval+0x915>
cs nopw 0x0(%rax,%rax,1)
add    $0x1,%rdi
add    %r9,%rdx
cmp    %r8,%rdi
mov    0x10(%rsp),%rax
je     3ed9 <NURBSsurfaceRegularEval+0x2d79>
test   %eax,%eax
jle    1a60 <NURBSsurfaceRegularEval+0x900>
movsd  (%r12,%rdi,8),%xmm1
movsd  (%r15),%xmm2
movsd  0x8(%r15),%xmm3
movsd  0x10(%r15),%xmm4
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
lea    (%rdx,%rbp,1),%eax
add    $0x4,%eax
movsd  (%rsi,%rbp,2),%xmm5
cltq
mulsd  %xmm1,%xmm5
movsd  (%rbx,%rax,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm2
movsd  %xmm2,(%r15)
lea    0x5(%rdx,%rbp,1),%eax
cltq
movsd  (%rbx,%rax,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm3
lea    0x6(%rdx,%rbp,1),%eax
cltq
movsd  %xmm3,0x8(%r15)
movsd  (%rbx,%rax,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm4
movsd  %xmm4,0x10(%r15)
lea    0x7(%rdx,%rbp,1),%eax
cltq
mulsd  (%rbx,%rax,8),%xmm5
addsd  %xmm5,%xmm0
add    $0x4,%rbp
cmp    %rbp,%rcx
jne    1aa0 <NURBSsurfaceRegularEval+0x940>
jmp    1a60 <NURBSsurfaceRegularEval+0x900>
mov    0x18(%rsp),%rax
mov    0xd8(%rsp),%rcx
mov    %ebp,-0x8(%rax,%rcx,4)
movslq 0x100(%rsp),%rax
movsd  (%rbx,%rax,8),%xmm0
mov    0xc(%rsp),%r10d
movslq %r10d,%rax
divsd  -0x8(%rbx,%rax,8),%xmm0
mov    0xd0(%rsp),%rcx
lea    (%rcx,%rcx,2),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%r15,%rcx,8)
movsd  -0x18(%rbx,%rax,8),%xmm0
divsd  -0x8(%rbx,%rax,8),%xmm0
movsd  %xmm0,0x8(%r15,%rcx,8)
movsd  -0x10(%rbx,%rax,8),%xmm0
divsd  -0x8(%rbx,%rax,8),%xmm0
movsd  %xmm0,0x10(%r15,%rcx,8)
cmpl   $0x3,0xc0(%rsp)
03
mov    0x40(%rsp),%rbp
mov    0x20(%rsp),%rax
jl     27b0 <NURBSsurfaceRegularEval+0x1650>
mov    0xd0(%rsp),%rcx
movslq %ecx,%rdx
mov    %rdx,0xa0(%rsp)
mov    0xf8(%rsp),%edx
mov    %rdx,0xe8(%rsp)
mov    %eax,%r13d
mov    %ecx,%ecx
mov    %rcx,0x88(%rsp)
mov    0x10(%rsp),%r14d
mov    0xb8(%rsp),%rcx
lea    0x0(%rbp,%rcx,8),%rcx
mov    %rcx,0xc8(%rsp)
mov    %r10d,%ecx
mov    %rcx,0x58(%rsp)
shl    $0x2,%r14
lea    0x0(,%rax,4),%eax
mov    $0x8,%ecx
sub    %eax,%ecx
mov    %rcx,0x100(%rsp)
mov    $0x1,%esi
mov    0x78(%rsp),%eax
mov    %rax,0x48(%rsp)
jmp    1c6e <NURBSsurfaceRegularEval+0xb0e>
nopl   0x0(%rax,%rax,1)
movsd  (%r15,%rax,8),%xmm1
movsd  0x8(%r15,%rax,8),%xmm0
lea    0x1(%rax),%rdx
lea    0x2(%rax),%rcx
xorpd  %xmm2,%xmm2
mov    0x40(%rsp),%rbp
mov    0xc(%rsp),%r10d
mov    0x28(%rsp),%rsi
divsd  %xmm2,%xmm1
movsd  %xmm1,(%r15,%rax,8)
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%rdx,8)
movsd  (%r15,%rcx,8),%xmm0
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%rcx,8)
add    $0x1,%rsi
cmp    0xe8(%rsp),%rsi
je     27b0 <NURBSsurfaceRegularEval+0x1650>
mov    %rsi,0x28(%rsp)
movsd  0x38(%rsp),%xmm0
addsd  0xf0(%rsp),%xmm0
movsd  %xmm0,0x38(%rsp)
mov    0xb0(%rsp),%rdi
mov    0x80(%rsp),%rsi
mov    0x48(%rsp),%rdx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,%ebp
mov    %eax,%edi
movsd  0x38(%rsp),%xmm0
mov    0x78(%rsp),%esi
mov    0x80(%rsp),%rdx
mov    %r12,%rcx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    %rbp,%rax
mov    %rbp,0x48(%rsp)
mov    %ebp,%edx
sub    0x78(%rsp),%edx
mov    0x28(%rsp),%rax
imul   0xd8(%rsp),%rax
mov    %rax,0x50(%rsp)
lea    (%rax,%rax,2),%rax
cmpl   $0x0,0x20(%rsp)
mov    %rdx,0x30(%rsp)
jle    1db0 <NURBSsurfaceRegularEval+0xc50>
lea    0x1(%rax),%r8
lea    0x2(%rax),%rcx
movsd  (%r15,%rax,8),%xmm1
movsd  0x8(%r15,%rax,8),%xmm0
movsd  0x10(%r15,%rax,8),%xmm3
mov    0xc(%rsp),%ebp
mov    %ebp,%esi
imul   %edx,%esi
xorpd  %xmm2,%xmm2
xor    %edi,%edi
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movslq %esi,%rsi
movsd  (%r12,%rdi,8),%xmm4
movsd  (%rbx,%rsi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm1
movsd  %xmm1,(%r15,%rax,8)
lea    0x1(%rsi),%edx
movslq %edx,%rdx
movsd  (%rbx,%rdx,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
lea    0x2(%rsi),%edx
movslq %edx,%rdx
movsd  %xmm0,0x8(%r15,%rax,8)
movsd  (%rbx,%rdx,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
movsd  %xmm3,0x10(%r15,%rax,8)
lea    0x3(%rsi),%edx
movslq %edx,%rdx
mulsd  (%rbx,%rdx,8),%xmm4
addsd  %xmm4,%xmm2
add    $0x1,%rdi
add    %ebp,%esi
cmp    %rdi,%r13
jne    1d40 <NURBSsurfaceRegularEval+0xbe0>
jmp    1dc9 <NURBSsurfaceRegularEval+0xc69>
nopl   0x0(%rax)
movsd  (%r15,%rax,8),%xmm1
movsd  0x8(%r15,%rax,8),%xmm0
lea    0x1(%rax),%r8
lea    0x2(%rax),%rcx
xorpd  %xmm2,%xmm2
divsd  %xmm2,%xmm1
movsd  %xmm1,(%r15,%rax,8)
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r8,8)
movsd  (%r15,%rcx,8),%xmm0
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%rcx,8)
cmpl   $0x3,0x98(%rsp)
03
mov    0x60(%rsp),%rcx
jl     1fa0 <NURBSsurfaceRegularEval+0xe40>
mov    0x30(%rsp),%rax
imul   0xc(%rsp),%eax
mov    %rax,0x30(%rsp)
mov    $0x1,%r10d
mov    0xc8(%rsp),%rsi
jmp    1e72 <NURBSsurfaceRegularEval+0xd12>
nop
mov    0x60(%rsp),%rcx
mov    0x90(%rsp),%rax
movsd  (%r15,%rdi,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rdi,8)
movsd  (%r15,%r11,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r11,8)
movsd  (%r15,%rax,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rax,8)
add    $0x1,%r10
add    %rcx,%rsi
cmp    0x88(%rsp),%r10
je     1fa0 <NURBSsurfaceRegularEval+0xe40>
mov    0x50(%rsp),%rax
add    %r10,%rax
lea    (%rax,%rax,2),%rdi
cmpl   $0x0,0x20(%rsp)
jle    1f80 <NURBSsurfaceRegularEval+0xe20>
mov    0x18(%rsp),%rax
mov    (%rax,%r10,4),%eax
lea    0x1(%rdi),%r11
lea    0x2(%rdi),%rcx
mov    %rcx,0x90(%rsp)
mov    0x30(%rsp),%rcx
lea    (%rcx,%rax,4),%ecx
xorpd  %xmm0,%xmm0
xor    %eax,%eax
jmp    1ed2 <NURBSsurfaceRegularEval+0xd72>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
add    $0x1,%rax
add    0x58(%rsp),%rcx
cmp    %r13,%rax
je     1e20 <NURBSsurfaceRegularEval+0xcc0>
cmpl   $0x0,0x10(%rsp)
jle    1ec0 <NURBSsurfaceRegularEval+0xd60>
movsd  (%r12,%rax,8),%xmm1
movsd  (%r15,%rdi,8),%xmm2
movsd  0x8(%r15,%rdi,8),%xmm3
movsd  0x10(%r15,%rdi,8),%xmm4
xor    %r8d,%r8d
cs nopw 0x0(%rax,%rax,1)
lea    (%rcx,%r8,1),%r9
movsd  (%rsi,%r8,2),%xmm5
movslq %r9d,%rdx
mulsd  %xmm1,%xmm5
movsd  (%rbx,%rdx,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm2
movsd  %xmm2,(%r15,%rdi,8)
lea    0x1(%rdx),%ebp
movslq %ebp,%rbp
movsd  (%rbx,%rbp,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm3
lea    0x2(%rdx),%ebp
movslq %ebp,%rbp
movsd  %xmm3,0x8(%r15,%rdi,8)
movsd  (%rbx,%rbp,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm4
movsd  %xmm4,0x10(%r15,%rdi,8)
add    $0x3,%edx
movslq %edx,%rdx
mulsd  (%rbx,%rdx,8),%xmm5
addsd  %xmm5,%xmm0
add    $0x4,%r8
cmp    %r8,%r14
jne    1f00 <NURBSsurfaceRegularEval+0xda0>
jmp    1ec0 <NURBSsurfaceRegularEval+0xd60>
cs nopw 0x0(%rax,%rax,1)
nop
lea    0x1(%rdi),%r11
lea    0x2(%rdi),%rax
xorpd  %xmm0,%xmm0
jmp    1e2d <NURBSsurfaceRegularEval+0xccd>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    0x50(%rsp),%rax
add    0xa0(%rsp),%rax
lea    (%rax,%rax,2),%rax
cmpl   $0x0,0x20(%rsp)
jle    1c10 <NURBSsurfaceRegularEval+0xab0>
lea    0x1(%rax),%rdx
lea    0x2(%rax),%rcx
movsd  (%r15,%rax,8),%xmm1
movsd  0x8(%r15,%rax,8),%xmm0
movsd  0x10(%r15,%rax,8),%xmm3
mov    0x100(%rsp),%rsi
mov    0x48(%rsp),%rdi
lea    (%rsi,%rdi,4),%esi
imul   0x70(%rsp),%esi
add    $0xfffffffe,%esi
xorpd  %xmm2,%xmm2
xor    %edi,%edi
mov    0xc(%rsp),%r10d
nopl   0x0(%rax,%rax,1)
lea    -0x2(%rsi),%ebp
movsd  (%r12,%rdi,8),%xmm4
movslq %ebp,%rbp
movsd  (%rbx,%rbp,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm1
movsd  %xmm1,(%r15,%rax,8)
lea    -0x1(%rsi),%ebp
movslq %ebp,%rbp
movsd  (%rbx,%rbp,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,0x8(%r15,%rax,8)
movslq %esi,%rsi
movsd  (%rbx,%rsi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
movsd  %xmm3,0x10(%r15,%rax,8)
lea    0x1(%rsi),%ebp
movslq %ebp,%rbp
mulsd  (%rbx,%rbp,8),%xmm4
addsd  %xmm4,%xmm2
add    $0x1,%rdi
add    %r10d,%esi
cmp    %rdi,%r13
jne    2000 <NURBSsurfaceRegularEval+0xea0>
mov    0x40(%rsp),%rbp
jmp    1c33 <NURBSsurfaceRegularEval+0xad3>
cmpb   $0x0,0x88(%rsp)
mov    0x78(%rsp),%ebp
je     2cdc <NURBSsurfaceRegularEval+0x1b7c>
mov    0xb0(%rsp),%rdi
mov    %ebp,%esi
movsd  0x38(%rsp),%xmm0
mov    0x80(%rsp),%r13
mov    %r13,%rdx
mov    $0x1,%al
call   1070 <FindSpan@plt>
mov    0x18(%rsp),%r14
mov    %eax,(%r14)
mov    %eax,%edi
movsd  0x38(%rsp),%xmm0
mov    %ebp,%esi
mov    %r13,%rdx
mov    0x40(%rsp),%rcx
mov    0x68(%rsp),%r13
mov    %r13,%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    (%r14),%edx
mov    %edx,%r10d
sub    %ebp,%r10d
cmpb   $0x0,0x108(%rsp)
je     2f0f <NURBSsurfaceRegularEval+0x1daf>
mov    %rdx,0x58(%rsp)
mov    %r10d,0x50(%rsp)
mov    0x70(%rsp),%rdi
mov    0x48(%rsp),%r14d
mov    %r14d,%esi
movsd  0x30(%rsp),%xmm0
mov    0xa0(%rsp),%rbp
mov    %rbp,%rdx
mov    $0x1,%al
call   1070 <FindSpan@plt>
mov    %rax,0x28(%rsp)
mov    %eax,%edi
movsd  0x30(%rsp),%xmm0
mov    %r14d,%esi
mov    %rbp,%rdx
mov    %r12,%rcx
mov    %r13,%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x20(%rsp),%rdx
test   %edx,%edx
jle    4411 <NURBSsurfaceRegularEval+0x32b1>
mov    %edx,%r8d
mov    0x10(%rsp),%rax
mov    %eax,%ecx
mov    0x58(%rsp),%rsi
sub    %edx,%esi
add    $0x1,%esi
imul   0x70(%rsp),%esi
mov    0x28(%rsp),%r14
lea    0x0(,%r14,4),%edx
lea    (%rdx,%rsi,4),%edx
lea    0x0(,%rax,4),%esi
sub    %esi,%edx
mov    0xc(%rsp),%r10d
mov    %r10d,%esi
shl    $0x2,%rcx
xorpd  %xmm0,%xmm0
xor    %edi,%edi
mov    0x40(%rsp),%r9
mov    0xc8(%rsp),%r11
jmp    21c5 <NURBSsurfaceRegularEval+0x1065>
nopl   0x0(%rax,%rax,1)
add    $0x1,%rdi
add    %rsi,%rdx
cmp    %r8,%rdi
mov    0x10(%rsp),%rax
je     442c <NURBSsurfaceRegularEval+0x32cc>
test   %eax,%eax
jle    21b0 <NURBSsurfaceRegularEval+0x1050>
movsd  (%r9,%rdi,8),%xmm1
movsd  (%r15),%xmm2
movsd  0x8(%r15),%xmm3
movsd  0x10(%r15),%xmm4
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
lea    (%rdx,%rbp,1),%eax
add    $0x4,%eax
movsd  (%r12,%rbp,2),%xmm5
cltq
mulsd  %xmm1,%xmm5
movsd  (%rbx,%rax,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm2
movsd  %xmm2,(%r15)
lea    0x5(%rdx,%rbp,1),%eax
cltq
movsd  (%rbx,%rax,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm3
lea    0x6(%rdx,%rbp,1),%eax
cltq
movsd  %xmm3,0x8(%r15)
movsd  (%rbx,%rax,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm4
movsd  %xmm4,0x10(%r15)
lea    0x7(%rdx,%rbp,1),%eax
cltq
mulsd  (%rbx,%rax,8),%xmm5
addsd  %xmm5,%xmm0
add    $0x4,%rbp
cmp    %rbp,%rcx
jne    21f0 <NURBSsurfaceRegularEval+0x1090>
jmp    21b0 <NURBSsurfaceRegularEval+0x1050>
mov    0x18(%rsp),%rcx
mov    0x110(%rsp),%rax
mov    %r10d,-0x8(%rcx,%rax,4)
mov    0xf8(%rsp),%rax
mov    0xe0(%rsp),%rcx
mov    0xc(%rsp),%r10d
imul   %r10d,%ecx
movslq %ecx,%rdx
or     $0x3,%ecx
movsd  (%rbx,%rdx,8),%xmm0
movslq %ecx,%rcx
divsd  (%rbx,%rcx,8),%xmm0
imul   0xc8(%rsp),%eax
movslq %eax,%rsi
movsd  %xmm0,(%r15,%rsi,8)
mov    %edx,%eax
or     $0x1,%eax
cltq
movsd  (%rbx,%rax,8),%xmm0
divsd  (%rbx,%rcx,8),%xmm0
movsd  %xmm0,0x8(%r15,%rsi,8)
or     $0x2,%edx
movslq %edx,%rax
movsd  (%rbx,%rax,8),%xmm0
divsd  (%rbx,%rcx,8),%xmm0
mov    %rsi,0xb8(%rsp)
movsd  %xmm0,0x10(%r15,%rsi,8)
cmpl   $0x3,0x98(%rsp)
03
jl     2995 <NURBSsurfaceRegularEval+0x1835>
movslq 0xc8(%rsp),%rax
mov    %rax,0x50(%rsp)
mov    0xd0(%rsp),%eax
mov    %rax,0x98(%rsp)
mov    0x10(%rsp),%rax
mov    %eax,%r13d
mov    0xf8(%rsp),%ecx
mov    %rcx,0x88(%rsp)
mov    %edi,%ecx
mov    %rcx,0x58(%rsp)
lea    0x0(,%rax,4),%ecx
shl    $0x2,%r13
mov    %r10d,%r14d
mov    0xe0(%rsp),%rax
imul   0x70(%rsp),%eax
shl    $0x2,%eax
sub    %ecx,%eax
mov    %rax,0xe0(%rsp)
neg    %ecx
mov    %rcx,0xf0(%rsp)
mov    $0x1,%edx
mov    0x48(%rsp),%eax
mov    %eax,%ecx
jmp    23cc <NURBSsurfaceRegularEval+0x126c>
movsd  (%r15,%rbp,8),%xmm1
movsd  0x8(%r15,%rbp,8),%xmm0
lea    0x1(%rbp),%r8
lea    0x2(%rbp),%rax
xorpd  %xmm2,%xmm2
mov    0x78(%rsp),%rdx
mov    0x80(%rsp),%rcx
divsd  %xmm2,%xmm1
movsd  %xmm1,(%r15,%rbp,8)
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r8,8)
movsd  (%r15,%rax,8),%xmm0
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%rax,8)
add    $0x1,%rdx
cmp    0x98(%rsp),%rdx
je     2995 <NURBSsurfaceRegularEval+0x1835>
mov    %rdx,0x78(%rsp)
movsd  0x30(%rsp),%xmm0
addsd  0xe8(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
mov    0x70(%rsp),%rdi
mov    0xa0(%rsp),%rbp
mov    %rbp,%rsi
mov    %ecx,%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %rax,0x80(%rsp)
mov    %eax,%edi
movsd  0x30(%rsp),%xmm0
mov    0x48(%rsp),%esi
mov    %rbp,%rdx
mov    %r12,%rcx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x78(%rsp),%rax
lea    (%rax,%rax,2),%rbp
mov    %ebp,%r8d
mov    0x10(%rsp),%rax
lea    0x1(%rbp),%ecx
lea    0x2(%rbp),%edx
test   %eax,%eax
jle    24f0 <NURBSsurfaceRegularEval+0x1390>
mov    0xf0(%rsp),%rax
mov    0x80(%rsp),%rsi
lea    (%rax,%rsi,4),%esi
xorpd  %xmm0,%xmm0
xor    %edi,%edi
cs nopw 0x0(%rax,%rax,1)
nop
lea    (%rsi,%rdi,1),%eax
add    $0x4,%eax
cltq
movsd  (%r12,%rdi,2),%xmm1
movsd  (%rbx,%rax,8),%xmm2
mulsd  %xmm1,%xmm2
addsd  (%r15,%r8,8),%xmm2
lea    0x5(%rsi,%rdi,1),%eax
cltq
movsd  %xmm2,(%r15,%r8,8)
movsd  (%rbx,%rax,8),%xmm2
mulsd  %xmm1,%xmm2
addsd  (%r15,%rcx,8),%xmm2
movsd  %xmm2,(%r15,%rcx,8)
lea    0x6(%rsi,%rdi,1),%eax
cltq
movsd  (%rbx,%rax,8),%xmm2
mulsd  %xmm1,%xmm2
addsd  (%r15,%rdx,8),%xmm2
movsd  %xmm2,(%r15,%rdx,8)
lea    0x7(%rsi,%rdi,1),%eax
cltq
mulsd  (%rbx,%rax,8),%xmm1
addsd  %xmm1,%xmm0
add    $0x4,%rdi
cmp    %rdi,%r13
jne    2470 <NURBSsurfaceRegularEval+0x1310>
mov    0xc(%rsp),%r10d
mov    0x10(%rsp),%rax
jmp    24f9 <NURBSsurfaceRegularEval+0x1399>
nopl   (%rax)
xorpd  %xmm0,%xmm0
mov    0xc(%rsp),%r10d
mov    0x20(%rsp),%rdi
movsd  (%r15,%r8,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r8,8)
movsd  (%r15,%rcx,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rcx,8)
movsd  (%r15,%rdx,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rdx,8)
cmpl   $0x3,0xc0(%rsp)
03
jl     26e0 <NURBSsurfaceRegularEval+0x1580>
mov    0xf0(%rsp),%rcx
mov    0x80(%rsp),%rdx
lea    (%rcx,%rdx,4),%ecx
mov    %ecx,0x38(%rsp)
mov    $0x1,%r9d
mov    %rbp,0x60(%rsp)
jmp    25b1 <NURBSsurfaceRegularEval+0x1451>
mov    0x20(%rsp),%rdi
movsd  (%r15,%rsi,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rsi,8)
movsd  (%r15,%r11,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r11,8)
movsd  (%r15,%r10,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r10,8)
add    $0x1,%r9
cmp    0x88(%rsp),%r9
mov    0xc(%rsp),%r10d
mov    0x60(%rsp),%rbp
je     26e0 <NURBSsurfaceRegularEval+0x1580>
mov    %r9,%rsi
imul   0x50(%rsp),%rsi
add    %rbp,%rsi
test   %edi,%edi
jle    26c0 <NURBSsurfaceRegularEval+0x1560>
mov    %r9,%rdx
imul   0x90(%rsp),%rdx
lea    0x1(%rsi),%r11
mov    %r10d,%ebp
lea    0x2(%rsi),%r10
mov    0x18(%rsp),%rcx
mov    (%rcx,%r9,4),%edi
imul   %ebp,%edi
add    0x38(%rsp),%edi
xorpd  %xmm0,%xmm0
xor    %ecx,%ecx
jmp    2612 <NURBSsurfaceRegularEval+0x14b2>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
add    $0x1,%rcx
add    %r14,%rdi
cmp    0x58(%rsp),%rcx
je     2560 <NURBSsurfaceRegularEval+0x1400>
test   %eax,%eax
jle    2600 <NURBSsurfaceRegularEval+0x14a0>
lea    (%rcx,%rdx,1),%rbp
mov    0x40(%rsp),%rax
movsd  (%rax,%rbp,8),%xmm1
mov    0x10(%rsp),%rax
movsd  (%r15,%rsi,8),%xmm2
movsd  0x8(%r15,%rsi,8),%xmm3
movsd  0x10(%r15,%rsi,8),%xmm4
xor    %r8d,%r8d
lea    (%rdi,%r8,1),%ebp
add    $0x4,%ebp
movsd  (%r12,%r8,2),%xmm5
movslq %ebp,%rbp
mulsd  %xmm1,%xmm5
movsd  (%rbx,%rbp,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm2
movsd  %xmm2,(%r15,%rsi,8)
lea    0x5(%rdi,%r8,1),%ebp
movslq %ebp,%rbp
movsd  (%rbx,%rbp,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm3
lea    0x6(%rdi,%r8,1),%ebp
movslq %ebp,%rbp
movsd  %xmm3,0x8(%r15,%rsi,8)
movsd  (%rbx,%rbp,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm4
movsd  %xmm4,0x10(%r15,%rsi,8)
lea    0x7(%rdi,%r8,1),%ebp
movslq %ebp,%rbp
mulsd  (%rbx,%rbp,8),%xmm5
addsd  %xmm5,%xmm0
add    $0x4,%r8
cmp    %r8,%r13
jne    2640 <NURBSsurfaceRegularEval+0x14e0>
jmp    2600 <NURBSsurfaceRegularEval+0x14a0>
xchg   %ax,%ax
lea    0x1(%rsi),%r11
lea    0x2(%rsi),%r10
xorpd  %xmm0,%xmm0
jmp    2565 <NURBSsurfaceRegularEval+0x1405>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
add    0xb8(%rsp),%rbp
test   %eax,%eax
jle    2370 <NURBSsurfaceRegularEval+0x1210>
lea    0x1(%rbp),%r8
lea    0x2(%rbp),%rax
movsd  (%r15,%rbp,8),%xmm1
movsd  0x8(%r15,%rbp,8),%xmm0
movsd  0x10(%r15,%rbp,8),%xmm3
mov    0xe0(%rsp),%rdx
mov    0x80(%rsp),%rcx
lea    (%rdx,%rcx,4),%edx
xorpd  %xmm2,%xmm2
xor    %esi,%esi
cs nopw 0x0(%rax,%rax,1)
nop
lea    (%rdx,%rsi,1),%edi
add    $0x4,%edi
movslq %edi,%rdi
movsd  (%r12,%rsi,2),%xmm4
movsd  (%rbx,%rdi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm1
movsd  %xmm1,(%r15,%rbp,8)
lea    0x5(%rdx,%rsi,1),%edi
movslq %edi,%rdi
movsd  (%rbx,%rdi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
lea    0x6(%rdx,%rsi,1),%edi
movslq %edi,%rdi
movsd  %xmm0,0x8(%r15,%rbp,8)
movsd  (%rbx,%rdi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
movsd  %xmm3,0x10(%r15,%rbp,8)
lea    0x7(%rdx,%rsi,1),%edi
movslq %edi,%rdi
mulsd  (%rbx,%rdi,8),%xmm4
addsd  %xmm4,%xmm2
add    $0x4,%rsi
cmp    %rsi,%r13
jne    2730 <NURBSsurfaceRegularEval+0x15d0>
mov    0x20(%rsp),%rdi
mov    0x78(%rsp),%rdx
jmp    2396 <NURBSsurfaceRegularEval+0x1236>
mov    0x98(%rsp),%r8
mov    0xf8(%rsp),%rdi
imul   %r8d,%edi
mov    0xe0(%rsp),%r11
mov    %r11d,%eax
imul   %r10d,%eax
mov    %eax,%ecx
or     $0x3,%ecx
mov    %eax,%edx
or     $0x1,%edx
movslq %eax,%r9
lea    (%rdi,%rdi,2),%esi
movsd  (%rbx,%r9,8),%xmm0
movslq %ecx,%rcx
divsd  (%rbx,%rcx,8),%xmm0
movslq %esi,%rsi
movsd  %xmm0,(%r15,%rsi,8)
movslq %edx,%rdx
movsd  (%rbx,%rdx,8),%xmm0
divsd  (%rbx,%rcx,8),%xmm0
or     $0x2,%eax
movsd  %xmm0,0x8(%r15,%rsi,8)
cltq
movsd  (%rbx,%rax,8),%xmm0
divsd  (%rbx,%rcx,8),%xmm0
movsd  %xmm0,0x10(%r15,%rsi,8)
cmp    $0x3,%r8d
mov    0x60(%rsp),%rcx
jl     2b43 <NURBSsurfaceRegularEval+0x19e3>
movslq %edi,%r8
mov    0xd0(%rsp),%r9d
mov    0x10(%rsp),%r13d
mov    0x70(%rsp),%rax
imul   %r11d,%eax
shl    $0x2,%eax
mov    %rax,0x70(%rsp)
mov    0xb8(%rsp),%rax
lea    0x0(,%rax,8),%rsi
add    %rbp,%rsi
shl    $0x2,%r13
mov    $0x1,%r14d
jmp    28d2 <NURBSsurfaceRegularEval+0x1772>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movsd  (%r15,%rbp,8),%xmm1
movsd  0x8(%r15,%rbp,8),%xmm0
lea    0x1(%rbp),%r10
lea    0x2(%rbp),%r11
xorpd  %xmm2,%xmm2
divsd  %xmm2,%xmm1
movsd  %xmm1,(%r15,%rbp,8)
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r10,8)
movsd  (%r15,%r11,8),%xmm0
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r11,8)
add    $0x1,%r14
add    %rcx,%rsi
cmp    %r9,%r14
mov    0xc(%rsp),%r10d
je     2b43 <NURBSsurfaceRegularEval+0x19e3>
lea    (%r14,%r8,1),%rax
lea    (%rax,%rax,2),%rbp
cmpl   $0x0,0x10(%rsp)
jle    2880 <NURBSsurfaceRegularEval+0x1720>
mov    0x18(%rsp),%rax
mov    (%rax,%r14,4),%eax
lea    0x1(%rbp),%r10
lea    0x2(%rbp),%r11
movsd  (%r15,%rbp,8),%xmm1
movsd  0x8(%r15,%rbp,8),%xmm0
movsd  0x10(%r15,%rbp,8),%xmm3
mov    0x70(%rsp),%rcx
lea    (%rcx,%rax,4),%ecx
xorpd  %xmm2,%xmm2
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
lea    (%rcx,%rax,1),%rdi
movslq %edi,%rdi
movsd  (%rsi,%rax,2),%xmm4
movsd  (%rbx,%rdi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm1
movsd  %xmm1,(%r15,%rbp,8)
lea    0x1(%rdi),%edx
movslq %edx,%rdx
movsd  (%rbx,%rdx,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
lea    0x2(%rdi),%edx
movslq %edx,%rdx
movsd  %xmm0,0x8(%r15,%rbp,8)
movsd  (%rbx,%rdx,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
movsd  %xmm3,0x10(%r15,%rbp,8)
add    $0x3,%edi
movslq %edi,%rdx
mulsd  (%rbx,%rdx,8),%xmm4
addsd  %xmm4,%xmm2
add    $0x4,%rax
cmp    %rax,%r13
jne    2920 <NURBSsurfaceRegularEval+0x17c0>
mov    0x60(%rsp),%rcx
jmp    2899 <NURBSsurfaceRegularEval+0x1739>
movslq 0x100(%rsp),%rax
movsd  (%rbx,%rax,8),%xmm0
movslq %r10d,%rax
divsd  -0x8(%rbx,%rax,8),%xmm0
mov    0xd0(%rsp),%rcx
lea    (%rcx,%rcx,2),%ecx
movslq %ecx,%r10
movsd  %xmm0,(%r15,%r10,8)
movsd  -0x18(%rbx,%rax,8),%xmm0
divsd  -0x8(%rbx,%rax,8),%xmm0
movsd  %xmm0,0x8(%r15,%r10,8)
movsd  -0x10(%rbx,%rax,8),%xmm0
divsd  -0x8(%rbx,%rax,8),%xmm0
movsd  %xmm0,0x10(%r15,%r10,8)
cmpl   $0x3,0xc0(%rsp)
03
jl     2b55 <NURBSsurfaceRegularEval+0x19f5>
movslq 0xc8(%rsp),%rax
mov    %rax,0x10(%rsp)
mov    0xf8(%rsp),%r9d
mov    %edi,%esi
mov    0x40(%rsp),%rdi
mov    0x28(%rsp),%rax
add    %rax,%rdi
mov    $0x1,%r13d
mov    0xc(%rsp),%r8d
jmp    2a7d <NURBSsurfaceRegularEval+0x191d>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movsd  (%r15,%rbp,8),%xmm1
movsd  0x8(%r15,%rbp,8),%xmm0
lea    0x1(%rbp),%r11
lea    0x2(%rbp),%r14
xorpd  %xmm2,%xmm2
divsd  %xmm2,%xmm1
movsd  %xmm1,(%r15,%rbp,8)
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r11,8)
movsd  (%r15,%r14,8),%xmm0
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r14,8)
add    $0x1,%r13
add    %rax,%rdi
cmp    %r9,%r13
je     2b55 <NURBSsurfaceRegularEval+0x19f5>
mov    %r13,%rbp
imul   0x10(%rsp),%rbp
add    %r10,%rbp
cmpl   $0x0,0x20(%rsp)
jle    2a30 <NURBSsurfaceRegularEval+0x18d0>
mov    0x18(%rsp),%rax
mov    (%rax,%r13,4),%eax
lea    0x1(%rbp),%r11
lea    0x2(%rbp),%r14
movsd  (%r15,%rbp,8),%xmm1
movsd  0x8(%r15,%rbp,8),%xmm0
movsd  0x10(%r15,%rbp,8),%xmm3
lea    0x4(,%rax,4),%eax
imul   0x70(%rsp),%eax
add    $0xfffffffe,%eax
xorpd  %xmm2,%xmm2
xor    %edx,%edx
nopw   0x0(%rax,%rax,1)
lea    -0x2(%rax),%ecx
movsd  (%rdi,%rdx,8),%xmm4
movslq %ecx,%rcx
movsd  (%rbx,%rcx,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm1
movsd  %xmm1,(%r15,%rbp,8)
lea    -0x1(%rax),%ecx
movslq %ecx,%rcx
movsd  (%rbx,%rcx,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,0x8(%r15,%rbp,8)
cltq
movsd  (%rbx,%rax,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
movsd  %xmm3,0x10(%r15,%rbp,8)
lea    0x1(%rax),%ecx
movslq %ecx,%rcx
mulsd  (%rbx,%rcx,8),%xmm4
addsd  %xmm4,%xmm2
add    $0x1,%rdx
add    %r8d,%eax
cmp    %rdx,%rsi
jne    2ad0 <NURBSsurfaceRegularEval+0x1970>
mov    0x28(%rsp),%rax
jmp    2a49 <NURBSsurfaceRegularEval+0x18e9>
mov    0x98(%rsp),%rax
lea    (%rax,%rax,2),%edx
mov    0x68(%rsp),%r13
jmp    2b67 <NURBSsurfaceRegularEval+0x1a07>
mov    0x68(%rsp),%r13
mov    0xc(%rsp),%r10d
mov    0xc8(%rsp),%rdx
imul   0xc0(%rsp),%edx
imul   0xb0(%rsp),%r10d
movslq %r10d,%rax
movsd  -0x20(%rbx,%rax,8),%xmm0
divsd  -0x8(%rbx,%rax,8),%xmm0
lea    -0x3(%rdx),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%r15,%rcx,8)
movsd  -0x18(%rbx,%rax,8),%xmm0
divsd  -0x8(%rbx,%rax,8),%xmm0
lea    -0x2(%rdx),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%r15,%rcx,8)
movsd  -0x10(%rbx,%rax,8),%xmm0
divsd  -0x8(%rbx,%rax,8),%xmm0
add    $0xffffffff,%edx
movslq %edx,%rax
movsd  %xmm0,(%r15,%rax,8)
jmp    58c4 <NURBSsurfaceRegularEval+0x4764>
mov    0x70(%rsp),%rdi
mov    0x48(%rsp),%r14d
mov    %r14d,%esi
mov    0xa0(%rsp),%rbp
mov    %rbp,%rdx
mov    $0x1,%al
call   1070 <FindSpan@plt>
mov    0x18(%rsp),%r13
mov    %eax,0x0(%r13)
mov    %eax,%edi
movsd  0x30(%rsp),%xmm0
mov    %r14d,%esi
mov    %rbp,%rdx
mov    0x40(%rsp),%rcx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x0(%r13),%edx
mov    0x10(%rsp),%rax
test   %eax,%eax
jle    2fd3 <NURBSsurfaceRegularEval+0x1e73>
mov    %rax,%rsi
mov    %esi,%eax
movsd  (%r15),%xmm0
movsd  0x8(%r15),%xmm3
movsd  0x10(%r15),%xmm1
lea    0x0(,%rdx,4),%ecx
lea    0x0(,%rsi,4),%esi
sub    %esi,%ecx
shl    $0x2,%rax
xorpd  %xmm2,%xmm2
xor    %esi,%esi
mov    0x40(%rsp),%r8
nopl   (%rax)
lea    (%rcx,%rsi,1),%edi
add    $0x4,%edi
movslq %edi,%rdi
movsd  (%r8,%rsi,2),%xmm4
movsd  (%rbx,%rdi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,(%r15)
lea    0x5(%rcx,%rsi,1),%edi
movslq %edi,%rdi
movsd  (%rbx,%rdi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
lea    0x6(%rcx,%rsi,1),%edi
movslq %edi,%rdi
movsd  %xmm3,0x8(%r15)
movsd  (%rbx,%rdi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm1
movsd  %xmm1,0x10(%r15)
lea    0x7(%rcx,%rsi,1),%edi
movslq %edi,%rdi
mulsd  (%rbx,%rdi,8),%xmm4
addsd  %xmm4,%xmm2
add    $0x4,%rsi
cmp    %rsi,%rax
jne    2c60 <NURBSsurfaceRegularEval+0x1b00>
unpcklpd %xmm3,%xmm0
mov    0x10(%rsp),%rax
jmp    2fe7 <NURBSsurfaceRegularEval+0x1e87>
mov    0x18(%rsp),%rax
mov    %ebp,(%rax)
mov    0x70(%rsp),%rdi
mov    0x48(%rsp),%r14d
mov    %r14d,%esi
movsd  0x30(%rsp),%xmm0
mov    0xa0(%rsp),%rbp
mov    %rbp,%rdx
mov    $0x1,%al
call   1070 <FindSpan@plt>
mov    %rax,0xd8(%rsp)
mov    %eax,%edi
movsd  0x30(%rsp),%xmm0
mov    %r14d,%esi
mov    %rbp,%rdx
mov    %r12,%rcx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x10(%rsp),%rax
mov    %eax,%r13d
test   %eax,%eax
jle    3605 <NURBSsurfaceRegularEval+0x24a5>
movsd  (%r15),%xmm0
movsd  0x8(%r15),%xmm3
movsd  0x10(%r15),%xmm1
mov    %rax,%rcx
mov    0xd8(%rsp),%rax
lea    0x0(,%rax,4),%eax
lea    0x0(,%rcx,4),%ecx
sub    %ecx,%eax
lea    0x0(,%r13,4),%rcx
xorpd  %xmm2,%xmm2
xor    %edx,%edx
nop
lea    (%rax,%rdx,1),%esi
add    $0x4,%esi
movslq %esi,%rsi
movsd  (%r12,%rdx,2),%xmm4
movsd  (%rbx,%rsi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,(%r15)
lea    0x5(%rax,%rdx,1),%esi
movslq %esi,%rsi
movsd  (%rbx,%rsi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
lea    0x6(%rax,%rdx,1),%esi
movslq %esi,%rsi
movsd  %xmm3,0x8(%r15)
movsd  (%rbx,%rsi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm1
movsd  %xmm1,0x10(%r15)
lea    0x7(%rax,%rdx,1),%esi
movslq %esi,%rsi
mulsd  (%rbx,%rsi,8),%xmm4
addsd  %xmm4,%xmm2
add    $0x4,%rdx
cmp    %rdx,%rcx
jne    2d80 <NURBSsurfaceRegularEval+0x1c20>
unpcklpd %xmm3,%xmm0
jmp    3614 <NURBSsurfaceRegularEval+0x24b4>
mov    0x18(%rsp),%rax
mov    0x48(%rsp),%ecx
mov    %ecx,(%rax)
mov    0xb0(%rsp),%rdi
mov    0x78(%rsp),%r14d
mov    %r14d,%esi
movsd  0x38(%rsp),%xmm0
mov    0x80(%rsp),%r13
mov    %r13,%rdx
mov    $0x1,%al
call   1070 <FindSpan@plt>
mov    %eax,%ebp
mov    %eax,%edi
movsd  0x38(%rsp),%xmm0
mov    %r14d,%esi
mov    %r13,%rdx
mov    %r12,%rcx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x20(%rsp),%r8
test   %r8d,%r8d
mov    %rbp,0x28(%rsp)
jle    49a1 <NURBSsurfaceRegularEval+0x3841>
mov    %ebp,%eax
sub    %r14d,%eax
mov    %r8d,%ecx
movsd  (%r15),%xmm0
movsd  0x8(%r15),%xmm3
movsd  0x10(%r15),%xmm1
imul   0x70(%rsp),%eax
shl    $0x2,%eax
xorpd  %xmm2,%xmm2
xor    %edx,%edx
mov    0xc(%rsp),%edi
mov    0x98(%rsp),%rbp
nopw   0x0(%rax,%rax,1)
cltq
movsd  (%r12,%rdx,8),%xmm4
movsd  (%rbx,%rax,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,(%r15)
lea    0x1(%rax),%esi
movslq %esi,%rsi
movsd  (%rbx,%rsi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
lea    0x2(%rax),%esi
movslq %esi,%rsi
movsd  %xmm3,0x8(%r15)
movsd  (%rbx,%rsi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm1
movsd  %xmm1,0x10(%r15)
lea    0x3(%rax),%esi
movslq %esi,%rsi
mulsd  (%rbx,%rsi,8),%xmm4
addsd  %xmm4,%xmm2
add    $0x1,%rdx
add    %edi,%eax
cmp    %rdx,%rcx
jne    2ea0 <NURBSsurfaceRegularEval+0x1d40>
unpcklpd %xmm3,%xmm0
jmp    49b8 <NURBSsurfaceRegularEval+0x3858>
mov    0x20(%rsp),%rax
test   %eax,%eax
mov    0xc(%rsp),%ebp
jle    4d33 <NURBSsurfaceRegularEval+0x3bd3>
mov    %eax,%eax
movsd  (%r15),%xmm0
movsd  0x8(%r15),%xmm3
movsd  0x10(%r15),%xmm1
mov    0x70(%rsp),%rcx
imul   %r10d,%ecx
shl    $0x2,%ecx
xorpd  %xmm2,%xmm2
xor    %edi,%edi
mov    0x40(%rsp),%r8
mov    0x90(%rsp),%r11
mov    0xc8(%rsp),%r9
nopw   0x0(%rax,%rax,1)
movslq %ecx,%rcx
movsd  (%r8,%rdi,8),%xmm4
movsd  (%rbx,%rcx,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,(%r15)
lea    0x1(%rcx),%esi
movslq %esi,%rsi
movsd  (%rbx,%rsi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
lea    0x2(%rcx),%esi
movslq %esi,%rsi
movsd  %xmm3,0x8(%r15)
movsd  (%rbx,%rsi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm1
movsd  %xmm1,0x10(%r15)
lea    0x3(%rcx),%esi
movslq %esi,%rsi
mulsd  (%rbx,%rsi,8),%xmm4
addsd  %xmm4,%xmm2
add    $0x1,%rdi
add    %ebp,%ecx
cmp    %rdi,%rax
jne    2f60 <NURBSsurfaceRegularEval+0x1e00>
unpcklpd %xmm3,%xmm0
mov    %r11,%rsi
jmp    4d57 <NURBSsurfaceRegularEval+0x3bf7>
movupd (%r15),%xmm0
movsd  0x10(%r15),%xmm1
xorpd  %xmm2,%xmm2
mov    0x40(%rsp),%r8
mov    0x98(%rsp),%rcx
mov    0x48(%rsp),%edi
mov    %edx,%ebp
sub    %edi,%ebp
divsd  %xmm2,%xmm1
unpcklpd %xmm2,%xmm2
divpd  %xmm2,%xmm0
movupd %xmm0,(%r15)
movsd  %xmm1,0x10(%r15)
cmp    $0x2,%ecx
jl     31e7 <NURBSsurfaceRegularEval+0x2087>
mov    %ecx,%ecx
mov    %rcx,0x50(%rsp)
mov    %eax,%r14d
lea    0x0(,%rax,4),%eax
neg    %eax
mov    %rax,0x88(%rsp)
mov    0x60(%rsp),%rax
lea    (%r8,%rax,1),%r13
shl    $0x2,%r14
mov    $0x1,%r9d
jmp    30a8 <NURBSsurfaceRegularEval+0x1f48>
nopw   0x0(%rax,%rax,1)
lea    0x1(%r8),%esi
add    $0x2,%r8d
xorpd  %xmm0,%xmm0
mov    0x48(%rsp),%edi
mov    %edx,%ebp
sub    %edi,%ebp
movsd  (%r15,%rcx,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rcx,8)
movsd  (%r15,%rsi,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rsi,8)
movsd  (%r15,%r8,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r8,8)
add    $0x1,%r9
add    0x60(%rsp),%r13
cmp    0x50(%rsp),%r9
je     31e7 <NURBSsurfaceRegularEval+0x2087>
mov    %ebp,0x90(%rsp)
mov    %r9,0x58(%rsp)
mov    %r9,%rbp
imul   0xb8(%rsp),%rbp
movsd  0x30(%rsp),%xmm0
addsd  0xe8(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
mov    0x70(%rsp),%rdi
mov    0xa0(%rsp),%rsi
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    0x58(%rsp),%rcx
mov    0x18(%rsp),%rdx
mov    %eax,(%rdx,%rcx,4)
mov    0x40(%rsp),%rcx
lea    (%rcx,%rbp,8),%rcx
mov    %eax,%edi
movsd  0x30(%rsp),%xmm0
mov    0x48(%rsp),%esi
mov    0xa0(%rsp),%rdx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x58(%rsp),%r9
mov    0x18(%rsp),%rcx
mov    (%rcx,%r9,4),%edx
lea    (%r9,%r9,2),%r8
mov    0x90(%rsp),%eax
mov    %eax,-0x4(%rcx,%r9,4)
mov    %r8d,%ecx
cmpl   $0x0,0x10(%rsp)
jle    3050 <NURBSsurfaceRegularEval+0x1ef0>
lea    0x1(%r8),%esi
add    $0x2,%r8d
mov    0x88(%rsp),%rax
lea    (%rax,%rdx,4),%edi
xorpd  %xmm0,%xmm0
xor    %ebp,%ebp
nopl   0x0(%rax)
lea    (%rdi,%rbp,1),%eax
add    $0x4,%eax
cltq
movsd  0x0(%r13,%rbp,2),%xmm1
movsd  (%rbx,%rax,8),%xmm2
mulsd  %xmm1,%xmm2
addsd  (%r15,%rcx,8),%xmm2
lea    0x5(%rdi,%rbp,1),%eax
cltq
movsd  %xmm2,(%r15,%rcx,8)
movsd  (%rbx,%rax,8),%xmm2
mulsd  %xmm1,%xmm2
addsd  (%r15,%rsi,8),%xmm2
movsd  %xmm2,(%r15,%rsi,8)
lea    0x6(%rdi,%rbp,1),%eax
cltq
movsd  (%rbx,%rax,8),%xmm2
mulsd  %xmm1,%xmm2
addsd  (%r15,%r8,8),%xmm2
movsd  %xmm2,(%r15,%r8,8)
lea    0x7(%rdi,%rbp,1),%eax
cltq
mulsd  (%rbx,%rax,8),%xmm1
addsd  %xmm1,%xmm0
add    $0x4,%rbp
cmp    %rbp,%r14
jne    3170 <NURBSsurfaceRegularEval+0x2010>
jmp    305c <NURBSsurfaceRegularEval+0x1efc>
movslq 0xd0(%rsp),%rax
mov    0x18(%rsp),%rcx
mov    %ebp,(%rcx,%rax,4)
cmpl   $0x3,0xc0(%rsp)
03
movsd  0x38(%rsp),%xmm0
jl     34b1 <NURBSsurfaceRegularEval+0x2351>
mov    0xf8(%rsp),%eax
mov    %rax,0xa0(%rsp)
mov    0x98(%rsp),%eax
mov    %rax,0x88(%rsp)
mov    0x20(%rsp),%rax
mov    %eax,%ecx
mov    %rcx,0x58(%rsp)
mov    0x10(%rsp),%r14d
mov    $0x1,%ecx
sub    %eax,%ecx
mov    %rcx,0xe8(%rsp)
mov    0xc(%rsp),%r13d
shl    $0x2,%r14
mov    $0x1,%eax
mov    %rax,0x28(%rsp)
mov    0x78(%rsp),%eax
mov    %rax,0x48(%rsp)
jmp    3292 <NURBSsurfaceRegularEval+0x2132>
nopw   0x0(%rax,%rax,1)
mov    0x28(%rsp),%rax
add    $0x1,%rax
mov    %rax,0x28(%rsp)
cmp    0xa0(%rsp),%rax
movsd  0x38(%rsp),%xmm0
je     34b1 <NURBSsurfaceRegularEval+0x2351>
addsd  0xf0(%rsp),%xmm0
movsd  %xmm0,0x38(%rsp)
mov    0xb0(%rsp),%rdi
mov    0x80(%rsp),%rbp
mov    %rbp,%rsi
mov    0x48(%rsp),%rdx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %rax,0x48(%rsp)
mov    %eax,%edi
movsd  0x38(%rsp),%xmm0
mov    0x78(%rsp),%esi
mov    %rbp,%rdx
mov    %r12,%rcx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
cmpl   $0x0,0x98(%rsp)
mov    0x60(%rsp),%rcx
jle    3270 <NURBSsurfaceRegularEval+0x2110>
mov    0x28(%rsp),%rax
imul   0xd8(%rsp),%rax
mov    %rax,0x50(%rsp)
mov    0xe8(%rsp),%rax
mov    0x48(%rsp),%rdx
add    %edx,%eax
imul   0xc(%rsp),%eax
mov    %rax,0x30(%rsp)
mov    0x40(%rsp),%rdx
xor    %r10d,%r10d
jmp    3392 <NURBSsurfaceRegularEval+0x2232>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    0x60(%rsp),%rcx
mov    0x90(%rsp),%rax
movsd  (%r15,%rdi,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rdi,8)
movsd  (%r15,%r11,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r11,8)
movsd  (%r15,%rax,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rax,8)
add    $0x1,%r10
add    %rcx,%rdx
cmp    0x88(%rsp),%r10
je     3270 <NURBSsurfaceRegularEval+0x2110>
mov    0x50(%rsp),%rax
add    %r10,%rax
lea    (%rax,%rax,2),%rdi
cmpl   $0x0,0x20(%rsp)
jle    34a0 <NURBSsurfaceRegularEval+0x2340>
mov    0x18(%rsp),%rax
mov    (%rax,%r10,4),%eax
lea    0x1(%rdi),%r11
lea    0x2(%rdi),%rcx
mov    %rcx,0x90(%rsp)
mov    0x30(%rsp),%rcx
lea    (%rcx,%rax,4),%ecx
xorpd  %xmm0,%xmm0
xor    %eax,%eax
jmp    33f2 <NURBSsurfaceRegularEval+0x2292>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
add    $0x1,%rax
add    %r13,%rcx
cmp    0x58(%rsp),%rax
je     3340 <NURBSsurfaceRegularEval+0x21e0>
cmpl   $0x0,0x10(%rsp)
jle    33e0 <NURBSsurfaceRegularEval+0x2280>
movsd  (%r12,%rax,8),%xmm1
movsd  (%r15,%rdi,8),%xmm2
movsd  0x8(%r15,%rdi,8),%xmm3
movsd  0x10(%r15,%rdi,8),%xmm4
xor    %r8d,%r8d
cs nopw 0x0(%rax,%rax,1)
lea    (%rcx,%r8,1),%r9
movsd  (%rdx,%r8,2),%xmm5
movslq %r9d,%rsi
mulsd  %xmm1,%xmm5
movsd  (%rbx,%rsi,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm2
movsd  %xmm2,(%r15,%rdi,8)
lea    0x1(%rsi),%ebp
movslq %ebp,%rbp
movsd  (%rbx,%rbp,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm3
lea    0x2(%rsi),%ebp
movslq %ebp,%rbp
movsd  %xmm3,0x8(%r15,%rdi,8)
movsd  (%rbx,%rbp,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm4
movsd  %xmm4,0x10(%r15,%rdi,8)
add    $0x3,%esi
movslq %esi,%rsi
mulsd  (%rbx,%rsi,8),%xmm5
addsd  %xmm5,%xmm0
add    $0x4,%r8
cmp    %r8,%r14
jne    3420 <NURBSsurfaceRegularEval+0x22c0>
jmp    33e0 <NURBSsurfaceRegularEval+0x2280>
cs nopw 0x0(%rax,%rax,1)
nop
lea    0x1(%rdi),%r11
lea    0x2(%rdi),%rax
xorpd  %xmm0,%xmm0
jmp    334d <NURBSsurfaceRegularEval+0x21ed>
mov    0x98(%rsp),%rax
test   %eax,%eax
jle    58bf <NURBSsurfaceRegularEval+0x475f>
mov    0xf8(%rsp),%rcx
imul   %eax,%ecx
movslq %ecx,%r8
mov    %eax,%r9d
mov    0x10(%rsp),%r13d
mov    0x70(%rsp),%rax
imul   0xe0(%rsp),%eax
shl    $0x2,%eax
mov    %rax,0x70(%rsp)
shl    $0x2,%r13
xor    %r14d,%r14d
mov    0x40(%rsp),%rdi
mov    0x60(%rsp),%rcx
jmp    354d <NURBSsurfaceRegularEval+0x23ed>
nop
movsd  (%r15,%rbp,8),%xmm1
movsd  0x8(%r15,%rbp,8),%xmm0
lea    0x1(%rbp),%r10
lea    0x2(%rbp),%r11
xorpd  %xmm2,%xmm2
divsd  %xmm2,%xmm1
movsd  %xmm1,(%r15,%rbp,8)
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r10,8)
movsd  (%r15,%r11,8),%xmm0
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r11,8)
add    $0x1,%r14
add    %rcx,%rdi
cmp    %r9,%r14
je     58bf <NURBSsurfaceRegularEval+0x475f>
lea    (%r14,%r8,1),%rax
lea    (%rax,%rax,2),%rbp
cmpl   $0x0,0x10(%rsp)
jle    3500 <NURBSsurfaceRegularEval+0x23a0>
mov    0x18(%rsp),%rax
mov    (%rax,%r14,4),%eax
lea    0x1(%rbp),%r10
lea    0x2(%rbp),%r11
movsd  (%r15,%rbp,8),%xmm1
movsd  0x8(%r15,%rbp,8),%xmm0
movsd  0x10(%r15,%rbp,8),%xmm3
mov    0x70(%rsp),%rcx
lea    (%rcx,%rax,4),%ecx
xorpd  %xmm2,%xmm2
xor    %eax,%eax
nop
lea    (%rcx,%rax,1),%rsi
movslq %esi,%rsi
movsd  (%rdi,%rax,2),%xmm4
movsd  (%rbx,%rsi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm1
movsd  %xmm1,(%r15,%rbp,8)
lea    0x1(%rsi),%edx
movslq %edx,%rdx
movsd  (%rbx,%rdx,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
lea    0x2(%rsi),%edx
movslq %edx,%rdx
movsd  %xmm0,0x8(%r15,%rbp,8)
movsd  (%rbx,%rdx,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
movsd  %xmm3,0x10(%r15,%rbp,8)
add    $0x3,%esi
movslq %esi,%rdx
mulsd  (%rbx,%rdx,8),%xmm4
addsd  %xmm4,%xmm2
add    $0x4,%rax
cmp    %rax,%r13
jne    3590 <NURBSsurfaceRegularEval+0x2430>
mov    0x60(%rsp),%rcx
jmp    3519 <NURBSsurfaceRegularEval+0x23b9>
movupd (%r15),%xmm0
movsd  0x10(%r15),%xmm1
xorpd  %xmm2,%xmm2
mov    0xc(%rsp),%eax
mov    0x20(%rsp),%rbp
mov    0x90(%rsp),%rsi
divsd  %xmm2,%xmm1
unpcklpd %xmm2,%xmm2
divpd  %xmm2,%xmm0
movupd %xmm0,(%r15)
movsd  %xmm1,0x10(%r15)
xor    %edi,%edi
movslq 0xc8(%rsp),%rdx
mov    %rdx,0x50(%rsp)
mov    0xf8(%rsp),%edx
mov    %rdx,0x88(%rsp)
mov    %ebp,%edx
mov    %rdx,0x58(%rsp)
mov    %eax,%eax
mov    %rax,0x60(%rsp)
cmpl   $0x3,0xc0(%rsp)
03
jl     38da <NURBSsurfaceRegularEval+0x277a>
mov    0x18(%rsp),%rax
mov    (%rax),%edx
mov    0xd8(%rsp),%rax
lea    0x0(,%rax,4),%edi
mov    0x10(%rsp),%rax
lea    0x0(,%rax,4),%eax
sub    %eax,%edi
mov    %edi,0xd0(%rsp)
mov    $0x1,%eax
sub    %ebp,%eax
mov    %rax,0x108(%rsp)
lea    0x0(,%r13,4),%r14
xor    %edi,%edi
mov    $0x1,%r11d
jmp    372e <NURBSsurfaceRegularEval+0x25ce>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
lea    0x1(%rbp),%r9
lea    0x2(%rbp),%r8
xorpd  %xmm0,%xmm0
mov    %edx,%edi
mov    0x78(%rsp),%ecx
sub    %ecx,%edi
movsd  (%r15,%rbp,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rbp,8)
movsd  (%r15,%r9,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r9,8)
movsd  (%r15,%r8,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r8,8)
add    $0x1,%r11
cmp    0x88(%rsp),%r11
mov    0x90(%rsp),%rsi
je     38da <NURBSsurfaceRegularEval+0x277a>
mov    %rdi,0x100(%rsp)
mov    %r11,0xb8(%rsp)
mov    %r11,%rbp
imul   0x50(%rsp),%rbp
imul   %rsi,%r11
mov    %r11,0x28(%rsp)
movsd  0x38(%rsp),%xmm0
addsd  0xf0(%rsp),%xmm0
movsd  %xmm0,0x38(%rsp)
mov    0xb0(%rsp),%rdi
mov    0x80(%rsp),%rsi
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    0xb8(%rsp),%rcx
mov    0x18(%rsp),%rdx
mov    %eax,(%rdx,%rcx,4)
mov    0x40(%rsp),%rcx
mov    0x28(%rsp),%rdx
lea    (%rcx,%rdx,8),%rcx
mov    %eax,%edi
movsd  0x38(%rsp),%xmm0
mov    0x78(%rsp),%esi
mov    0x80(%rsp),%rdx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0xb8(%rsp),%r11
mov    0x18(%rsp),%rcx
mov    (%rcx,%r11,4),%edx
mov    0x100(%rsp),%rax
mov    %eax,-0x4(%rcx,%r11,4)
cmpl   $0x0,0x20(%rsp)
jle    36d0 <NURBSsurfaceRegularEval+0x2570>
lea    0x1(%rbp),%r9
lea    0x2(%rbp),%r8
mov    0x108(%rsp),%rax
lea    (%rax,%rdx,1),%esi
imul   0xc(%rsp),%esi
add    0xd0(%rsp),%esi
xorpd  %xmm0,%xmm0
xor    %edi,%edi
mov    0x40(%rsp),%r10
jmp    3834 <NURBSsurfaceRegularEval+0x26d4>
nopw   0x0(%rax,%rax,1)
add    $0x1,%rdi
add    0x60(%rsp),%rsi
cmp    0x58(%rsp),%rdi
je     36dc <NURBSsurfaceRegularEval+0x257c>
cmpl   $0x0,0x10(%rsp)
jle    3820 <NURBSsurfaceRegularEval+0x26c0>
mov    0x28(%rsp),%rax
add    %rdi,%rax
movsd  (%r10,%rax,8),%xmm1
movsd  (%r15,%rbp,8),%xmm2
movsd  0x8(%r15,%rbp,8),%xmm3
movsd  0x10(%r15,%rbp,8),%xmm4
xor    %eax,%eax
nop
lea    (%rsi,%rax,1),%ecx
add    $0x4,%ecx
movsd  (%r12,%rax,2),%xmm5
movslq %ecx,%rcx
mulsd  %xmm1,%xmm5
movsd  (%rbx,%rcx,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm2
movsd  %xmm2,(%r15,%rbp,8)
lea    0x5(%rsi,%rax,1),%ecx
movslq %ecx,%rcx
movsd  (%rbx,%rcx,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm3
lea    0x6(%rsi,%rax,1),%ecx
movslq %ecx,%rcx
movsd  %xmm3,0x8(%r15,%rbp,8)
movsd  (%rbx,%rcx,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm4
movsd  %xmm4,0x10(%r15,%rbp,8)
lea    0x7(%rsi,%rax,1),%ecx
movslq %ecx,%rcx
mulsd  (%rbx,%rcx,8),%xmm5
addsd  %xmm5,%xmm0
add    $0x4,%rax
cmp    %rax,%r14
jne    3860 <NURBSsurfaceRegularEval+0x2700>
jmp    3820 <NURBSsurfaceRegularEval+0x26c0>
mov    0xf8(%rsp),%rcx
imul   0xc8(%rsp),%ecx
mov    0x18(%rsp),%rax
mov    0x110(%rsp),%rdx
mov    %edi,-0x8(%rax,%rdx,4)
mov    0x10(%rsp),%rax
movslq %ecx,%rcx
test   %eax,%eax
jle    39e9 <NURBSsurfaceRegularEval+0x2889>
lea    0x1(%rcx),%r9
mov    %rax,%rdi
lea    0x2(%rcx),%rax
movsd  (%r15,%rcx,8),%xmm0
movsd  0x8(%r15,%rcx,8),%xmm2
movsd  0x10(%r15,%rcx,8),%xmm3
mov    0x70(%rsp),%rdx
imul   0xe0(%rsp),%edx
mov    0xd8(%rsp),%r8
lea    0x0(,%r8,4),%esi
lea    (%rsi,%rdx,4),%edx
lea    0x0(,%rdi,4),%esi
sub    %esi,%edx
lea    0x0(,%r13,4),%rsi
xorpd  %xmm1,%xmm1
xor    %edi,%edi
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
lea    (%rdx,%rdi,1),%ebp
add    $0x4,%ebp
movslq %ebp,%rbp
movsd  (%r12,%rdi,2),%xmm4
movsd  (%rbx,%rbp,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,(%r15,%rcx,8)
lea    0x5(%rdx,%rdi,1),%ebp
movslq %ebp,%rbp
movsd  (%rbx,%rbp,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm2
lea    0x6(%rdx,%rdi,1),%ebp
movslq %ebp,%rbp
movsd  %xmm2,(%r15,%r9,8)
movsd  (%rbx,%rbp,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
movsd  %xmm3,(%r15,%rax,8)
lea    0x7(%rdx,%rdi,1),%ebp
movslq %ebp,%rbp
mulsd  (%rbx,%rbp,8),%xmm4
addsd  %xmm4,%xmm1
add    $0x4,%rdi
cmp    %rdi,%rsi
jne    3970 <NURBSsurfaceRegularEval+0x2810>
mov    0x98(%rsp),%rdx
jmp    3a0e <NURBSsurfaceRegularEval+0x28ae>
movsd  (%r15,%rcx,8),%xmm0
lea    0x1(%rcx),%eax
movslq %eax,%r9
lea    0x2(%rcx),%eax
cltq
xorpd  %xmm1,%xmm1
mov    0x98(%rsp),%rdx
mov    0xd8(%rsp),%r8
divsd  %xmm1,%xmm0
movsd  %xmm0,(%r15,%rcx,8)
movsd  (%r15,%r9,8),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,(%r15,%r9,8)
movsd  (%r15,%rax,8),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,(%r15,%rax,8)
cmp    $0x2,%edx
jl     58bf <NURBSsurfaceRegularEval+0x475f>
mov    %rcx,0x28(%rsp)
mov    %edx,%eax
mov    %rax,0xb0(%rsp)
mov    0x10(%rsp),%rax
lea    0x0(,%rax,4),%ecx
shl    $0x2,%r13
mov    0xe0(%rsp),%rax
imul   0x70(%rsp),%eax
shl    $0x2,%eax
sub    %ecx,%eax
mov    %rax,0xe0(%rsp)
neg    %ecx
mov    %rcx,0x78(%rsp)
mov    $0x1,%edx
jmp    3aef <NURBSsurfaceRegularEval+0x298f>
nopl   0x0(%rax,%rax,1)
movsd  (%r15,%r9,8),%xmm1
movsd  0x8(%r15,%r9,8),%xmm0
lea    0x1(%r9),%rcx
lea    0x2(%r9),%rax
xorpd  %xmm2,%xmm2
mov    0xd8(%rsp),%r8
mov    0x80(%rsp),%rdx
divsd  %xmm2,%xmm1
movsd  %xmm1,(%r15,%r9,8)
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%rcx,8)
movsd  (%r15,%rax,8),%xmm0
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%rax,8)
add    $0x1,%rdx
cmp    0xb0(%rsp),%rdx
je     58bf <NURBSsurfaceRegularEval+0x475f>
mov    %rdx,0x80(%rsp)
movsd  0x30(%rsp),%xmm0
addsd  0xe8(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
mov    0x70(%rsp),%rdi
mov    0xa0(%rsp),%rbp
mov    %rbp,%rsi
mov    %r8d,%edx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %eax,%r14d
mov    %eax,%edi
movsd  0x30(%rsp),%xmm0
mov    0x48(%rsp),%esi
mov    %rbp,%rdx
mov    %r12,%rcx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x80(%rsp),%rax
lea    (%rax,%rax,2),%r9
mov    %r9d,%eax
cmpl   $0x0,0x10(%rsp)
mov    %r14,0xd8(%rsp)
lea    0x1(%r9),%ecx
lea    0x2(%r9),%edx
jle    3c10 <NURBSsurfaceRegularEval+0x2ab0>
mov    0x78(%rsp),%rsi
lea    (%rsi,%r14,4),%esi
xorpd  %xmm0,%xmm0
xor    %edi,%edi
nopl   0x0(%rax,%rax,1)
lea    (%rsi,%rdi,1),%ebp
add    $0x4,%ebp
movslq %ebp,%rbp
movsd  (%r12,%rdi,2),%xmm1
movsd  (%rbx,%rbp,8),%xmm2
mulsd  %xmm1,%xmm2
addsd  (%r15,%rax,8),%xmm2
lea    0x5(%rsi,%rdi,1),%ebp
movslq %ebp,%rbp
movsd  %xmm2,(%r15,%rax,8)
movsd  (%rbx,%rbp,8),%xmm2
mulsd  %xmm1,%xmm2
addsd  (%r15,%rcx,8),%xmm2
movsd  %xmm2,(%r15,%rcx,8)
lea    0x6(%rsi,%rdi,1),%ebp
movslq %ebp,%rbp
movsd  (%rbx,%rbp,8),%xmm2
mulsd  %xmm1,%xmm2
addsd  (%r15,%rdx,8),%xmm2
movsd  %xmm2,(%r15,%rdx,8)
lea    0x7(%rsi,%rdi,1),%ebp
movslq %ebp,%rbp
mulsd  (%rbx,%rbp,8),%xmm1
addsd  %xmm1,%xmm0
add    $0x4,%rdi
cmp    %rdi,%r13
jne    3b90 <NURBSsurfaceRegularEval+0x2a30>
jmp    3c14 <NURBSsurfaceRegularEval+0x2ab4>
nopw   0x0(%rax,%rax,1)
xorpd  %xmm0,%xmm0
mov    0xc(%rsp),%edi
movsd  (%r15,%rax,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rax,8)
movsd  (%r15,%rcx,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rcx,8)
movsd  (%r15,%rdx,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rdx,8)
cmpl   $0x3,0xc0(%rsp)
03
mov    0x10(%rsp),%rax
jl     3df0 <NURBSsurfaceRegularEval+0x2c90>
mov    0xd8(%rsp),%rcx
mov    0x78(%rsp),%rdx
lea    (%rdx,%rcx,4),%ecx
mov    %ecx,0x38(%rsp)
mov    $0x1,%r8d
jmp    3ccb <NURBSsurfaceRegularEval+0x2b6b>
nopw   0x0(%rax,%rax,1)
mov    0x10(%rsp),%rax
movsd  (%r15,%rsi,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rsi,8)
movsd  (%r15,%r11,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r11,8)
movsd  (%r15,%r10,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r10,8)
add    $0x1,%r8
cmp    0x88(%rsp),%r8
mov    0xc(%rsp),%edi
je     3df0 <NURBSsurfaceRegularEval+0x2c90>
mov    %r8,%rsi
imul   0x50(%rsp),%rsi
add    %r9,%rsi
cmpl   $0x0,0x20(%rsp)
jle    3dd0 <NURBSsurfaceRegularEval+0x2c70>
mov    %r8,%rdx
imul   0x90(%rsp),%rdx
lea    0x1(%rsi),%r11
lea    0x2(%rsi),%r10
mov    0x18(%rsp),%rax
mov    (%rax,%r8,4),%eax
imul   %edi,%eax
add    0x38(%rsp),%eax
xorpd  %xmm0,%xmm0
xor    %edi,%edi
jmp    3d24 <NURBSsurfaceRegularEval+0x2bc4>
xchg   %ax,%ax
add    $0x1,%rdi
add    0x60(%rsp),%rax
cmp    0x58(%rsp),%rdi
je     3c80 <NURBSsurfaceRegularEval+0x2b20>
cmpl   $0x0,0x10(%rsp)
jle    3d10 <NURBSsurfaceRegularEval+0x2bb0>
lea    (%rdi,%rdx,1),%rbp
mov    0x40(%rsp),%rcx
movsd  (%rcx,%rbp,8),%xmm1
movsd  (%r15,%rsi,8),%xmm2
movsd  0x8(%r15,%rsi,8),%xmm3
movsd  0x10(%r15,%rsi,8),%xmm4
xor    %ebp,%ebp
nop
lea    (%rax,%rbp,1),%r14d
add    $0x4,%r14d
movsd  (%r12,%rbp,2),%xmm5
movslq %r14d,%rcx
mulsd  %xmm1,%xmm5
movsd  (%rbx,%rcx,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm2
movsd  %xmm2,(%r15,%rsi,8)
lea    0x5(%rax,%rbp,1),%ecx
movslq %ecx,%rcx
movsd  (%rbx,%rcx,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm3
lea    0x6(%rax,%rbp,1),%ecx
movslq %ecx,%rcx
movsd  %xmm3,0x8(%r15,%rsi,8)
movsd  (%rbx,%rcx,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm4
movsd  %xmm4,0x10(%r15,%rsi,8)
lea    0x7(%rax,%rbp,1),%ecx
movslq %ecx,%rcx
mulsd  (%rbx,%rcx,8),%xmm5
addsd  %xmm5,%xmm0
add    $0x4,%rbp
cmp    %rbp,%r13
jne    3d50 <NURBSsurfaceRegularEval+0x2bf0>
jmp    3d10 <NURBSsurfaceRegularEval+0x2bb0>
nopl   0x0(%rax)
lea    0x1(%rsi),%r11
lea    0x2(%rsi),%r10
xorpd  %xmm0,%xmm0
jmp    3c85 <NURBSsurfaceRegularEval+0x2b25>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
add    0x28(%rsp),%r9
test   %eax,%eax
jle    3a90 <NURBSsurfaceRegularEval+0x2930>
lea    0x1(%r9),%rcx
lea    0x2(%r9),%rax
movsd  (%r15,%r9,8),%xmm1
movsd  0x8(%r15,%r9,8),%xmm0
movsd  0x10(%r15,%r9,8),%xmm3
mov    0xe0(%rsp),%rdx
mov    0xd8(%rsp),%r8
lea    (%rdx,%r8,4),%edx
xorpd  %xmm2,%xmm2
xor    %esi,%esi
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
lea    (%rdx,%rsi,1),%edi
add    $0x4,%edi
movslq %edi,%rdi
movsd  (%r12,%rsi,2),%xmm4
movsd  (%rbx,%rdi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm1
movsd  %xmm1,(%r15,%r9,8)
lea    0x5(%rdx,%rsi,1),%edi
movslq %edi,%rdi
movsd  (%rbx,%rdi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
lea    0x6(%rdx,%rsi,1),%edi
movslq %edi,%rdi
movsd  %xmm0,0x8(%r15,%r9,8)
movsd  (%rbx,%rdi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
movsd  %xmm3,0x10(%r15,%r9,8)
lea    0x7(%rdx,%rsi,1),%edi
movslq %edi,%rdi
mulsd  (%rbx,%rdi,8),%xmm4
addsd  %xmm4,%xmm2
add    $0x4,%rsi
cmp    %rsi,%r13
jne    3e40 <NURBSsurfaceRegularEval+0x2ce0>
jmp    3ab1 <NURBSsurfaceRegularEval+0x2951>
mov    0x90(%rsp),%r13
xorpd  %xmm0,%xmm0
mov    0x40(%rsp),%rsi
mov    0xc(%rsp),%r10d
mov    0x10(%rsp),%rax
mov    0x98(%rsp),%r11
mov    0x48(%rsp),%edi
mov    %r13,%rbp
sub    %edi,%ebp
movupd (%r15),%xmm1
movapd %xmm0,%xmm2
unpcklpd %xmm0,%xmm2
divpd  %xmm2,%xmm1
movupd %xmm1,(%r15)
movsd  0x10(%r15),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,0x10(%r15)
cmp    $0x2,%r11d
jl     415a <NURBSsurfaceRegularEval+0x2ffa>
mov    %r11d,%ecx
mov    %rcx,0x88(%rsp)
mov    0x18(%rsp),%rcx
mov    (%rcx),%edx
mov    0x20(%rsp),%r11d
mov    %eax,%r13d
imul   0x70(%rsp),%r14d
shl    $0x2,%r14d
lea    0x0(,%rax,4),%eax
sub    %eax,%r14d
mov    %r14,0xe0(%rsp)
mov    %r10d,%eax
mov    %rax,0x58(%rsp)
mov    0x60(%rsp),%rax
lea    (%rsi,%rax,1),%r14
shl    $0x2,%r13
mov    $0x1,%r10d
mov    %r11,0x100(%rsp)
jmp    3fcb <NURBSsurfaceRegularEval+0x2e6b>
nopl   (%rax)
lea    0x1(%r9),%esi
add    $0x2,%r9d
xorpd  %xmm0,%xmm0
mov    0x48(%rsp),%edi
mov    %edx,%ebp
sub    %edi,%ebp
movsd  (%r15,%rcx,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rcx,8)
movsd  (%r15,%rsi,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rsi,8)
movsd  (%r15,%r9,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r9,8)
add    $0x1,%r10
add    0x60(%rsp),%r14
cmp    0x88(%rsp),%r10
je     415a <NURBSsurfaceRegularEval+0x2ffa>
mov    %rbp,0x90(%rsp)
mov    %r10,%rax
imul   0xb8(%rsp),%rax
mov    %rax,0x50(%rsp)
movsd  0x30(%rsp),%xmm0
addsd  0xe8(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
mov    0x70(%rsp),%rdi
mov    0xa0(%rsp),%rsi
mov    $0x1,%al
mov    %r10,%rbp
call   1040 <FindSpanIncSeq@plt>
mov    0x18(%rsp),%rcx
mov    %eax,(%rcx,%rbp,4)
mov    0x40(%rsp),%rcx
mov    0x50(%rsp),%rdx
lea    (%rcx,%rdx,8),%rcx
mov    %eax,%edi
movsd  0x30(%rsp),%xmm0
mov    0x48(%rsp),%esi
mov    0xa0(%rsp),%rdx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x18(%rsp),%rcx
mov    (%rcx,%rbp,4),%edx
lea    0x0(,%rbp,2),%r9
add    %rbp,%r9
mov    %rbp,%r10
mov    0x90(%rsp),%rax
mov    %eax,-0x4(%rcx,%rbp,4)
mov    %r9d,%ecx
cmpl   $0x0,0x20(%rsp)
jle    3f70 <NURBSsurfaceRegularEval+0x2e10>
lea    0x1(%r9),%esi
add    $0x2,%r9d
mov    0xe0(%rsp),%rax
lea    (%rax,%rdx,4),%edi
xorpd  %xmm0,%xmm0
xor    %r8d,%r8d
mov    0x100(%rsp),%r11
jmp    40c2 <NURBSsurfaceRegularEval+0x2f62>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
add    $0x1,%r8
add    0x58(%rsp),%rdi
cmp    %r11,%r8
je     3f7c <NURBSsurfaceRegularEval+0x2e1c>
cmpl   $0x0,0x10(%rsp)
jle    40b0 <NURBSsurfaceRegularEval+0x2f50>
movsd  (%r12,%r8,8),%xmm1
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
lea    (%rdi,%rbp,1),%eax
add    $0x4,%eax
movsd  (%r14,%rbp,2),%xmm2
cltq
mulsd  %xmm1,%xmm2
movsd  (%rbx,%rax,8),%xmm3
mulsd  %xmm2,%xmm3
addsd  (%r15,%rcx,8),%xmm3
lea    0x5(%rdi,%rbp,1),%eax
cltq
movsd  %xmm3,(%r15,%rcx,8)
movsd  (%rbx,%rax,8),%xmm3
mulsd  %xmm2,%xmm3
addsd  (%r15,%rsi,8),%xmm3
movsd  %xmm3,(%r15,%rsi,8)
lea    0x6(%rdi,%rbp,1),%eax
cltq
movsd  (%rbx,%rax,8),%xmm3
mulsd  %xmm2,%xmm3
addsd  (%r15,%r9,8),%xmm3
movsd  %xmm3,(%r15,%r9,8)
lea    0x7(%rdi,%rbp,1),%eax
cltq
mulsd  (%rbx,%rax,8),%xmm2
addsd  %xmm2,%xmm0
add    $0x4,%rbp
cmp    %rbp,%r13
jne    40e0 <NURBSsurfaceRegularEval+0x2f80>
jmp    40b0 <NURBSsurfaceRegularEval+0x2f50>
movslq 0xd0(%rsp),%rax
mov    0x18(%rsp),%rcx
mov    %ebp,(%rcx,%rax,4)
mov    0xc0(%rsp),%rax
cmp    $0x2,%eax
jl     58bf <NURBSsurfaceRegularEval+0x475f>
mov    %eax,%eax
mov    %rax,0x48(%rsp)
mov    0x98(%rsp),%eax
mov    %rax,0x88(%rsp)
mov    0x20(%rsp),%rax
mov    %eax,%ecx
mov    %rcx,0x58(%rsp)
mov    0x10(%rsp),%r14d
mov    $0x1,%ecx
sub    %eax,%ecx
mov    %rcx,0xa0(%rsp)
mov    0xc(%rsp),%r13d
shl    $0x2,%r14
mov    $0x1,%eax
mov    %rax,0x70(%rsp)
movsd  0x38(%rsp),%xmm0
jmp    41ef <NURBSsurfaceRegularEval+0x308f>
nopl   0x0(%rax)
mov    0x70(%rsp),%rax
add    $0x1,%rax
mov    %rax,0x70(%rsp)
cmp    0x48(%rsp),%rax
movsd  0x38(%rsp),%xmm0
je     58bf <NURBSsurfaceRegularEval+0x475f>
addsd  0xf0(%rsp),%xmm0
movsd  %xmm0,0x38(%rsp)
mov    0xb0(%rsp),%rdi
mov    0x80(%rsp),%rbp
mov    %rbp,%rsi
mov    0x28(%rsp),%rdx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %rax,0x28(%rsp)
mov    %eax,%edi
movsd  0x38(%rsp),%xmm0
mov    0x78(%rsp),%esi
mov    %rbp,%rdx
mov    %r12,%rcx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
cmpl   $0x0,0x98(%rsp)
mov    0x60(%rsp),%rcx
jle    41d0 <NURBSsurfaceRegularEval+0x3070>
mov    0x70(%rsp),%rax
imul   0xd8(%rsp),%rax
mov    %rax,0x50(%rsp)
mov    0x28(%rsp),%rax
mov    0xa0(%rsp),%rdx
add    %edx,%eax
imul   0xc(%rsp),%eax
mov    %rax,0x30(%rsp)
mov    0x40(%rsp),%rdx
xor    %r10d,%r10d
jmp    42f2 <NURBSsurfaceRegularEval+0x3192>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    0x60(%rsp),%rcx
mov    0x90(%rsp),%rax
movsd  (%r15,%rdi,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rdi,8)
movsd  (%r15,%r11,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r11,8)
movsd  (%r15,%rax,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rax,8)
add    $0x1,%r10
add    %rcx,%rdx
cmp    0x88(%rsp),%r10
je     41d0 <NURBSsurfaceRegularEval+0x3070>
mov    0x50(%rsp),%rax
add    %r10,%rax
lea    (%rax,%rax,2),%rdi
cmpl   $0x0,0x20(%rsp)
jle    4400 <NURBSsurfaceRegularEval+0x32a0>
mov    0x18(%rsp),%rax
mov    (%rax,%r10,4),%eax
lea    0x1(%rdi),%r11
lea    0x2(%rdi),%rcx
mov    %rcx,0x90(%rsp)
mov    0x30(%rsp),%rcx
lea    (%rcx,%rax,4),%ecx
xorpd  %xmm0,%xmm0
xor    %eax,%eax
jmp    4352 <NURBSsurfaceRegularEval+0x31f2>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
add    $0x1,%rax
add    %r13,%rcx
cmp    0x58(%rsp),%rax
je     42a0 <NURBSsurfaceRegularEval+0x3140>
cmpl   $0x0,0x10(%rsp)
jle    4340 <NURBSsurfaceRegularEval+0x31e0>
movsd  (%r12,%rax,8),%xmm1
movsd  (%r15,%rdi,8),%xmm2
movsd  0x8(%r15,%rdi,8),%xmm3
movsd  0x10(%r15,%rdi,8),%xmm4
xor    %r8d,%r8d
cs nopw 0x0(%rax,%rax,1)
lea    (%rcx,%r8,1),%r9
movsd  (%rdx,%r8,2),%xmm5
movslq %r9d,%rsi
mulsd  %xmm1,%xmm5
movsd  (%rbx,%rsi,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm2
movsd  %xmm2,(%r15,%rdi,8)
lea    0x1(%rsi),%ebp
movslq %ebp,%rbp
movsd  (%rbx,%rbp,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm3
lea    0x2(%rsi),%ebp
movslq %ebp,%rbp
movsd  %xmm3,0x8(%r15,%rdi,8)
movsd  (%rbx,%rbp,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm4
movsd  %xmm4,0x10(%r15,%rdi,8)
add    $0x3,%esi
movslq %esi,%rsi
mulsd  (%rbx,%rsi,8),%xmm5
addsd  %xmm5,%xmm0
add    $0x4,%r8
cmp    %r8,%r14
jne    4380 <NURBSsurfaceRegularEval+0x3220>
jmp    4340 <NURBSsurfaceRegularEval+0x31e0>
cs nopw 0x0(%rax,%rax,1)
nop
lea    0x1(%rdi),%r11
lea    0x2(%rdi),%rax
xorpd  %xmm0,%xmm0
jmp    42ad <NURBSsurfaceRegularEval+0x314d>
xorpd  %xmm0,%xmm0
mov    0xc(%rsp),%r10d
mov    0x10(%rsp),%rax
mov    0xc8(%rsp),%r11
mov    0x28(%rsp),%r14
movupd (%r15),%xmm1
movapd %xmm0,%xmm2
unpcklpd %xmm0,%xmm2
divpd  %xmm2,%xmm1
movupd %xmm1,(%r15)
movsd  0x10(%r15),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,0x10(%r15)
mov    0xc0(%rsp),%rcx
cmp    $0x2,%ecx
jl     46fa <NURBSsurfaceRegularEval+0x359a>
movslq %r11d,%rdx
mov    %rdx,0x88(%rsp)
mov    %ecx,%ecx
mov    %rcx,0xb8(%rsp)
mov    0x18(%rsp),%rcx
mov    (%rcx),%edx
mov    0x20(%rsp),%rcx
mov    %ecx,%esi
mov    %rsi,0xd8(%rsp)
mov    %eax,%ebp
lea    0x0(,%r14,4),%esi
lea    0x0(,%rax,4),%eax
sub    %eax,%esi
mov    %esi,0xe0(%rsp)
mov    $0x1,%eax
sub    %ecx,%eax
mov    %rax,0x100(%rsp)
mov    %r10d,%eax
mov    %rax,0xd0(%rsp)
shl    $0x2,%rbp
mov    $0x1,%r13d
mov    0x90(%rsp),%rax
mov    0x50(%rsp),%esi
jmp    4550 <NURBSsurfaceRegularEval+0x33f0>
nopw   0x0(%rax,%rax,1)
lea    0x1(%r14),%r9
lea    0x2(%r14),%r8
xorpd  %xmm0,%xmm0
mov    0xc(%rsp),%r10d
mov    0x78(%rsp),%eax
mov    0xc8(%rsp),%r11
mov    %edx,%esi
sub    %eax,%esi
movsd  (%r15,%r14,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r14,8)
movsd  (%r15,%r9,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r9,8)
movsd  (%r15,%r8,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r8,8)
mov    0x60(%rsp),%r13
add    $0x1,%r13
cmp    0xb8(%rsp),%r13
mov    0x90(%rsp),%rax
je     46fe <NURBSsurfaceRegularEval+0x359e>
mov    %esi,0x50(%rsp)
mov    %r13,0x60(%rsp)
mov    %r13,%r14
imul   0x88(%rsp),%r14
imul   %rax,%r13
movsd  0x38(%rsp),%xmm0
addsd  0xf0(%rsp),%xmm0
movsd  %xmm0,0x38(%rsp)
mov    0xb0(%rsp),%rdi
mov    0x80(%rsp),%rsi
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    0x60(%rsp),%rcx
mov    0x18(%rsp),%rdx
mov    %eax,(%rdx,%rcx,4)
mov    0x40(%rsp),%rcx
mov    %r13,0x58(%rsp)
lea    (%rcx,%r13,8),%rcx
mov    %eax,%edi
movsd  0x38(%rsp),%xmm0
mov    0x78(%rsp),%esi
mov    0x80(%rsp),%rdx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x60(%rsp),%rax
mov    0x18(%rsp),%rsi
mov    (%rsi,%rax,4),%edx
mov    0x50(%rsp),%ecx
mov    %ecx,-0x4(%rsi,%rax,4)
cmpl   $0x0,0x20(%rsp)
jle    44e0 <NURBSsurfaceRegularEval+0x3380>
lea    0x1(%r14),%r9
lea    0x2(%r14),%r8
mov    0x100(%rsp),%rax
lea    (%rax,%rdx,1),%esi
imul   0xc(%rsp),%esi
add    0xe0(%rsp),%esi
xorpd  %xmm0,%xmm0
xor    %edi,%edi
mov    0x40(%rsp),%r10
mov    0xd8(%rsp),%r11
mov    0xd0(%rsp),%r13
jmp    4650 <NURBSsurfaceRegularEval+0x34f0>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
add    $0x1,%rdi
add    %r13,%rsi
cmp    %r11,%rdi
je     44ec <NURBSsurfaceRegularEval+0x338c>
cmpl   $0x0,0x10(%rsp)
jle    4640 <NURBSsurfaceRegularEval+0x34e0>
mov    0x58(%rsp),%rax
add    %rdi,%rax
movsd  (%r10,%rax,8),%xmm1
movsd  (%r15,%r14,8),%xmm2
movsd  0x8(%r15,%r14,8),%xmm3
movsd  0x10(%r15,%r14,8),%xmm4
xor    %eax,%eax
nopl   0x0(%rax,%rax,1)
lea    (%rsi,%rax,1),%ecx
add    $0x4,%ecx
movsd  (%r12,%rax,2),%xmm5
movslq %ecx,%rcx
mulsd  %xmm1,%xmm5
movsd  (%rbx,%rcx,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm2
movsd  %xmm2,(%r15,%r14,8)
lea    0x5(%rsi,%rax,1),%ecx
movslq %ecx,%rcx
movsd  (%rbx,%rcx,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm3
lea    0x6(%rsi,%rax,1),%ecx
movslq %ecx,%rcx
movsd  %xmm3,0x8(%r15,%r14,8)
movsd  (%rbx,%rcx,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm4
movsd  %xmm4,0x10(%r15,%r14,8)
lea    0x7(%rsi,%rax,1),%ecx
movslq %ecx,%rcx
mulsd  (%rbx,%rcx,8),%xmm5
addsd  %xmm5,%xmm0
add    $0x4,%rax
cmp    %rax,%rbp
jne    4680 <NURBSsurfaceRegularEval+0x3520>
jmp    4640 <NURBSsurfaceRegularEval+0x34e0>
mov    0x50(%rsp),%esi
movslq 0xf8(%rsp),%rax
mov    0x18(%rsp),%rcx
mov    %esi,(%rcx,%rax,4)
mov    0x98(%rsp),%rax
cmp    $0x2,%eax
jl     58bf <NURBSsurfaceRegularEval+0x475f>
movslq %r11d,%rcx
mov    %rcx,0x50(%rsp)
mov    %eax,%eax
mov    %rax,0x78(%rsp)
mov    0xc0(%rsp),%eax
mov    %rax,0x88(%rsp)
mov    0x20(%rsp),%eax
mov    %rax,0x58(%rsp)
mov    0x10(%rsp),%rax
mov    %eax,%r13d
lea    0x0(,%rax,4),%eax
neg    %eax
mov    %rax,0xb0(%rsp)
mov    %r10d,%r14d
shl    $0x2,%r13
mov    $0x1,%eax
mov    %rax,0x80(%rsp)
movsd  0xe8(%rsp),%xmm1
jmp    47ab <NURBSsurfaceRegularEval+0x364b>
xchg   %ax,%ax
mov    0x80(%rsp),%rcx
add    $0x1,%rcx
mov    %rcx,%rax
mov    %rcx,0x80(%rsp)
cmp    0x78(%rsp),%rcx
movsd  0xe8(%rsp),%xmm1
je     58bf <NURBSsurfaceRegularEval+0x475f>
movsd  0x30(%rsp),%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x30(%rsp)
mov    0x70(%rsp),%rdi
mov    0xa0(%rsp),%rbp
mov    %rbp,%rsi
mov    0x28(%rsp),%rdx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %rax,0x28(%rsp)
mov    %eax,%edi
movsd  0x30(%rsp),%xmm0
mov    0x48(%rsp),%esi
mov    %rbp,%rdx
mov    %r12,%rcx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x20(%rsp),%rax
cmpl   $0x0,0xc0(%rsp)
jle    4780 <NURBSsurfaceRegularEval+0x3620>
mov    0x80(%rsp),%rcx
lea    (%rcx,%rcx,2),%rcx
mov    %rcx,0x60(%rsp)
mov    0x28(%rsp),%rcx
mov    0xb0(%rsp),%rdx
lea    (%rdx,%rcx,4),%ecx
mov    %ecx,0x38(%rsp)
xor    %r9d,%r9d
jmp    4887 <NURBSsurfaceRegularEval+0x3727>
nop
mov    0x20(%rsp),%rax
movsd  (%r15,%rsi,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rsi,8)
movsd  (%r15,%r11,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r11,8)
movsd  (%r15,%r10,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r10,8)
add    $0x1,%r9
cmp    0x88(%rsp),%r9
je     4780 <NURBSsurfaceRegularEval+0x3620>
mov    %r9,%rsi
imul   0x50(%rsp),%rsi
add    0x60(%rsp),%rsi
test   %eax,%eax
jle    4990 <NURBSsurfaceRegularEval+0x3830>
mov    %r9,%rdx
imul   0x90(%rsp),%rdx
lea    0x1(%rsi),%r11
lea    0x2(%rsi),%r10
mov    0x18(%rsp),%rax
mov    (%rax,%r9,4),%edi
imul   0xc(%rsp),%edi
add    0x38(%rsp),%edi
xorpd  %xmm0,%xmm0
xor    %ecx,%ecx
jmp    48e2 <NURBSsurfaceRegularEval+0x3782>
nopl   0x0(%rax,%rax,1)
add    $0x1,%rcx
add    %r14,%rdi
cmp    0x58(%rsp),%rcx
je     4840 <NURBSsurfaceRegularEval+0x36e0>
cmpl   $0x0,0x10(%rsp)
jle    48d0 <NURBSsurfaceRegularEval+0x3770>
lea    (%rcx,%rdx,1),%rax
mov    0x40(%rsp),%rbp
movsd  0x0(%rbp,%rax,8),%xmm1
movsd  (%r15,%rsi,8),%xmm2
movsd  0x8(%r15,%rsi,8),%xmm3
movsd  0x10(%r15,%rsi,8),%xmm4
xor    %r8d,%r8d
nop
lea    (%rdi,%r8,1),%eax
add    $0x4,%eax
movsd  (%r12,%r8,2),%xmm5
cltq
mulsd  %xmm1,%xmm5
movsd  (%rbx,%rax,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm2
movsd  %xmm2,(%r15,%rsi,8)
lea    0x5(%rdi,%r8,1),%eax
cltq
movsd  (%rbx,%rax,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm3
lea    0x6(%rdi,%r8,1),%eax
cltq
movsd  %xmm3,0x8(%r15,%rsi,8)
movsd  (%rbx,%rax,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm4
movsd  %xmm4,0x10(%r15,%rsi,8)
lea    0x7(%rdi,%r8,1),%eax
cltq
mulsd  (%rbx,%rax,8),%xmm5
addsd  %xmm5,%xmm0
add    $0x4,%r8
cmp    %r8,%r13
jne    4910 <NURBSsurfaceRegularEval+0x37b0>
jmp    48d0 <NURBSsurfaceRegularEval+0x3770>
nopw   0x0(%rax,%rax,1)
lea    0x1(%rsi),%r11
lea    0x2(%rsi),%r10
xorpd  %xmm0,%xmm0
jmp    4845 <NURBSsurfaceRegularEval+0x36e5>
movupd (%r15),%xmm0
movsd  0x10(%r15),%xmm1
xorpd  %xmm2,%xmm2
mov    0x98(%rsp),%rbp
divsd  %xmm2,%xmm1
unpcklpd %xmm2,%xmm2
divpd  %xmm2,%xmm0
movupd %xmm0,(%r15)
movsd  %xmm1,0x10(%r15)
xor    %eax,%eax
cmp    $0x3,%ebp
jl     4c39 <NURBSsurfaceRegularEval+0x3ad9>
mov    0xd0(%rsp),%eax
mov    %rax,0x88(%rsp)
mov    0x18(%rsp),%rax
mov    (%rax),%edx
mov    %r8d,%r11d
mov    0x10(%rsp),%rcx
mov    %ecx,%r13d
mov    0x40(%rsp),%rax
mov    0x60(%rsp),%rsi
lea    (%rax,%rsi,1),%r14
mov    0x28(%rsp),%rax
mov    %eax,%esi
sub    %r8d,%esi
add    $0x1,%esi
imul   0x70(%rsp),%esi
shl    $0x2,%esi
lea    0x0(,%rcx,4),%eax
sub    %eax,%esi
mov    %rsi,0x100(%rsp)
mov    0xc(%rsp),%eax
mov    %rax,0x58(%rsp)
shl    $0x2,%r13
xor    %eax,%eax
mov    $0x1,%ebp
mov    %r11,0xe0(%rsp)
jmp    4aa7 <NURBSsurfaceRegularEval+0x3947>
nopl   (%rax)
mov    0x20(%rsp),%r8
mov    %edx,%eax
mov    0x48(%rsp),%edi
sub    %edi,%eax
movsd  (%r15,%rcx,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rcx,8)
movsd  (%r15,%rsi,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rsi,8)
movsd  (%r15,%r9,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r9,8)
mov    %r10,%rbp
add    $0x1,%rbp
add    0x60(%rsp),%r14
cmp    0x88(%rsp),%rbp
je     4c39 <NURBSsurfaceRegularEval+0x3ad9>
mov    %rax,0x90(%rsp)
mov    %rbp,%rax
imul   0xb8(%rsp),%rax
mov    %rax,0x50(%rsp)
movsd  0x30(%rsp),%xmm0
addsd  0xe8(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
mov    0x70(%rsp),%rdi
mov    0xa0(%rsp),%rsi
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    0x18(%rsp),%rcx
mov    %eax,(%rcx,%rbp,4)
mov    0x40(%rsp),%rcx
mov    0x50(%rsp),%rdx
lea    (%rcx,%rdx,8),%rcx
mov    %eax,%edi
movsd  0x30(%rsp),%xmm0
mov    0x48(%rsp),%esi
mov    0xa0(%rsp),%rdx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x20(%rsp),%r8
mov    0x18(%rsp),%rcx
mov    (%rcx,%rbp,4),%edx
lea    0x0(,%rbp,2),%r9
add    %rbp,%r9
mov    %rbp,%r10
mov    0x90(%rsp),%rax
mov    %eax,-0x4(%rcx,%rbp,4)
mov    %r9d,%ecx
lea    0x1(%r9),%esi
add    $0x2,%r9d
test   %r8d,%r8d
jle    4c30 <NURBSsurfaceRegularEval+0x3ad0>
mov    0x100(%rsp),%rax
lea    (%rax,%rdx,4),%edi
xorpd  %xmm0,%xmm0
xor    %r8d,%r8d
mov    0xe0(%rsp),%r11
jmp    4b92 <NURBSsurfaceRegularEval+0x3a32>
xchg   %ax,%ax
add    $0x1,%r8
add    0x58(%rsp),%rdi
cmp    %r11,%r8
je     4a50 <NURBSsurfaceRegularEval+0x38f0>
cmpl   $0x0,0x10(%rsp)
jle    4b80 <NURBSsurfaceRegularEval+0x3a20>
movsd  (%r12,%r8,8),%xmm1
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
lea    (%rdi,%rbp,1),%eax
add    $0x4,%eax
movsd  (%r14,%rbp,2),%xmm2
cltq
mulsd  %xmm1,%xmm2
movsd  (%rbx,%rax,8),%xmm3
mulsd  %xmm2,%xmm3
addsd  (%r15,%rcx,8),%xmm3
lea    0x5(%rdi,%rbp,1),%eax
cltq
movsd  %xmm3,(%r15,%rcx,8)
movsd  (%rbx,%rax,8),%xmm3
mulsd  %xmm2,%xmm3
addsd  (%r15,%rsi,8),%xmm3
movsd  %xmm3,(%r15,%rsi,8)
lea    0x6(%rdi,%rbp,1),%eax
cltq
movsd  (%rbx,%rax,8),%xmm3
mulsd  %xmm2,%xmm3
addsd  (%r15,%r9,8),%xmm3
movsd  %xmm3,(%r15,%r9,8)
lea    0x7(%rdi,%rbp,1),%eax
cltq
mulsd  (%rbx,%rax,8),%xmm2
addsd  %xmm2,%xmm0
add    $0x4,%rbp
cmp    %rbp,%r13
jne    4bb0 <NURBSsurfaceRegularEval+0x3a50>
jmp    4b80 <NURBSsurfaceRegularEval+0x3a20>
nopw   0x0(%rax,%rax,1)
xorpd  %xmm0,%xmm0
jmp    4a55 <NURBSsurfaceRegularEval+0x38f5>
mov    %rax,%rdx
mov    0x18(%rsp),%rax
mov    0xd8(%rsp),%rcx
mov    %edx,-0x8(%rax,%rcx,4)
mov    0xd0(%rsp),%rax
lea    (%rax,%rax,2),%eax
cltq
test   %r8d,%r8d
jle    53a4 <NURBSsurfaceRegularEval+0x4244>
lea    0x1(%rax),%rdx
lea    0x2(%rax),%r11
mov    %r8d,%esi
movsd  (%r15,%rax,8),%xmm0
movsd  0x8(%r15,%rax,8),%xmm2
movsd  0x10(%r15,%rax,8),%xmm3
mov    0x28(%rsp),%rdi
lea    0x0(,%rdi,4),%edi
lea    0x0(,%r8,4),%ebp
sub    %ebp,%edi
add    $0x8,%edi
imul   0x70(%rsp),%edi
add    $0xfffffffe,%edi
xorpd  %xmm1,%xmm1
xor    %ebp,%ebp
mov    0x40(%rsp),%r9
mov    0xc(%rsp),%r10d
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
lea    -0x2(%rdi),%ecx
movsd  (%r12,%rbp,8),%xmm4
movslq %ecx,%rcx
movsd  (%rbx,%rcx,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,(%r15,%rax,8)
lea    -0x1(%rdi),%ecx
movslq %ecx,%rcx
movsd  (%rbx,%rcx,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm2
movsd  %xmm2,(%r15,%rdx,8)
movslq %edi,%rdi
movsd  (%rbx,%rdi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
movsd  %xmm3,(%r15,%r11,8)
lea    0x1(%rdi),%ecx
movslq %ecx,%rcx
mulsd  (%rbx,%rcx,8),%xmm4
addsd  %xmm4,%xmm1
add    $0x1,%rbp
add    %r10d,%edi
cmp    %rbp,%rsi
jne    4cc0 <NURBSsurfaceRegularEval+0x3b60>
mov    0x20(%rsp),%r8
jmp    53c4 <NURBSsurfaceRegularEval+0x4264>
movupd (%r15),%xmm0
movsd  0x10(%r15),%xmm1
xorpd  %xmm2,%xmm2
mov    0x40(%rsp),%r8
mov    0x90(%rsp),%rsi
mov    0xc8(%rsp),%r9
divsd  %xmm2,%xmm1
unpcklpd %xmm2,%xmm2
divpd  %xmm2,%xmm0
movupd %xmm0,(%r15)
movsd  %xmm1,0x10(%r15)
mov    0xc0(%rsp),%rax
mov    %eax,%ecx
mov    %rcx,0x60(%rsp)
cmp    $0x2,%eax
jl     4f74 <NURBSsurfaceRegularEval+0x3e14>
movslq %r9d,%rax
mov    %rax,0x88(%rsp)
mov    0x20(%rsp),%ebp
mov    0x28(%rsp),%rax
lea    (%r8,%rax,1),%r13
mov    $0x1,%r11d
mov    %rbp,0xb8(%rsp)
jmp    4e0c <NURBSsurfaceRegularEval+0x3cac>
xchg   %ax,%ax
movsd  (%r15,%r14,8),%xmm1
movsd  0x8(%r15,%r14,8),%xmm0
lea    0x1(%r14),%r8
lea    0x2(%r14),%r9
xorpd  %xmm2,%xmm2
mov    0x90(%rsp),%rsi
mov    0x28(%rsp),%rcx
divsd  %xmm2,%xmm1
movsd  %xmm1,(%r15,%r14,8)
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r8,8)
movsd  (%r15,%r9,8),%xmm0
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r9,8)
add    $0x1,%r11
add    %rcx,%r13
cmp    0x60(%rsp),%r11
je     4f79 <NURBSsurfaceRegularEval+0x3e19>
mov    %r10d,0x58(%rsp)
mov    %r11,%rbp
mov    %r11,%r14
imul   0x88(%rsp),%r14
mov    %r11,%rax
imul   %rsi,%rax
mov    %rax,0x50(%rsp)
movsd  0x38(%rsp),%xmm0
addsd  0xf0(%rsp),%xmm0
movsd  %xmm0,0x38(%rsp)
mov    0xb0(%rsp),%rdi
mov    0x80(%rsp),%rsi
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    0x18(%rsp),%rcx
mov    %eax,(%rcx,%rbp,4)
mov    0x40(%rsp),%rcx
mov    0x50(%rsp),%rdx
lea    (%rcx,%rdx,8),%rcx
mov    %eax,%edi
movsd  0x38(%rsp),%xmm0
mov    0x78(%rsp),%esi
mov    0x80(%rsp),%rdx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x20(%rsp),%rdi
mov    0x18(%rsp),%rcx
mov    (%rcx,%rbp,4),%edx
mov    %edx,%r10d
sub    0x78(%rsp),%r10d
mov    %rbp,%r11
mov    0x58(%rsp),%eax
mov    %eax,-0x4(%rcx,%rbp,4)
test   %edi,%edi
jle    4db0 <NURBSsurfaceRegularEval+0x3c50>
lea    0x1(%r14),%r8
lea    0x2(%r14),%r9
movsd  (%r15,%r14,8),%xmm1
movsd  0x8(%r15,%r14,8),%xmm0
movsd  0x10(%r15,%r14,8),%xmm3
mov    0xc(%rsp),%ecx
mov    %ecx,%eax
imul   %r10d,%eax
xorpd  %xmm2,%xmm2
xor    %esi,%esi
mov    0xb8(%rsp),%rbp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
cltq
movsd  0x0(%r13,%rsi,8),%xmm4
movsd  (%rbx,%rax,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm1
movsd  %xmm1,(%r15,%r14,8)
lea    0x1(%rax),%edi
movslq %edi,%rdi
movsd  (%rbx,%rdi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
lea    0x2(%rax),%edi
movslq %edi,%rdi
movsd  %xmm0,0x8(%r15,%r14,8)
movsd  (%rbx,%rdi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
movsd  %xmm3,0x10(%r15,%r14,8)
lea    0x3(%rax),%edi
movslq %edi,%rdi
mulsd  (%rbx,%rdi,8),%xmm4
addsd  %xmm4,%xmm2
add    $0x1,%rsi
add    %ecx,%eax
cmp    %rsi,%rbp
jne    4f00 <NURBSsurfaceRegularEval+0x3da0>
mov    0x20(%rsp),%rdi
jmp    4dc9 <NURBSsurfaceRegularEval+0x3c69>
mov    0x20(%rsp),%rdi
movslq 0xf8(%rsp),%rax
mov    0x18(%rsp),%rcx
mov    %r10d,(%rcx,%rax,4)
cmpl   $0x3,0x98(%rsp)
03
movsd  0xe8(%rsp),%xmm1
jl     5241 <NURBSsurfaceRegularEval+0x40e1>
movslq 0xc8(%rsp),%rax
mov    %rax,0x88(%rsp)
mov    0xd0(%rsp),%eax
mov    %rax,0xb0(%rsp)
mov    %edi,%eax
mov    %rax,0x58(%rsp)
mov    0x10(%rsp),%rax
mov    %eax,%r14d
lea    0x0(,%rax,4),%eax
neg    %eax
mov    %rax,0xf0(%rsp)
mov    0xc(%rsp),%r13d
shl    $0x2,%r14
mov    $0x1,%eax
mov    %rax,0x80(%rsp)
mov    0x48(%rsp),%eax
mov    %rax,0x78(%rsp)
jmp    503e <NURBSsurfaceRegularEval+0x3ede>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    0x80(%rsp),%rcx
add    $0x1,%rcx
mov    %rcx,%rax
mov    %rcx,0x80(%rsp)
cmp    0xb0(%rsp),%rcx
movsd  0xe8(%rsp),%xmm1
je     5241 <NURBSsurfaceRegularEval+0x40e1>
movsd  0x30(%rsp),%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x30(%rsp)
mov    0x70(%rsp),%rdi
mov    0xa0(%rsp),%rbp
mov    %rbp,%rsi
mov    0x78(%rsp),%rdx
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %rax,0x78(%rsp)
mov    %eax,%edi
movsd  0x30(%rsp),%xmm0
mov    0x48(%rsp),%esi
mov    %rbp,%rdx
mov    %r12,%rcx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x20(%rsp),%rdi
cmpl   $0x0,0xc0(%rsp)
jle    5010 <NURBSsurfaceRegularEval+0x3eb0>
mov    0x80(%rsp),%rax
lea    (%rax,%rax,2),%rax
mov    %rax,0x50(%rsp)
mov    0xf0(%rsp),%rax
mov    0x78(%rsp),%rcx
lea    (%rax,%rcx,4),%eax
mov    %eax,0x38(%rsp)
xor    %r9d,%r9d
jmp    5124 <NURBSsurfaceRegularEval+0x3fc4>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    0x20(%rsp),%rdi
movsd  (%r15,%rsi,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rsi,8)
movsd  (%r15,%r11,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r11,8)
movsd  (%r15,%r10,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r10,8)
add    $0x1,%r9
cmp    0x60(%rsp),%r9
je     5010 <NURBSsurfaceRegularEval+0x3eb0>
mov    %r9,%rsi
imul   0x88(%rsp),%rsi
add    0x50(%rsp),%rsi
test   %edi,%edi
jle    5230 <NURBSsurfaceRegularEval+0x40d0>
mov    %r9,%rdx
imul   0x90(%rsp),%rdx
lea    0x1(%rsi),%r11
lea    0x2(%rsi),%r10
mov    0x18(%rsp),%rax
mov    (%rax,%r9,4),%edi
imul   0xc(%rsp),%edi
add    0x38(%rsp),%edi
xorpd  %xmm0,%xmm0
xor    %ecx,%ecx
jmp    5182 <NURBSsurfaceRegularEval+0x4022>
nopl   0x0(%rax,%rax,1)
add    $0x1,%rcx
add    %r13,%rdi
cmp    0x58(%rsp),%rcx
je     50e0 <NURBSsurfaceRegularEval+0x3f80>
cmpl   $0x0,0x10(%rsp)
jle    5170 <NURBSsurfaceRegularEval+0x4010>
lea    (%rcx,%rdx,1),%rax
mov    0x40(%rsp),%rbp
movsd  0x0(%rbp,%rax,8),%xmm1
movsd  (%r15,%rsi,8),%xmm2
movsd  0x8(%r15,%rsi,8),%xmm3
movsd  0x10(%r15,%rsi,8),%xmm4
xor    %r8d,%r8d
nop
lea    (%rdi,%r8,1),%eax
add    $0x4,%eax
movsd  (%r12,%r8,2),%xmm5
cltq
mulsd  %xmm1,%xmm5
movsd  (%rbx,%rax,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm2
movsd  %xmm2,(%r15,%rsi,8)
lea    0x5(%rdi,%r8,1),%eax
cltq
movsd  (%rbx,%rax,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm3
lea    0x6(%rdi,%r8,1),%eax
cltq
movsd  %xmm3,0x8(%r15,%rsi,8)
movsd  (%rbx,%rax,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm4
movsd  %xmm4,0x10(%r15,%rsi,8)
lea    0x7(%rdi,%r8,1),%eax
cltq
mulsd  (%rbx,%rax,8),%xmm5
addsd  %xmm5,%xmm0
add    $0x4,%r8
cmp    %r8,%r14
jne    51b0 <NURBSsurfaceRegularEval+0x4050>
jmp    5170 <NURBSsurfaceRegularEval+0x4010>
nopw   0x0(%rax,%rax,1)
lea    0x1(%rsi),%r11
lea    0x2(%rsi),%r10
xorpd  %xmm0,%xmm0
jmp    50e5 <NURBSsurfaceRegularEval+0x3f85>
cmpl   $0x0,0xc0(%rsp)
jle    58bf <NURBSsurfaceRegularEval+0x475f>
mov    0xd0(%rsp),%rax
lea    (%rax,%rax,2),%eax
movslq 0xc8(%rsp),%rcx
mov    %rcx,0x10(%rsp)
movslq %eax,%r9
mov    %edi,%edx
xor    %r14d,%r14d
mov    0x40(%rsp),%rdi
mov    0x68(%rsp),%r13
mov    0x28(%rsp),%rax
mov    0xc(%rsp),%r8d
jmp    52df <NURBSsurfaceRegularEval+0x417f>
cs nopw 0x0(%rax,%rax,1)
nop
movsd  (%r15,%rsi,8),%xmm1
movsd  0x8(%r15,%rsi,8),%xmm0
lea    0x1(%rsi),%r10
lea    0x2(%rsi),%r11
xorpd  %xmm2,%xmm2
divsd  %xmm2,%xmm1
movsd  %xmm1,(%r15,%rsi,8)
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r10,8)
movsd  (%r15,%r11,8),%xmm0
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r11,8)
add    $0x1,%r14
add    %rax,%rdi
cmp    0x60(%rsp),%r14
je     58c4 <NURBSsurfaceRegularEval+0x4764>
mov    %r14,%rsi
imul   0x10(%rsp),%rsi
add    %r9,%rsi
cmpl   $0x0,0x20(%rsp)
jle    5290 <NURBSsurfaceRegularEval+0x4130>
mov    0x18(%rsp),%rax
mov    (%rax,%r14,4),%eax
lea    0x1(%rsi),%r10
lea    0x2(%rsi),%r11
movsd  (%r15,%rsi,8),%xmm1
movsd  0x8(%r15,%rsi,8),%xmm0
movsd  0x10(%r15,%rsi,8),%xmm3
lea    0x4(,%rax,4),%ecx
imul   0x70(%rsp),%ecx
add    $0xfffffffe,%ecx
xorpd  %xmm2,%xmm2
xor    %eax,%eax
nopl   0x0(%rax)
lea    -0x2(%rcx),%ebp
movsd  (%rdi,%rax,8),%xmm4
movslq %ebp,%rbp
movsd  (%rbx,%rbp,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm1
movsd  %xmm1,(%r15,%rsi,8)
lea    -0x1(%rcx),%ebp
movslq %ebp,%rbp
movsd  (%rbx,%rbp,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,0x8(%r15,%rsi,8)
movslq %ecx,%rcx
movsd  (%rbx,%rcx,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
movsd  %xmm3,0x10(%r15,%rsi,8)
lea    0x1(%rcx),%ebp
movslq %ebp,%rbp
mulsd  (%rbx,%rbp,8),%xmm4
addsd  %xmm4,%xmm2
add    $0x1,%rax
add    %r8d,%ecx
cmp    %rax,%rdx
jne    5330 <NURBSsurfaceRegularEval+0x41d0>
mov    0x28(%rsp),%rax
jmp    52a9 <NURBSsurfaceRegularEval+0x4149>
movsd  (%r15,%rax,8),%xmm0
lea    0x1(%rax),%ecx
movslq %ecx,%rdx
lea    0x2(%rax),%ecx
movslq %ecx,%r11
xorpd  %xmm1,%xmm1
mov    0x40(%rsp),%r9
mov    0xc(%rsp),%r10d
divsd  %xmm1,%xmm0
movsd  %xmm0,(%r15,%rax,8)
movsd  (%r15,%rdx,8),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,(%r15,%rdx,8)
movsd  (%r15,%r11,8),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,(%r15,%r11,8)
mov    0xc0(%rsp),%rax
cmp    $0x2,%eax
jl     58bf <NURBSsurfaceRegularEval+0x475f>
mov    0xd0(%rsp),%rcx
movslq %ecx,%rdx
mov    %rdx,0xa0(%rsp)
mov    %eax,%eax
mov    %rax,0xe8(%rsp)
mov    %r8d,%r13d
mov    %ecx,%eax
mov    %rax,0x88(%rsp)
mov    0x10(%rsp),%r14d
add    0x60(%rsp),%r9
mov    %r9,0xb8(%rsp)
mov    %r10d,%eax
mov    %rax,0x58(%rsp)
shl    $0x2,%r14
lea    0x0(,%r8,4),%eax
mov    $0x8,%ecx
sub    %eax,%ecx
mov    %rcx,0xc0(%rsp)
mov    $0x1,%ecx
mov    0x28(%rsp),%rdx
jmp    54c9 <NURBSsurfaceRegularEval+0x4369>
nopw   0x0(%rax,%rax,1)
movsd  (%r15,%rax,8),%xmm1
movsd  0x8(%r15,%rax,8),%xmm0
lea    0x1(%rax),%r8
lea    0x2(%rax),%r9
xorpd  %xmm2,%xmm2
mov    0x28(%rsp),%rdx
mov    0x48(%rsp),%rcx
divsd  %xmm2,%xmm1
movsd  %xmm1,(%r15,%rax,8)
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r8,8)
movsd  (%r15,%r9,8),%xmm0
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r9,8)
add    $0x1,%rcx
cmp    0xe8(%rsp),%rcx
je     58bf <NURBSsurfaceRegularEval+0x475f>
mov    %rcx,0x48(%rsp)
movsd  0x38(%rsp),%xmm0
addsd  0xf0(%rsp),%xmm0
movsd  %xmm0,0x38(%rsp)
mov    0xb0(%rsp),%rdi
mov    0x80(%rsp),%rsi
mov    $0x1,%al
call   1040 <FindSpanIncSeq@plt>
mov    %rax,0x28(%rsp)
mov    %eax,%edi
movsd  0x38(%rsp),%xmm0
mov    0x78(%rsp),%ebp
mov    %ebp,%esi
mov    0x80(%rsp),%rdx
mov    %r12,%rcx
mov    0x68(%rsp),%r8
mov    0xa8(%rsp),%r9
mov    $0x1,%al
call   1060 <BasisFuns@plt>
mov    0x28(%rsp),%rax
mov    %eax,%edx
sub    %ebp,%edx
mov    0x48(%rsp),%rax
imul   0xd8(%rsp),%rax
mov    %rax,0x50(%rsp)
lea    (%rax,%rax,2),%rax
cmpl   $0x0,0x20(%rsp)
mov    %rdx,0x30(%rsp)
jle    5600 <NURBSsurfaceRegularEval+0x44a0>
lea    0x1(%rax),%r8
lea    0x2(%rax),%rcx
movsd  (%r15,%rax,8),%xmm1
movsd  0x8(%r15,%rax,8),%xmm0
movsd  0x10(%r15,%rax,8),%xmm3
mov    0xc(%rsp),%ebp
mov    %ebp,%esi
imul   %edx,%esi
xorpd  %xmm2,%xmm2
xor    %edi,%edi
nopw   0x0(%rax,%rax,1)
movslq %esi,%rsi
movsd  (%r12,%rdi,8),%xmm4
movsd  (%rbx,%rsi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm1
movsd  %xmm1,(%r15,%rax,8)
lea    0x1(%rsi),%edx
movslq %edx,%rdx
movsd  (%rbx,%rdx,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
lea    0x2(%rsi),%edx
movslq %edx,%rdx
movsd  %xmm0,0x8(%r15,%rax,8)
movsd  (%rbx,%rdx,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
movsd  %xmm3,0x10(%r15,%rax,8)
lea    0x3(%rsi),%edx
movslq %edx,%rdx
mulsd  (%rbx,%rdx,8),%xmm4
addsd  %xmm4,%xmm2
add    $0x1,%rdi
add    %ebp,%esi
cmp    %rdi,%r13
jne    5590 <NURBSsurfaceRegularEval+0x4430>
jmp    5619 <NURBSsurfaceRegularEval+0x44b9>
nopl   0x0(%rax)
movsd  (%r15,%rax,8),%xmm1
movsd  0x8(%r15,%rax,8),%xmm0
lea    0x1(%rax),%r8
lea    0x2(%rax),%rcx
xorpd  %xmm2,%xmm2
divsd  %xmm2,%xmm1
movsd  %xmm1,(%r15,%rax,8)
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%r8,8)
movsd  (%r15,%rcx,8),%xmm0
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r15,%rcx,8)
cmpl   $0x3,0x98(%rsp)
03
mov    0x60(%rsp),%rcx
jl     57f0 <NURBSsurfaceRegularEval+0x4690>
mov    0x30(%rsp),%rax
imul   0xc(%rsp),%eax
mov    %rax,0x30(%rsp)
mov    $0x1,%r10d
mov    0xb8(%rsp),%rsi
jmp    56c2 <NURBSsurfaceRegularEval+0x4562>
nop
mov    0x60(%rsp),%rcx
mov    0x90(%rsp),%rax
movsd  (%r15,%rdi,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rdi,8)
movsd  (%r15,%r11,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%r11,8)
movsd  (%r15,%rax,8),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%r15,%rax,8)
add    $0x1,%r10
add    %rcx,%rsi
cmp    0x88(%rsp),%r10
je     57f0 <NURBSsurfaceRegularEval+0x4690>
mov    0x50(%rsp),%rax
add    %r10,%rax
lea    (%rax,%rax,2),%rdi
cmpl   $0x0,0x20(%rsp)
jle    57d0 <NURBSsurfaceRegularEval+0x4670>
mov    0x18(%rsp),%rax
mov    (%rax,%r10,4),%eax
lea    0x1(%rdi),%r11
lea    0x2(%rdi),%rcx
mov    %rcx,0x90(%rsp)
mov    0x30(%rsp),%rcx
lea    (%rcx,%rax,4),%ecx
xorpd  %xmm0,%xmm0
xor    %eax,%eax
jmp    5722 <NURBSsurfaceRegularEval+0x45c2>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
add    $0x1,%rax
add    0x58(%rsp),%rcx
cmp    %r13,%rax
je     5670 <NURBSsurfaceRegularEval+0x4510>
cmpl   $0x0,0x10(%rsp)
jle    5710 <NURBSsurfaceRegularEval+0x45b0>
movsd  (%r12,%rax,8),%xmm1
movsd  (%r15,%rdi,8),%xmm2
movsd  0x8(%r15,%rdi,8),%xmm3
movsd  0x10(%r15,%rdi,8),%xmm4
xor    %r8d,%r8d
cs nopw 0x0(%rax,%rax,1)
lea    (%rcx,%r8,1),%r9
movsd  (%rsi,%r8,2),%xmm5
movslq %r9d,%rdx
mulsd  %xmm1,%xmm5
movsd  (%rbx,%rdx,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm2
movsd  %xmm2,(%r15,%rdi,8)
lea    0x1(%rdx),%ebp
movslq %ebp,%rbp
movsd  (%rbx,%rbp,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm3
lea    0x2(%rdx),%ebp
movslq %ebp,%rbp
movsd  %xmm3,0x8(%r15,%rdi,8)
movsd  (%rbx,%rbp,8),%xmm6
mulsd  %xmm5,%xmm6
addsd  %xmm6,%xmm4
movsd  %xmm4,0x10(%r15,%rdi,8)
add    $0x3,%edx
movslq %edx,%rdx
mulsd  (%rbx,%rdx,8),%xmm5
addsd  %xmm5,%xmm0
add    $0x4,%r8
cmp    %r8,%r14
jne    5750 <NURBSsurfaceRegularEval+0x45f0>
jmp    5710 <NURBSsurfaceRegularEval+0x45b0>
cs nopw 0x0(%rax,%rax,1)
nop
lea    0x1(%rdi),%r11
lea    0x2(%rdi),%rax
xorpd  %xmm0,%xmm0
jmp    567d <NURBSsurfaceRegularEval+0x451d>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    0x50(%rsp),%rax
add    0xa0(%rsp),%rax
lea    (%rax,%rax,2),%rax
cmpl   $0x0,0x20(%rsp)
jle    5470 <NURBSsurfaceRegularEval+0x4310>
lea    0x1(%rax),%r8
lea    0x2(%rax),%r9
movsd  (%r15,%rax,8),%xmm1
movsd  0x8(%r15,%rax,8),%xmm0
movsd  0x10(%r15,%rax,8),%xmm3
mov    0x28(%rsp),%rdx
mov    0xc0(%rsp),%rcx
lea    (%rcx,%rdx,4),%esi
imul   0x70(%rsp),%esi
add    $0xfffffffe,%esi
xorpd  %xmm2,%xmm2
xor    %edi,%edi
mov    0xc(%rsp),%ecx
nopw   0x0(%rax,%rax,1)
lea    -0x2(%rsi),%ebp
movsd  (%r12,%rdi,8),%xmm4
movslq %ebp,%rbp
movsd  (%rbx,%rbp,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm1
movsd  %xmm1,(%r15,%rax,8)
lea    -0x1(%rsi),%ebp
movslq %ebp,%rbp
movsd  (%rbx,%rbp,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,0x8(%r15,%rax,8)
movslq %esi,%rsi
movsd  (%rbx,%rsi,8),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm3
movsd  %xmm3,0x10(%r15,%rax,8)
lea    0x1(%rsi),%ebp
movslq %ebp,%rbp
mulsd  (%rbx,%rbp,8),%xmm4
addsd  %xmm4,%xmm2
add    $0x1,%rdi
add    %ecx,%esi
cmp    %rdi,%r13
jne    5850 <NURBSsurfaceRegularEval+0x46f0>
jmp    548e <NURBSsurfaceRegularEval+0x432e>
mov    0x68(%rsp),%r13
mov    0x18(%rsp),%rdi
call   1030 <free@plt>
mov    0x40(%rsp),%rdi
call   1030 <free@plt>
mov    %r13,%rdi
call   1030 <free@plt>
mov    0xa8(%rsp),%rdi
call   1030 <free@plt>
mov    %r12,%rdi
add    $0x118,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1030 <free@plt>

LLVM IR (-O0):
define void @NURBSsurfaceRegularEval(i32 %0, i32 %1, double* %2, i32 %3, i32 %4, double* %5, double* %6, double %7, double %8, i32 %9, double %10, double %11, i32 %12, double* %13) {
%15 = alloca i32
%16 = alloca i32
%17 = alloca double*
%18 = alloca i32
%19 = alloca i32
%20 = alloca double*
%21 = alloca double*
%22 = alloca double
%23 = alloca double
%24 = alloca i32
%25 = alloca double
%26 = alloca double
%27 = alloca i32
%28 = alloca double*
%29 = alloca i32
%30 = alloca i32
%31 = alloca i32
%32 = alloca i32
%33 = alloca i32
%34 = alloca i32
%35 = alloca i32
%36 = alloca i32
%37 = alloca i32
%38 = alloca i32
%39 = alloca i32
%40 = alloca i32
%41 = alloca i32
%42 = alloca i32
%43 = alloca i32
%44 = alloca i32
%45 = alloca i32
%46 = alloca i32
%47 = alloca i32
%48 = alloca i32
%49 = alloca i32*
%50 = alloca i32
%51 = alloca i32
%52 = alloca i32
%53 = alloca double*
%54 = alloca double*
%55 = alloca double*
%56 = alloca double*
%57 = alloca double
%58 = alloca double
%59 = alloca double
%60 = alloca double
%61 = alloca i8
%62 = alloca i8
store i32 %0, i32* %15
store i32 %1, i32* %16
store double* %2, double** %17
store i32 %3, i32* %18
store i32 %4, i32* %19
store double* %5, double** %20
store double* %6, double** %21
store double %7, double* %22
store double %8, double* %23
store i32 %9, i32* %24
store double %10, double* %25
store double %11, double* %26
store i32 %12, i32* %27
store double* %13, double** %28
%63 = load i32, i32* %24
%64 = sub nsw i32 %63, 1
store i32 %64, i32* %41
%65 = load i32, i32* %27
%66 = sub nsw i32 %65, 1
store i32 %66, i32* %42
%67 = load i32, i32* %18
%68 = sub nsw i32 %67, 1
store i32 %68, i32* %43
%69 = load i32, i32* %19
%70 = sub nsw i32 %69, 1
store i32 %70, i32* %44
%71 = load i32, i32* %15
%72 = sub nsw i32 %71, 1
store i32 %72, i32* %47
%73 = load i32, i32* %16
%74 = sub nsw i32 %73, 1
store i32 %74, i32* %48
%75 = load double, double* %22
%76 = load double*, double** %20
%77 = load i32, i32* %47
%78 = sext i32 %77 to i64
%79 = getelementptr inbounds double, double* %76, i64 %78
%80 = load double, double* %79
%81 = fadd double %80, 0x3D719799812DEA11
%82 = fcmp olt double %75, %81
br i1 %82, label %83, label %97
83: ; preds = %14
%84 = load double, double* %22
%85 = load i32, i32* %41
%86 = sitofp i32 %85 to double
%87 = load double, double* %23
%88 = call double @llvm.fmuladd.f64(double %86, double %87, double %84)
%89 = load double*, double** %20
%90 = load i32, i32* %18
%91 = sext i32 %90 to i64
%92 = getelementptr inbounds double, double* %89, i64 %91
%93 = load double, double* %92
%94 = fsub double %93, 0x3D719799812DEA11
%95 = fcmp ogt double %88, %94
br i1 %95, label %96, label %97
96: ; preds = %83
store i8 1, i8* %61
br label %98
97: ; preds = %83, %14
store i8 0, i8* %61
br label %98
98: ; preds = %97, %96
%99 = load double, double* %25
%100 = load double*, double** %21
%101 = load i32, i32* %48
%102 = sext i32 %101 to i64
%103 = getelementptr inbounds double, double* %100, i64 %102
%104 = load double, double* %103
%105 = fadd double %104, 0x3D719799812DEA11
%106 = fcmp olt double %99, %105
br i1 %106, label %107, label %121
107: ; preds = %98
%108 = load double, double* %25
%109 = load i32, i32* %42
%110 = sitofp i32 %109 to double
%111 = load double, double* %26
%112 = call double @llvm.fmuladd.f64(double %110, double %111, double %108)
%113 = load double*, double** %21
%114 = load i32, i32* %19
%115 = sext i32 %114 to i64
%116 = getelementptr inbounds double, double* %113, i64 %115
%117 = load double, double* %116
%118 = fsub double %117, 0x3D719799812DEA11
%119 = fcmp ogt double %112, %118
br i1 %119, label %120, label %121
120: ; preds = %107
store i8 1, i8* %62
br label %122
121: ; preds = %107, %98
store i8 0, i8* %62
br label %122
122: ; preds = %121, %120
%123 = load i32, i32* %15
%124 = load i32, i32* %16
%125 = call i32 (i32, i32, ...) bitcast (i32 (...)* @MAX to i32 (i32, i32, ...)*)(i32 %123, i32 %124)
store i32 %125, i32* %39
%126 = load i32, i32* %39
%127 = sext i32 %126 to i64
%128 = mul i64 %127, 8
%129 = add i64 %128, 1
%130 = call i8* @malloc(i64 %129)
%131 = bitcast i8* %130 to double*
store double* %131, double** %53
%132 = load i32, i32* %39
%133 = sext i32 %132 to i64
%134 = mul i64 %133, 8
%135 = add i64 %134, 1
%136 = call i8* @malloc(i64 %135)
%137 = bitcast i8* %136 to double*
store double* %137, double** %54
%138 = load i32, i32* %18
%139 = mul nsw i32 4, %138
store i32 %139, i32* %45
%140 = load i32, i32* %45
%141 = sub nsw i32 %140, 4
store i32 %141, i32* %46
%142 = load i32, i32* %24
%143 = load i32, i32* %15
%144 = mul nsw i32 %142, %143
%145 = sext i32 %144 to i64
%146 = mul i64 %145, 8
%147 = load i32, i32* %24
%148 = sext i32 %147 to i64
%149 = mul i64 %148, 4
%150 = add i64 %146, %149
%151 = load i32, i32* %16
%152 = sext i32 %151 to i64
%153 = mul i64 %152, 8
%154 = add i64 %150, %153
%155 = load i32, i32* %27
%156 = load i32, i32* %16
%157 = mul nsw i32 %155, %156
%158 = sext i32 %157 to i64
%159 = mul i64 %158, 8
%160 = load i32, i32* %27
%161 = sext i32 %160 to i64
%162 = mul i64 %161, 4
%163 = add i64 %159, %162
%164 = load i32, i32* %15
%165 = sext i32 %164 to i64
%166 = mul i64 %165, 8
%167 = add i64 %163, %166
%168 = icmp ult i64 %154, %167
br i1 %168, label %169, label %3180
169: ; preds = %122
%170 = load i32, i32* %16
%171 = sext i32 %170 to i64
%172 = mul i64 %171, 8
%173 = add i64 %172, 1
%174 = call i8* @malloc(i64 %173)
%175 = bitcast i8* %174 to double*
store double* %175, double** %55
%176 = load i32, i32* %24
%177 = sext i32 %176 to i64
%178 = mul i64 %177, 4
%179 = add i64 %178, 1
%180 = call i8* @malloc(i64 %179)
%181 = bitcast i8* %180 to i32*
store i32* %181, i32** %49
%182 = load i32, i32* %24
%183 = load i32, i32* %15
%184 = mul nsw i32 %182, %183
%185 = sext i32 %184 to i64
%186 = mul i64 %185, 8
%187 = add i64 %186, 1
%188 = call i8* @malloc(i64 %187)
%189 = bitcast i8* %188 to double*
store double* %189, double** %56
%190 = load i8, i8* %61
%191 = sext i8 %190 to i32
%192 = icmp ne i32 %191, 0
br i1 %192, label %193, label %1156
193: ; preds = %169
%194 = load i8, i8* %62
%195 = sext i8 %194 to i32
%196 = icmp ne i32 %195, 0
br i1 %196, label %197, label %1156
197: ; preds = %193
%198 = load i32, i32* %47
%199 = load i32*, i32** %49
%200 = getelementptr inbounds i32, i32* %199, i64 0
store i32 %198, i32* %200
store i32 0, i32* %50
%201 = load double*, double** %17
%202 = getelementptr inbounds double, double* %201, i64 0
%203 = load double, double* %202
%204 = load double*, double** %17
%205 = getelementptr inbounds double, double* %204, i64 3
%206 = load double, double* %205
%207 = fdiv double %203, %206
%208 = load double*, double** %28
%209 = getelementptr inbounds double, double* %208, i64 0
store double %207, double* %209
%210 = load double*, double** %17
%211 = getelementptr inbounds double, double* %210, i64 1
%212 = load double, double* %211
%213 = load double*, double** %17
%214 = getelementptr inbounds double, double* %213, i64 3
%215 = load double, double* %214
%216 = fdiv double %212, %215
%217 = load double*, double** %28
%218 = getelementptr inbounds double, double* %217, i64 1
store double %216, double* %218
%219 = load double*, double** %17
%220 = getelementptr inbounds double, double* %219, i64 2
%221 = load double, double* %220
%222 = load double*, double** %17
%223 = getelementptr inbounds double, double* %222, i64 3
%224 = load double, double* %223
%225 = fdiv double %221, %224
%226 = load double*, double** %28
%227 = getelementptr inbounds double, double* %226, i64 2
store double %225, double* %227
%228 = load double, double* %22
store double %228, double* %57
store i32 1, i32* %31
br label %229
229: ; preds = %402, %197
%230 = load i32, i32* %31
%231 = load i32, i32* %41
%232 = icmp slt i32 %230, %231
br i1 %232, label %233, label %405
233: ; preds = %229
%234 = load i32, i32* %31
%235 = mul nsw i32 3, %234
store i32 %235, i32* %35
%236 = load i32, i32* %31
%237 = load i32, i32* %15
%238 = mul nsw i32 %236, %237
store i32 %238, i32* %36
%239 = load double, double* %23
%240 = load double, double* %57
%241 = fadd double %240, %239
store double %241, double* %57
%242 = load i32, i32* %18
%243 = load double, double* %57
%244 = load double*, double** %20
%245 = load i32*, i32** %49
%246 = load i32, i32* %31
%247 = sub nsw i32 %246, 1
%248 = sext i32 %247 to i64
%249 = getelementptr inbounds i32, i32* %245, i64 %248
%250 = load i32, i32* %249
%251 = call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %242, double %243, double* %244, i32 %250)
%252 = load i32*, i32** %49
%253 = load i32, i32* %31
%254 = sext i32 %253 to i64
%255 = getelementptr inbounds i32, i32* %252, i64 %254
store i32 %251, i32* %255
%256 = load i32*, i32** %49
%257 = load i32, i32* %31
%258 = sext i32 %257 to i64
%259 = getelementptr inbounds i32, i32* %256, i64 %258
%260 = load i32, i32* %259
%261 = load double, double* %57
%262 = load i32, i32* %47
%263 = load double*, double** %20
%264 = load double*, double** %56
%265 = load i32, i32* %36
%266 = sext i32 %265 to i64
%267 = getelementptr inbounds double, double* %264, i64 %266
%268 = load double*, double** %53
%269 = load double*, double** %54
%270 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %260, double %261, i32 %262, double* %263, double* %267, double* %268, double* %269)
%271 = load i32, i32* %50
%272 = load i32*, i32** %49
%273 = load i32, i32* %31
%274 = sub nsw i32 %273, 1
%275 = sext i32 %274 to i64
%276 = getelementptr inbounds i32, i32* %272, i64 %275
store i32 %271, i32* %276
%277 = load i32*, i32** %49
%278 = load i32, i32* %31
%279 = sext i32 %278 to i64
%280 = getelementptr inbounds i32, i32* %277, i64 %279
%281 = load i32, i32* %280
%282 = load i32, i32* %47
%283 = sub nsw i32 %281, %282
store i32 %283, i32* %50
store double 0.000000e+00, double* %59
store i32 0, i32* %30
br label %284
284: ; preds = %361, %233
%285 = load i32, i32* %30
%286 = load i32, i32* %47
%287 = icmp sle i32 %285, %286
br i1 %287, label %288, label %364
288: ; preds = %284
%289 = load i32, i32* %50
%290 = load i32, i32* %30
%291 = add nsw i32 %289, %290
%292 = mul nsw i32 4, %291
store i32 %292, i32* %34
%293 = load i32, i32* %36
%294 = load i32, i32* %30
%295 = add nsw i32 %293, %294
store i32 %295, i32* %37
%296 = load double*, double** %56
%297 = load i32, i32* %37
%298 = sext i32 %297 to i64
%299 = getelementptr inbounds double, double* %296, i64 %298
%300 = load double, double* %299
%301 = load double*, double** %17
%302 = load i32, i32* %34
%303 = sext i32 %302 to i64
%304 = getelementptr inbounds double, double* %301, i64 %303
%305 = load double, double* %304
%306 = load double*, double** %28
%307 = load i32, i32* %35
%308 = sext i32 %307 to i64
%309 = getelementptr inbounds double, double* %306, i64 %308
%310 = load double, double* %309
%311 = call double @llvm.fmuladd.f64(double %300, double %305, double %310)
store double %311, double* %309
%312 = load double*, double** %56
%313 = load i32, i32* %37
%314 = sext i32 %313 to i64
%315 = getelementptr inbounds double, double* %312, i64 %314
%316 = load double, double* %315
%317 = load double*, double** %17
%318 = load i32, i32* %34
%319 = add nsw i32 %318, 1
%320 = sext i32 %319 to i64
%321 = getelementptr inbounds double, double* %317, i64 %320
%322 = load double, double* %321
%323 = load double*, double** %28
%324 = load i32, i32* %35
%325 = add nsw i32 %324, 1
%326 = sext i32 %325 to i64
%327 = getelementptr inbounds double, double* %323, i64 %326
%328 = load double, double* %327
%329 = call double @llvm.fmuladd.f64(double %316, double %322, double %328)
store double %329, double* %327
%330 = load double*, double** %56
%331 = load i32, i32* %37
%332 = sext i32 %331 to i64
%333 = getelementptr inbounds double, double* %330, i64 %332
%334 = load double, double* %333
%335 = load double*, double** %17
%336 = load i32, i32* %34
%337 = add nsw i32 %336, 2
%338 = sext i32 %337 to i64
%339 = getelementptr inbounds double, double* %335, i64 %338
%340 = load double, double* %339
%341 = load double*, double** %28
%342 = load i32, i32* %35
%343 = add nsw i32 %342, 2
%344 = sext i32 %343 to i64
%345 = getelementptr inbounds double, double* %341, i64 %344
%346 = load double, double* %345
%347 = call double @llvm.fmuladd.f64(double %334, double %340, double %346)
store double %347, double* %345
%348 = load double*, double** %56
%349 = load i32, i32* %37
%350 = sext i32 %349 to i64
%351 = getelementptr inbounds double, double* %348, i64 %350
%352 = load double, double* %351
%353 = load double*, double** %17
%354 = load i32, i32* %34
%355 = add nsw i32 %354, 3
%356 = sext i32 %355 to i64
%357 = getelementptr inbounds double, double* %353, i64 %356
%358 = load double, double* %357
%359 = load double, double* %59
%360 = call double @llvm.fmuladd.f64(double %352, double %358, double %359)
store double %360, double* %59
br label %361
361: ; preds = %288
%362 = load i32, i32* %30
%363 = add nsw i32 %362, 1
store i32 %363, i32* %30
br label %284
364: ; preds = %284
%365 = load double*, double** %28
%366 = load i32, i32* %35
%367 = sext i32 %366 to i64
%368 = getelementptr inbounds double, double* %365, i64 %367
%369 = load double, double* %368
%370 = load double, double* %59
%371 = fdiv double %369, %370
%372 = load double*, double** %28
%373 = load i32, i32* %35
%374 = sext i32 %373 to i64
%375 = getelementptr inbounds double, double* %372, i64 %374
store double %371, double* %375
%376 = load double*, double** %28
%377 = load i32, i32* %35
%378 = add nsw i32 %377, 1
%379 = sext i32 %378 to i64
%380 = getelementptr inbounds double, double* %376, i64 %379
%381 = load double, double* %380
%382 = load double, double* %59
%383 = fdiv double %381, %382
%384 = load double*, double** %28
%385 = load i32, i32* %35
%386 = add nsw i32 %385, 1
%387 = sext i32 %386 to i64
%388 = getelementptr inbounds double, double* %384, i64 %387
store double %383, double* %388
%389 = load double*, double** %28
%390 = load i32, i32* %35
%391 = add nsw i32 %390, 2
%392 = sext i32 %391 to i64
%393 = getelementptr inbounds double, double* %389, i64 %392
%394 = load double, double* %393
%395 = load double, double* %59
%396 = fdiv double %394, %395
%397 = load double*, double** %28
%398 = load i32, i32* %35
%399 = add nsw i32 %398, 2
%400 = sext i32 %399 to i64
%401 = getelementptr inbounds double, double* %397, i64 %400
store double %396, double* %401
br label %402
402: ; preds = %364
%403 = load i32, i32* %31
%404 = add nsw i32 %403, 1
store i32 %404, i32* %31
br label %229
405: ; preds = %229
%406 = load i32, i32* %50
%407 = load i32*, i32** %49
%408 = load i32, i32* %24
%409 = sub nsw i32 %408, 2
%410 = sext i32 %409 to i64
%411 = getelementptr inbounds i32, i32* %407, i64 %410
store i32 %406, i32* %411
%412 = load i32, i32* %41
%413 = mul nsw i32 3, %412
store i32 %413, i32* %35
%414 = load i32, i32* %45
%415 = sub nsw i32 %414, 1
store i32 %415, i32* %34
%416 = load double*, double** %17
%417 = load i32, i32* %34
%418 = sub nsw i32 %417, 3
%419 = sext i32 %418 to i64
%420 = getelementptr inbounds double, double* %416, i64 %419
%421 = load double, double* %420
%422 = load double*, double** %17
%423 = load i32, i32* %34
%424 = sext i32 %423 to i64
%425 = getelementptr inbounds double, double* %422, i64 %424
%426 = load double, double* %425
%427 = fdiv double %421, %426
%428 = load double*, double** %28
%429 = load i32, i32* %35
%430 = sext i32 %429 to i64
%431 = getelementptr inbounds double, double* %428, i64 %430
store double %427, double* %431
%432 = load double*, double** %17
%433 = load i32, i32* %34
%434 = sub nsw i32 %433, 2
%435 = sext i32 %434 to i64
%436 = getelementptr inbounds double, double* %432, i64 %435
%437 = load double, double* %436
%438 = load double*, double** %17
%439 = load i32, i32* %34
%440 = sext i32 %439 to i64
%441 = getelementptr inbounds double, double* %438, i64 %440
%442 = load double, double* %441
%443 = fdiv double %437, %442
%444 = load double*, double** %28
%445 = load i32, i32* %35
%446 = add nsw i32 %445, 1
%447 = sext i32 %446 to i64
%448 = getelementptr inbounds double, double* %444, i64 %447
store double %443, double* %448
%449 = load double*, double** %17
%450 = load i32, i32* %34
%451 = sub nsw i32 %450, 1
%452 = sext i32 %451 to i64
%453 = getelementptr inbounds double, double* %449, i64 %452
%454 = load double, double* %453
%455 = load double*, double** %17
%456 = load i32, i32* %34
%457 = sext i32 %456 to i64
%458 = getelementptr inbounds double, double* %455, i64 %457
%459 = load double, double* %458
%460 = fdiv double %454, %459
%461 = load double*, double** %28
%462 = load i32, i32* %35
%463 = add nsw i32 %462, 2
%464 = sext i32 %463 to i64
%465 = getelementptr inbounds double, double* %461, i64 %464
store double %460, double* %465
%466 = load i32, i32* %48
store i32 %466, i32* %51
%467 = load double, double* %25
store double %467, double* %58
store i32 1, i32* %32
br label %468
468: ; preds = %890, %405
%469 = load i32, i32* %32
%470 = load i32, i32* %42
%471 = icmp slt i32 %469, %470
br i1 %471, label %472, label %893
472: ; preds = %468
%473 = load double, double* %26
%474 = load double, double* %58
%475 = fadd double %474, %473
store double %475, double* %58
%476 = load i32, i32* %19
%477 = load double, double* %58
%478 = load double*, double** %21
%479 = load i32, i32* %51
%480 = call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %476, double %477, double* %478, i32 %479)
store i32 %480, i32* %51
%481 = load i32, i32* %51
%482 = load double, double* %58
%483 = load i32, i32* %48
%484 = load double*, double** %21
%485 = load double*, double** %55
%486 = load double*, double** %53
%487 = load double*, double** %54
%488 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %481, double %482, i32 %483, double* %484, double* %485, double* %486, double* %487)
%489 = load i32, i32* %51
%490 = load i32, i32* %48
%491 = sub nsw i32 %489, %490
store i32 %491, i32* %52
%492 = load i32, i32* %32
%493 = load i32, i32* %24
%494 = mul nsw i32 %492, %493
store i32 %494, i32* %38
%495 = load i32, i32* %38
%496 = mul nsw i32 3, %495
store i32 %496, i32* %35
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %497
497: ; preds = %572, %472
%498 = load i32, i32* %29
%499 = load i32, i32* %48
%500 = icmp sle i32 %498, %499
br i1 %500, label %501, label %575
501: ; preds = %497
%502 = load i32, i32* %45
%503 = load i32, i32* %52
%504 = load i32, i32* %29
%505 = add nsw i32 %503, %504
%506 = mul nsw i32 %502, %505
store i32 %506, i32* %34
%507 = load double*, double** %55
%508 = load i32, i32* %29
%509 = sext i32 %508 to i64
%510 = getelementptr inbounds double, double* %507, i64 %509
%511 = load double, double* %510
%512 = load double*, double** %17
%513 = load i32, i32* %34
%514 = sext i32 %513 to i64
%515 = getelementptr inbounds double, double* %512, i64 %514
%516 = load double, double* %515
%517 = load double*, double** %28
%518 = load i32, i32* %35
%519 = sext i32 %518 to i64
%520 = getelementptr inbounds double, double* %517, i64 %519
%521 = load double, double* %520
%522 = call double @llvm.fmuladd.f64(double %511, double %516, double %521)
store double %522, double* %520
%523 = load double*, double** %55
%524 = load i32, i32* %29
%525 = sext i32 %524 to i64
%526 = getelementptr inbounds double, double* %523, i64 %525
%527 = load double, double* %526
%528 = load double*, double** %17
%529 = load i32, i32* %34
%530 = add nsw i32 %529, 1
%531 = sext i32 %530 to i64
%532 = getelementptr inbounds double, double* %528, i64 %531
%533 = load double, double* %532
%534 = load double*, double** %28
%535 = load i32, i32* %35
%536 = add nsw i32 %535, 1
%537 = sext i32 %536 to i64
%538 = getelementptr inbounds double, double* %534, i64 %537
%539 = load double, double* %538
%540 = call double @llvm.fmuladd.f64(double %527, double %533, double %539)
store double %540, double* %538
%541 = load double*, double** %55
%542 = load i32, i32* %29
%543 = sext i32 %542 to i64
%544 = getelementptr inbounds double, double* %541, i64 %543
%545 = load double, double* %544
%546 = load double*, double** %17
%547 = load i32, i32* %34
%548 = add nsw i32 %547, 2
%549 = sext i32 %548 to i64
%550 = getelementptr inbounds double, double* %546, i64 %549
%551 = load double, double* %550
%552 = load double*, double** %28
%553 = load i32, i32* %35
%554 = add nsw i32 %553, 2
%555 = sext i32 %554 to i64
%556 = getelementptr inbounds double, double* %552, i64 %555
%557 = load double, double* %556
%558 = call double @llvm.fmuladd.f64(double %545, double %551, double %557)
store double %558, double* %556
%559 = load double*, double** %55
%560 = load i32, i32* %29
%561 = sext i32 %560 to i64
%562 = getelementptr inbounds double, double* %559, i64 %561
%563 = load double, double* %562
%564 = load double*, double** %17
%565 = load i32, i32* %34
%566 = add nsw i32 %565, 3
%567 = sext i32 %566 to i64
%568 = getelementptr inbounds double, double* %564, i64 %567
%569 = load double, double* %568
%570 = load double, double* %59
%571 = call double @llvm.fmuladd.f64(double %563, double %569, double %570)
store double %571, double* %59
br label %572
572: ; preds = %501
%573 = load i32, i32* %29
%574 = add nsw i32 %573, 1
store i32 %574, i32* %29
br label %497
575: ; preds = %497
%576 = load double*, double** %28
%577 = load i32, i32* %35
%578 = sext i32 %577 to i64
%579 = getelementptr inbounds double, double* %576, i64 %578
%580 = load double, double* %579
%581 = load double, double* %59
%582 = fdiv double %580, %581
%583 = load double*, double** %28
%584 = load i32, i32* %35
%585 = sext i32 %584 to i64
%586 = getelementptr inbounds double, double* %583, i64 %585
store double %582, double* %586
%587 = load double*, double** %28
%588 = load i32, i32* %35
%589 = add nsw i32 %588, 1
%590 = sext i32 %589 to i64
%591 = getelementptr inbounds double, double* %587, i64 %590
%592 = load double, double* %591
%593 = load double, double* %59
%594 = fdiv double %592, %593
%595 = load double*, double** %28
%596 = load i32, i32* %35
%597 = add nsw i32 %596, 1
%598 = sext i32 %597 to i64
%599 = getelementptr inbounds double, double* %595, i64 %598
store double %594, double* %599
%600 = load double*, double** %28
%601 = load i32, i32* %35
%602 = add nsw i32 %601, 2
%603 = sext i32 %602 to i64
%604 = getelementptr inbounds double, double* %600, i64 %603
%605 = load double, double* %604
%606 = load double, double* %59
%607 = fdiv double %605, %606
%608 = load double*, double** %28
%609 = load i32, i32* %35
%610 = add nsw i32 %609, 2
%611 = sext i32 %610 to i64
%612 = getelementptr inbounds double, double* %608, i64 %611
store double %607, double* %612
%613 = load i32, i32* %52
%614 = load i32, i32* %18
%615 = mul nsw i32 %613, %614
store i32 %615, i32* %40
store i32 1, i32* %31
br label %616
616: ; preds = %761, %575
%617 = load i32, i32* %31
%618 = load i32, i32* %41
%619 = icmp slt i32 %617, %618
br i1 %619, label %620, label %764
620: ; preds = %616
%621 = load i32, i32* %31
%622 = load i32, i32* %38
%623 = add nsw i32 %621, %622
%624 = mul nsw i32 3, %623
store i32 %624, i32* %35
%625 = load i32, i32* %31
%626 = load i32, i32* %15
%627 = mul nsw i32 %625, %626
store i32 %627, i32* %36
%628 = load i32, i32* %40
%629 = load i32*, i32** %49
%630 = load i32, i32* %31
%631 = sext i32 %630 to i64
%632 = getelementptr inbounds i32, i32* %629, i64 %631
%633 = load i32, i32* %632
%634 = add nsw i32 %628, %633
store i32 %634, i32* %39
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %635
635: ; preds = %720, %620
%636 = load i32, i32* %29
%637 = load i32, i32* %48
%638 = icmp sle i32 %636, %637
br i1 %638, label %639, label %723
639: ; preds = %635
%640 = load i32, i32* %18
%641 = load i32, i32* %29
%642 = mul nsw i32 %640, %641
%643 = load i32, i32* %39
%644 = add nsw i32 %642, %643
store i32 %644, i32* %33
store i32 0, i32* %30
br label %645
645: ; preds = %716, %639
%646 = load i32, i32* %30
%647 = load i32, i32* %47
%648 = icmp sle i32 %646, %647
br i1 %648, label %649, label %719
649: ; preds = %645
%650 = load i32, i32* %33
%651 = load i32, i32* %30
%652 = add nsw i32 %650, %651
%653 = mul nsw i32 4, %652
store i32 %653, i32* %34
%654 = load double*, double** %55
%655 = load i32, i32* %29
%656 = sext i32 %655 to i64
%657 = getelementptr inbounds double, double* %654, i64 %656
%658 = load double, double* %657
%659 = load double*, double** %56
%660 = load i32, i32* %36
%661 = load i32, i32* %30
%662 = add nsw i32 %660, %661
%663 = sext i32 %662 to i64
%664 = getelementptr inbounds double, double* %659, i64 %663
%665 = load double, double* %664
%666 = fmul double %658, %665
store double %666, double* %60
%667 = load double, double* %60
%668 = load double*, double** %17
%669 = load i32, i32* %34
%670 = sext i32 %669 to i64
%671 = getelementptr inbounds double, double* %668, i64 %670
%672 = load double, double* %671
%673 = load double*, double** %28
%674 = load i32, i32* %35
%675 = sext i32 %674 to i64
%676 = getelementptr inbounds double, double* %673, i64 %675
%677 = load double, double* %676
%678 = call double @llvm.fmuladd.f64(double %667, double %672, double %677)
store double %678, double* %676
%679 = load double, double* %60
%680 = load double*, double** %17
%681 = load i32, i32* %34
%682 = add nsw i32 %681, 1
%683 = sext i32 %682 to i64
%684 = getelementptr inbounds double, double* %680, i64 %683
%685 = load double, double* %684
%686 = load double*, double** %28
%687 = load i32, i32* %35
%688 = add nsw i32 %687, 1
%689 = sext i32 %688 to i64
%690 = getelementptr inbounds double, double* %686, i64 %689
%691 = load double, double* %690
%692 = call double @llvm.fmuladd.f64(double %679, double %685, double %691)
store double %692, double* %690
%693 = load double, double* %60
%694 = load double*, double** %17
%695 = load i32, i32* %34
%696 = add nsw i32 %695, 2
%697 = sext i32 %696 to i64
%698 = getelementptr inbounds double, double* %694, i64 %697
%699 = load double, double* %698
%700 = load double*, double** %28
%701 = load i32, i32* %35
%702 = add nsw i32 %701, 2
%703 = sext i32 %702 to i64
%704 = getelementptr inbounds double, double* %700, i64 %703
%705 = load double, double* %704
%706 = call double @llvm.fmuladd.f64(double %693, double %699, double %705)
store double %706, double* %704
%707 = load double, double* %60
%708 = load double*, double** %17
%709 = load i32, i32* %34
%710 = add nsw i32 %709, 3
%711 = sext i32 %710 to i64
%712 = getelementptr inbounds double, double* %708, i64 %711
%713 = load double, double* %712
%714 = load double, double* %59
%715 = call double @llvm.fmuladd.f64(double %707, double %713, double %714)
store double %715, double* %59
br label %716
716: ; preds = %649
%717 = load i32, i32* %30
%718 = add nsw i32 %717, 1
store i32 %718, i32* %30
br label %645
719: ; preds = %645
br label %720
720: ; preds = %719
%721 = load i32, i32* %29
%722 = add nsw i32 %721, 1
store i32 %722, i32* %29
br label %635
723: ; preds = %635
%724 = load double*, double** %28
%725 = load i32, i32* %35
%726 = sext i32 %725 to i64
%727 = getelementptr inbounds double, double* %724, i64 %726
%728 = load double, double* %727
%729 = load double, double* %59
%730 = fdiv double %728, %729
%731 = load double*, double** %28
%732 = load i32, i32* %35
%733 = sext i32 %732 to i64
%734 = getelementptr inbounds double, double* %731, i64 %733
store double %730, double* %734
%735 = load double*, double** %28
%736 = load i32, i32* %35
%737 = add nsw i32 %736, 1
%738 = sext i32 %737 to i64
%739 = getelementptr inbounds double, double* %735, i64 %738
%740 = load double, double* %739
%741 = load double, double* %59
%742 = fdiv double %740, %741
%743 = load double*, double** %28
%744 = load i32, i32* %35
%745 = add nsw i32 %744, 1
%746 = sext i32 %745 to i64
%747 = getelementptr inbounds double, double* %743, i64 %746
store double %742, double* %747
%748 = load double*, double** %28
%749 = load i32, i32* %35
%750 = add nsw i32 %749, 2
%751 = sext i32 %750 to i64
%752 = getelementptr inbounds double, double* %748, i64 %751
%753 = load double, double* %752
%754 = load double, double* %59
%755 = fdiv double %753, %754
%756 = load double*, double** %28
%757 = load i32, i32* %35
%758 = add nsw i32 %757, 2
%759 = sext i32 %758 to i64
%760 = getelementptr inbounds double, double* %756, i64 %759
store double %755, double* %760
br label %761
761: ; preds = %723
%762 = load i32, i32* %31
%763 = add nsw i32 %762, 1
store i32 %763, i32* %31
br label %616
764: ; preds = %616
%765 = load i32, i32* %41
%766 = load i32, i32* %38
%767 = add nsw i32 %765, %766
%768 = mul nsw i32 3, %767
store i32 %768, i32* %35
%769 = load i32, i32* %45
%770 = load i32, i32* %52
%771 = mul nsw i32 %769, %770
%772 = load i32, i32* %46
%773 = add nsw i32 %771, %772
store i32 %773, i32* %33
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %774
774: ; preds = %849, %764
%775 = load i32, i32* %29
%776 = load i32, i32* %48
%777 = icmp sle i32 %775, %776
br i1 %777, label %778, label %852
778: ; preds = %774
%779 = load i32, i32* %45
%780 = load i32, i32* %29
%781 = mul nsw i32 %779, %780
%782 = load i32, i32* %33
%783 = add nsw i32 %781, %782
store i32 %783, i32* %34
%784 = load double*, double** %55
%785 = load i32, i32* %29
%786 = sext i32 %785 to i64
%787 = getelementptr inbounds double, double* %784, i64 %786
%788 = load double, double* %787
%789 = load double*, double** %17
%790 = load i32, i32* %34
%791 = sext i32 %790 to i64
%792 = getelementptr inbounds double, double* %789, i64 %791
%793 = load double, double* %792
%794 = load double*, double** %28
%795 = load i32, i32* %35
%796 = sext i32 %795 to i64
%797 = getelementptr inbounds double, double* %794, i64 %796
%798 = load double, double* %797
%799 = call double @llvm.fmuladd.f64(double %788, double %793, double %798)
store double %799, double* %797
%800 = load double*, double** %55
%801 = load i32, i32* %29
%802 = sext i32 %801 to i64
%803 = getelementptr inbounds double, double* %800, i64 %802
%804 = load double, double* %803
%805 = load double*, double** %17
%806 = load i32, i32* %34
%807 = add nsw i32 %806, 1
%808 = sext i32 %807 to i64
%809 = getelementptr inbounds double, double* %805, i64 %808
%810 = load double, double* %809
%811 = load double*, double** %28
%812 = load i32, i32* %35
%813 = add nsw i32 %812, 1
%814 = sext i32 %813 to i64
%815 = getelementptr inbounds double, double* %811, i64 %814
%816 = load double, double* %815
%817 = call double @llvm.fmuladd.f64(double %804, double %810, double %816)
store double %817, double* %815
%818 = load double*, double** %55
%819 = load i32, i32* %29
%820 = sext i32 %819 to i64
%821 = getelementptr inbounds double, double* %818, i64 %820
%822 = load double, double* %821
%823 = load double*, double** %17
%824 = load i32, i32* %34
%825 = add nsw i32 %824, 2
%826 = sext i32 %825 to i64
%827 = getelementptr inbounds double, double* %823, i64 %826
%828 = load double, double* %827
%829 = load double*, double** %28
%830 = load i32, i32* %35
%831 = add nsw i32 %830, 2
%832 = sext i32 %831 to i64
%833 = getelementptr inbounds double, double* %829, i64 %832
%834 = load double, double* %833
%835 = call double @llvm.fmuladd.f64(double %822, double %828, double %834)
store double %835, double* %833
%836 = load double*, double** %55
%837 = load i32, i32* %29
%838 = sext i32 %837 to i64
%839 = getelementptr inbounds double, double* %836, i64 %838
%840 = load double, double* %839
%841 = load double*, double** %17
%842 = load i32, i32* %34
%843 = add nsw i32 %842, 3
%844 = sext i32 %843 to i64
%845 = getelementptr inbounds double, double* %841, i64 %844
%846 = load double, double* %845
%847 = load double, double* %59
%848 = call double @llvm.fmuladd.f64(double %840, double %846, double %847)
store double %848, double* %59
br label %849
849: ; preds = %778
%850 = load i32, i32* %29
%851 = add nsw i32 %850, 1
store i32 %851, i32* %29
br label %774
852: ; preds = %774
%853 = load double*, double** %28
%854 = load i32, i32* %35
%855 = sext i32 %854 to i64
%856 = getelementptr inbounds double, double* %853, i64 %855
%857 = load double, double* %856
%858 = load double, double* %59
%859 = fdiv double %857, %858
%860 = load double*, double** %28
%861 = load i32, i32* %35
%862 = sext i32 %861 to i64
%863 = getelementptr inbounds double, double* %860, i64 %862
store double %859, double* %863
%864 = load double*, double** %28
%865 = load i32, i32* %35
%866 = add nsw i32 %865, 1
%867 = sext i32 %866 to i64
%868 = getelementptr inbounds double, double* %864, i64 %867
%869 = load double, double* %868
%870 = load double, double* %59
%871 = fdiv double %869, %870
%872 = load double*, double** %28
%873 = load i32, i32* %35
%874 = add nsw i32 %873, 1
%875 = sext i32 %874 to i64
%876 = getelementptr inbounds double, double* %872, i64 %875
store double %871, double* %876
%877 = load double*, double** %28
%878 = load i32, i32* %35
%879 = add nsw i32 %878, 2
%880 = sext i32 %879 to i64
%881 = getelementptr inbounds double, double* %877, i64 %880
%882 = load double, double* %881
%883 = load double, double* %59
%884 = fdiv double %882, %883
%885 = load double*, double** %28
%886 = load i32, i32* %35
%887 = add nsw i32 %886, 2
%888 = sext i32 %887 to i64
%889 = getelementptr inbounds double, double* %885, i64 %888
store double %884, double* %889
br label %890
890: ; preds = %852
%891 = load i32, i32* %32
%892 = add nsw i32 %891, 1
store i32 %892, i32* %32
br label %468
893: ; preds = %468
%894 = load i32, i32* %42
%895 = load i32, i32* %24
%896 = mul nsw i32 %894, %895
store i32 %896, i32* %38
%897 = load i32, i32* %38
%898 = mul nsw i32 3, %897
store i32 %898, i32* %35
%899 = load i32, i32* %44
%900 = load i32, i32* %45
%901 = mul nsw i32 %899, %900
%902 = add nsw i32 %901, 3
store i32 %902, i32* %34
%903 = load double*, double** %17
%904 = load i32, i32* %34
%905 = sub nsw i32 %904, 3
%906 = sext i32 %905 to i64
%907 = getelementptr inbounds double, double* %903, i64 %906
%908 = load double, double* %907
%909 = load double*, double** %17
%910 = load i32, i32* %34
%911 = sext i32 %910 to i64
%912 = getelementptr inbounds double, double* %909, i64 %911
%913 = load double, double* %912
%914 = fdiv double %908, %913
%915 = load double*, double** %28
%916 = load i32, i32* %35
%917 = sext i32 %916 to i64
%918 = getelementptr inbounds double, double* %915, i64 %917
store double %914, double* %918
%919 = load double*, double** %17
%920 = load i32, i32* %34
%921 = sub nsw i32 %920, 2
%922 = sext i32 %921 to i64
%923 = getelementptr inbounds double, double* %919, i64 %922
%924 = load double, double* %923
%925 = load double*, double** %17
%926 = load i32, i32* %34
%927 = sext i32 %926 to i64
%928 = getelementptr inbounds double, double* %925, i64 %927
%929 = load double, double* %928
%930 = fdiv double %924, %929
%931 = load double*, double** %28
%932 = load i32, i32* %35
%933 = add nsw i32 %932, 1
%934 = sext i32 %933 to i64
%935 = getelementptr inbounds double, double* %931, i64 %934
store double %930, double* %935
%936 = load double*, double** %17
%937 = load i32, i32* %34
%938 = sub nsw i32 %937, 1
%939 = sext i32 %938 to i64
%940 = getelementptr inbounds double, double* %936, i64 %939
%941 = load double, double* %940
%942 = load double*, double** %17
%943 = load i32, i32* %34
%944 = sext i32 %943 to i64
%945 = getelementptr inbounds double, double* %942, i64 %944
%946 = load double, double* %945
%947 = fdiv double %941, %946
%948 = load double*, double** %28
%949 = load i32, i32* %35
%950 = add nsw i32 %949, 2
%951 = sext i32 %950 to i64
%952 = getelementptr inbounds double, double* %948, i64 %951
store double %947, double* %952
%953 = load i32, i32* %44
%954 = load i32, i32* %18
%955 = mul nsw i32 %953, %954
store i32 %955, i32* %39
store i32 1, i32* %31
br label %956
956: ; preds = %1093, %893
%957 = load i32, i32* %31
%958 = load i32, i32* %41
%959 = icmp slt i32 %957, %958
br i1 %959, label %960, label %1096
960: ; preds = %956
%961 = load i32, i32* %31
%962 = load i32, i32* %38
%963 = add nsw i32 %961, %962
%964 = mul nsw i32 3, %963
store i32 %964, i32* %35
%965 = load i32, i32* %31
%966 = load i32, i32* %15
%967 = mul nsw i32 %965, %966
store i32 %967, i32* %36
store double 0.000000e+00, double* %59
%968 = load i32, i32* %39
%969 = load i32*, i32** %49
%970 = load i32, i32* %31
%971 = sext i32 %970 to i64
%972 = getelementptr inbounds i32, i32* %969, i64 %971
%973 = load i32, i32* %972
%974 = add nsw i32 %968, %973
store i32 %974, i32* %33
store i32 0, i32* %30
br label %975
975: ; preds = %1052, %960
%976 = load i32, i32* %30
%977 = load i32, i32* %47
%978 = icmp sle i32 %976, %977
br i1 %978, label %979, label %1055
979: ; preds = %975
%980 = load i32, i32* %33
%981 = load i32, i32* %30
%982 = add nsw i32 %980, %981
%983 = mul nsw i32 4, %982
store i32 %983, i32* %34
%984 = load i32, i32* %36
%985 = load i32, i32* %30
%986 = add nsw i32 %984, %985
store i32 %986, i32* %37
%987 = load double*, double** %56
%988 = load i32, i32* %37
%989 = sext i32 %988 to i64
%990 = getelementptr inbounds double, double* %987, i64 %989
%991 = load double, double* %990
%992 = load double*, double** %17
%993 = load i32, i32* %34
%994 = sext i32 %993 to i64
%995 = getelementptr inbounds double, double* %992, i64 %994
%996 = load double, double* %995
%997 = load double*, double** %28
%998 = load i32, i32* %35
%999 = sext i32 %998 to i64
%1000 = getelementptr inbounds double, double* %997, i64 %999
%1001 = load double, double* %1000
%1002 = call double @llvm.fmuladd.f64(double %991, double %996, double %1001)
store double %1002, double* %1000
%1003 = load double*, double** %56
%1004 = load i32, i32* %37
%1005 = sext i32 %1004 to i64
%1006 = getelementptr inbounds double, double* %1003, i64 %1005
%1007 = load double, double* %1006
%1008 = load double*, double** %17
%1009 = load i32, i32* %34
%1010 = add nsw i32 %1009, 1
%1011 = sext i32 %1010 to i64
%1012 = getelementptr inbounds double, double* %1008, i64 %1011
%1013 = load double, double* %1012
%1014 = load double*, double** %28
%1015 = load i32, i32* %35
%1016 = add nsw i32 %1015, 1
%1017 = sext i32 %1016 to i64
%1018 = getelementptr inbounds double, double* %1014, i64 %1017
%1019 = load double, double* %1018
%1020 = call double @llvm.fmuladd.f64(double %1007, double %1013, double %1019)
store double %1020, double* %1018
%1021 = load double*, double** %56
%1022 = load i32, i32* %37
%1023 = sext i32 %1022 to i64
%1024 = getelementptr inbounds double, double* %1021, i64 %1023
%1025 = load double, double* %1024
%1026 = load double*, double** %17
%1027 = load i32, i32* %34
%1028 = add nsw i32 %1027, 2
%1029 = sext i32 %1028 to i64
%1030 = getelementptr inbounds double, double* %1026, i64 %1029
%1031 = load double, double* %1030
%1032 = load double*, double** %28
%1033 = load i32, i32* %35
%1034 = add nsw i32 %1033, 2
%1035 = sext i32 %1034 to i64
%1036 = getelementptr inbounds double, double* %1032, i64 %1035
%1037 = load double, double* %1036
%1038 = call double @llvm.fmuladd.f64(double %1025, double %1031, double %1037)
store double %1038, double* %1036
%1039 = load double*, double** %56
%1040 = load i32, i32* %37
%1041 = sext i32 %1040 to i64
%1042 = getelementptr inbounds double, double* %1039, i64 %1041
%1043 = load double, double* %1042
%1044 = load double*, double** %17
%1045 = load i32, i32* %34
%1046 = add nsw i32 %1045, 3
%1047 = sext i32 %1046 to i64
%1048 = getelementptr inbounds double, double* %1044, i64 %1047
%1049 = load double, double* %1048
%1050 = load double, double* %59
%1051 = call double @llvm.fmuladd.f64(double %1043, double %1049, double %1050)
store double %1051, double* %59
br label %1052
1052: ; preds = %979
%1053 = load i32, i32* %30
%1054 = add nsw i32 %1053, 1
store i32 %1054, i32* %30
br label %975
1055: ; preds = %975
%1056 = load double*, double** %28
%1057 = load i32, i32* %35
%1058 = sext i32 %1057 to i64
%1059 = getelementptr inbounds double, double* %1056, i64 %1058
%1060 = load double, double* %1059
%1061 = load double, double* %59
%1062 = fdiv double %1060, %1061
%1063 = load double*, double** %28
%1064 = load i32, i32* %35
%1065 = sext i32 %1064 to i64
%1066 = getelementptr inbounds double, double* %1063, i64 %1065
store double %1062, double* %1066
%1067 = load double*, double** %28
%1068 = load i32, i32* %35
%1069 = add nsw i32 %1068, 1
%1070 = sext i32 %1069 to i64
%1071 = getelementptr inbounds double, double* %1067, i64 %1070
%1072 = load double, double* %1071
%1073 = load double, double* %59
%1074 = fdiv double %1072, %1073
%1075 = load double*, double** %28
%1076 = load i32, i32* %35
%1077 = add nsw i32 %1076, 1
%1078 = sext i32 %1077 to i64
%1079 = getelementptr inbounds double, double* %1075, i64 %1078
store double %1074, double* %1079
%1080 = load double*, double** %28
%1081 = load i32, i32* %35
%1082 = add nsw i32 %1081, 2
%1083 = sext i32 %1082 to i64
%1084 = getelementptr inbounds double, double* %1080, i64 %1083
%1085 = load double, double* %1084
%1086 = load double, double* %59
%1087 = fdiv double %1085, %1086
%1088 = load double*, double** %28
%1089 = load i32, i32* %35
%1090 = add nsw i32 %1089, 2
%1091 = sext i32 %1090 to i64
%1092 = getelementptr inbounds double, double* %1088, i64 %1091
store double %1087, double* %1092
br label %1093
1093: ; preds = %1055
%1094 = load i32, i32* %31
%1095 = add nsw i32 %1094, 1
store i32 %1095, i32* %31
br label %956
1096: ; preds = %956
%1097 = load i32, i32* %24
%1098 = load i32, i32* %27
%1099 = mul nsw i32 %1097, %1098
%1100 = sub nsw i32 %1099, 1
%1101 = mul nsw i32 3, %1100
store i32 %1101, i32* %35
%1102 = load i32, i32* %45
%1103 = load i32, i32* %19
%1104 = mul nsw i32 %1102, %1103
%1105 = sub nsw i32 %1104, 1
store i32 %1105, i32* %34
%1106 = load double*, double** %17
%1107 = load i32, i32* %34
%1108 = sub nsw i32 %1107, 3
%1109 = sext i32 %1108 to i64
%1110 = getelementptr inbounds double, double* %1106, i64 %1109
%1111 = load double, double* %1110
%1112 = load double*, double** %17
%1113 = load i32, i32* %34
%1114 = sext i32 %1113 to i64
%1115 = getelementptr inbounds double, double* %1112, i64 %1114
%1116 = load double, double* %1115
%1117 = fdiv double %1111, %1116
%1118 = load double*, double** %28
%1119 = load i32, i32* %35
%1120 = sext i32 %1119 to i64
%1121 = getelementptr inbounds double, double* %1118, i64 %1120
store double %1117, double* %1121
%1122 = load double*, double** %17
%1123 = load i32, i32* %34
%1124 = sub nsw i32 %1123, 2
%1125 = sext i32 %1124 to i64
%1126 = getelementptr inbounds double, double* %1122, i64 %1125
%1127 = load double, double* %1126
%1128 = load double*, double** %17
%1129 = load i32, i32* %34
%1130 = sext i32 %1129 to i64
%1131 = getelementptr inbounds double, double* %1128, i64 %1130
%1132 = load double, double* %1131
%1133 = fdiv double %1127, %1132
%1134 = load double*, double** %28
%1135 = load i32, i32* %35
%1136 = add nsw i32 %1135, 1
%1137 = sext i32 %1136 to i64
%1138 = getelementptr inbounds double, double* %1134, i64 %1137
store double %1133, double* %1138
%1139 = load double*, double** %17
%1140 = load i32, i32* %34
%1141 = sub nsw i32 %1140, 1
%1142 = sext i32 %1141 to i64
%1143 = getelementptr inbounds double, double* %1139, i64 %1142
%1144 = load double, double* %1143
%1145 = load double*, double** %17
%1146 = load i32, i32* %34
%1147 = sext i32 %1146 to i64
%1148 = getelementptr inbounds double, double* %1145, i64 %1147
%1149 = load double, double* %1148
%1150 = fdiv double %1144, %1149
%1151 = load double*, double** %28
%1152 = load i32, i32* %35
%1153 = add nsw i32 %1152, 2
%1154 = sext i32 %1153 to i64
%1155 = getelementptr inbounds double, double* %1151, i64 %1154
store double %1150, double* %1155
br label %3179
1156: ; preds = %193, %169
%1157 = load i8, i8* %62
%1158 = icmp ne i8 %1157, 0
br i1 %1158, label %1159, label %1788
1159: ; preds = %1156
%1160 = load i32, i32* %18
%1161 = load i32, i32* %47
%1162 = load double, double* %22
%1163 = load double*, double** %20
%1164 = call i32 (i32, i32, double, double*, ...) bitcast (i32 (...)* @FindSpan to i32 (i32, i32, double, double*, ...)*)(i32 %1160, i32 %1161, double %1162, double* %1163)
%1165 = load i32*, i32** %49
%1166 = getelementptr inbounds i32, i32* %1165, i64 0
store i32 %1164, i32* %1166
%1167 = load i32*, i32** %49
%1168 = getelementptr inbounds i32, i32* %1167, i64 0
%1169 = load i32, i32* %1168
%1170 = load double, double* %22
%1171 = load i32, i32* %47
%1172 = load double*, double** %20
%1173 = load double*, double** %56
%1174 = load double*, double** %53
%1175 = load double*, double** %54
%1176 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %1169, double %1170, i32 %1171, double* %1172, double* %1173, double* %1174, double* %1175)
%1177 = load i32*, i32** %49
%1178 = getelementptr inbounds i32, i32* %1177, i64 0
%1179 = load i32, i32* %1178
%1180 = load i32, i32* %47
%1181 = sub nsw i32 %1179, %1180
store i32 %1181, i32* %50
store double 0.000000e+00, double* %59
store i32 0, i32* %30
br label %1182
1182: ; preds = %1248, %1159
%1183 = load i32, i32* %30
%1184 = load i32, i32* %47
%1185 = icmp sle i32 %1183, %1184
br i1 %1185, label %1186, label %1251
1186: ; preds = %1182
%1187 = load i32, i32* %50
%1188 = load i32, i32* %30
%1189 = add nsw i32 %1187, %1188
%1190 = mul nsw i32 4, %1189
store i32 %1190, i32* %34
%1191 = load double*, double** %56
%1192 = load i32, i32* %30
%1193 = sext i32 %1192 to i64
%1194 = getelementptr inbounds double, double* %1191, i64 %1193
%1195 = load double, double* %1194
%1196 = load double*, double** %17
%1197 = load i32, i32* %34
%1198 = sext i32 %1197 to i64
%1199 = getelementptr inbounds double, double* %1196, i64 %1198
%1200 = load double, double* %1199
%1201 = load double*, double** %28
%1202 = getelementptr inbounds double, double* %1201, i64 0
%1203 = load double, double* %1202
%1204 = call double @llvm.fmuladd.f64(double %1195, double %1200, double %1203)
store double %1204, double* %1202
%1205 = load double*, double** %56
%1206 = load i32, i32* %30
%1207 = sext i32 %1206 to i64
%1208 = getelementptr inbounds double, double* %1205, i64 %1207
%1209 = load double, double* %1208
%1210 = load double*, double** %17
%1211 = load i32, i32* %34
%1212 = add nsw i32 %1211, 1
%1213 = sext i32 %1212 to i64
%1214 = getelementptr inbounds double, double* %1210, i64 %1213
%1215 = load double, double* %1214
%1216 = load double*, double** %28
%1217 = getelementptr inbounds double, double* %1216, i64 1
%1218 = load double, double* %1217
%1219 = call double @llvm.fmuladd.f64(double %1209, double %1215, double %1218)
store double %1219, double* %1217
%1220 = load double*, double** %56
%1221 = load i32, i32* %30
%1222 = sext i32 %1221 to i64
%1223 = getelementptr inbounds double, double* %1220, i64 %1222
%1224 = load double, double* %1223
%1225 = load double*, double** %17
%1226 = load i32, i32* %34
%1227 = add nsw i32 %1226, 2
%1228 = sext i32 %1227 to i64
%1229 = getelementptr inbounds double, double* %1225, i64 %1228
%1230 = load double, double* %1229
%1231 = load double*, double** %28
%1232 = getelementptr inbounds double, double* %1231, i64 2
%1233 = load double, double* %1232
%1234 = call double @llvm.fmuladd.f64(double %1224, double %1230, double %1233)
store double %1234, double* %1232
%1235 = load double*, double** %56
%1236 = load i32, i32* %30
%1237 = sext i32 %1236 to i64
%1238 = getelementptr inbounds double, double* %1235, i64 %1237
%1239 = load double, double* %1238
%1240 = load double*, double** %17
%1241 = load i32, i32* %34
%1242 = add nsw i32 %1241, 3
%1243 = sext i32 %1242 to i64
%1244 = getelementptr inbounds double, double* %1240, i64 %1243
%1245 = load double, double* %1244
%1246 = load double, double* %59
%1247 = call double @llvm.fmuladd.f64(double %1239, double %1245, double %1246)
store double %1247, double* %59
br label %1248
1248: ; preds = %1186
%1249 = load i32, i32* %30
%1250 = add nsw i32 %1249, 1
store i32 %1250, i32* %30
br label %1182
1251: ; preds = %1182
%1252 = load double*, double** %28
%1253 = getelementptr inbounds double, double* %1252, i64 0
%1254 = load double, double* %1253
%1255 = load double, double* %59
%1256 = fdiv double %1254, %1255
%1257 = load double*, double** %28
%1258 = getelementptr inbounds double, double* %1257, i64 0
store double %1256, double* %1258
%1259 = load double*, double** %28
%1260 = getelementptr inbounds double, double* %1259, i64 1
%1261 = load double, double* %1260
%1262 = load double, double* %59
%1263 = fdiv double %1261, %1262
%1264 = load double*, double** %28
%1265 = getelementptr inbounds double, double* %1264, i64 1
store double %1263, double* %1265
%1266 = load double*, double** %28
%1267 = getelementptr inbounds double, double* %1266, i64 2
%1268 = load double, double* %1267
%1269 = load double, double* %59
%1270 = fdiv double %1268, %1269
%1271 = load double*, double** %28
%1272 = getelementptr inbounds double, double* %1271, i64 2
store double %1270, double* %1272
%1273 = load double, double* %22
store double %1273, double* %57
store i32 1, i32* %31
br label %1274
1274: ; preds = %1447, %1251
%1275 = load i32, i32* %31
%1276 = load i32, i32* %24
%1277 = icmp slt i32 %1275, %1276
br i1 %1277, label %1278, label %1450
1278: ; preds = %1274
%1279 = load i32, i32* %31
%1280 = mul nsw i32 3, %1279
store i32 %1280, i32* %35
%1281 = load i32, i32* %31
%1282 = load i32, i32* %15
%1283 = mul nsw i32 %1281, %1282
store i32 %1283, i32* %36
%1284 = load double, double* %23
%1285 = load double, double* %57
%1286 = fadd double %1285, %1284
store double %1286, double* %57
%1287 = load i32, i32* %18
%1288 = load double, double* %57
%1289 = load double*, double** %20
%1290 = load i32*, i32** %49
%1291 = load i32, i32* %31
%1292 = sub nsw i32 %1291, 1
%1293 = sext i32 %1292 to i64
%1294 = getelementptr inbounds i32, i32* %1290, i64 %1293
%1295 = load i32, i32* %1294
%1296 = call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %1287, double %1288, double* %1289, i32 %1295)
%1297 = load i32*, i32** %49
%1298 = load i32, i32* %31
%1299 = sext i32 %1298 to i64
%1300 = getelementptr inbounds i32, i32* %1297, i64 %1299
store i32 %1296, i32* %1300
%1301 = load i32*, i32** %49
%1302 = load i32, i32* %31
%1303 = sext i32 %1302 to i64
%1304 = getelementptr inbounds i32, i32* %1301, i64 %1303
%1305 = load i32, i32* %1304
%1306 = load double, double* %57
%1307 = load i32, i32* %47
%1308 = load double*, double** %20
%1309 = load double*, double** %56
%1310 = load i32, i32* %36
%1311 = sext i32 %1310 to i64
%1312 = getelementptr inbounds double, double* %1309, i64 %1311
%1313 = load double*, double** %53
%1314 = load double*, double** %54
%1315 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %1305, double %1306, i32 %1307, double* %1308, double* %1312, double* %1313, double* %1314)
%1316 = load i32, i32* %50
%1317 = load i32*, i32** %49
%1318 = load i32, i32* %31
%1319 = sub nsw i32 %1318, 1
%1320 = sext i32 %1319 to i64
%1321 = getelementptr inbounds i32, i32* %1317, i64 %1320
store i32 %1316, i32* %1321
%1322 = load i32*, i32** %49
%1323 = load i32, i32* %31
%1324 = sext i32 %1323 to i64
%1325 = getelementptr inbounds i32, i32* %1322, i64 %1324
%1326 = load i32, i32* %1325
%1327 = load i32, i32* %47
%1328 = sub nsw i32 %1326, %1327
store i32 %1328, i32* %50
store double 0.000000e+00, double* %59
store i32 0, i32* %30
br label %1329
1329: ; preds = %1406, %1278
%1330 = load i32, i32* %30
%1331 = load i32, i32* %47
%1332 = icmp sle i32 %1330, %1331
br i1 %1332, label %1333, label %1409
1333: ; preds = %1329
%1334 = load i32, i32* %50
%1335 = load i32, i32* %30
%1336 = add nsw i32 %1334, %1335
%1337 = mul nsw i32 4, %1336
store i32 %1337, i32* %34
%1338 = load i32, i32* %36
%1339 = load i32, i32* %30
%1340 = add nsw i32 %1338, %1339
store i32 %1340, i32* %37
%1341 = load double*, double** %56
%1342 = load i32, i32* %37
%1343 = sext i32 %1342 to i64
%1344 = getelementptr inbounds double, double* %1341, i64 %1343
%1345 = load double, double* %1344
%1346 = load double*, double** %17
%1347 = load i32, i32* %34
%1348 = sext i32 %1347 to i64
%1349 = getelementptr inbounds double, double* %1346, i64 %1348
%1350 = load double, double* %1349
%1351 = load double*, double** %28
%1352 = load i32, i32* %35
%1353 = sext i32 %1352 to i64
%1354 = getelementptr inbounds double, double* %1351, i64 %1353
%1355 = load double, double* %1354
%1356 = call double @llvm.fmuladd.f64(double %1345, double %1350, double %1355)
store double %1356, double* %1354
%1357 = load double*, double** %56
%1358 = load i32, i32* %37
%1359 = sext i32 %1358 to i64
%1360 = getelementptr inbounds double, double* %1357, i64 %1359
%1361 = load double, double* %1360
%1362 = load double*, double** %17
%1363 = load i32, i32* %34
%1364 = add nsw i32 %1363, 1
%1365 = sext i32 %1364 to i64
%1366 = getelementptr inbounds double, double* %1362, i64 %1365
%1367 = load double, double* %1366
%1368 = load double*, double** %28
%1369 = load i32, i32* %35
%1370 = add nsw i32 %1369, 1
%1371 = sext i32 %1370 to i64
%1372 = getelementptr inbounds double, double* %1368, i64 %1371
%1373 = load double, double* %1372
%1374 = call double @llvm.fmuladd.f64(double %1361, double %1367, double %1373)
store double %1374, double* %1372
%1375 = load double*, double** %56
%1376 = load i32, i32* %37
%1377 = sext i32 %1376 to i64
%1378 = getelementptr inbounds double, double* %1375, i64 %1377
%1379 = load double, double* %1378
%1380 = load double*, double** %17
%1381 = load i32, i32* %34
%1382 = add nsw i32 %1381, 2
%1383 = sext i32 %1382 to i64
%1384 = getelementptr inbounds double, double* %1380, i64 %1383
%1385 = load double, double* %1384
%1386 = load double*, double** %28
%1387 = load i32, i32* %35
%1388 = add nsw i32 %1387, 2
%1389 = sext i32 %1388 to i64
%1390 = getelementptr inbounds double, double* %1386, i64 %1389
%1391 = load double, double* %1390
%1392 = call double @llvm.fmuladd.f64(double %1379, double %1385, double %1391)
store double %1392, double* %1390
%1393 = load double*, double** %56
%1394 = load i32, i32* %37
%1395 = sext i32 %1394 to i64
%1396 = getelementptr inbounds double, double* %1393, i64 %1395
%1397 = load double, double* %1396
%1398 = load double*, double** %17
%1399 = load i32, i32* %34
%1400 = add nsw i32 %1399, 3
%1401 = sext i32 %1400 to i64
%1402 = getelementptr inbounds double, double* %1398, i64 %1401
%1403 = load double, double* %1402
%1404 = load double, double* %59
%1405 = call double @llvm.fmuladd.f64(double %1397, double %1403, double %1404)
store double %1405, double* %59
br label %1406
1406: ; preds = %1333
%1407 = load i32, i32* %30
%1408 = add nsw i32 %1407, 1
store i32 %1408, i32* %30
br label %1329
1409: ; preds = %1329
%1410 = load double*, double** %28
%1411 = load i32, i32* %35
%1412 = sext i32 %1411 to i64
%1413 = getelementptr inbounds double, double* %1410, i64 %1412
%1414 = load double, double* %1413
%1415 = load double, double* %59
%1416 = fdiv double %1414, %1415
%1417 = load double*, double** %28
%1418 = load i32, i32* %35
%1419 = sext i32 %1418 to i64
%1420 = getelementptr inbounds double, double* %1417, i64 %1419
store double %1416, double* %1420
%1421 = load double*, double** %28
%1422 = load i32, i32* %35
%1423 = add nsw i32 %1422, 1
%1424 = sext i32 %1423 to i64
%1425 = getelementptr inbounds double, double* %1421, i64 %1424
%1426 = load double, double* %1425
%1427 = load double, double* %59
%1428 = fdiv double %1426, %1427
%1429 = load double*, double** %28
%1430 = load i32, i32* %35
%1431 = add nsw i32 %1430, 1
%1432 = sext i32 %1431 to i64
%1433 = getelementptr inbounds double, double* %1429, i64 %1432
store double %1428, double* %1433
%1434 = load double*, double** %28
%1435 = load i32, i32* %35
%1436 = add nsw i32 %1435, 2
%1437 = sext i32 %1436 to i64
%1438 = getelementptr inbounds double, double* %1434, i64 %1437
%1439 = load double, double* %1438
%1440 = load double, double* %59
%1441 = fdiv double %1439, %1440
%1442 = load double*, double** %28
%1443 = load i32, i32* %35
%1444 = add nsw i32 %1443, 2
%1445 = sext i32 %1444 to i64
%1446 = getelementptr inbounds double, double* %1442, i64 %1445
store double %1441, double* %1446
br label %1447
1447: ; preds = %1409
%1448 = load i32, i32* %31
%1449 = add nsw i32 %1448, 1
store i32 %1449, i32* %31
br label %1274
1450: ; preds = %1274
%1451 = load i32, i32* %50
%1452 = load i32*, i32** %49
%1453 = load i32, i32* %41
%1454 = sext i32 %1453 to i64
%1455 = getelementptr inbounds i32, i32* %1452, i64 %1454
store i32 %1451, i32* %1455
%1456 = load i32, i32* %48
store i32 %1456, i32* %51
%1457 = load double, double* %25
store double %1457, double* %58
store i32 1, i32* %32
br label %1458
1458: ; preds = %1637, %1450
%1459 = load i32, i32* %32
%1460 = load i32, i32* %42
%1461 = icmp slt i32 %1459, %1460
br i1 %1461, label %1462, label %1640
1462: ; preds = %1458
%1463 = load double, double* %26
%1464 = load double, double* %58
%1465 = fadd double %1464, %1463
store double %1465, double* %58
%1466 = load i32, i32* %19
%1467 = load double, double* %58
%1468 = load double*, double** %21
%1469 = load i32, i32* %51
%1470 = call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %1466, double %1467, double* %1468, i32 %1469)
store i32 %1470, i32* %51
%1471 = load i32, i32* %51
%1472 = load double, double* %58
%1473 = load i32, i32* %48
%1474 = load double*, double** %21
%1475 = load double*, double** %55
%1476 = load double*, double** %53
%1477 = load double*, double** %54
%1478 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %1471, double %1472, i32 %1473, double* %1474, double* %1475, double* %1476, double* %1477)
%1479 = load i32, i32* %51
%1480 = load i32, i32* %48
%1481 = sub nsw i32 %1479, %1480
store i32 %1481, i32* %52
%1482 = load i32, i32* %32
%1483 = load i32, i32* %24
%1484 = mul nsw i32 %1482, %1483
store i32 %1484, i32* %38
%1485 = load i32, i32* %52
%1486 = load i32, i32* %18
%1487 = mul nsw i32 %1485, %1486
store i32 %1487, i32* %40
store i32 0, i32* %31
br label %1488
1488: ; preds = %1633, %1462
%1489 = load i32, i32* %31
%1490 = load i32, i32* %24
%1491 = icmp slt i32 %1489, %1490
br i1 %1491, label %1492, label %1636
1492: ; preds = %1488
%1493 = load i32, i32* %31
%1494 = load i32, i32* %38
%1495 = add nsw i32 %1493, %1494
%1496 = mul nsw i32 3, %1495
store i32 %1496, i32* %35
%1497 = load i32, i32* %31
%1498 = load i32, i32* %15
%1499 = mul nsw i32 %1497, %1498
store i32 %1499, i32* %36
%1500 = load i32, i32* %40
%1501 = load i32*, i32** %49
%1502 = load i32, i32* %31
%1503 = sext i32 %1502 to i64
%1504 = getelementptr inbounds i32, i32* %1501, i64 %1503
%1505 = load i32, i32* %1504
%1506 = add nsw i32 %1500, %1505
store i32 %1506, i32* %39
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %1507
1507: ; preds = %1592, %1492
%1508 = load i32, i32* %29
%1509 = load i32, i32* %48
%1510 = icmp sle i32 %1508, %1509
br i1 %1510, label %1511, label %1595
1511: ; preds = %1507
%1512 = load i32, i32* %18
%1513 = load i32, i32* %29
%1514 = mul nsw i32 %1512, %1513
%1515 = load i32, i32* %39
%1516 = add nsw i32 %1514, %1515
store i32 %1516, i32* %33
store i32 0, i32* %30
br label %1517
1517: ; preds = %1588, %1511
%1518 = load i32, i32* %30
%1519 = load i32, i32* %47
%1520 = icmp sle i32 %1518, %1519
br i1 %1520, label %1521, label %1591
1521: ; preds = %1517
%1522 = load i32, i32* %33
%1523 = load i32, i32* %30
%1524 = add nsw i32 %1522, %1523
%1525 = mul nsw i32 4, %1524
store i32 %1525, i32* %34
%1526 = load double*, double** %55
%1527 = load i32, i32* %29
%1528 = sext i32 %1527 to i64
%1529 = getelementptr inbounds double, double* %1526, i64 %1528
%1530 = load double, double* %1529
%1531 = load double*, double** %56
%1532 = load i32, i32* %36
%1533 = load i32, i32* %30
%1534 = add nsw i32 %1532, %1533
%1535 = sext i32 %1534 to i64
%1536 = getelementptr inbounds double, double* %1531, i64 %1535
%1537 = load double, double* %1536
%1538 = fmul double %1530, %1537
store double %1538, double* %60
%1539 = load double, double* %60
%1540 = load double*, double** %17
%1541 = load i32, i32* %34
%1542 = sext i32 %1541 to i64
%1543 = getelementptr inbounds double, double* %1540, i64 %1542
%1544 = load double, double* %1543
%1545 = load double*, double** %28
%1546 = load i32, i32* %35
%1547 = sext i32 %1546 to i64
%1548 = getelementptr inbounds double, double* %1545, i64 %1547
%1549 = load double, double* %1548
%1550 = call double @llvm.fmuladd.f64(double %1539, double %1544, double %1549)
store double %1550, double* %1548
%1551 = load double, double* %60
%1552 = load double*, double** %17
%1553 = load i32, i32* %34
%1554 = add nsw i32 %1553, 1
%1555 = sext i32 %1554 to i64
%1556 = getelementptr inbounds double, double* %1552, i64 %1555
%1557 = load double, double* %1556
%1558 = load double*, double** %28
%1559 = load i32, i32* %35
%1560 = add nsw i32 %1559, 1
%1561 = sext i32 %1560 to i64
%1562 = getelementptr inbounds double, double* %1558, i64 %1561
%1563 = load double, double* %1562
%1564 = call double @llvm.fmuladd.f64(double %1551, double %1557, double %1563)
store double %1564, double* %1562
%1565 = load double, double* %60
%1566 = load double*, double** %17
%1567 = load i32, i32* %34
%1568 = add nsw i32 %1567, 2
%1569 = sext i32 %1568 to i64
%1570 = getelementptr inbounds double, double* %1566, i64 %1569
%1571 = load double, double* %1570
%1572 = load double*, double** %28
%1573 = load i32, i32* %35
%1574 = add nsw i32 %1573, 2
%1575 = sext i32 %1574 to i64
%1576 = getelementptr inbounds double, double* %1572, i64 %1575
%1577 = load double, double* %1576
%1578 = call double @llvm.fmuladd.f64(double %1565, double %1571, double %1577)
store double %1578, double* %1576
%1579 = load double, double* %60
%1580 = load double*, double** %17
%1581 = load i32, i32* %34
%1582 = add nsw i32 %1581, 3
%1583 = sext i32 %1582 to i64
%1584 = getelementptr inbounds double, double* %1580, i64 %1583
%1585 = load double, double* %1584
%1586 = load double, double* %59
%1587 = call double @llvm.fmuladd.f64(double %1579, double %1585, double %1586)
store double %1587, double* %59
br label %1588
1588: ; preds = %1521
%1589 = load i32, i32* %30
%1590 = add nsw i32 %1589, 1
store i32 %1590, i32* %30
br label %1517
1591: ; preds = %1517
br label %1592
1592: ; preds = %1591
%1593 = load i32, i32* %29
%1594 = add nsw i32 %1593, 1
store i32 %1594, i32* %29
br label %1507
1595: ; preds = %1507
%1596 = load double*, double** %28
%1597 = load i32, i32* %35
%1598 = sext i32 %1597 to i64
%1599 = getelementptr inbounds double, double* %1596, i64 %1598
%1600 = load double, double* %1599
%1601 = load double, double* %59
%1602 = fdiv double %1600, %1601
%1603 = load double*, double** %28
%1604 = load i32, i32* %35
%1605 = sext i32 %1604 to i64
%1606 = getelementptr inbounds double, double* %1603, i64 %1605
store double %1602, double* %1606
%1607 = load double*, double** %28
%1608 = load i32, i32* %35
%1609 = add nsw i32 %1608, 1
%1610 = sext i32 %1609 to i64
%1611 = getelementptr inbounds double, double* %1607, i64 %1610
%1612 = load double, double* %1611
%1613 = load double, double* %59
%1614 = fdiv double %1612, %1613
%1615 = load double*, double** %28
%1616 = load i32, i32* %35
%1617 = add nsw i32 %1616, 1
%1618 = sext i32 %1617 to i64
%1619 = getelementptr inbounds double, double* %1615, i64 %1618
store double %1614, double* %1619
%1620 = load double*, double** %28
%1621 = load i32, i32* %35
%1622 = add nsw i32 %1621, 2
%1623 = sext i32 %1622 to i64
%1624 = getelementptr inbounds double, double* %1620, i64 %1623
%1625 = load double, double* %1624
%1626 = load double, double* %59
%1627 = fdiv double %1625, %1626
%1628 = load double*, double** %28
%1629 = load i32, i32* %35
%1630 = add nsw i32 %1629, 2
%1631 = sext i32 %1630 to i64
%1632 = getelementptr inbounds double, double* %1628, i64 %1631
store double %1627, double* %1632
br label %1633
1633: ; preds = %1595
%1634 = load i32, i32* %31
%1635 = add nsw i32 %1634, 1
store i32 %1635, i32* %31
br label %1488
1636: ; preds = %1488
br label %1637
1637: ; preds = %1636
%1638 = load i32, i32* %32
%1639 = add nsw i32 %1638, 1
store i32 %1639, i32* %32
br label %1458
1640: ; preds = %1458
%1641 = load i32, i32* %42
%1642 = load i32, i32* %24
%1643 = mul nsw i32 %1641, %1642
store i32 %1643, i32* %38
%1644 = load i32, i32* %44
%1645 = load i32, i32* %18
%1646 = mul nsw i32 %1644, %1645
store i32 %1646, i32* %39
store i32 0, i32* %31
br label %1647
1647: ; preds = %1784, %1640
%1648 = load i32, i32* %31
%1649 = load i32, i32* %24
%1650 = icmp slt i32 %1648, %1649
br i1 %1650, label %1651, label %1787
1651: ; preds = %1647
%1652 = load i32, i32* %31
%1653 = load i32, i32* %38
%1654 = add nsw i32 %1652, %1653
%1655 = mul nsw i32 3, %1654
store i32 %1655, i32* %35
%1656 = load i32, i32* %31
%1657 = load i32, i32* %15
%1658 = mul nsw i32 %1656, %1657
store i32 %1658, i32* %36
store double 0.000000e+00, double* %59
%1659 = load i32, i32* %39
%1660 = load i32*, i32** %49
%1661 = load i32, i32* %31
%1662 = sext i32 %1661 to i64
%1663 = getelementptr inbounds i32, i32* %1660, i64 %1662
%1664 = load i32, i32* %1663
%1665 = add nsw i32 %1659, %1664
store i32 %1665, i32* %33
store i32 0, i32* %30
br label %1666
1666: ; preds = %1743, %1651
%1667 = load i32, i32* %30
%1668 = load i32, i32* %47
%1669 = icmp sle i32 %1667, %1668
br i1 %1669, label %1670, label %1746
1670: ; preds = %1666
%1671 = load i32, i32* %33
%1672 = load i32, i32* %30
%1673 = add nsw i32 %1671, %1672
%1674 = mul nsw i32 4, %1673
store i32 %1674, i32* %34
%1675 = load i32, i32* %36
%1676 = load i32, i32* %30
%1677 = add nsw i32 %1675, %1676
store i32 %1677, i32* %37
%1678 = load double*, double** %56
%1679 = load i32, i32* %37
%1680 = sext i32 %1679 to i64
%1681 = getelementptr inbounds double, double* %1678, i64 %1680
%1682 = load double, double* %1681
%1683 = load double*, double** %17
%1684 = load i32, i32* %34
%1685 = sext i32 %1684 to i64
%1686 = getelementptr inbounds double, double* %1683, i64 %1685
%1687 = load double, double* %1686
%1688 = load double*, double** %28
%1689 = load i32, i32* %35
%1690 = sext i32 %1689 to i64
%1691 = getelementptr inbounds double, double* %1688, i64 %1690
%1692 = load double, double* %1691
%1693 = call double @llvm.fmuladd.f64(double %1682, double %1687, double %1692)
store double %1693, double* %1691
%1694 = load double*, double** %56
%1695 = load i32, i32* %37
%1696 = sext i32 %1695 to i64
%1697 = getelementptr inbounds double, double* %1694, i64 %1696
%1698 = load double, double* %1697
%1699 = load double*, double** %17
%1700 = load i32, i32* %34
%1701 = add nsw i32 %1700, 1
%1702 = sext i32 %1701 to i64
%1703 = getelementptr inbounds double, double* %1699, i64 %1702
%1704 = load double, double* %1703
%1705 = load double*, double** %28
%1706 = load i32, i32* %35
%1707 = add nsw i32 %1706, 1
%1708 = sext i32 %1707 to i64
%1709 = getelementptr inbounds double, double* %1705, i64 %1708
%1710 = load double, double* %1709
%1711 = call double @llvm.fmuladd.f64(double %1698, double %1704, double %1710)
store double %1711, double* %1709
%1712 = load double*, double** %56
%1713 = load i32, i32* %37
%1714 = sext i32 %1713 to i64
%1715 = getelementptr inbounds double, double* %1712, i64 %1714
%1716 = load double, double* %1715
%1717 = load double*, double** %17
%1718 = load i32, i32* %34
%1719 = add nsw i32 %1718, 2
%1720 = sext i32 %1719 to i64
%1721 = getelementptr inbounds double, double* %1717, i64 %1720
%1722 = load double, double* %1721
%1723 = load double*, double** %28
%1724 = load i32, i32* %35
%1725 = add nsw i32 %1724, 2
%1726 = sext i32 %1725 to i64
%1727 = getelementptr inbounds double, double* %1723, i64 %1726
%1728 = load double, double* %1727
%1729 = call double @llvm.fmuladd.f64(double %1716, double %1722, double %1728)
store double %1729, double* %1727
%1730 = load double*, double** %56
%1731 = load i32, i32* %37
%1732 = sext i32 %1731 to i64
%1733 = getelementptr inbounds double, double* %1730, i64 %1732
%1734 = load double, double* %1733
%1735 = load double*, double** %17
%1736 = load i32, i32* %34
%1737 = add nsw i32 %1736, 3
%1738 = sext i32 %1737 to i64
%1739 = getelementptr inbounds double, double* %1735, i64 %1738
%1740 = load double, double* %1739
%1741 = load double, double* %59
%1742 = call double @llvm.fmuladd.f64(double %1734, double %1740, double %1741)
store double %1742, double* %59
br label %1743
1743: ; preds = %1670
%1744 = load i32, i32* %30
%1745 = add nsw i32 %1744, 1
store i32 %1745, i32* %30
br label %1666
1746: ; preds = %1666
%1747 = load double*, double** %28
%1748 = load i32, i32* %35
%1749 = sext i32 %1748 to i64
%1750 = getelementptr inbounds double, double* %1747, i64 %1749
%1751 = load double, double* %1750
%1752 = load double, double* %59
%1753 = fdiv double %1751, %1752
%1754 = load double*, double** %28
%1755 = load i32, i32* %35
%1756 = sext i32 %1755 to i64
%1757 = getelementptr inbounds double, double* %1754, i64 %1756
store double %1753, double* %1757
%1758 = load double*, double** %28
%1759 = load i32, i32* %35
%1760 = add nsw i32 %1759, 1
%1761 = sext i32 %1760 to i64
%1762 = getelementptr inbounds double, double* %1758, i64 %1761
%1763 = load double, double* %1762
%1764 = load double, double* %59
%1765 = fdiv double %1763, %1764
%1766 = load double*, double** %28
%1767 = load i32, i32* %35
%1768 = add nsw i32 %1767, 1
%1769 = sext i32 %1768 to i64
%1770 = getelementptr inbounds double, double* %1766, i64 %1769
store double %1765, double* %1770
%1771 = load double*, double** %28
%1772 = load i32, i32* %35
%1773 = add nsw i32 %1772, 2
%1774 = sext i32 %1773 to i64
%1775 = getelementptr inbounds double, double* %1771, i64 %1774
%1776 = load double, double* %1775
%1777 = load double, double* %59
%1778 = fdiv double %1776, %1777
%1779 = load double*, double** %28
%1780 = load i32, i32* %35
%1781 = add nsw i32 %1780, 2
%1782 = sext i32 %1781 to i64
%1783 = getelementptr inbounds double, double* %1779, i64 %1782
store double %1778, double* %1783
br label %1784
1784: ; preds = %1746
%1785 = load i32, i32* %31
%1786 = add nsw i32 %1785, 1
store i32 %1786, i32* %31
br label %1647
1787: ; preds = %1647
br label %3178
1788: ; preds = %1156
%1789 = load i8, i8* %61
%1790 = icmp ne i8 %1789, 0
br i1 %1790, label %1791, label %2654
1791: ; preds = %1788
%1792 = load i32, i32* %47
%1793 = load i32*, i32** %49
%1794 = getelementptr inbounds i32, i32* %1793, i64 0
store i32 %1792, i32* %1794
store i32 0, i32* %50
%1795 = load i32, i32* %19
%1796 = load i32, i32* %48
%1797 = load double, double* %25
%1798 = load double*, double** %21
%1799 = call i32 (i32, i32, double, double*, ...) bitcast (i32 (...)* @FindSpan to i32 (i32, i32, double, double*, ...)*)(i32 %1795, i32 %1796, double %1797, double* %1798)
store i32 %1799, i32* %51
%1800 = load i32, i32* %51
%1801 = load double, double* %25
%1802 = load i32, i32* %48
%1803 = load double*, double** %21
%1804 = load double*, double** %55
%1805 = load double*, double** %53
%1806 = load double*, double** %54
%1807 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %1800, double %1801, i32 %1802, double* %1803, double* %1804, double* %1805, double* %1806)
%1808 = load i32, i32* %51
%1809 = load i32, i32* %48
%1810 = sub nsw i32 %1808, %1809
store i32 %1810, i32* %52
%1811 = load i32, i32* %52
%1812 = load i32, i32* %18
%1813 = mul nsw i32 %1811, %1812
store i32 %1813, i32* %40
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %1814
1814: ; preds = %1881, %1791
%1815 = load i32, i32* %29
%1816 = load i32, i32* %48
%1817 = icmp sle i32 %1815, %1816
br i1 %1817, label %1818, label %1884
1818: ; preds = %1814
%1819 = load i32, i32* %45
%1820 = load i32, i32* %52
%1821 = load i32, i32* %29
%1822 = add nsw i32 %1820, %1821
%1823 = mul nsw i32 %1819, %1822
store i32 %1823, i32* %34
%1824 = load double*, double** %55
%1825 = load i32, i32* %29
%1826 = sext i32 %1825 to i64
%1827 = getelementptr inbounds double, double* %1824, i64 %1826
%1828 = load double, double* %1827
%1829 = load double*, double** %17
%1830 = load i32, i32* %34
%1831 = sext i32 %1830 to i64
%1832 = getelementptr inbounds double, double* %1829, i64 %1831
%1833 = load double, double* %1832
%1834 = load double*, double** %28
%1835 = getelementptr inbounds double, double* %1834, i64 0
%1836 = load double, double* %1835
%1837 = call double @llvm.fmuladd.f64(double %1828, double %1833, double %1836)
store double %1837, double* %1835
%1838 = load double*, double** %55
%1839 = load i32, i32* %29
%1840 = sext i32 %1839 to i64
%1841 = getelementptr inbounds double, double* %1838, i64 %1840
%1842 = load double, double* %1841
%1843 = load double*, double** %17
%1844 = load i32, i32* %34
%1845 = add nsw i32 %1844, 1
%1846 = sext i32 %1845 to i64
%1847 = getelementptr inbounds double, double* %1843, i64 %1846
%1848 = load double, double* %1847
%1849 = load double*, double** %28
%1850 = getelementptr inbounds double, double* %1849, i64 1
%1851 = load double, double* %1850
%1852 = call double @llvm.fmuladd.f64(double %1842, double %1848, double %1851)
store double %1852, double* %1850
%1853 = load double*, double** %55
%1854 = load i32, i32* %29
%1855 = sext i32 %1854 to i64
%1856 = getelementptr inbounds double, double* %1853, i64 %1855
%1857 = load double, double* %1856
%1858 = load double*, double** %17
%1859 = load i32, i32* %34
%1860 = add nsw i32 %1859, 2
%1861 = sext i32 %1860 to i64
%1862 = getelementptr inbounds double, double* %1858, i64 %1861
%1863 = load double, double* %1862
%1864 = load double*, double** %28
%1865 = getelementptr inbounds double, double* %1864, i64 2
%1866 = load double, double* %1865
%1867 = call double @llvm.fmuladd.f64(double %1857, double %1863, double %1866)
store double %1867, double* %1865
%1868 = load double*, double** %55
%1869 = load i32, i32* %29
%1870 = sext i32 %1869 to i64
%1871 = getelementptr inbounds double, double* %1868, i64 %1870
%1872 = load double, double* %1871
%1873 = load double*, double** %17
%1874 = load i32, i32* %34
%1875 = add nsw i32 %1874, 3
%1876 = sext i32 %1875 to i64
%1877 = getelementptr inbounds double, double* %1873, i64 %1876
%1878 = load double, double* %1877
%1879 = load double, double* %59
%1880 = call double @llvm.fmuladd.f64(double %1872, double %1878, double %1879)
store double %1880, double* %59
br label %1881
1881: ; preds = %1818
%1882 = load i32, i32* %29
%1883 = add nsw i32 %1882, 1
store i32 %1883, i32* %29
br label %1814
1884: ; preds = %1814
%1885 = load double*, double** %28
%1886 = getelementptr inbounds double, double* %1885, i64 0
%1887 = load double, double* %1886
%1888 = load double, double* %59
%1889 = fdiv double %1887, %1888
%1890 = load double*, double** %28
%1891 = getelementptr inbounds double, double* %1890, i64 0
store double %1889, double* %1891
%1892 = load double*, double** %28
%1893 = getelementptr inbounds double, double* %1892, i64 1
%1894 = load double, double* %1893
%1895 = load double, double* %59
%1896 = fdiv double %1894, %1895
%1897 = load double*, double** %28
%1898 = getelementptr inbounds double, double* %1897, i64 1
store double %1896, double* %1898
%1899 = load double*, double** %28
%1900 = getelementptr inbounds double, double* %1899, i64 2
%1901 = load double, double* %1900
%1902 = load double, double* %59
%1903 = fdiv double %1901, %1902
%1904 = load double*, double** %28
%1905 = getelementptr inbounds double, double* %1904, i64 2
store double %1903, double* %1905
%1906 = load double, double* %22
store double %1906, double* %57
store i32 1, i32* %31
br label %1907
1907: ; preds = %2091, %1884
%1908 = load i32, i32* %31
%1909 = load i32, i32* %41
%1910 = icmp slt i32 %1908, %1909
br i1 %1910, label %1911, label %2094
1911: ; preds = %1907
%1912 = load i32, i32* %31
%1913 = mul nsw i32 3, %1912
store i32 %1913, i32* %35
%1914 = load i32, i32* %31
%1915 = load i32, i32* %15
%1916 = mul nsw i32 %1914, %1915
store i32 %1916, i32* %36
%1917 = load double, double* %23
%1918 = load double, double* %57
%1919 = fadd double %1918, %1917
store double %1919, double* %57
%1920 = load i32, i32* %18
%1921 = load double, double* %57
%1922 = load double*, double** %20
%1923 = load i32*, i32** %49
%1924 = load i32, i32* %31
%1925 = sub nsw i32 %1924, 1
%1926 = sext i32 %1925 to i64
%1927 = getelementptr inbounds i32, i32* %1923, i64 %1926
%1928 = load i32, i32* %1927
%1929 = call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %1920, double %1921, double* %1922, i32 %1928)
%1930 = load i32*, i32** %49
%1931 = load i32, i32* %31
%1932 = sext i32 %1931 to i64
%1933 = getelementptr inbounds i32, i32* %1930, i64 %1932
store i32 %1929, i32* %1933
%1934 = load i32*, i32** %49
%1935 = load i32, i32* %31
%1936 = sext i32 %1935 to i64
%1937 = getelementptr inbounds i32, i32* %1934, i64 %1936
%1938 = load i32, i32* %1937
%1939 = load double, double* %57
%1940 = load i32, i32* %47
%1941 = load double*, double** %20
%1942 = load double*, double** %56
%1943 = load i32, i32* %36
%1944 = sext i32 %1943 to i64
%1945 = getelementptr inbounds double, double* %1942, i64 %1944
%1946 = load double*, double** %53
%1947 = load double*, double** %54
%1948 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %1938, double %1939, i32 %1940, double* %1941, double* %1945, double* %1946, double* %1947)
%1949 = load i32, i32* %50
%1950 = load i32*, i32** %49
%1951 = load i32, i32* %31
%1952 = sub nsw i32 %1951, 1
%1953 = sext i32 %1952 to i64
%1954 = getelementptr inbounds i32, i32* %1950, i64 %1953
store i32 %1949, i32* %1954
%1955 = load i32*, i32** %49
%1956 = load i32, i32* %31
%1957 = sext i32 %1956 to i64
%1958 = getelementptr inbounds i32, i32* %1955, i64 %1957
%1959 = load i32, i32* %1958
%1960 = load i32, i32* %47
%1961 = sub nsw i32 %1959, %1960
store i32 %1961, i32* %50
%1962 = load i32, i32* %40
%1963 = load i32, i32* %50
%1964 = add nsw i32 %1962, %1963
store i32 %1964, i32* %39
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %1965
1965: ; preds = %2050, %1911
%1966 = load i32, i32* %29
%1967 = load i32, i32* %48
%1968 = icmp sle i32 %1966, %1967
br i1 %1968, label %1969, label %2053
1969: ; preds = %1965
%1970 = load i32, i32* %18
%1971 = load i32, i32* %29
%1972 = mul nsw i32 %1970, %1971
%1973 = load i32, i32* %39
%1974 = add nsw i32 %1972, %1973
store i32 %1974, i32* %33
store i32 0, i32* %30
br label %1975
1975: ; preds = %2046, %1969
%1976 = load i32, i32* %30
%1977 = load i32, i32* %47
%1978 = icmp sle i32 %1976, %1977
br i1 %1978, label %1979, label %2049
1979: ; preds = %1975
%1980 = load i32, i32* %33
%1981 = load i32, i32* %30
%1982 = add nsw i32 %1980, %1981
%1983 = mul nsw i32 4, %1982
store i32 %1983, i32* %34
%1984 = load double*, double** %55
%1985 = load i32, i32* %29
%1986 = sext i32 %1985 to i64
%1987 = getelementptr inbounds double, double* %1984, i64 %1986
%1988 = load double, double* %1987
%1989 = load double*, double** %56
%1990 = load i32, i32* %36
%1991 = load i32, i32* %30
%1992 = add nsw i32 %1990, %1991
%1993 = sext i32 %1992 to i64
%1994 = getelementptr inbounds double, double* %1989, i64 %1993
%1995 = load double, double* %1994
%1996 = fmul double %1988, %1995
store double %1996, double* %60
%1997 = load double, double* %60
%1998 = load double*, double** %17
%1999 = load i32, i32* %34
%2000 = sext i32 %1999 to i64
%2001 = getelementptr inbounds double, double* %1998, i64 %2000
%2002 = load double, double* %2001
%2003 = load double*, double** %28
%2004 = load i32, i32* %35
%2005 = sext i32 %2004 to i64
%2006 = getelementptr inbounds double, double* %2003, i64 %2005
%2007 = load double, double* %2006
%2008 = call double @llvm.fmuladd.f64(double %1997, double %2002, double %2007)
store double %2008, double* %2006
%2009 = load double, double* %60
%2010 = load double*, double** %17
%2011 = load i32, i32* %34
%2012 = add nsw i32 %2011, 1
%2013 = sext i32 %2012 to i64
%2014 = getelementptr inbounds double, double* %2010, i64 %2013
%2015 = load double, double* %2014
%2016 = load double*, double** %28
%2017 = load i32, i32* %35
%2018 = add nsw i32 %2017, 1
%2019 = sext i32 %2018 to i64
%2020 = getelementptr inbounds double, double* %2016, i64 %2019
%2021 = load double, double* %2020
%2022 = call double @llvm.fmuladd.f64(double %2009, double %2015, double %2021)
store double %2022, double* %2020
%2023 = load double, double* %60
%2024 = load double*, double** %17
%2025 = load i32, i32* %34
%2026 = add nsw i32 %2025, 2
%2027 = sext i32 %2026 to i64
%2028 = getelementptr inbounds double, double* %2024, i64 %2027
%2029 = load double, double* %2028
%2030 = load double*, double** %28
%2031 = load i32, i32* %35
%2032 = add nsw i32 %2031, 2
%2033 = sext i32 %2032 to i64
%2034 = getelementptr inbounds double, double* %2030, i64 %2033
%2035 = load double, double* %2034
%2036 = call double @llvm.fmuladd.f64(double %2023, double %2029, double %2035)
store double %2036, double* %2034
%2037 = load double, double* %60
%2038 = load double*, double** %17
%2039 = load i32, i32* %34
%2040 = add nsw i32 %2039, 3
%2041 = sext i32 %2040 to i64
%2042 = getelementptr inbounds double, double* %2038, i64 %2041
%2043 = load double, double* %2042
%2044 = load double, double* %59
%2045 = call double @llvm.fmuladd.f64(double %2037, double %2043, double %2044)
store double %2045, double* %59
br label %2046
2046: ; preds = %1979
%2047 = load i32, i32* %30
%2048 = add nsw i32 %2047, 1
store i32 %2048, i32* %30
br label %1975
2049: ; preds = %1975
br label %2050
2050: ; preds = %2049
%2051 = load i32, i32* %29
%2052 = add nsw i32 %2051, 1
store i32 %2052, i32* %29
br label %1965
2053: ; preds = %1965
%2054 = load double*, double** %28
%2055 = load i32, i32* %35
%2056 = sext i32 %2055 to i64
%2057 = getelementptr inbounds double, double* %2054, i64 %2056
%2058 = load double, double* %2057
%2059 = load double, double* %59
%2060 = fdiv double %2058, %2059
%2061 = load double*, double** %28
%2062 = load i32, i32* %35
%2063 = sext i32 %2062 to i64
%2064 = getelementptr inbounds double, double* %2061, i64 %2063
store double %2060, double* %2064
%2065 = load double*, double** %28
%2066 = load i32, i32* %35
%2067 = add nsw i32 %2066, 1
%2068 = sext i32 %2067 to i64
%2069 = getelementptr inbounds double, double* %2065, i64 %2068
%2070 = load double, double* %2069
%2071 = load double, double* %59
%2072 = fdiv double %2070, %2071
%2073 = load double*, double** %28
%2074 = load i32, i32* %35
%2075 = add nsw i32 %2074, 1
%2076 = sext i32 %2075 to i64
%2077 = getelementptr inbounds double, double* %2073, i64 %2076
store double %2072, double* %2077
%2078 = load double*, double** %28
%2079 = load i32, i32* %35
%2080 = add nsw i32 %2079, 2
%2081 = sext i32 %2080 to i64
%2082 = getelementptr inbounds double, double* %2078, i64 %2081
%2083 = load double, double* %2082
%2084 = load double, double* %59
%2085 = fdiv double %2083, %2084
%2086 = load double*, double** %28
%2087 = load i32, i32* %35
%2088 = add nsw i32 %2087, 2
%2089 = sext i32 %2088 to i64
%2090 = getelementptr inbounds double, double* %2086, i64 %2089
store double %2085, double* %2090
br label %2091
2091: ; preds = %2053
%2092 = load i32, i32* %31
%2093 = add nsw i32 %2092, 1
store i32 %2093, i32* %31
br label %1907
2094: ; preds = %1907
%2095 = load i32, i32* %50
%2096 = load i32*, i32** %49
%2097 = load i32, i32* %24
%2098 = sub nsw i32 %2097, 2
%2099 = sext i32 %2098 to i64
%2100 = getelementptr inbounds i32, i32* %2096, i64 %2099
store i32 %2095, i32* %2100
%2101 = load i32, i32* %41
%2102 = mul nsw i32 3, %2101
store i32 %2102, i32* %35
%2103 = load i32, i32* %41
%2104 = load i32, i32* %15
%2105 = mul nsw i32 %2103, %2104
store i32 %2105, i32* %36
%2106 = load i32, i32* %45
%2107 = load i32, i32* %52
%2108 = mul nsw i32 %2106, %2107
%2109 = load i32, i32* %46
%2110 = add nsw i32 %2108, %2109
store i32 %2110, i32* %33
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %2111
2111: ; preds = %2186, %2094
%2112 = load i32, i32* %29
%2113 = load i32, i32* %48
%2114 = icmp sle i32 %2112, %2113
br i1 %2114, label %2115, label %2189
2115: ; preds = %2111
%2116 = load i32, i32* %45
%2117 = load i32, i32* %29
%2118 = mul nsw i32 %2116, %2117
%2119 = load i32, i32* %33
%2120 = add nsw i32 %2118, %2119
store i32 %2120, i32* %34
%2121 = load double*, double** %55
%2122 = load i32, i32* %29
%2123 = sext i32 %2122 to i64
%2124 = getelementptr inbounds double, double* %2121, i64 %2123
%2125 = load double, double* %2124
%2126 = load double*, double** %17
%2127 = load i32, i32* %34
%2128 = sext i32 %2127 to i64
%2129 = getelementptr inbounds double, double* %2126, i64 %2128
%2130 = load double, double* %2129
%2131 = load double*, double** %28
%2132 = load i32, i32* %35
%2133 = sext i32 %2132 to i64
%2134 = getelementptr inbounds double, double* %2131, i64 %2133
%2135 = load double, double* %2134
%2136 = call double @llvm.fmuladd.f64(double %2125, double %2130, double %2135)
store double %2136, double* %2134
%2137 = load double*, double** %55
%2138 = load i32, i32* %29
%2139 = sext i32 %2138 to i64
%2140 = getelementptr inbounds double, double* %2137, i64 %2139
%2141 = load double, double* %2140
%2142 = load double*, double** %17
%2143 = load i32, i32* %34
%2144 = add nsw i32 %2143, 1
%2145 = sext i32 %2144 to i64
%2146 = getelementptr inbounds double, double* %2142, i64 %2145
%2147 = load double, double* %2146
%2148 = load double*, double** %28
%2149 = load i32, i32* %35
%2150 = add nsw i32 %2149, 1
%2151 = sext i32 %2150 to i64
%2152 = getelementptr inbounds double, double* %2148, i64 %2151
%2153 = load double, double* %2152
%2154 = call double @llvm.fmuladd.f64(double %2141, double %2147, double %2153)
store double %2154, double* %2152
%2155 = load double*, double** %55
%2156 = load i32, i32* %29
%2157 = sext i32 %2156 to i64
%2158 = getelementptr inbounds double, double* %2155, i64 %2157
%2159 = load double, double* %2158
%2160 = load double*, double** %17
%2161 = load i32, i32* %34
%2162 = add nsw i32 %2161, 2
%2163 = sext i32 %2162 to i64
%2164 = getelementptr inbounds double, double* %2160, i64 %2163
%2165 = load double, double* %2164
%2166 = load double*, double** %28
%2167 = load i32, i32* %35
%2168 = add nsw i32 %2167, 2
%2169 = sext i32 %2168 to i64
%2170 = getelementptr inbounds double, double* %2166, i64 %2169
%2171 = load double, double* %2170
%2172 = call double @llvm.fmuladd.f64(double %2159, double %2165, double %2171)
store double %2172, double* %2170
%2173 = load double*, double** %55
%2174 = load i32, i32* %29
%2175 = sext i32 %2174 to i64
%2176 = getelementptr inbounds double, double* %2173, i64 %2175
%2177 = load double, double* %2176
%2178 = load double*, double** %17
%2179 = load i32, i32* %34
%2180 = add nsw i32 %2179, 3
%2181 = sext i32 %2180 to i64
%2182 = getelementptr inbounds double, double* %2178, i64 %2181
%2183 = load double, double* %2182
%2184 = load double, double* %59
%2185 = call double @llvm.fmuladd.f64(double %2177, double %2183, double %2184)
store double %2185, double* %59
br label %2186
2186: ; preds = %2115
%2187 = load i32, i32* %29
%2188 = add nsw i32 %2187, 1
store i32 %2188, i32* %29
br label %2111
2189: ; preds = %2111
%2190 = load double*, double** %28
%2191 = load i32, i32* %35
%2192 = sext i32 %2191 to i64
%2193 = getelementptr inbounds double, double* %2190, i64 %2192
%2194 = load double, double* %2193
%2195 = load double, double* %59
%2196 = fdiv double %2194, %2195
%2197 = load double*, double** %28
%2198 = load i32, i32* %35
%2199 = sext i32 %2198 to i64
%2200 = getelementptr inbounds double, double* %2197, i64 %2199
store double %2196, double* %2200
%2201 = load double*, double** %28
%2202 = load i32, i32* %35
%2203 = add nsw i32 %2202, 1
%2204 = sext i32 %2203 to i64
%2205 = getelementptr inbounds double, double* %2201, i64 %2204
%2206 = load double, double* %2205
%2207 = load double, double* %59
%2208 = fdiv double %2206, %2207
%2209 = load double*, double** %28
%2210 = load i32, i32* %35
%2211 = add nsw i32 %2210, 1
%2212 = sext i32 %2211 to i64
%2213 = getelementptr inbounds double, double* %2209, i64 %2212
store double %2208, double* %2213
%2214 = load double*, double** %28
%2215 = load i32, i32* %35
%2216 = add nsw i32 %2215, 2
%2217 = sext i32 %2216 to i64
%2218 = getelementptr inbounds double, double* %2214, i64 %2217
%2219 = load double, double* %2218
%2220 = load double, double* %59
%2221 = fdiv double %2219, %2220
%2222 = load double*, double** %28
%2223 = load i32, i32* %35
%2224 = add nsw i32 %2223, 2
%2225 = sext i32 %2224 to i64
%2226 = getelementptr inbounds double, double* %2222, i64 %2225
store double %2221, double* %2226
%2227 = load double, double* %25
store double %2227, double* %58
store i32 1, i32* %32
br label %2228
2228: ; preds = %2650, %2189
%2229 = load i32, i32* %32
%2230 = load i32, i32* %27
%2231 = icmp slt i32 %2229, %2230
br i1 %2231, label %2232, label %2653
2232: ; preds = %2228
%2233 = load double, double* %26
%2234 = load double, double* %58
%2235 = fadd double %2234, %2233
store double %2235, double* %58
%2236 = load i32, i32* %19
%2237 = load double, double* %58
%2238 = load double*, double** %21
%2239 = load i32, i32* %51
%2240 = call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %2236, double %2237, double* %2238, i32 %2239)
store i32 %2240, i32* %51
%2241 = load i32, i32* %51
%2242 = load double, double* %58
%2243 = load i32, i32* %48
%2244 = load double*, double** %21
%2245 = load double*, double** %55
%2246 = load double*, double** %53
%2247 = load double*, double** %54
%2248 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %2241, double %2242, i32 %2243, double* %2244, double* %2245, double* %2246, double* %2247)
%2249 = load i32, i32* %51
%2250 = load i32, i32* %48
%2251 = sub nsw i32 %2249, %2250
store i32 %2251, i32* %52
%2252 = load i32, i32* %32
%2253 = load i32, i32* %24
%2254 = mul nsw i32 %2252, %2253
store i32 %2254, i32* %38
%2255 = load i32, i32* %38
%2256 = mul nsw i32 3, %2255
store i32 %2256, i32* %35
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %2257
2257: ; preds = %2332, %2232
%2258 = load i32, i32* %29
%2259 = load i32, i32* %48
%2260 = icmp sle i32 %2258, %2259
br i1 %2260, label %2261, label %2335
2261: ; preds = %2257
%2262 = load i32, i32* %45
%2263 = load i32, i32* %52
%2264 = load i32, i32* %29
%2265 = add nsw i32 %2263, %2264
%2266 = mul nsw i32 %2262, %2265
store i32 %2266, i32* %34
%2267 = load double*, double** %55
%2268 = load i32, i32* %29
%2269 = sext i32 %2268 to i64
%2270 = getelementptr inbounds double, double* %2267, i64 %2269
%2271 = load double, double* %2270
%2272 = load double*, double** %17
%2273 = load i32, i32* %34
%2274 = sext i32 %2273 to i64
%2275 = getelementptr inbounds double, double* %2272, i64 %2274
%2276 = load double, double* %2275
%2277 = load double*, double** %28
%2278 = load i32, i32* %35
%2279 = sext i32 %2278 to i64
%2280 = getelementptr inbounds double, double* %2277, i64 %2279
%2281 = load double, double* %2280
%2282 = call double @llvm.fmuladd.f64(double %2271, double %2276, double %2281)
store double %2282, double* %2280
%2283 = load double*, double** %55
%2284 = load i32, i32* %29
%2285 = sext i32 %2284 to i64
%2286 = getelementptr inbounds double, double* %2283, i64 %2285
%2287 = load double, double* %2286
%2288 = load double*, double** %17
%2289 = load i32, i32* %34
%2290 = add nsw i32 %2289, 1
%2291 = sext i32 %2290 to i64
%2292 = getelementptr inbounds double, double* %2288, i64 %2291
%2293 = load double, double* %2292
%2294 = load double*, double** %28
%2295 = load i32, i32* %35
%2296 = add nsw i32 %2295, 1
%2297 = sext i32 %2296 to i64
%2298 = getelementptr inbounds double, double* %2294, i64 %2297
%2299 = load double, double* %2298
%2300 = call double @llvm.fmuladd.f64(double %2287, double %2293, double %2299)
store double %2300, double* %2298
%2301 = load double*, double** %55
%2302 = load i32, i32* %29
%2303 = sext i32 %2302 to i64
%2304 = getelementptr inbounds double, double* %2301, i64 %2303
%2305 = load double, double* %2304
%2306 = load double*, double** %17
%2307 = load i32, i32* %34
%2308 = add nsw i32 %2307, 2
%2309 = sext i32 %2308 to i64
%2310 = getelementptr inbounds double, double* %2306, i64 %2309
%2311 = load double, double* %2310
%2312 = load double*, double** %28
%2313 = load i32, i32* %35
%2314 = add nsw i32 %2313, 2
%2315 = sext i32 %2314 to i64
%2316 = getelementptr inbounds double, double* %2312, i64 %2315
%2317 = load double, double* %2316
%2318 = call double @llvm.fmuladd.f64(double %2305, double %2311, double %2317)
store double %2318, double* %2316
%2319 = load double*, double** %55
%2320 = load i32, i32* %29
%2321 = sext i32 %2320 to i64
%2322 = getelementptr inbounds double, double* %2319, i64 %2321
%2323 = load double, double* %2322
%2324 = load double*, double** %17
%2325 = load i32, i32* %34
%2326 = add nsw i32 %2325, 3
%2327 = sext i32 %2326 to i64
%2328 = getelementptr inbounds double, double* %2324, i64 %2327
%2329 = load double, double* %2328
%2330 = load double, double* %59
%2331 = call double @llvm.fmuladd.f64(double %2323, double %2329, double %2330)
store double %2331, double* %59
br label %2332
2332: ; preds = %2261
%2333 = load i32, i32* %29
%2334 = add nsw i32 %2333, 1
store i32 %2334, i32* %29
br label %2257
2335: ; preds = %2257
%2336 = load double*, double** %28
%2337 = load i32, i32* %35
%2338 = sext i32 %2337 to i64
%2339 = getelementptr inbounds double, double* %2336, i64 %2338
%2340 = load double, double* %2339
%2341 = load double, double* %59
%2342 = fdiv double %2340, %2341
%2343 = load double*, double** %28
%2344 = load i32, i32* %35
%2345 = sext i32 %2344 to i64
%2346 = getelementptr inbounds double, double* %2343, i64 %2345
store double %2342, double* %2346
%2347 = load double*, double** %28
%2348 = load i32, i32* %35
%2349 = add nsw i32 %2348, 1
%2350 = sext i32 %2349 to i64
%2351 = getelementptr inbounds double, double* %2347, i64 %2350
%2352 = load double, double* %2351
%2353 = load double, double* %59
%2354 = fdiv double %2352, %2353
%2355 = load double*, double** %28
%2356 = load i32, i32* %35
%2357 = add nsw i32 %2356, 1
%2358 = sext i32 %2357 to i64
%2359 = getelementptr inbounds double, double* %2355, i64 %2358
store double %2354, double* %2359
%2360 = load double*, double** %28
%2361 = load i32, i32* %35
%2362 = add nsw i32 %2361, 2
%2363 = sext i32 %2362 to i64
%2364 = getelementptr inbounds double, double* %2360, i64 %2363
%2365 = load double, double* %2364
%2366 = load double, double* %59
%2367 = fdiv double %2365, %2366
%2368 = load double*, double** %28
%2369 = load i32, i32* %35
%2370 = add nsw i32 %2369, 2
%2371 = sext i32 %2370 to i64
%2372 = getelementptr inbounds double, double* %2368, i64 %2371
store double %2367, double* %2372
%2373 = load i32, i32* %52
%2374 = load i32, i32* %18
%2375 = mul nsw i32 %2373, %2374
store i32 %2375, i32* %40
store i32 1, i32* %31
br label %2376
2376: ; preds = %2521, %2335
%2377 = load i32, i32* %31
%2378 = load i32, i32* %41
%2379 = icmp slt i32 %2377, %2378
br i1 %2379, label %2380, label %2524
2380: ; preds = %2376
%2381 = load i32, i32* %31
%2382 = load i32, i32* %38
%2383 = add nsw i32 %2381, %2382
%2384 = mul nsw i32 3, %2383
store i32 %2384, i32* %35
%2385 = load i32, i32* %31
%2386 = load i32, i32* %15
%2387 = mul nsw i32 %2385, %2386
store i32 %2387, i32* %36
%2388 = load i32, i32* %40
%2389 = load i32*, i32** %49
%2390 = load i32, i32* %31
%2391 = sext i32 %2390 to i64
%2392 = getelementptr inbounds i32, i32* %2389, i64 %2391
%2393 = load i32, i32* %2392
%2394 = add nsw i32 %2388, %2393
store i32 %2394, i32* %39
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %2395
2395: ; preds = %2480, %2380
%2396 = load i32, i32* %29
%2397 = load i32, i32* %48
%2398 = icmp sle i32 %2396, %2397
br i1 %2398, label %2399, label %2483
2399: ; preds = %2395
%2400 = load i32, i32* %18
%2401 = load i32, i32* %29
%2402 = mul nsw i32 %2400, %2401
%2403 = load i32, i32* %39
%2404 = add nsw i32 %2402, %2403
store i32 %2404, i32* %33
store i32 0, i32* %30
br label %2405
2405: ; preds = %2476, %2399
%2406 = load i32, i32* %30
%2407 = load i32, i32* %47
%2408 = icmp sle i32 %2406, %2407
br i1 %2408, label %2409, label %2479
2409: ; preds = %2405
%2410 = load i32, i32* %33
%2411 = load i32, i32* %30
%2412 = add nsw i32 %2410, %2411
%2413 = mul nsw i32 4, %2412
store i32 %2413, i32* %34
%2414 = load double*, double** %55
%2415 = load i32, i32* %29
%2416 = sext i32 %2415 to i64
%2417 = getelementptr inbounds double, double* %2414, i64 %2416
%2418 = load double, double* %2417
%2419 = load double*, double** %56
%2420 = load i32, i32* %36
%2421 = load i32, i32* %30
%2422 = add nsw i32 %2420, %2421
%2423 = sext i32 %2422 to i64
%2424 = getelementptr inbounds double, double* %2419, i64 %2423
%2425 = load double, double* %2424
%2426 = fmul double %2418, %2425
store double %2426, double* %60
%2427 = load double, double* %60
%2428 = load double*, double** %17
%2429 = load i32, i32* %34
%2430 = sext i32 %2429 to i64
%2431 = getelementptr inbounds double, double* %2428, i64 %2430
%2432 = load double, double* %2431
%2433 = load double*, double** %28
%2434 = load i32, i32* %35
%2435 = sext i32 %2434 to i64
%2436 = getelementptr inbounds double, double* %2433, i64 %2435
%2437 = load double, double* %2436
%2438 = call double @llvm.fmuladd.f64(double %2427, double %2432, double %2437)
store double %2438, double* %2436
%2439 = load double, double* %60
%2440 = load double*, double** %17
%2441 = load i32, i32* %34
%2442 = add nsw i32 %2441, 1
%2443 = sext i32 %2442 to i64
%2444 = getelementptr inbounds double, double* %2440, i64 %2443
%2445 = load double, double* %2444
%2446 = load double*, double** %28
%2447 = load i32, i32* %35
%2448 = add nsw i32 %2447, 1
%2449 = sext i32 %2448 to i64
%2450 = getelementptr inbounds double, double* %2446, i64 %2449
%2451 = load double, double* %2450
%2452 = call double @llvm.fmuladd.f64(double %2439, double %2445, double %2451)
store double %2452, double* %2450
%2453 = load double, double* %60
%2454 = load double*, double** %17
%2455 = load i32, i32* %34
%2456 = add nsw i32 %2455, 2
%2457 = sext i32 %2456 to i64
%2458 = getelementptr inbounds double, double* %2454, i64 %2457
%2459 = load double, double* %2458
%2460 = load double*, double** %28
%2461 = load i32, i32* %35
%2462 = add nsw i32 %2461, 2
%2463 = sext i32 %2462 to i64
%2464 = getelementptr inbounds double, double* %2460, i64 %2463
%2465 = load double, double* %2464
%2466 = call double @llvm.fmuladd.f64(double %2453, double %2459, double %2465)
store double %2466, double* %2464
%2467 = load double, double* %60
%2468 = load double*, double** %17
%2469 = load i32, i32* %34
%2470 = add nsw i32 %2469, 3
%2471 = sext i32 %2470 to i64
%2472 = getelementptr inbounds double, double* %2468, i64 %2471
%2473 = load double, double* %2472
%2474 = load double, double* %59
%2475 = call double @llvm.fmuladd.f64(double %2467, double %2473, double %2474)
store double %2475, double* %59
br label %2476
2476: ; preds = %2409
%2477 = load i32, i32* %30
%2478 = add nsw i32 %2477, 1
store i32 %2478, i32* %30
br label %2405
2479: ; preds = %2405
br label %2480
2480: ; preds = %2479
%2481 = load i32, i32* %29
%2482 = add nsw i32 %2481, 1
store i32 %2482, i32* %29
br label %2395
2483: ; preds = %2395
%2484 = load double*, double** %28
%2485 = load i32, i32* %35
%2486 = sext i32 %2485 to i64
%2487 = getelementptr inbounds double, double* %2484, i64 %2486
%2488 = load double, double* %2487
%2489 = load double, double* %59
%2490 = fdiv double %2488, %2489
%2491 = load double*, double** %28
%2492 = load i32, i32* %35
%2493 = sext i32 %2492 to i64
%2494 = getelementptr inbounds double, double* %2491, i64 %2493
store double %2490, double* %2494
%2495 = load double*, double** %28
%2496 = load i32, i32* %35
%2497 = add nsw i32 %2496, 1
%2498 = sext i32 %2497 to i64
%2499 = getelementptr inbounds double, double* %2495, i64 %2498
%2500 = load double, double* %2499
%2501 = load double, double* %59
%2502 = fdiv double %2500, %2501
%2503 = load double*, double** %28
%2504 = load i32, i32* %35
%2505 = add nsw i32 %2504, 1
%2506 = sext i32 %2505 to i64
%2507 = getelementptr inbounds double, double* %2503, i64 %2506
store double %2502, double* %2507
%2508 = load double*, double** %28
%2509 = load i32, i32* %35
%2510 = add nsw i32 %2509, 2
%2511 = sext i32 %2510 to i64
%2512 = getelementptr inbounds double, double* %2508, i64 %2511
%2513 = load double, double* %2512
%2514 = load double, double* %59
%2515 = fdiv double %2513, %2514
%2516 = load double*, double** %28
%2517 = load i32, i32* %35
%2518 = add nsw i32 %2517, 2
%2519 = sext i32 %2518 to i64
%2520 = getelementptr inbounds double, double* %2516, i64 %2519
store double %2515, double* %2520
br label %2521
2521: ; preds = %2483
%2522 = load i32, i32* %31
%2523 = add nsw i32 %2522, 1
store i32 %2523, i32* %31
br label %2376
2524: ; preds = %2376
%2525 = load i32, i32* %41
%2526 = load i32, i32* %38
%2527 = add nsw i32 %2525, %2526
%2528 = mul nsw i32 3, %2527
store i32 %2528, i32* %35
%2529 = load i32, i32* %45
%2530 = load i32, i32* %52
%2531 = mul nsw i32 %2529, %2530
%2532 = load i32, i32* %46
%2533 = add nsw i32 %2531, %2532
store i32 %2533, i32* %33
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %2534
2534: ; preds = %2609, %2524
%2535 = load i32, i32* %29
%2536 = load i32, i32* %48
%2537 = icmp sle i32 %2535, %2536
br i1 %2537, label %2538, label %2612
2538: ; preds = %2534
%2539 = load i32, i32* %45
%2540 = load i32, i32* %29
%2541 = mul nsw i32 %2539, %2540
%2542 = load i32, i32* %33
%2543 = add nsw i32 %2541, %2542
store i32 %2543, i32* %34
%2544 = load double*, double** %55
%2545 = load i32, i32* %29
%2546 = sext i32 %2545 to i64
%2547 = getelementptr inbounds double, double* %2544, i64 %2546
%2548 = load double, double* %2547
%2549 = load double*, double** %17
%2550 = load i32, i32* %34
%2551 = sext i32 %2550 to i64
%2552 = getelementptr inbounds double, double* %2549, i64 %2551
%2553 = load double, double* %2552
%2554 = load double*, double** %28
%2555 = load i32, i32* %35
%2556 = sext i32 %2555 to i64
%2557 = getelementptr inbounds double, double* %2554, i64 %2556
%2558 = load double, double* %2557
%2559 = call double @llvm.fmuladd.f64(double %2548, double %2553, double %2558)
store double %2559, double* %2557
%2560 = load double*, double** %55
%2561 = load i32, i32* %29
%2562 = sext i32 %2561 to i64
%2563 = getelementptr inbounds double, double* %2560, i64 %2562
%2564 = load double, double* %2563
%2565 = load double*, double** %17
%2566 = load i32, i32* %34
%2567 = add nsw i32 %2566, 1
%2568 = sext i32 %2567 to i64
%2569 = getelementptr inbounds double, double* %2565, i64 %2568
%2570 = load double, double* %2569
%2571 = load double*, double** %28
%2572 = load i32, i32* %35
%2573 = add nsw i32 %2572, 1
%2574 = sext i32 %2573 to i64
%2575 = getelementptr inbounds double, double* %2571, i64 %2574
%2576 = load double, double* %2575
%2577 = call double @llvm.fmuladd.f64(double %2564, double %2570, double %2576)
store double %2577, double* %2575
%2578 = load double*, double** %55
%2579 = load i32, i32* %29
%2580 = sext i32 %2579 to i64
%2581 = getelementptr inbounds double, double* %2578, i64 %2580
%2582 = load double, double* %2581
%2583 = load double*, double** %17
%2584 = load i32, i32* %34
%2585 = add nsw i32 %2584, 2
%2586 = sext i32 %2585 to i64
%2587 = getelementptr inbounds double, double* %2583, i64 %2586
%2588 = load double, double* %2587
%2589 = load double*, double** %28
%2590 = load i32, i32* %35
%2591 = add nsw i32 %2590, 2
%2592 = sext i32 %2591 to i64
%2593 = getelementptr inbounds double, double* %2589, i64 %2592
%2594 = load double, double* %2593
%2595 = call double @llvm.fmuladd.f64(double %2582, double %2588, double %2594)
store double %2595, double* %2593
%2596 = load double*, double** %55
%2597 = load i32, i32* %29
%2598 = sext i32 %2597 to i64
%2599 = getelementptr inbounds double, double* %2596, i64 %2598
%2600 = load double, double* %2599
%2601 = load double*, double** %17
%2602 = load i32, i32* %34
%2603 = add nsw i32 %2602, 3
%2604 = sext i32 %2603 to i64
%2605 = getelementptr inbounds double, double* %2601, i64 %2604
%2606 = load double, double* %2605
%2607 = load double, double* %59
%2608 = call double @llvm.fmuladd.f64(double %2600, double %2606, double %2607)
store double %2608, double* %59
br label %2609
2609: ; preds = %2538
%2610 = load i32, i32* %29
%2611 = add nsw i32 %2610, 1
store i32 %2611, i32* %29
br label %2534
2612: ; preds = %2534
%2613 = load double*, double** %28
%2614 = load i32, i32* %35
%2615 = sext i32 %2614 to i64
%2616 = getelementptr inbounds double, double* %2613, i64 %2615
%2617 = load double, double* %2616
%2618 = load double, double* %59
%2619 = fdiv double %2617, %2618
%2620 = load double*, double** %28
%2621 = load i32, i32* %35
%2622 = sext i32 %2621 to i64
%2623 = getelementptr inbounds double, double* %2620, i64 %2622
store double %2619, double* %2623
%2624 = load double*, double** %28
%2625 = load i32, i32* %35
%2626 = add nsw i32 %2625, 1
%2627 = sext i32 %2626 to i64
%2628 = getelementptr inbounds double, double* %2624, i64 %2627
%2629 = load double, double* %2628
%2630 = load double, double* %59
%2631 = fdiv double %2629, %2630
%2632 = load double*, double** %28
%2633 = load i32, i32* %35
%2634 = add nsw i32 %2633, 1
%2635 = sext i32 %2634 to i64
%2636 = getelementptr inbounds double, double* %2632, i64 %2635
store double %2631, double* %2636
%2637 = load double*, double** %28
%2638 = load i32, i32* %35
%2639 = add nsw i32 %2638, 2
%2640 = sext i32 %2639 to i64
%2641 = getelementptr inbounds double, double* %2637, i64 %2640
%2642 = load double, double* %2641
%2643 = load double, double* %59
%2644 = fdiv double %2642, %2643
%2645 = load double*, double** %28
%2646 = load i32, i32* %35
%2647 = add nsw i32 %2646, 2
%2648 = sext i32 %2647 to i64
%2649 = getelementptr inbounds double, double* %2645, i64 %2648
store double %2644, double* %2649
br label %2650
2650: ; preds = %2612
%2651 = load i32, i32* %32
%2652 = add nsw i32 %2651, 1
store i32 %2652, i32* %32
br label %2228
2653: ; preds = %2228
br label %3177
2654: ; preds = %1788
%2655 = load i32, i32* %18
%2656 = load i32, i32* %47
%2657 = load double, double* %22
%2658 = load double*, double** %20
%2659 = call i32 (i32, i32, double, double*, ...) bitcast (i32 (...)* @FindSpan to i32 (i32, i32, double, double*, ...)*)(i32 %2655, i32 %2656, double %2657, double* %2658)
%2660 = load i32*, i32** %49
%2661 = getelementptr inbounds i32, i32* %2660, i64 0
store i32 %2659, i32* %2661
%2662 = load i32*, i32** %49
%2663 = getelementptr inbounds i32, i32* %2662, i64 0
%2664 = load i32, i32* %2663
%2665 = load double, double* %22
%2666 = load i32, i32* %47
%2667 = load double*, double** %20
%2668 = load double*, double** %56
%2669 = load double*, double** %53
%2670 = load double*, double** %54
%2671 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %2664, double %2665, i32 %2666, double* %2667, double* %2668, double* %2669, double* %2670)
%2672 = load i32*, i32** %49
%2673 = getelementptr inbounds i32, i32* %2672, i64 0
%2674 = load i32, i32* %2673
%2675 = load i32, i32* %47
%2676 = sub nsw i32 %2674, %2675
store i32 %2676, i32* %50
%2677 = load i32, i32* %19
%2678 = load i32, i32* %48
%2679 = load double, double* %25
%2680 = load double*, double** %21
%2681 = call i32 (i32, i32, double, double*, ...) bitcast (i32 (...)* @FindSpan to i32 (i32, i32, double, double*, ...)*)(i32 %2677, i32 %2678, double %2679, double* %2680)
store i32 %2681, i32* %51
%2682 = load i32, i32* %51
%2683 = load double, double* %25
%2684 = load i32, i32* %48
%2685 = load double*, double** %21
%2686 = load double*, double** %55
%2687 = load double*, double** %53
%2688 = load double*, double** %54
%2689 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %2682, double %2683, i32 %2684, double* %2685, double* %2686, double* %2687, double* %2688)
%2690 = load i32, i32* %51
%2691 = load i32, i32* %48
%2692 = sub nsw i32 %2690, %2691
store i32 %2692, i32* %52
%2693 = load i32, i32* %52
%2694 = load i32, i32* %18
%2695 = mul nsw i32 %2693, %2694
store i32 %2695, i32* %40
%2696 = load i32, i32* %40
%2697 = load i32, i32* %50
%2698 = add nsw i32 %2696, %2697
store i32 %2698, i32* %39
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %2699
2699: ; preds = %2774, %2654
%2700 = load i32, i32* %29
%2701 = load i32, i32* %48
%2702 = icmp sle i32 %2700, %2701
br i1 %2702, label %2703, label %2777
2703: ; preds = %2699
%2704 = load i32, i32* %18
%2705 = load i32, i32* %29
%2706 = mul nsw i32 %2704, %2705
%2707 = load i32, i32* %39
%2708 = add nsw i32 %2706, %2707
store i32 %2708, i32* %33
store i32 0, i32* %30
br label %2709
2709: ; preds = %2770, %2703
%2710 = load i32, i32* %30
%2711 = load i32, i32* %47
%2712 = icmp sle i32 %2710, %2711
br i1 %2712, label %2713, label %2773
2713: ; preds = %2709
%2714 = load i32, i32* %33
%2715 = load i32, i32* %30
%2716 = add nsw i32 %2714, %2715
%2717 = mul nsw i32 4, %2716
store i32 %2717, i32* %34
%2718 = load double*, double** %55
%2719 = load i32, i32* %29
%2720 = sext i32 %2719 to i64
%2721 = getelementptr inbounds double, double* %2718, i64 %2720
%2722 = load double, double* %2721
%2723 = load double*, double** %56
%2724 = load i32, i32* %30
%2725 = sext i32 %2724 to i64
%2726 = getelementptr inbounds double, double* %2723, i64 %2725
%2727 = load double, double* %2726
%2728 = fmul double %2722, %2727
store double %2728, double* %60
%2729 = load double, double* %60
%2730 = load double*, double** %17
%2731 = load i32, i32* %34
%2732 = sext i32 %2731 to i64
%2733 = getelementptr inbounds double, double* %2730, i64 %2732
%2734 = load double, double* %2733
%2735 = load double*, double** %28
%2736 = getelementptr inbounds double, double* %2735, i64 0
%2737 = load double, double* %2736
%2738 = call double @llvm.fmuladd.f64(double %2729, double %2734, double %2737)
store double %2738, double* %2736
%2739 = load double, double* %60
%2740 = load double*, double** %17
%2741 = load i32, i32* %34
%2742 = add nsw i32 %2741, 1
%2743 = sext i32 %2742 to i64
%2744 = getelementptr inbounds double, double* %2740, i64 %2743
%2745 = load double, double* %2744
%2746 = load double*, double** %28
%2747 = getelementptr inbounds double, double* %2746, i64 1
%2748 = load double, double* %2747
%2749 = call double @llvm.fmuladd.f64(double %2739, double %2745, double %2748)
store double %2749, double* %2747
%2750 = load double, double* %60
%2751 = load double*, double** %17
%2752 = load i32, i32* %34
%2753 = add nsw i32 %2752, 2
%2754 = sext i32 %2753 to i64
%2755 = getelementptr inbounds double, double* %2751, i64 %2754
%2756 = load double, double* %2755
%2757 = load double*, double** %28
%2758 = getelementptr inbounds double, double* %2757, i64 2
%2759 = load double, double* %2758
%2760 = call double @llvm.fmuladd.f64(double %2750, double %2756, double %2759)
store double %2760, double* %2758
%2761 = load double, double* %60
%2762 = load double*, double** %17
%2763 = load i32, i32* %34
%2764 = add nsw i32 %2763, 3
%2765 = sext i32 %2764 to i64
%2766 = getelementptr inbounds double, double* %2762, i64 %2765
%2767 = load double, double* %2766
%2768 = load double, double* %59
%2769 = call double @llvm.fmuladd.f64(double %2761, double %2767, double %2768)
store double %2769, double* %59
br label %2770
2770: ; preds = %2713
%2771 = load i32, i32* %30
%2772 = add nsw i32 %2771, 1
store i32 %2772, i32* %30
br label %2709
2773: ; preds = %2709
br label %2774
2774: ; preds = %2773
%2775 = load i32, i32* %29
%2776 = add nsw i32 %2775, 1
store i32 %2776, i32* %29
br label %2699
2777: ; preds = %2699
%2778 = load double*, double** %28
%2779 = getelementptr inbounds double, double* %2778, i64 0
%2780 = load double, double* %2779
%2781 = load double, double* %59
%2782 = fdiv double %2780, %2781
%2783 = load double*, double** %28
%2784 = getelementptr inbounds double, double* %2783, i64 0
store double %2782, double* %2784
%2785 = load double*, double** %28
%2786 = getelementptr inbounds double, double* %2785, i64 1
%2787 = load double, double* %2786
%2788 = load double, double* %59
%2789 = fdiv double %2787, %2788
%2790 = load double*, double** %28
%2791 = getelementptr inbounds double, double* %2790, i64 1
store double %2789, double* %2791
%2792 = load double*, double** %28
%2793 = getelementptr inbounds double, double* %2792, i64 2
%2794 = load double, double* %2793
%2795 = load double, double* %59
%2796 = fdiv double %2794, %2795
%2797 = load double*, double** %28
%2798 = getelementptr inbounds double, double* %2797, i64 2
store double %2796, double* %2798
%2799 = load double, double* %22
store double %2799, double* %57
store i32 1, i32* %31
br label %2800
2800: ; preds = %2984, %2777
%2801 = load i32, i32* %31
%2802 = load i32, i32* %24
%2803 = icmp slt i32 %2801, %2802
br i1 %2803, label %2804, label %2987
2804: ; preds = %2800
%2805 = load i32, i32* %31
%2806 = mul nsw i32 3, %2805
store i32 %2806, i32* %35
%2807 = load i32, i32* %31
%2808 = load i32, i32* %15
%2809 = mul nsw i32 %2807, %2808
store i32 %2809, i32* %36
%2810 = load double, double* %23
%2811 = load double, double* %57
%2812 = fadd double %2811, %2810
store double %2812, double* %57
%2813 = load i32, i32* %18
%2814 = load double, double* %57
%2815 = load double*, double** %20
%2816 = load i32*, i32** %49
%2817 = load i32, i32* %31
%2818 = sub nsw i32 %2817, 1
%2819 = sext i32 %2818 to i64
%2820 = getelementptr inbounds i32, i32* %2816, i64 %2819
%2821 = load i32, i32* %2820
%2822 = call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %2813, double %2814, double* %2815, i32 %2821)
%2823 = load i32*, i32** %49
%2824 = load i32, i32* %31
%2825 = sext i32 %2824 to i64
%2826 = getelementptr inbounds i32, i32* %2823, i64 %2825
store i32 %2822, i32* %2826
%2827 = load i32*, i32** %49
%2828 = load i32, i32* %31
%2829 = sext i32 %2828 to i64
%2830 = getelementptr inbounds i32, i32* %2827, i64 %2829
%2831 = load i32, i32* %2830
%2832 = load double, double* %57
%2833 = load i32, i32* %47
%2834 = load double*, double** %20
%2835 = load double*, double** %56
%2836 = load i32, i32* %36
%2837 = sext i32 %2836 to i64
%2838 = getelementptr inbounds double, double* %2835, i64 %2837
%2839 = load double*, double** %53
%2840 = load double*, double** %54
%2841 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %2831, double %2832, i32 %2833, double* %2834, double* %2838, double* %2839, double* %2840)
%2842 = load i32, i32* %50
%2843 = load i32*, i32** %49
%2844 = load i32, i32* %31
%2845 = sub nsw i32 %2844, 1
%2846 = sext i32 %2845 to i64
%2847 = getelementptr inbounds i32, i32* %2843, i64 %2846
store i32 %2842, i32* %2847
%2848 = load i32*, i32** %49
%2849 = load i32, i32* %31
%2850 = sext i32 %2849 to i64
%2851 = getelementptr inbounds i32, i32* %2848, i64 %2850
%2852 = load i32, i32* %2851
%2853 = load i32, i32* %47
%2854 = sub nsw i32 %2852, %2853
store i32 %2854, i32* %50
%2855 = load i32, i32* %40
%2856 = load i32, i32* %50
%2857 = add nsw i32 %2855, %2856
store i32 %2857, i32* %39
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %2858
2858: ; preds = %2943, %2804
%2859 = load i32, i32* %29
%2860 = load i32, i32* %48
%2861 = icmp sle i32 %2859, %2860
br i1 %2861, label %2862, label %2946
2862: ; preds = %2858
%2863 = load i32, i32* %18
%2864 = load i32, i32* %29
%2865 = mul nsw i32 %2863, %2864
%2866 = load i32, i32* %39
%2867 = add nsw i32 %2865, %2866
store i32 %2867, i32* %33
store i32 0, i32* %30
br label %2868
2868: ; preds = %2939, %2862
%2869 = load i32, i32* %30
%2870 = load i32, i32* %47
%2871 = icmp sle i32 %2869, %2870
br i1 %2871, label %2872, label %2942
2872: ; preds = %2868
%2873 = load i32, i32* %33
%2874 = load i32, i32* %30
%2875 = add nsw i32 %2873, %2874
%2876 = mul nsw i32 4, %2875
store i32 %2876, i32* %34
%2877 = load double*, double** %55
%2878 = load i32, i32* %29
%2879 = sext i32 %2878 to i64
%2880 = getelementptr inbounds double, double* %2877, i64 %2879
%2881 = load double, double* %2880
%2882 = load double*, double** %56
%2883 = load i32, i32* %36
%2884 = load i32, i32* %30
%2885 = add nsw i32 %2883, %2884
%2886 = sext i32 %2885 to i64
%2887 = getelementptr inbounds double, double* %2882, i64 %2886
%2888 = load double, double* %2887
%2889 = fmul double %2881, %2888
store double %2889, double* %60
%2890 = load double, double* %60
%2891 = load double*, double** %17
%2892 = load i32, i32* %34
%2893 = sext i32 %2892 to i64
%2894 = getelementptr inbounds double, double* %2891, i64 %2893
%2895 = load double, double* %2894
%2896 = load double*, double** %28
%2897 = load i32, i32* %35
%2898 = sext i32 %2897 to i64
%2899 = getelementptr inbounds double, double* %2896, i64 %2898
%2900 = load double, double* %2899
%2901 = call double @llvm.fmuladd.f64(double %2890, double %2895, double %2900)
store double %2901, double* %2899
%2902 = load double, double* %60
%2903 = load double*, double** %17
%2904 = load i32, i32* %34
%2905 = add nsw i32 %2904, 1
%2906 = sext i32 %2905 to i64
%2907 = getelementptr inbounds double, double* %2903, i64 %2906
%2908 = load double, double* %2907
%2909 = load double*, double** %28
%2910 = load i32, i32* %35
%2911 = add nsw i32 %2910, 1
%2912 = sext i32 %2911 to i64
%2913 = getelementptr inbounds double, double* %2909, i64 %2912
%2914 = load double, double* %2913
%2915 = call double @llvm.fmuladd.f64(double %2902, double %2908, double %2914)
store double %2915, double* %2913
%2916 = load double, double* %60
%2917 = load double*, double** %17
%2918 = load i32, i32* %34
%2919 = add nsw i32 %2918, 2
%2920 = sext i32 %2919 to i64
%2921 = getelementptr inbounds double, double* %2917, i64 %2920
%2922 = load double, double* %2921
%2923 = load double*, double** %28
%2924 = load i32, i32* %35
%2925 = add nsw i32 %2924, 2
%2926 = sext i32 %2925 to i64
%2927 = getelementptr inbounds double, double* %2923, i64 %2926
%2928 = load double, double* %2927
%2929 = call double @llvm.fmuladd.f64(double %2916, double %2922, double %2928)
store double %2929, double* %2927
%2930 = load double, double* %60
%2931 = load double*, double** %17
%2932 = load i32, i32* %34
%2933 = add nsw i32 %2932, 3
%2934 = sext i32 %2933 to i64
%2935 = getelementptr inbounds double, double* %2931, i64 %2934
%2936 = load double, double* %2935
%2937 = load double, double* %59
%2938 = call double @llvm.fmuladd.f64(double %2930, double %2936, double %2937)
store double %2938, double* %59
br label %2939
2939: ; preds = %2872
%2940 = load i32, i32* %30
%2941 = add nsw i32 %2940, 1
store i32 %2941, i32* %30
br label %2868
2942: ; preds = %2868
br label %2943
2943: ; preds = %2942
%2944 = load i32, i32* %29
%2945 = add nsw i32 %2944, 1
store i32 %2945, i32* %29
br label %2858
2946: ; preds = %2858
%2947 = load double*, double** %28
%2948 = load i32, i32* %35
%2949 = sext i32 %2948 to i64
%2950 = getelementptr inbounds double, double* %2947, i64 %2949
%2951 = load double, double* %2950
%2952 = load double, double* %59
%2953 = fdiv double %2951, %2952
%2954 = load double*, double** %28
%2955 = load i32, i32* %35
%2956 = sext i32 %2955 to i64
%2957 = getelementptr inbounds double, double* %2954, i64 %2956
store double %2953, double* %2957
%2958 = load double*, double** %28
%2959 = load i32, i32* %35
%2960 = add nsw i32 %2959, 1
%2961 = sext i32 %2960 to i64
%2962 = getelementptr inbounds double, double* %2958, i64 %2961
%2963 = load double, double* %2962
%2964 = load double, double* %59
%2965 = fdiv double %2963, %2964
%2966 = load double*, double** %28
%2967 = load i32, i32* %35
%2968 = add nsw i32 %2967, 1
%2969 = sext i32 %2968 to i64
%2970 = getelementptr inbounds double, double* %2966, i64 %2969
store double %2965, double* %2970
%2971 = load double*, double** %28
%2972 = load i32, i32* %35
%2973 = add nsw i32 %2972, 2
%2974 = sext i32 %2973 to i64
%2975 = getelementptr inbounds double, double* %2971, i64 %2974
%2976 = load double, double* %2975
%2977 = load double, double* %59
%2978 = fdiv double %2976, %2977
%2979 = load double*, double** %28
%2980 = load i32, i32* %35
%2981 = add nsw i32 %2980, 2
%2982 = sext i32 %2981 to i64
%2983 = getelementptr inbounds double, double* %2979, i64 %2982
store double %2978, double* %2983
br label %2984
2984: ; preds = %2946
%2985 = load i32, i32* %31
%2986 = add nsw i32 %2985, 1
store i32 %2986, i32* %31
br label %2800
2987: ; preds = %2800
%2988 = load i32, i32* %50
%2989 = load i32*, i32** %49
%2990 = load i32, i32* %41
%2991 = sext i32 %2990 to i64
%2992 = getelementptr inbounds i32, i32* %2989, i64 %2991
store i32 %2988, i32* %2992
%2993 = load double, double* %25
store double %2993, double* %58
store i32 1, i32* %32
br label %2994
2994: ; preds = %3173, %2987
%2995 = load i32, i32* %32
%2996 = load i32, i32* %27
%2997 = icmp slt i32 %2995, %2996
br i1 %2997, label %2998, label %3176
2998: ; preds = %2994
%2999 = load double, double* %26
%3000 = load double, double* %58
%3001 = fadd double %3000, %2999
store double %3001, double* %58
%3002 = load i32, i32* %19
%3003 = load double, double* %58
%3004 = load double*, double** %21
%3005 = load i32, i32* %51
%3006 = call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %3002, double %3003, double* %3004, i32 %3005)
store i32 %3006, i32* %51
%3007 = load i32, i32* %51
%3008 = load double, double* %58
%3009 = load i32, i32* %48
%3010 = load double*, double** %21
%3011 = load double*, double** %55
%3012 = load double*, double** %53
%3013 = load double*, double** %54
%3014 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %3007, double %3008, i32 %3009, double* %3010, double* %3011, double* %3012, double* %3013)
%3015 = load i32, i32* %51
%3016 = load i32, i32* %48
%3017 = sub nsw i32 %3015, %3016
store i32 %3017, i32* %52
%3018 = load i32, i32* %32
%3019 = load i32, i32* %24
%3020 = mul nsw i32 %3018, %3019
store i32 %3020, i32* %38
%3021 = load i32, i32* %52
%3022 = load i32, i32* %18
%3023 = mul nsw i32 %3021, %3022
store i32 %3023, i32* %40
store i32 0, i32* %31
br label %3024
3024: ; preds = %3169, %2998
%3025 = load i32, i32* %31
%3026 = load i32, i32* %24
%3027 = icmp slt i32 %3025, %3026
br i1 %3027, label %3028, label %3172
3028: ; preds = %3024
%3029 = load i32, i32* %31
%3030 = load i32, i32* %38
%3031 = add nsw i32 %3029, %3030
%3032 = mul nsw i32 3, %3031
store i32 %3032, i32* %35
%3033 = load i32, i32* %31
%3034 = load i32, i32* %15
%3035 = mul nsw i32 %3033, %3034
store i32 %3035, i32* %36
%3036 = load i32, i32* %40
%3037 = load i32*, i32** %49
%3038 = load i32, i32* %31
%3039 = sext i32 %3038 to i64
%3040 = getelementptr inbounds i32, i32* %3037, i64 %3039
%3041 = load i32, i32* %3040
%3042 = add nsw i32 %3036, %3041
store i32 %3042, i32* %39
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %3043
3043: ; preds = %3128, %3028
%3044 = load i32, i32* %29
%3045 = load i32, i32* %48
%3046 = icmp sle i32 %3044, %3045
br i1 %3046, label %3047, label %3131
3047: ; preds = %3043
%3048 = load i32, i32* %18
%3049 = load i32, i32* %29
%3050 = mul nsw i32 %3048, %3049
%3051 = load i32, i32* %39
%3052 = add nsw i32 %3050, %3051
store i32 %3052, i32* %33
store i32 0, i32* %30
br label %3053
3053: ; preds = %3124, %3047
%3054 = load i32, i32* %30
%3055 = load i32, i32* %47
%3056 = icmp sle i32 %3054, %3055
br i1 %3056, label %3057, label %3127
3057: ; preds = %3053
%3058 = load i32, i32* %33
%3059 = load i32, i32* %30
%3060 = add nsw i32 %3058, %3059
%3061 = mul nsw i32 4, %3060
store i32 %3061, i32* %34
%3062 = load double*, double** %55
%3063 = load i32, i32* %29
%3064 = sext i32 %3063 to i64
%3065 = getelementptr inbounds double, double* %3062, i64 %3064
%3066 = load double, double* %3065
%3067 = load double*, double** %56
%3068 = load i32, i32* %36
%3069 = load i32, i32* %30
%3070 = add nsw i32 %3068, %3069
%3071 = sext i32 %3070 to i64
%3072 = getelementptr inbounds double, double* %3067, i64 %3071
%3073 = load double, double* %3072
%3074 = fmul double %3066, %3073
store double %3074, double* %60
%3075 = load double, double* %60
%3076 = load double*, double** %17
%3077 = load i32, i32* %34
%3078 = sext i32 %3077 to i64
%3079 = getelementptr inbounds double, double* %3076, i64 %3078
%3080 = load double, double* %3079
%3081 = load double*, double** %28
%3082 = load i32, i32* %35
%3083 = sext i32 %3082 to i64
%3084 = getelementptr inbounds double, double* %3081, i64 %3083
%3085 = load double, double* %3084
%3086 = call double @llvm.fmuladd.f64(double %3075, double %3080, double %3085)
store double %3086, double* %3084
%3087 = load double, double* %60
%3088 = load double*, double** %17
%3089 = load i32, i32* %34
%3090 = add nsw i32 %3089, 1
%3091 = sext i32 %3090 to i64
%3092 = getelementptr inbounds double, double* %3088, i64 %3091
%3093 = load double, double* %3092
%3094 = load double*, double** %28
%3095 = load i32, i32* %35
%3096 = add nsw i32 %3095, 1
%3097 = sext i32 %3096 to i64
%3098 = getelementptr inbounds double, double* %3094, i64 %3097
%3099 = load double, double* %3098
%3100 = call double @llvm.fmuladd.f64(double %3087, double %3093, double %3099)
store double %3100, double* %3098
%3101 = load double, double* %60
%3102 = load double*, double** %17
%3103 = load i32, i32* %34
%3104 = add nsw i32 %3103, 2
%3105 = sext i32 %3104 to i64
%3106 = getelementptr inbounds double, double* %3102, i64 %3105
%3107 = load double, double* %3106
%3108 = load double*, double** %28
%3109 = load i32, i32* %35
%3110 = add nsw i32 %3109, 2
%3111 = sext i32 %3110 to i64
%3112 = getelementptr inbounds double, double* %3108, i64 %3111
%3113 = load double, double* %3112
%3114 = call double @llvm.fmuladd.f64(double %3101, double %3107, double %3113)
store double %3114, double* %3112
%3115 = load double, double* %60
%3116 = load double*, double** %17
%3117 = load i32, i32* %34
%3118 = add nsw i32 %3117, 3
%3119 = sext i32 %3118 to i64
%3120 = getelementptr inbounds double, double* %3116, i64 %3119
%3121 = load double, double* %3120
%3122 = load double, double* %59
%3123 = call double @llvm.fmuladd.f64(double %3115, double %3121, double %3122)
store double %3123, double* %59
br label %3124
3124: ; preds = %3057
%3125 = load i32, i32* %30
%3126 = add nsw i32 %3125, 1
store i32 %3126, i32* %30
br label %3053
3127: ; preds = %3053
br label %3128
3128: ; preds = %3127
%3129 = load i32, i32* %29
%3130 = add nsw i32 %3129, 1
store i32 %3130, i32* %29
br label %3043
3131: ; preds = %3043
%3132 = load double*, double** %28
%3133 = load i32, i32* %35
%3134 = sext i32 %3133 to i64
%3135 = getelementptr inbounds double, double* %3132, i64 %3134
%3136 = load double, double* %3135
%3137 = load double, double* %59
%3138 = fdiv double %3136, %3137
%3139 = load double*, double** %28
%3140 = load i32, i32* %35
%3141 = sext i32 %3140 to i64
%3142 = getelementptr inbounds double, double* %3139, i64 %3141
store double %3138, double* %3142
%3143 = load double*, double** %28
%3144 = load i32, i32* %35
%3145 = add nsw i32 %3144, 1
%3146 = sext i32 %3145 to i64
%3147 = getelementptr inbounds double, double* %3143, i64 %3146
%3148 = load double, double* %3147
%3149 = load double, double* %59
%3150 = fdiv double %3148, %3149
%3151 = load double*, double** %28
%3152 = load i32, i32* %35
%3153 = add nsw i32 %3152, 1
%3154 = sext i32 %3153 to i64
%3155 = getelementptr inbounds double, double* %3151, i64 %3154
store double %3150, double* %3155
%3156 = load double*, double** %28
%3157 = load i32, i32* %35
%3158 = add nsw i32 %3157, 2
%3159 = sext i32 %3158 to i64
%3160 = getelementptr inbounds double, double* %3156, i64 %3159
%3161 = load double, double* %3160
%3162 = load double, double* %59
%3163 = fdiv double %3161, %3162
%3164 = load double*, double** %28
%3165 = load i32, i32* %35
%3166 = add nsw i32 %3165, 2
%3167 = sext i32 %3166 to i64
%3168 = getelementptr inbounds double, double* %3164, i64 %3167
store double %3163, double* %3168
br label %3169
3169: ; preds = %3131
%3170 = load i32, i32* %31
%3171 = add nsw i32 %3170, 1
store i32 %3171, i32* %31
br label %3024
3172: ; preds = %3024
br label %3173
3173: ; preds = %3172
%3174 = load i32, i32* %32
%3175 = add nsw i32 %3174, 1
store i32 %3175, i32* %32
br label %2994
3176: ; preds = %2994
br label %3177
3177: ; preds = %3176, %2653
br label %3178
3178: ; preds = %3177, %1787
br label %3179
3179: ; preds = %3178, %1096
br label %6223
3180: ; preds = %122
%3181 = load i32, i32* %15
%3182 = sext i32 %3181 to i64
%3183 = mul i64 %3182, 8
%3184 = add i64 %3183, 1
%3185 = call i8* @malloc(i64 %3184)
%3186 = bitcast i8* %3185 to double*
store double* %3186, double** %55
%3187 = load i32, i32* %27
%3188 = sext i32 %3187 to i64
%3189 = mul i64 %3188, 4
%3190 = add i64 %3189, 1
%3191 = call i8* @malloc(i64 %3190)
%3192 = bitcast i8* %3191 to i32*
store i32* %3192, i32** %49
%3193 = load i32, i32* %27
%3194 = load i32, i32* %16
%3195 = mul nsw i32 %3193, %3194
%3196 = sext i32 %3195 to i64
%3197 = mul i64 %3196, 8
%3198 = add i64 %3197, 1
%3199 = call i8* @malloc(i64 %3198)
%3200 = bitcast i8* %3199 to double*
store double* %3200, double** %56
%3201 = load i32, i32* %24
%3202 = mul nsw i32 3, %3201
store i32 %3202, i32* %40
%3203 = load i8, i8* %61
%3204 = sext i8 %3203 to i32
%3205 = icmp ne i32 %3204, 0
br i1 %3205, label %3206, label %4198
3206: ; preds = %3180
%3207 = load i8, i8* %62
%3208 = sext i8 %3207 to i32
%3209 = icmp ne i32 %3208, 0
br i1 %3209, label %3210, label %4198
3210: ; preds = %3206
%3211 = load i32, i32* %48
%3212 = load i32*, i32** %49
%3213 = getelementptr inbounds i32, i32* %3212, i64 0
store i32 %3211, i32* %3213
store i32 0, i32* %52
%3214 = load double*, double** %17
%3215 = getelementptr inbounds double, double* %3214, i64 0
%3216 = load double, double* %3215
%3217 = load double*, double** %17
%3218 = getelementptr inbounds double, double* %3217, i64 3
%3219 = load double, double* %3218
%3220 = fdiv double %3216, %3219
%3221 = load double*, double** %28
%3222 = getelementptr inbounds double, double* %3221, i64 0
store double %3220, double* %3222
%3223 = load double*, double** %17
%3224 = getelementptr inbounds double, double* %3223, i64 1
%3225 = load double, double* %3224
%3226 = load double*, double** %17
%3227 = getelementptr inbounds double, double* %3226, i64 3
%3228 = load double, double* %3227
%3229 = fdiv double %3225, %3228
%3230 = load double*, double** %28
%3231 = getelementptr inbounds double, double* %3230, i64 1
store double %3229, double* %3231
%3232 = load double*, double** %17
%3233 = getelementptr inbounds double, double* %3232, i64 2
%3234 = load double, double* %3233
%3235 = load double*, double** %17
%3236 = getelementptr inbounds double, double* %3235, i64 3
%3237 = load double, double* %3236
%3238 = fdiv double %3234, %3237
%3239 = load double*, double** %28
%3240 = getelementptr inbounds double, double* %3239, i64 2
store double %3238, double* %3240
%3241 = load double, double* %25
store double %3241, double* %58
store i32 1, i32* %31
br label %3242
3242: ; preds = %3417, %3210
%3243 = load i32, i32* %31
%3244 = load i32, i32* %42
%3245 = icmp slt i32 %3243, %3244
br i1 %3245, label %3246, label %3420
3246: ; preds = %3242
%3247 = load i32, i32* %31
%3248 = load i32, i32* %40
%3249 = mul nsw i32 %3247, %3248
store i32 %3249, i32* %35
%3250 = load i32, i32* %31
%3251 = load i32, i32* %16
%3252 = mul nsw i32 %3250, %3251
store i32 %3252, i32* %36
%3253 = load double, double* %26
%3254 = load double, double* %58
%3255 = fadd double %3254, %3253
store double %3255, double* %58
%3256 = load i32, i32* %19
%3257 = load double, double* %58
%3258 = load double*, double** %21
%3259 = load i32*, i32** %49
%3260 = load i32, i32* %31
%3261 = sub nsw i32 %3260, 1
%3262 = sext i32 %3261 to i64
%3263 = getelementptr inbounds i32, i32* %3259, i64 %3262
%3264 = load i32, i32* %3263
%3265 = call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %3256, double %3257, double* %3258, i32 %3264)
%3266 = load i32*, i32** %49
%3267 = load i32, i32* %31
%3268 = sext i32 %3267 to i64
%3269 = getelementptr inbounds i32, i32* %3266, i64 %3268
store i32 %3265, i32* %3269
%3270 = load i32*, i32** %49
%3271 = load i32, i32* %31
%3272 = sext i32 %3271 to i64
%3273 = getelementptr inbounds i32, i32* %3270, i64 %3272
%3274 = load i32, i32* %3273
%3275 = load double, double* %58
%3276 = load i32, i32* %48
%3277 = load double*, double** %21
%3278 = load double*, double** %56
%3279 = load i32, i32* %36
%3280 = sext i32 %3279 to i64
%3281 = getelementptr inbounds double, double* %3278, i64 %3280
%3282 = load double*, double** %53
%3283 = load double*, double** %54
%3284 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %3274, double %3275, i32 %3276, double* %3277, double* %3281, double* %3282, double* %3283)
%3285 = load i32, i32* %52
%3286 = load i32*, i32** %49
%3287 = load i32, i32* %31
%3288 = sub nsw i32 %3287, 1
%3289 = sext i32 %3288 to i64
%3290 = getelementptr inbounds i32, i32* %3286, i64 %3289
store i32 %3285, i32* %3290
%3291 = load i32*, i32** %49
%3292 = load i32, i32* %31
%3293 = sext i32 %3292 to i64
%3294 = getelementptr inbounds i32, i32* %3291, i64 %3293
%3295 = load i32, i32* %3294
%3296 = load i32, i32* %48
%3297 = sub nsw i32 %3295, %3296
store i32 %3297, i32* %52
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %3298
3298: ; preds = %3376, %3246
%3299 = load i32, i32* %29
%3300 = load i32, i32* %48
%3301 = icmp sle i32 %3299, %3300
br i1 %3301, label %3302, label %3379
3302: ; preds = %3298
%3303 = load i32, i32* %45
%3304 = load i32, i32* %52
%3305 = load i32, i32* %29
%3306 = add nsw i32 %3304, %3305
%3307 = mul nsw i32 %3303, %3306
store i32 %3307, i32* %34
%3308 = load i32, i32* %36
%3309 = load i32, i32* %29
%3310 = add nsw i32 %3308, %3309
store i32 %3310, i32* %37
%3311 = load double*, double** %56
%3312 = load i32, i32* %37
%3313 = sext i32 %3312 to i64
%3314 = getelementptr inbounds double, double* %3311, i64 %3313
%3315 = load double, double* %3314
%3316 = load double*, double** %17
%3317 = load i32, i32* %34
%3318 = sext i32 %3317 to i64
%3319 = getelementptr inbounds double, double* %3316, i64 %3318
%3320 = load double, double* %3319
%3321 = load double*, double** %28
%3322 = load i32, i32* %35
%3323 = sext i32 %3322 to i64
%3324 = getelementptr inbounds double, double* %3321, i64 %3323
%3325 = load double, double* %3324
%3326 = call double @llvm.fmuladd.f64(double %3315, double %3320, double %3325)
store double %3326, double* %3324
%3327 = load double*, double** %56
%3328 = load i32, i32* %37
%3329 = sext i32 %3328 to i64
%3330 = getelementptr inbounds double, double* %3327, i64 %3329
%3331 = load double, double* %3330
%3332 = load double*, double** %17
%3333 = load i32, i32* %34
%3334 = add nsw i32 %3333, 1
%3335 = sext i32 %3334 to i64
%3336 = getelementptr inbounds double, double* %3332, i64 %3335
%3337 = load double, double* %3336
%3338 = load double*, double** %28
%3339 = load i32, i32* %35
%3340 = add nsw i32 %3339, 1
%3341 = sext i32 %3340 to i64
%3342 = getelementptr inbounds double, double* %3338, i64 %3341
%3343 = load double, double* %3342
%3344 = call double @llvm.fmuladd.f64(double %3331, double %3337, double %3343)
store double %3344, double* %3342
%3345 = load double*, double** %56
%3346 = load i32, i32* %37
%3347 = sext i32 %3346 to i64
%3348 = getelementptr inbounds double, double* %3345, i64 %3347
%3349 = load double, double* %3348
%3350 = load double*, double** %17
%3351 = load i32, i32* %34
%3352 = add nsw i32 %3351, 2
%3353 = sext i32 %3352 to i64
%3354 = getelementptr inbounds double, double* %3350, i64 %3353
%3355 = load double, double* %3354
%3356 = load double*, double** %28
%3357 = load i32, i32* %35
%3358 = add nsw i32 %3357, 2
%3359 = sext i32 %3358 to i64
%3360 = getelementptr inbounds double, double* %3356, i64 %3359
%3361 = load double, double* %3360
%3362 = call double @llvm.fmuladd.f64(double %3349, double %3355, double %3361)
store double %3362, double* %3360
%3363 = load double*, double** %56
%3364 = load i32, i32* %37
%3365 = sext i32 %3364 to i64
%3366 = getelementptr inbounds double, double* %3363, i64 %3365
%3367 = load double, double* %3366
%3368 = load double*, double** %17
%3369 = load i32, i32* %34
%3370 = add nsw i32 %3369, 3
%3371 = sext i32 %3370 to i64
%3372 = getelementptr inbounds double, double* %3368, i64 %3371
%3373 = load double, double* %3372
%3374 = load double, double* %59
%3375 = call double @llvm.fmuladd.f64(double %3367, double %3373, double %3374)
store double %3375, double* %59
br label %3376
3376: ; preds = %3302
%3377 = load i32, i32* %29
%3378 = add nsw i32 %3377, 1
store i32 %3378, i32* %29
br label %3298
3379: ; preds = %3298
%3380 = load double*, double** %28
%3381 = load i32, i32* %35
%3382 = sext i32 %3381 to i64
%3383 = getelementptr inbounds double, double* %3380, i64 %3382
%3384 = load double, double* %3383
%3385 = load double, double* %59
%3386 = fdiv double %3384, %3385
%3387 = load double*, double** %28
%3388 = load i32, i32* %35
%3389 = sext i32 %3388 to i64
%3390 = getelementptr inbounds double, double* %3387, i64 %3389
store double %3386, double* %3390
%3391 = load double*, double** %28
%3392 = load i32, i32* %35
%3393 = add nsw i32 %3392, 1
%3394 = sext i32 %3393 to i64
%3395 = getelementptr inbounds double, double* %3391, i64 %3394
%3396 = load double, double* %3395
%3397 = load double, double* %59
%3398 = fdiv double %3396, %3397
%3399 = load double*, double** %28
%3400 = load i32, i32* %35
%3401 = add nsw i32 %3400, 1
%3402 = sext i32 %3401 to i64
%3403 = getelementptr inbounds double, double* %3399, i64 %3402
store double %3398, double* %3403
%3404 = load double*, double** %28
%3405 = load i32, i32* %35
%3406 = add nsw i32 %3405, 2
%3407 = sext i32 %3406 to i64
%3408 = getelementptr inbounds double, double* %3404, i64 %3407
%3409 = load double, double* %3408
%3410 = load double, double* %59
%3411 = fdiv double %3409, %3410
%3412 = load double*, double** %28
%3413 = load i32, i32* %35
%3414 = add nsw i32 %3413, 2
%3415 = sext i32 %3414 to i64
%3416 = getelementptr inbounds double, double* %3412, i64 %3415
store double %3411, double* %3416
br label %3417
3417: ; preds = %3379
%3418 = load i32, i32* %31
%3419 = add nsw i32 %3418, 1
store i32 %3419, i32* %31
br label %3242
3420: ; preds = %3242
%3421 = load i32, i32* %52
%3422 = load i32*, i32** %49
%3423 = load i32, i32* %27
%3424 = sub nsw i32 %3423, 2
%3425 = sext i32 %3424 to i64
%3426 = getelementptr inbounds i32, i32* %3422, i64 %3425
store i32 %3421, i32* %3426
%3427 = load i32, i32* %42
%3428 = load i32, i32* %40
%3429 = mul nsw i32 %3427, %3428
store i32 %3429, i32* %35
%3430 = load i32, i32* %45
%3431 = load i32, i32* %44
%3432 = mul nsw i32 %3430, %3431
%3433 = add nsw i32 %3432, 3
store i32 %3433, i32* %34
%3434 = load double*, double** %17
%3435 = load i32, i32* %34
%3436 = sub nsw i32 %3435, 3
%3437 = sext i32 %3436 to i64
%3438 = getelementptr inbounds double, double* %3434, i64 %3437
%3439 = load double, double* %3438
%3440 = load double*, double** %17
%3441 = load i32, i32* %34
%3442 = sext i32 %3441 to i64
%3443 = getelementptr inbounds double, double* %3440, i64 %3442
%3444 = load double, double* %3443
%3445 = fdiv double %3439, %3444
%3446 = load double*, double** %28
%3447 = load i32, i32* %35
%3448 = sext i32 %3447 to i64
%3449 = getelementptr inbounds double, double* %3446, i64 %3448
store double %3445, double* %3449
%3450 = load double*, double** %17
%3451 = load i32, i32* %34
%3452 = sub nsw i32 %3451, 2
%3453 = sext i32 %3452 to i64
%3454 = getelementptr inbounds double, double* %3450, i64 %3453
%3455 = load double, double* %3454
%3456 = load double*, double** %17
%3457 = load i32, i32* %34
%3458 = sext i32 %3457 to i64
%3459 = getelementptr inbounds double, double* %3456, i64 %3458
%3460 = load double, double* %3459
%3461 = fdiv double %3455, %3460
%3462 = load double*, double** %28
%3463 = load i32, i32* %35
%3464 = add nsw i32 %3463, 1
%3465 = sext i32 %3464 to i64
%3466 = getelementptr inbounds double, double* %3462, i64 %3465
store double %3461, double* %3466
%3467 = load double*, double** %17
%3468 = load i32, i32* %34
%3469 = sub nsw i32 %3468, 1
%3470 = sext i32 %3469 to i64
%3471 = getelementptr inbounds double, double* %3467, i64 %3470
%3472 = load double, double* %3471
%3473 = load double*, double** %17
%3474 = load i32, i32* %34
%3475 = sext i32 %3474 to i64
%3476 = getelementptr inbounds double, double* %3473, i64 %3475
%3477 = load double, double* %3476
%3478 = fdiv double %3472, %3477
%3479 = load double*, double** %28
%3480 = load i32, i32* %35
%3481 = add nsw i32 %3480, 2
%3482 = sext i32 %3481 to i64
%3483 = getelementptr inbounds double, double* %3479, i64 %3482
store double %3478, double* %3483
%3484 = load i32, i32* %47
store i32 %3484, i32* %51
%3485 = load double, double* %22
store double %3485, double* %57
store i32 1, i32* %32
br label %3486
3486: ; preds = %3935, %3420
%3487 = load i32, i32* %32
%3488 = load i32, i32* %41
%3489 = icmp slt i32 %3487, %3488
br i1 %3489, label %3490, label %3938
3490: ; preds = %3486
%3491 = load double, double* %23
%3492 = load double, double* %57
%3493 = fadd double %3492, %3491
store double %3493, double* %57
%3494 = load i32, i32* %18
%3495 = load double, double* %57
%3496 = load double*, double** %20
%3497 = load i32, i32* %51
%3498 = call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %3494, double %3495, double* %3496, i32 %3497)
store i32 %3498, i32* %51
%3499 = load i32, i32* %51
%3500 = load double, double* %57
%3501 = load i32, i32* %47
%3502 = load double*, double** %20
%3503 = load double*, double** %55
%3504 = load double*, double** %53
%3505 = load double*, double** %54
%3506 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %3499, double %3500, i32 %3501, double* %3502, double* %3503, double* %3504, double* %3505)
%3507 = load i32, i32* %51
%3508 = load i32, i32* %47
%3509 = sub nsw i32 %3507, %3508
store i32 %3509, i32* %50
%3510 = load i32, i32* %32
%3511 = mul nsw i32 3, %3510
store i32 %3511, i32* %38
%3512 = load i32, i32* %38
store i32 %3512, i32* %35
store double 0.000000e+00, double* %59
store i32 0, i32* %30
br label %3513
3513: ; preds = %3587, %3490
%3514 = load i32, i32* %30
%3515 = load i32, i32* %47
%3516 = icmp sle i32 %3514, %3515
br i1 %3516, label %3517, label %3590
3517: ; preds = %3513
%3518 = load i32, i32* %50
%3519 = load i32, i32* %30
%3520 = add nsw i32 %3518, %3519
%3521 = mul nsw i32 4, %3520
store i32 %3521, i32* %34
%3522 = load double*, double** %55
%3523 = load i32, i32* %30
%3524 = sext i32 %3523 to i64
%3525 = getelementptr inbounds double, double* %3522, i64 %3524
%3526 = load double, double* %3525
%3527 = load double*, double** %17
%3528 = load i32, i32* %34
%3529 = sext i32 %3528 to i64
%3530 = getelementptr inbounds double, double* %3527, i64 %3529
%3531 = load double, double* %3530
%3532 = load double*, double** %28
%3533 = load i32, i32* %35
%3534 = sext i32 %3533 to i64
%3535 = getelementptr inbounds double, double* %3532, i64 %3534
%3536 = load double, double* %3535
%3537 = call double @llvm.fmuladd.f64(double %3526, double %3531, double %3536)
store double %3537, double* %3535
%3538 = load double*, double** %55
%3539 = load i32, i32* %30
%3540 = sext i32 %3539 to i64
%3541 = getelementptr inbounds double, double* %3538, i64 %3540
%3542 = load double, double* %3541
%3543 = load double*, double** %17
%3544 = load i32, i32* %34
%3545 = add nsw i32 %3544, 1
%3546 = sext i32 %3545 to i64
%3547 = getelementptr inbounds double, double* %3543, i64 %3546
%3548 = load double, double* %3547
%3549 = load double*, double** %28
%3550 = load i32, i32* %35
%3551 = add nsw i32 %3550, 1
%3552 = sext i32 %3551 to i64
%3553 = getelementptr inbounds double, double* %3549, i64 %3552
%3554 = load double, double* %3553
%3555 = call double @llvm.fmuladd.f64(double %3542, double %3548, double %3554)
store double %3555, double* %3553
%3556 = load double*, double** %55
%3557 = load i32, i32* %30
%3558 = sext i32 %3557 to i64
%3559 = getelementptr inbounds double, double* %3556, i64 %3558
%3560 = load double, double* %3559
%3561 = load double*, double** %17
%3562 = load i32, i32* %34
%3563 = add nsw i32 %3562, 2
%3564 = sext i32 %3563 to i64
%3565 = getelementptr inbounds double, double* %3561, i64 %3564
%3566 = load double, double* %3565
%3567 = load double*, double** %28
%3568 = load i32, i32* %35
%3569 = add nsw i32 %3568, 2
%3570 = sext i32 %3569 to i64
%3571 = getelementptr inbounds double, double* %3567, i64 %3570
%3572 = load double, double* %3571
%3573 = call double @llvm.fmuladd.f64(double %3560, double %3566, double %3572)
store double %3573, double* %3571
%3574 = load double*, double** %55
%3575 = load i32, i32* %30
%3576 = sext i32 %3575 to i64
%3577 = getelementptr inbounds double, double* %3574, i64 %3576
%3578 = load double, double* %3577
%3579 = load double*, double** %17
%3580 = load i32, i32* %34
%3581 = add nsw i32 %3580, 3
%3582 = sext i32 %3581 to i64
%3583 = getelementptr inbounds double, double* %3579, i64 %3582
%3584 = load double, double* %3583
%3585 = load double, double* %59
%3586 = call double @llvm.fmuladd.f64(double %3578, double %3584, double %3585)
store double %3586, double* %59
br label %3587
3587: ; preds = %3517
%3588 = load i32, i32* %30
%3589 = add nsw i32 %3588, 1
store i32 %3589, i32* %30
br label %3513
3590: ; preds = %3513
%3591 = load double*, double** %28
%3592 = load i32, i32* %35
%3593 = sext i32 %3592 to i64
%3594 = getelementptr inbounds double, double* %3591, i64 %3593
%3595 = load double, double* %3594
%3596 = load double, double* %59
%3597 = fdiv double %3595, %3596
%3598 = load double*, double** %28
%3599 = load i32, i32* %35
%3600 = sext i32 %3599 to i64
%3601 = getelementptr inbounds double, double* %3598, i64 %3600
store double %3597, double* %3601
%3602 = load double*, double** %28
%3603 = load i32, i32* %35
%3604 = add nsw i32 %3603, 1
%3605 = sext i32 %3604 to i64
%3606 = getelementptr inbounds double, double* %3602, i64 %3605
%3607 = load double, double* %3606
%3608 = load double, double* %59
%3609 = fdiv double %3607, %3608
%3610 = load double*, double** %28
%3611 = load i32, i32* %35
%3612 = add nsw i32 %3611, 1
%3613 = sext i32 %3612 to i64
%3614 = getelementptr inbounds double, double* %3610, i64 %3613
store double %3609, double* %3614
%3615 = load double*, double** %28
%3616 = load i32, i32* %35
%3617 = add nsw i32 %3616, 2
%3618 = sext i32 %3617 to i64
%3619 = getelementptr inbounds double, double* %3615, i64 %3618
%3620 = load double, double* %3619
%3621 = load double, double* %59
%3622 = fdiv double %3620, %3621
%3623 = load double*, double** %28
%3624 = load i32, i32* %35
%3625 = add nsw i32 %3624, 2
%3626 = sext i32 %3625 to i64
%3627 = getelementptr inbounds double, double* %3623, i64 %3626
store double %3622, double* %3627
store i32 1, i32* %31
br label %3628
3628: ; preds = %3806, %3590
%3629 = load i32, i32* %31
%3630 = load i32, i32* %42
%3631 = icmp slt i32 %3629, %3630
br i1 %3631, label %3632, label %3809
3632: ; preds = %3628
%3633 = load i32, i32* %40
%3634 = load i32, i32* %31
%3635 = mul nsw i32 %3633, %3634
%3636 = load i32, i32* %38
%3637 = add nsw i32 %3635, %3636
store i32 %3637, i32* %35
%3638 = load i32, i32* %31
%3639 = load i32, i32* %16
%3640 = mul nsw i32 %3638, %3639
store i32 %3640, i32* %36
%3641 = load i32, i32* %50
%3642 = load i32*, i32** %49
%3643 = load i32, i32* %31
%3644 = sext i32 %3643 to i64
%3645 = getelementptr inbounds i32, i32* %3642, i64 %3644
%3646 = load i32, i32* %3645
%3647 = load i32, i32* %18
%3648 = mul nsw i32 %3646, %3647
%3649 = add nsw i32 %3641, %3648
store i32 %3649, i32* %39
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %3650
3650: ; preds = %3765, %3632
%3651 = load i32, i32* %29
%3652 = load i32, i32* %48
%3653 = icmp sle i32 %3651, %3652
br i1 %3653, label %3654, label %3768
3654: ; preds = %3650
%3655 = load i32, i32* %18
%3656 = load i32, i32* %29
%3657 = mul nsw i32 %3655, %3656
%3658 = load i32, i32* %39
%3659 = add nsw i32 %3657, %3658
store i32 %3659, i32* %33
%3660 = load i32, i32* %36
%3661 = load i32, i32* %29
%3662 = add nsw i32 %3660, %3661
store i32 %3662, i32* %37
store i32 0, i32* %30
br label %3663
3663: ; preds = %3761, %3654
%3664 = load i32, i32* %30
%3665 = load i32, i32* %47
%3666 = icmp sle i32 %3664, %3665
br i1 %3666, label %3667, label %3764
3667: ; preds = %3663
%3668 = load i32, i32* %33
%3669 = load i32, i32* %30
%3670 = add nsw i32 %3668, %3669
%3671 = mul nsw i32 4, %3670
store i32 %3671, i32* %34
%3672 = load double*, double** %56
%3673 = load i32, i32* %37
%3674 = sext i32 %3673 to i64
%3675 = getelementptr inbounds double, double* %3672, i64 %3674
%3676 = load double, double* %3675
%3677 = load double*, double** %55
%3678 = load i32, i32* %30
%3679 = sext i32 %3678 to i64
%3680 = getelementptr inbounds double, double* %3677, i64 %3679
%3681 = load double, double* %3680
%3682 = fmul double %3676, %3681
%3683 = load double*, double** %17
%3684 = load i32, i32* %34
%3685 = sext i32 %3684 to i64
%3686 = getelementptr inbounds double, double* %3683, i64 %3685
%3687 = load double, double* %3686
%3688 = load double*, double** %28
%3689 = load i32, i32* %35
%3690 = sext i32 %3689 to i64
%3691 = getelementptr inbounds double, double* %3688, i64 %3690
%3692 = load double, double* %3691
%3693 = call double @llvm.fmuladd.f64(double %3682, double %3687, double %3692)
store double %3693, double* %3691
%3694 = load double*, double** %56
%3695 = load i32, i32* %37
%3696 = sext i32 %3695 to i64
%3697 = getelementptr inbounds double, double* %3694, i64 %3696
%3698 = load double, double* %3697
%3699 = load double*, double** %55
%3700 = load i32, i32* %30
%3701 = sext i32 %3700 to i64
%3702 = getelementptr inbounds double, double* %3699, i64 %3701
%3703 = load double, double* %3702
%3704 = fmul double %3698, %3703
%3705 = load double*, double** %17
%3706 = load i32, i32* %34
%3707 = add nsw i32 %3706, 1
%3708 = sext i32 %3707 to i64
%3709 = getelementptr inbounds double, double* %3705, i64 %3708
%3710 = load double, double* %3709
%3711 = load double*, double** %28
%3712 = load i32, i32* %35
%3713 = add nsw i32 %3712, 1
%3714 = sext i32 %3713 to i64
%3715 = getelementptr inbounds double, double* %3711, i64 %3714
%3716 = load double, double* %3715
%3717 = call double @llvm.fmuladd.f64(double %3704, double %3710, double %3716)
store double %3717, double* %3715
%3718 = load double*, double** %56
%3719 = load i32, i32* %37
%3720 = sext i32 %3719 to i64
%3721 = getelementptr inbounds double, double* %3718, i64 %3720
%3722 = load double, double* %3721
%3723 = load double*, double** %55
%3724 = load i32, i32* %30
%3725 = sext i32 %3724 to i64
%3726 = getelementptr inbounds double, double* %3723, i64 %3725
%3727 = load double, double* %3726
%3728 = fmul double %3722, %3727
%3729 = load double*, double** %17
%3730 = load i32, i32* %34
%3731 = add nsw i32 %3730, 2
%3732 = sext i32 %3731 to i64
%3733 = getelementptr inbounds double, double* %3729, i64 %3732
%3734 = load double, double* %3733
%3735 = load double*, double** %28
%3736 = load i32, i32* %35
%3737 = add nsw i32 %3736, 2
%3738 = sext i32 %3737 to i64
%3739 = getelementptr inbounds double, double* %3735, i64 %3738
%3740 = load double, double* %3739
%3741 = call double @llvm.fmuladd.f64(double %3728, double %3734, double %3740)
store double %3741, double* %3739
%3742 = load double*, double** %56
%3743 = load i32, i32* %37
%3744 = sext i32 %3743 to i64
%3745 = getelementptr inbounds double, double* %3742, i64 %3744
%3746 = load double, double* %3745
%3747 = load double*, double** %55
%3748 = load i32, i32* %30
%3749 = sext i32 %3748 to i64
%3750 = getelementptr inbounds double, double* %3747, i64 %3749
%3751 = load double, double* %3750
%3752 = fmul double %3746, %3751
%3753 = load double*, double** %17
%3754 = load i32, i32* %34
%3755 = add nsw i32 %3754, 3
%3756 = sext i32 %3755 to i64
%3757 = getelementptr inbounds double, double* %3753, i64 %3756
%3758 = load double, double* %3757
%3759 = load double, double* %59
%3760 = call double @llvm.fmuladd.f64(double %3752, double %3758, double %3759)
store double %3760, double* %59
br label %3761
3761: ; preds = %3667
%3762 = load i32, i32* %30
%3763 = add nsw i32 %3762, 1
store i32 %3763, i32* %30
br label %3663
3764: ; preds = %3663
br label %3765
3765: ; preds = %3764
%3766 = load i32, i32* %29
%3767 = add nsw i32 %3766, 1
store i32 %3767, i32* %29
br label %3650
3768: ; preds = %3650
%3769 = load double*, double** %28
%3770 = load i32, i32* %35
%3771 = sext i32 %3770 to i64
%3772 = getelementptr inbounds double, double* %3769, i64 %3771
%3773 = load double, double* %3772
%3774 = load double, double* %59
%3775 = fdiv double %3773, %3774
%3776 = load double*, double** %28
%3777 = load i32, i32* %35
%3778 = sext i32 %3777 to i64
%3779 = getelementptr inbounds double, double* %3776, i64 %3778
store double %3775, double* %3779
%3780 = load double*, double** %28
%3781 = load i32, i32* %35
%3782 = add nsw i32 %3781, 1
%3783 = sext i32 %3782 to i64
%3784 = getelementptr inbounds double, double* %3780, i64 %3783
%3785 = load double, double* %3784
%3786 = load double, double* %59
%3787 = fdiv double %3785, %3786
%3788 = load double*, double** %28
%3789 = load i32, i32* %35
%3790 = add nsw i32 %3789, 1
%3791 = sext i32 %3790 to i64
%3792 = getelementptr inbounds double, double* %3788, i64 %3791
store double %3787, double* %3792
%3793 = load double*, double** %28
%3794 = load i32, i32* %35
%3795 = add nsw i32 %3794, 2
%3796 = sext i32 %3795 to i64
%3797 = getelementptr inbounds double, double* %3793, i64 %3796
%3798 = load double, double* %3797
%3799 = load double, double* %59
%3800 = fdiv double %3798, %3799
%3801 = load double*, double** %28
%3802 = load i32, i32* %35
%3803 = add nsw i32 %3802, 2
%3804 = sext i32 %3803 to i64
%3805 = getelementptr inbounds double, double* %3801, i64 %3804
store double %3800, double* %3805
br label %3806
3806: ; preds = %3768
%3807 = load i32, i32* %31
%3808 = add nsw i32 %3807, 1
store i32 %3808, i32* %31
br label %3628
3809: ; preds = %3628
%3810 = load i32, i32* %40
%3811 = load i32, i32* %42
%3812 = mul nsw i32 %3810, %3811
%3813 = load i32, i32* %38
%3814 = add nsw i32 %3812, %3813
store i32 %3814, i32* %35
%3815 = load i32, i32* %50
%3816 = load i32, i32* %44
%3817 = load i32, i32* %18
%3818 = mul nsw i32 %3816, %3817
%3819 = add nsw i32 %3815, %3818
store i32 %3819, i32* %39
store double 0.000000e+00, double* %59
store i32 0, i32* %30
br label %3820
3820: ; preds = %3894, %3809
%3821 = load i32, i32* %30
%3822 = load i32, i32* %47
%3823 = icmp sle i32 %3821, %3822
br i1 %3823, label %3824, label %3897
3824: ; preds = %3820
%3825 = load i32, i32* %30
%3826 = load i32, i32* %39
%3827 = add nsw i32 %3825, %3826
%3828 = mul nsw i32 4, %3827
store i32 %3828, i32* %34
%3829 = load double*, double** %55
%3830 = load i32, i32* %30
%3831 = sext i32 %3830 to i64
%3832 = getelementptr inbounds double, double* %3829, i64 %3831
%3833 = load double, double* %3832
%3834 = load double*, double** %17
%3835 = load i32, i32* %34
%3836 = sext i32 %3835 to i64
%3837 = getelementptr inbounds double, double* %3834, i64 %3836
%3838 = load double, double* %3837
%3839 = load double*, double** %28
%3840 = load i32, i32* %35
%3841 = sext i32 %3840 to i64
%3842 = getelementptr inbounds double, double* %3839, i64 %3841
%3843 = load double, double* %3842
%3844 = call double @llvm.fmuladd.f64(double %3833, double %3838, double %3843)
store double %3844, double* %3842
%3845 = load double*, double** %55
%3846 = load i32, i32* %30
%3847 = sext i32 %3846 to i64
%3848 = getelementptr inbounds double, double* %3845, i64 %3847
%3849 = load double, double* %3848
%3850 = load double*, double** %17
%3851 = load i32, i32* %34
%3852 = add nsw i32 %3851, 1
%3853 = sext i32 %3852 to i64
%3854 = getelementptr inbounds double, double* %3850, i64 %3853
%3855 = load double, double* %3854
%3856 = load double*, double** %28
%3857 = load i32, i32* %35
%3858 = add nsw i32 %3857, 1
%3859 = sext i32 %3858 to i64
%3860 = getelementptr inbounds double, double* %3856, i64 %3859
%3861 = load double, double* %3860
%3862 = call double @llvm.fmuladd.f64(double %3849, double %3855, double %3861)
store double %3862, double* %3860
%3863 = load double*, double** %55
%3864 = load i32, i32* %30
%3865 = sext i32 %3864 to i64
%3866 = getelementptr inbounds double, double* %3863, i64 %3865
%3867 = load double, double* %3866
%3868 = load double*, double** %17
%3869 = load i32, i32* %34
%3870 = add nsw i32 %3869, 2
%3871 = sext i32 %3870 to i64
%3872 = getelementptr inbounds double, double* %3868, i64 %3871
%3873 = load double, double* %3872
%3874 = load double*, double** %28
%3875 = load i32, i32* %35
%3876 = add nsw i32 %3875, 2
%3877 = sext i32 %3876 to i64
%3878 = getelementptr inbounds double, double* %3874, i64 %3877
%3879 = load double, double* %3878
%3880 = call double @llvm.fmuladd.f64(double %3867, double %3873, double %3879)
store double %3880, double* %3878
%3881 = load double*, double** %55
%3882 = load i32, i32* %30
%3883 = sext i32 %3882 to i64
%3884 = getelementptr inbounds double, double* %3881, i64 %3883
%3885 = load double, double* %3884
%3886 = load double*, double** %17
%3887 = load i32, i32* %34
%3888 = add nsw i32 %3887, 3
%3889 = sext i32 %3888 to i64
%3890 = getelementptr inbounds double, double* %3886, i64 %3889
%3891 = load double, double* %3890
%3892 = load double, double* %59
%3893 = call double @llvm.fmuladd.f64(double %3885, double %3891, double %3892)
store double %3893, double* %59
br label %3894
3894: ; preds = %3824
%3895 = load i32, i32* %30
%3896 = add nsw i32 %3895, 1
store i32 %3896, i32* %30
br label %3820
3897: ; preds = %3820
%3898 = load double*, double** %28
%3899 = load i32, i32* %35
%3900 = sext i32 %3899 to i64
%3901 = getelementptr inbounds double, double* %3898, i64 %3900
%3902 = load double, double* %3901
%3903 = load double, double* %59
%3904 = fdiv double %3902, %3903
%3905 = load double*, double** %28
%3906 = load i32, i32* %35
%3907 = sext i32 %3906 to i64
%3908 = getelementptr inbounds double, double* %3905, i64 %3907
store double %3904, double* %3908
%3909 = load double*, double** %28
%3910 = load i32, i32* %35
%3911 = add nsw i32 %3910, 1
%3912 = sext i32 %3911 to i64
%3913 = getelementptr inbounds double, double* %3909, i64 %3912
%3914 = load double, double* %3913
%3915 = load double, double* %59
%3916 = fdiv double %3914, %3915
%3917 = load double*, double** %28
%3918 = load i32, i32* %35
%3919 = add nsw i32 %3918, 1
%3920 = sext i32 %3919 to i64
%3921 = getelementptr inbounds double, double* %3917, i64 %3920
store double %3916, double* %3921
%3922 = load double*, double** %28
%3923 = load i32, i32* %35
%3924 = add nsw i32 %3923, 2
%3925 = sext i32 %3924 to i64
%3926 = getelementptr inbounds double, double* %3922, i64 %3925
%3927 = load double, double* %3926
%3928 = load double, double* %59
%3929 = fdiv double %3927, %3928
%3930 = load double*, double** %28
%3931 = load i32, i32* %35
%3932 = add nsw i32 %3931, 2
%3933 = sext i32 %3932 to i64
%3934 = getelementptr inbounds double, double* %3930, i64 %3933
store double %3929, double* %3934
br label %3935
3935: ; preds = %3897
%3936 = load i32, i32* %32
%3937 = add nsw i32 %3936, 1
store i32 %3937, i32* %32
br label %3486
3938: ; preds = %3486
%3939 = load i32, i32* %41
%3940 = mul nsw i32 3, %3939
store i32 %3940, i32* %38
%3941 = load i32, i32* %38
store i32 %3941, i32* %35
%3942 = load i32, i32* %45
%3943 = sub nsw i32 %3942, 1
store i32 %3943, i32* %34
%3944 = load double*, double** %17
%3945 = load i32, i32* %34
%3946 = sub nsw i32 %3945, 3
%3947 = sext i32 %3946 to i64
%3948 = getelementptr inbounds double, double* %3944, i64 %3947
%3949 = load double, double* %3948
%3950 = load double*, double** %17
%3951 = load i32, i32* %34
%3952 = sext i32 %3951 to i64
%3953 = getelementptr inbounds double, double* %3950, i64 %3952
%3954 = load double, double* %3953
%3955 = fdiv double %3949, %3954
%3956 = load double*, double** %28
%3957 = load i32, i32* %35
%3958 = sext i32 %3957 to i64
%3959 = getelementptr inbounds double, double* %3956, i64 %3958
store double %3955, double* %3959
%3960 = load double*, double** %17
%3961 = load i32, i32* %34
%3962 = sub nsw i32 %3961, 2
%3963 = sext i32 %3962 to i64
%3964 = getelementptr inbounds double, double* %3960, i64 %3963
%3965 = load double, double* %3964
%3966 = load double*, double** %17
%3967 = load i32, i32* %34
%3968 = sext i32 %3967 to i64
%3969 = getelementptr inbounds double, double* %3966, i64 %3968
%3970 = load double, double* %3969
%3971 = fdiv double %3965, %3970
%3972 = load double*, double** %28
%3973 = load i32, i32* %35
%3974 = add nsw i32 %3973, 1
%3975 = sext i32 %3974 to i64
%3976 = getelementptr inbounds double, double* %3972, i64 %3975
store double %3971, double* %3976
%3977 = load double*, double** %17
%3978 = load i32, i32* %34
%3979 = sub nsw i32 %3978, 1
%3980 = sext i32 %3979 to i64
%3981 = getelementptr inbounds double, double* %3977, i64 %3980
%3982 = load double, double* %3981
%3983 = load double*, double** %17
%3984 = load i32, i32* %34
%3985 = sext i32 %3984 to i64
%3986 = getelementptr inbounds double, double* %3983, i64 %3985
%3987 = load double, double* %3986
%3988 = fdiv double %3982, %3987
%3989 = load double*, double** %28
%3990 = load i32, i32* %35
%3991 = add nsw i32 %3990, 2
%3992 = sext i32 %3991 to i64
%3993 = getelementptr inbounds double, double* %3989, i64 %3992
store double %3988, double* %3993
store i32 1, i32* %31
br label %3994
3994: ; preds = %4135, %3938
%3995 = load i32, i32* %31
%3996 = load i32, i32* %42
%3997 = icmp slt i32 %3995, %3996
br i1 %3997, label %3998, label %4138
3998: ; preds = %3994
%3999 = load i32, i32* %40
%4000 = load i32, i32* %31
%4001 = mul nsw i32 %3999, %4000
%4002 = load i32, i32* %38
%4003 = add nsw i32 %4001, %4002
store i32 %4003, i32* %35
%4004 = load i32, i32* %31
%4005 = load i32, i32* %16
%4006 = mul nsw i32 %4004, %4005
store i32 %4006, i32* %36
store double 0.000000e+00, double* %59
%4007 = load i32, i32* %45
%4008 = load i32*, i32** %49
%4009 = load i32, i32* %31
%4010 = sext i32 %4009 to i64
%4011 = getelementptr inbounds i32, i32* %4008, i64 %4010
%4012 = load i32, i32* %4011
%4013 = mul nsw i32 %4007, %4012
%4014 = load i32, i32* %46
%4015 = add nsw i32 %4013, %4014
store i32 %4015, i32* %33
store i32 0, i32* %29
br label %4016
4016: ; preds = %4094, %3998
%4017 = load i32, i32* %29
%4018 = load i32, i32* %48
%4019 = icmp sle i32 %4017, %4018
br i1 %4019, label %4020, label %4097
4020: ; preds = %4016
%4021 = load i32, i32* %45
%4022 = load i32, i32* %29
%4023 = mul nsw i32 %4021, %4022
%4024 = load i32, i32* %33
%4025 = add nsw i32 %4023, %4024
store i32 %4025, i32* %34
%4026 = load i32, i32* %36
%4027 = load i32, i32* %29
%4028 = add nsw i32 %4026, %4027
store i32 %4028, i32* %37
%4029 = load double*, double** %56
%4030 = load i32, i32* %37
%4031 = sext i32 %4030 to i64
%4032 = getelementptr inbounds double, double* %4029, i64 %4031
%4033 = load double, double* %4032
%4034 = load double*, double** %17
%4035 = load i32, i32* %34
%4036 = sext i32 %4035 to i64
%4037 = getelementptr inbounds double, double* %4034, i64 %4036
%4038 = load double, double* %4037
%4039 = load double*, double** %28
%4040 = load i32, i32* %35
%4041 = sext i32 %4040 to i64
%4042 = getelementptr inbounds double, double* %4039, i64 %4041
%4043 = load double, double* %4042
%4044 = call double @llvm.fmuladd.f64(double %4033, double %4038, double %4043)
store double %4044, double* %4042
%4045 = load double*, double** %56
%4046 = load i32, i32* %37
%4047 = sext i32 %4046 to i64
%4048 = getelementptr inbounds double, double* %4045, i64 %4047
%4049 = load double, double* %4048
%4050 = load double*, double** %17
%4051 = load i32, i32* %34
%4052 = add nsw i32 %4051, 1
%4053 = sext i32 %4052 to i64
%4054 = getelementptr inbounds double, double* %4050, i64 %4053
%4055 = load double, double* %4054
%4056 = load double*, double** %28
%4057 = load i32, i32* %35
%4058 = add nsw i32 %4057, 1
%4059 = sext i32 %4058 to i64
%4060 = getelementptr inbounds double, double* %4056, i64 %4059
%4061 = load double, double* %4060
%4062 = call double @llvm.fmuladd.f64(double %4049, double %4055, double %4061)
store double %4062, double* %4060
%4063 = load double*, double** %56
%4064 = load i32, i32* %37
%4065 = sext i32 %4064 to i64
%4066 = getelementptr inbounds double, double* %4063, i64 %4065
%4067 = load double, double* %4066
%4068 = load double*, double** %17
%4069 = load i32, i32* %34
%4070 = add nsw i32 %4069, 2
%4071 = sext i32 %4070 to i64
%4072 = getelementptr inbounds double, double* %4068, i64 %4071
%4073 = load double, double* %4072
%4074 = load double*, double** %28
%4075 = load i32, i32* %35
%4076 = add nsw i32 %4075, 2
%4077 = sext i32 %4076 to i64
%4078 = getelementptr inbounds double, double* %4074, i64 %4077
%4079 = load double, double* %4078
%4080 = call double @llvm.fmuladd.f64(double %4067, double %4073, double %4079)
store double %4080, double* %4078
%4081 = load double*, double** %56
%4082 = load i32, i32* %37
%4083 = sext i32 %4082 to i64
%4084 = getelementptr inbounds double, double* %4081, i64 %4083
%4085 = load double, double* %4084
%4086 = load double*, double** %17
%4087 = load i32, i32* %34
%4088 = add nsw i32 %4087, 3
%4089 = sext i32 %4088 to i64
%4090 = getelementptr inbounds double, double* %4086, i64 %4089
%4091 = load double, double* %4090
%4092 = load double, double* %59
%4093 = call double @llvm.fmuladd.f64(double %4085, double %4091, double %4092)
store double %4093, double* %59
br label %4094
4094: ; preds = %4020
%4095 = load i32, i32* %29
%4096 = add nsw i32 %4095, 1
store i32 %4096, i32* %29
br label %4016
4097: ; preds = %4016
%4098 = load double*, double** %28
%4099 = load i32, i32* %35
%4100 = sext i32 %4099 to i64
%4101 = getelementptr inbounds double, double* %4098, i64 %4100
%4102 = load double, double* %4101
%4103 = load double, double* %59
%4104 = fdiv double %4102, %4103
%4105 = load double*, double** %28
%4106 = load i32, i32* %35
%4107 = sext i32 %4106 to i64
%4108 = getelementptr inbounds double, double* %4105, i64 %4107
store double %4104, double* %4108
%4109 = load double*, double** %28
%4110 = load i32, i32* %35
%4111 = add nsw i32 %4110, 1
%4112 = sext i32 %4111 to i64
%4113 = getelementptr inbounds double, double* %4109, i64 %4112
%4114 = load double, double* %4113
%4115 = load double, double* %59
%4116 = fdiv double %4114, %4115
%4117 = load double*, double** %28
%4118 = load i32, i32* %35
%4119 = add nsw i32 %4118, 1
%4120 = sext i32 %4119 to i64
%4121 = getelementptr inbounds double, double* %4117, i64 %4120
store double %4116, double* %4121
%4122 = load double*, double** %28
%4123 = load i32, i32* %35
%4124 = add nsw i32 %4123, 2
%4125 = sext i32 %4124 to i64
%4126 = getelementptr inbounds double, double* %4122, i64 %4125
%4127 = load double, double* %4126
%4128 = load double, double* %59
%4129 = fdiv double %4127, %4128
%4130 = load double*, double** %28
%4131 = load i32, i32* %35
%4132 = add nsw i32 %4131, 2
%4133 = sext i32 %4132 to i64
%4134 = getelementptr inbounds double, double* %4130, i64 %4133
store double %4129, double* %4134
br label %4135
4135: ; preds = %4097
%4136 = load i32, i32* %31
%4137 = add nsw i32 %4136, 1
store i32 %4137, i32* %31
br label %3994
4138: ; preds = %3994
%4139 = load i32, i32* %24
%4140 = load i32, i32* %27
%4141 = mul nsw i32 %4139, %4140
%4142 = sub nsw i32 %4141, 1
%4143 = mul nsw i32 3, %4142
store i32 %4143, i32* %35
%4144 = load i32, i32* %45
%4145 = load i32, i32* %19
%4146 = mul nsw i32 %4144, %4145
%4147 = sub nsw i32 %4146, 1
store i32 %4147, i32* %34
%4148 = load double*, double** %17
%4149 = load i32, i32* %34
%4150 = sub nsw i32 %4149, 3
%4151 = sext i32 %4150 to i64
%4152 = getelementptr inbounds double, double* %4148, i64 %4151
%4153 = load double, double* %4152
%4154 = load double*, double** %17
%4155 = load i32, i32* %34
%4156 = sext i32 %4155 to i64
%4157 = getelementptr inbounds double, double* %4154, i64 %4156
%4158 = load double, double* %4157
%4159 = fdiv double %4153, %4158
%4160 = load double*, double** %28
%4161 = load i32, i32* %35
%4162 = sext i32 %4161 to i64
%4163 = getelementptr inbounds double, double* %4160, i64 %4162
store double %4159, double* %4163
%4164 = load double*, double** %17
%4165 = load i32, i32* %34
%4166 = sub nsw i32 %4165, 2
%4167 = sext i32 %4166 to i64
%4168 = getelementptr inbounds double, double* %4164, i64 %4167
%4169 = load double, double* %4168
%4170 = load double*, double** %17
%4171 = load i32, i32* %34
%4172 = sext i32 %4171 to i64
%4173 = getelementptr inbounds double, double* %4170, i64 %4172
%4174 = load double, double* %4173
%4175 = fdiv double %4169, %4174
%4176 = load double*, double** %28
%4177 = load i32, i32* %35
%4178 = add nsw i32 %4177, 1
%4179 = sext i32 %4178 to i64
%4180 = getelementptr inbounds double, double* %4176, i64 %4179
store double %4175, double* %4180
%4181 = load double*, double** %17
%4182 = load i32, i32* %34
%4183 = sub nsw i32 %4182, 1
%4184 = sext i32 %4183 to i64
%4185 = getelementptr inbounds double, double* %4181, i64 %4184
%4186 = load double, double* %4185
%4187 = load double*, double** %17
%4188 = load i32, i32* %34
%4189 = sext i32 %4188 to i64
%4190 = getelementptr inbounds double, double* %4187, i64 %4189
%4191 = load double, double* %4190
%4192 = fdiv double %4186, %4191
%4193 = load double*, double** %28
%4194 = load i32, i32* %35
%4195 = add nsw i32 %4194, 2
%4196 = sext i32 %4195 to i64
%4197 = getelementptr inbounds double, double* %4193, i64 %4196
store double %4192, double* %4197
br label %6222
4198: ; preds = %3206, %3180
%4199 = load i8, i8* %62
%4200 = icmp ne i8 %4199, 0
br i1 %4200, label %4201, label %5059
4201: ; preds = %4198
%4202 = load i32, i32* %48
%4203 = load i32*, i32** %49
%4204 = getelementptr inbounds i32, i32* %4203, i64 0
store i32 %4202, i32* %4204
store i32 0, i32* %52
%4205 = load i32, i32* %18
%4206 = load i32, i32* %47
%4207 = load double, double* %22
%4208 = load double*, double** %20
%4209 = call i32 (i32, i32, double, double*, ...) bitcast (i32 (...)* @FindSpan to i32 (i32, i32, double, double*, ...)*)(i32 %4205, i32 %4206, double %4207, double* %4208)
store i32 %4209, i32* %51
%4210 = load i32, i32* %51
%4211 = load double, double* %22
%4212 = load i32, i32* %47
%4213 = load double*, double** %20
%4214 = load double*, double** %55
%4215 = load double*, double** %53
%4216 = load double*, double** %54
%4217 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %4210, double %4211, i32 %4212, double* %4213, double* %4214, double* %4215, double* %4216)
%4218 = load i32, i32* %51
%4219 = load i32, i32* %47
%4220 = sub nsw i32 %4218, %4219
store i32 %4220, i32* %50
store double 0.000000e+00, double* %59
store i32 0, i32* %30
br label %4221
4221: ; preds = %4287, %4201
%4222 = load i32, i32* %30
%4223 = load i32, i32* %47
%4224 = icmp sle i32 %4222, %4223
br i1 %4224, label %4225, label %4290
4225: ; preds = %4221
%4226 = load i32, i32* %50
%4227 = load i32, i32* %30
%4228 = add nsw i32 %4226, %4227
%4229 = mul nsw i32 4, %4228
store i32 %4229, i32* %34
%4230 = load double*, double** %55
%4231 = load i32, i32* %30
%4232 = sext i32 %4231 to i64
%4233 = getelementptr inbounds double, double* %4230, i64 %4232
%4234 = load double, double* %4233
%4235 = load double*, double** %17
%4236 = load i32, i32* %34
%4237 = sext i32 %4236 to i64
%4238 = getelementptr inbounds double, double* %4235, i64 %4237
%4239 = load double, double* %4238
%4240 = load double*, double** %28
%4241 = getelementptr inbounds double, double* %4240, i64 0
%4242 = load double, double* %4241
%4243 = call double @llvm.fmuladd.f64(double %4234, double %4239, double %4242)
store double %4243, double* %4241
%4244 = load double*, double** %55
%4245 = load i32, i32* %30
%4246 = sext i32 %4245 to i64
%4247 = getelementptr inbounds double, double* %4244, i64 %4246
%4248 = load double, double* %4247
%4249 = load double*, double** %17
%4250 = load i32, i32* %34
%4251 = add nsw i32 %4250, 1
%4252 = sext i32 %4251 to i64
%4253 = getelementptr inbounds double, double* %4249, i64 %4252
%4254 = load double, double* %4253
%4255 = load double*, double** %28
%4256 = getelementptr inbounds double, double* %4255, i64 1
%4257 = load double, double* %4256
%4258 = call double @llvm.fmuladd.f64(double %4248, double %4254, double %4257)
store double %4258, double* %4256
%4259 = load double*, double** %55
%4260 = load i32, i32* %30
%4261 = sext i32 %4260 to i64
%4262 = getelementptr inbounds double, double* %4259, i64 %4261
%4263 = load double, double* %4262
%4264 = load double*, double** %17
%4265 = load i32, i32* %34
%4266 = add nsw i32 %4265, 2
%4267 = sext i32 %4266 to i64
%4268 = getelementptr inbounds double, double* %4264, i64 %4267
%4269 = load double, double* %4268
%4270 = load double*, double** %28
%4271 = getelementptr inbounds double, double* %4270, i64 2
%4272 = load double, double* %4271
%4273 = call double @llvm.fmuladd.f64(double %4263, double %4269, double %4272)
store double %4273, double* %4271
%4274 = load double*, double** %55
%4275 = load i32, i32* %30
%4276 = sext i32 %4275 to i64
%4277 = getelementptr inbounds double, double* %4274, i64 %4276
%4278 = load double, double* %4277
%4279 = load double*, double** %17
%4280 = load i32, i32* %34
%4281 = add nsw i32 %4280, 3
%4282 = sext i32 %4281 to i64
%4283 = getelementptr inbounds double, double* %4279, i64 %4282
%4284 = load double, double* %4283
%4285 = load double, double* %59
%4286 = call double @llvm.fmuladd.f64(double %4278, double %4284, double %4285)
store double %4286, double* %59
br label %4287
4287: ; preds = %4225
%4288 = load i32, i32* %30
%4289 = add nsw i32 %4288, 1
store i32 %4289, i32* %30
br label %4221
4290: ; preds = %4221
%4291 = load double*, double** %28
%4292 = getelementptr inbounds double, double* %4291, i64 0
%4293 = load double, double* %4292
%4294 = load double, double* %59
%4295 = fdiv double %4293, %4294
%4296 = load double*, double** %28
%4297 = getelementptr inbounds double, double* %4296, i64 0
store double %4295, double* %4297
%4298 = load double*, double** %28
%4299 = getelementptr inbounds double, double* %4298, i64 1
%4300 = load double, double* %4299
%4301 = load double, double* %59
%4302 = fdiv double %4300, %4301
%4303 = load double*, double** %28
%4304 = getelementptr inbounds double, double* %4303, i64 1
store double %4302, double* %4304
%4305 = load double*, double** %28
%4306 = getelementptr inbounds double, double* %4305, i64 2
%4307 = load double, double* %4306
%4308 = load double, double* %59
%4309 = fdiv double %4307, %4308
%4310 = load double*, double** %28
%4311 = getelementptr inbounds double, double* %4310, i64 2
store double %4309, double* %4311
%4312 = load double, double* %25
store double %4312, double* %58
store i32 1, i32* %31
br label %4313
4313: ; preds = %4501, %4290
%4314 = load i32, i32* %31
%4315 = load i32, i32* %42
%4316 = icmp slt i32 %4314, %4315
br i1 %4316, label %4317, label %4504
4317: ; preds = %4313
%4318 = load i32, i32* %31
%4319 = load i32, i32* %40
%4320 = mul nsw i32 %4318, %4319
store i32 %4320, i32* %35
%4321 = load i32, i32* %31
%4322 = load i32, i32* %16
%4323 = mul nsw i32 %4321, %4322
store i32 %4323, i32* %36
%4324 = load double, double* %26
%4325 = load double, double* %58
%4326 = fadd double %4325, %4324
store double %4326, double* %58
%4327 = load i32, i32* %19
%4328 = load double, double* %58
%4329 = load double*, double** %21
%4330 = load i32*, i32** %49
%4331 = load i32, i32* %31
%4332 = sub nsw i32 %4331, 1
%4333 = sext i32 %4332 to i64
%4334 = getelementptr inbounds i32, i32* %4330, i64 %4333
%4335 = load i32, i32* %4334
%4336 = call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %4327, double %4328, double* %4329, i32 %4335)
%4337 = load i32*, i32** %49
%4338 = load i32, i32* %31
%4339 = sext i32 %4338 to i64
%4340 = getelementptr inbounds i32, i32* %4337, i64 %4339
store i32 %4336, i32* %4340
%4341 = load i32*, i32** %49
%4342 = load i32, i32* %31
%4343 = sext i32 %4342 to i64
%4344 = getelementptr inbounds i32, i32* %4341, i64 %4343
%4345 = load i32, i32* %4344
%4346 = load double, double* %58
%4347 = load i32, i32* %48
%4348 = load double*, double** %21
%4349 = load double*, double** %56
%4350 = load i32, i32* %36
%4351 = sext i32 %4350 to i64
%4352 = getelementptr inbounds double, double* %4349, i64 %4351
%4353 = load double*, double** %53
%4354 = load double*, double** %54
%4355 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %4345, double %4346, i32 %4347, double* %4348, double* %4352, double* %4353, double* %4354)
%4356 = load i32, i32* %52
%4357 = load i32*, i32** %49
%4358 = load i32, i32* %31
%4359 = sub nsw i32 %4358, 1
%4360 = sext i32 %4359 to i64
%4361 = getelementptr inbounds i32, i32* %4357, i64 %4360
store i32 %4356, i32* %4361
%4362 = load i32*, i32** %49
%4363 = load i32, i32* %31
%4364 = sext i32 %4363 to i64
%4365 = getelementptr inbounds i32, i32* %4362, i64 %4364
%4366 = load i32, i32* %4365
%4367 = load i32, i32* %48
%4368 = sub nsw i32 %4366, %4367
store i32 %4368, i32* %52
%4369 = load i32, i32* %52
%4370 = load i32, i32* %18
%4371 = mul nsw i32 %4369, %4370
%4372 = load i32, i32* %50
%4373 = add nsw i32 %4371, %4372
store i32 %4373, i32* %39
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %4374
4374: ; preds = %4460, %4317
%4375 = load i32, i32* %29
%4376 = load i32, i32* %48
%4377 = icmp sle i32 %4375, %4376
br i1 %4377, label %4378, label %4463
4378: ; preds = %4374
%4379 = load i32, i32* %18
%4380 = load i32, i32* %29
%4381 = mul nsw i32 %4379, %4380
%4382 = load i32, i32* %39
%4383 = add nsw i32 %4381, %4382
store i32 %4383, i32* %33
%4384 = load i32, i32* %36
%4385 = load i32, i32* %29
%4386 = add nsw i32 %4384, %4385
store i32 %4386, i32* %37
store i32 0, i32* %30
br label %4387
4387: ; preds = %4456, %4378
%4388 = load i32, i32* %30
%4389 = load i32, i32* %47
%4390 = icmp sle i32 %4388, %4389
br i1 %4390, label %4391, label %4459
4391: ; preds = %4387
%4392 = load i32, i32* %33
%4393 = load i32, i32* %30
%4394 = add nsw i32 %4392, %4393
%4395 = mul nsw i32 4, %4394
store i32 %4395, i32* %34
%4396 = load double*, double** %56
%4397 = load i32, i32* %37
%4398 = sext i32 %4397 to i64
%4399 = getelementptr inbounds double, double* %4396, i64 %4398
%4400 = load double, double* %4399
%4401 = load double*, double** %55
%4402 = load i32, i32* %30
%4403 = sext i32 %4402 to i64
%4404 = getelementptr inbounds double, double* %4401, i64 %4403
%4405 = load double, double* %4404
%4406 = fmul double %4400, %4405
store double %4406, double* %60
%4407 = load double, double* %60
%4408 = load double*, double** %17
%4409 = load i32, i32* %34
%4410 = sext i32 %4409 to i64
%4411 = getelementptr inbounds double, double* %4408, i64 %4410
%4412 = load double, double* %4411
%4413 = load double*, double** %28
%4414 = load i32, i32* %35
%4415 = sext i32 %4414 to i64
%4416 = getelementptr inbounds double, double* %4413, i64 %4415
%4417 = load double, double* %4416
%4418 = call double @llvm.fmuladd.f64(double %4407, double %4412, double %4417)
store double %4418, double* %4416
%4419 = load double, double* %60
%4420 = load double*, double** %17
%4421 = load i32, i32* %34
%4422 = add nsw i32 %4421, 1
%4423 = sext i32 %4422 to i64
%4424 = getelementptr inbounds double, double* %4420, i64 %4423
%4425 = load double, double* %4424
%4426 = load double*, double** %28
%4427 = load i32, i32* %35
%4428 = add nsw i32 %4427, 1
%4429 = sext i32 %4428 to i64
%4430 = getelementptr inbounds double, double* %4426, i64 %4429
%4431 = load double, double* %4430
%4432 = call double @llvm.fmuladd.f64(double %4419, double %4425, double %4431)
store double %4432, double* %4430
%4433 = load double, double* %60
%4434 = load double*, double** %17
%4435 = load i32, i32* %34
%4436 = add nsw i32 %4435, 2
%4437 = sext i32 %4436 to i64
%4438 = getelementptr inbounds double, double* %4434, i64 %4437
%4439 = load double, double* %4438
%4440 = load double*, double** %28
%4441 = load i32, i32* %35
%4442 = add nsw i32 %4441, 2
%4443 = sext i32 %4442 to i64
%4444 = getelementptr inbounds double, double* %4440, i64 %4443
%4445 = load double, double* %4444
%4446 = call double @llvm.fmuladd.f64(double %4433, double %4439, double %4445)
store double %4446, double* %4444
%4447 = load double, double* %60
%4448 = load double*, double** %17
%4449 = load i32, i32* %34
%4450 = add nsw i32 %4449, 3
%4451 = sext i32 %4450 to i64
%4452 = getelementptr inbounds double, double* %4448, i64 %4451
%4453 = load double, double* %4452
%4454 = load double, double* %59
%4455 = call double @llvm.fmuladd.f64(double %4447, double %4453, double %4454)
store double %4455, double* %59
br label %4456
4456: ; preds = %4391
%4457 = load i32, i32* %30
%4458 = add nsw i32 %4457, 1
store i32 %4458, i32* %30
br label %4387
4459: ; preds = %4387
br label %4460
4460: ; preds = %4459
%4461 = load i32, i32* %29
%4462 = add nsw i32 %4461, 1
store i32 %4462, i32* %29
br label %4374
4463: ; preds = %4374
%4464 = load double*, double** %28
%4465 = load i32, i32* %35
%4466 = sext i32 %4465 to i64
%4467 = getelementptr inbounds double, double* %4464, i64 %4466
%4468 = load double, double* %4467
%4469 = load double, double* %59
%4470 = fdiv double %4468, %4469
%4471 = load double*, double** %28
%4472 = load i32, i32* %35
%4473 = sext i32 %4472 to i64
%4474 = getelementptr inbounds double, double* %4471, i64 %4473
store double %4470, double* %4474
%4475 = load double*, double** %28
%4476 = load i32, i32* %35
%4477 = add nsw i32 %4476, 1
%4478 = sext i32 %4477 to i64
%4479 = getelementptr inbounds double, double* %4475, i64 %4478
%4480 = load double, double* %4479
%4481 = load double, double* %59
%4482 = fdiv double %4480, %4481
%4483 = load double*, double** %28
%4484 = load i32, i32* %35
%4485 = add nsw i32 %4484, 1
%4486 = sext i32 %4485 to i64
%4487 = getelementptr inbounds double, double* %4483, i64 %4486
store double %4482, double* %4487
%4488 = load double*, double** %28
%4489 = load i32, i32* %35
%4490 = add nsw i32 %4489, 2
%4491 = sext i32 %4490 to i64
%4492 = getelementptr inbounds double, double* %4488, i64 %4491
%4493 = load double, double* %4492
%4494 = load double, double* %59
%4495 = fdiv double %4493, %4494
%4496 = load double*, double** %28
%4497 = load i32, i32* %35
%4498 = add nsw i32 %4497, 2
%4499 = sext i32 %4498 to i64
%4500 = getelementptr inbounds double, double* %4496, i64 %4499
store double %4495, double* %4500
br label %4501
4501: ; preds = %4463
%4502 = load i32, i32* %31
%4503 = add nsw i32 %4502, 1
store i32 %4503, i32* %31
br label %4313
4504: ; preds = %4313
%4505 = load i32, i32* %52
%4506 = load i32*, i32** %49
%4507 = load i32, i32* %27
%4508 = sub nsw i32 %4507, 2
%4509 = sext i32 %4508 to i64
%4510 = getelementptr inbounds i32, i32* %4506, i64 %4509
store i32 %4505, i32* %4510
%4511 = load i32, i32* %42
%4512 = load i32, i32* %40
%4513 = mul nsw i32 %4511, %4512
store i32 %4513, i32* %35
%4514 = load i32, i32* %18
%4515 = load i32, i32* %44
%4516 = mul nsw i32 %4514, %4515
%4517 = load i32, i32* %50
%4518 = add nsw i32 %4516, %4517
store i32 %4518, i32* %33
store double 0.000000e+00, double* %59
store i32 0, i32* %30
br label %4519
4519: ; preds = %4593, %4504
%4520 = load i32, i32* %30
%4521 = load i32, i32* %47
%4522 = icmp sle i32 %4520, %4521
br i1 %4522, label %4523, label %4596
4523: ; preds = %4519
%4524 = load i32, i32* %33
%4525 = load i32, i32* %30
%4526 = add nsw i32 %4524, %4525
%4527 = mul nsw i32 4, %4526
store i32 %4527, i32* %34
%4528 = load double*, double** %55
%4529 = load i32, i32* %30
%4530 = sext i32 %4529 to i64
%4531 = getelementptr inbounds double, double* %4528, i64 %4530
%4532 = load double, double* %4531
%4533 = load double*, double** %17
%4534 = load i32, i32* %34
%4535 = sext i32 %4534 to i64
%4536 = getelementptr inbounds double, double* %4533, i64 %4535
%4537 = load double, double* %4536
%4538 = load double*, double** %28
%4539 = load i32, i32* %35
%4540 = sext i32 %4539 to i64
%4541 = getelementptr inbounds double, double* %4538, i64 %4540
%4542 = load double, double* %4541
%4543 = call double @llvm.fmuladd.f64(double %4532, double %4537, double %4542)
store double %4543, double* %4541
%4544 = load double*, double** %55
%4545 = load i32, i32* %30
%4546 = sext i32 %4545 to i64
%4547 = getelementptr inbounds double, double* %4544, i64 %4546
%4548 = load double, double* %4547
%4549 = load double*, double** %17
%4550 = load i32, i32* %34
%4551 = add nsw i32 %4550, 1
%4552 = sext i32 %4551 to i64
%4553 = getelementptr inbounds double, double* %4549, i64 %4552
%4554 = load double, double* %4553
%4555 = load double*, double** %28
%4556 = load i32, i32* %35
%4557 = add nsw i32 %4556, 1
%4558 = sext i32 %4557 to i64
%4559 = getelementptr inbounds double, double* %4555, i64 %4558
%4560 = load double, double* %4559
%4561 = call double @llvm.fmuladd.f64(double %4548, double %4554, double %4560)
store double %4561, double* %4559
%4562 = load double*, double** %55
%4563 = load i32, i32* %30
%4564 = sext i32 %4563 to i64
%4565 = getelementptr inbounds double, double* %4562, i64 %4564
%4566 = load double, double* %4565
%4567 = load double*, double** %17
%4568 = load i32, i32* %34
%4569 = add nsw i32 %4568, 2
%4570 = sext i32 %4569 to i64
%4571 = getelementptr inbounds double, double* %4567, i64 %4570
%4572 = load double, double* %4571
%4573 = load double*, double** %28
%4574 = load i32, i32* %35
%4575 = add nsw i32 %4574, 2
%4576 = sext i32 %4575 to i64
%4577 = getelementptr inbounds double, double* %4573, i64 %4576
%4578 = load double, double* %4577
%4579 = call double @llvm.fmuladd.f64(double %4566, double %4572, double %4578)
store double %4579, double* %4577
%4580 = load double*, double** %55
%4581 = load i32, i32* %30
%4582 = sext i32 %4581 to i64
%4583 = getelementptr inbounds double, double* %4580, i64 %4582
%4584 = load double, double* %4583
%4585 = load double*, double** %17
%4586 = load i32, i32* %34
%4587 = add nsw i32 %4586, 3
%4588 = sext i32 %4587 to i64
%4589 = getelementptr inbounds double, double* %4585, i64 %4588
%4590 = load double, double* %4589
%4591 = load double, double* %59
%4592 = call double @llvm.fmuladd.f64(double %4584, double %4590, double %4591)
store double %4592, double* %59
br label %4593
4593: ; preds = %4523
%4594 = load i32, i32* %30
%4595 = add nsw i32 %4594, 1
store i32 %4595, i32* %30
br label %4519
4596: ; preds = %4519
%4597 = load double*, double** %28
%4598 = load i32, i32* %35
%4599 = sext i32 %4598 to i64
%4600 = getelementptr inbounds double, double* %4597, i64 %4599
%4601 = load double, double* %4600
%4602 = load double, double* %59
%4603 = fdiv double %4601, %4602
%4604 = load double*, double** %28
%4605 = load i32, i32* %35
%4606 = sext i32 %4605 to i64
%4607 = getelementptr inbounds double, double* %4604, i64 %4606
store double %4603, double* %4607
%4608 = load double*, double** %28
%4609 = load i32, i32* %35
%4610 = add nsw i32 %4609, 1
%4611 = sext i32 %4610 to i64
%4612 = getelementptr inbounds double, double* %4608, i64 %4611
%4613 = load double, double* %4612
%4614 = load double, double* %59
%4615 = fdiv double %4613, %4614
%4616 = load double*, double** %28
%4617 = load i32, i32* %35
%4618 = add nsw i32 %4617, 1
%4619 = sext i32 %4618 to i64
%4620 = getelementptr inbounds double, double* %4616, i64 %4619
store double %4615, double* %4620
%4621 = load double*, double** %28
%4622 = load i32, i32* %35
%4623 = add nsw i32 %4622, 2
%4624 = sext i32 %4623 to i64
%4625 = getelementptr inbounds double, double* %4621, i64 %4624
%4626 = load double, double* %4625
%4627 = load double, double* %59
%4628 = fdiv double %4626, %4627
%4629 = load double*, double** %28
%4630 = load i32, i32* %35
%4631 = add nsw i32 %4630, 2
%4632 = sext i32 %4631 to i64
%4633 = getelementptr inbounds double, double* %4629, i64 %4632
store double %4628, double* %4633
%4634 = load double, double* %22
store double %4634, double* %57
store i32 1, i32* %32
br label %4635
4635: ; preds = %5055, %4596
%4636 = load i32, i32* %32
%4637 = load i32, i32* %24
%4638 = icmp slt i32 %4636, %4637
br i1 %4638, label %4639, label %5058
4639: ; preds = %4635
%4640 = load double, double* %23
%4641 = load double, double* %57
%4642 = fadd double %4641, %4640
store double %4642, double* %57
%4643 = load i32, i32* %18
%4644 = load double, double* %57
%4645 = load double*, double** %20
%4646 = load i32, i32* %51
%4647 = call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %4643, double %4644, double* %4645, i32 %4646)
store i32 %4647, i32* %51
%4648 = load i32, i32* %51
%4649 = load double, double* %57
%4650 = load i32, i32* %47
%4651 = load double*, double** %20
%4652 = load double*, double** %55
%4653 = load double*, double** %53
%4654 = load double*, double** %54
%4655 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %4648, double %4649, i32 %4650, double* %4651, double* %4652, double* %4653, double* %4654)
%4656 = load i32, i32* %51
%4657 = load i32, i32* %47
%4658 = sub nsw i32 %4656, %4657
store i32 %4658, i32* %50
%4659 = load i32, i32* %32
%4660 = mul nsw i32 3, %4659
store i32 %4660, i32* %38
%4661 = load i32, i32* %38
store i32 %4661, i32* %35
store double 0.000000e+00, double* %59
store i32 0, i32* %30
br label %4662
4662: ; preds = %4736, %4639
%4663 = load i32, i32* %30
%4664 = load i32, i32* %47
%4665 = icmp sle i32 %4663, %4664
br i1 %4665, label %4666, label %4739
4666: ; preds = %4662
%4667 = load i32, i32* %50
%4668 = load i32, i32* %30
%4669 = add nsw i32 %4667, %4668
%4670 = mul nsw i32 4, %4669
store i32 %4670, i32* %34
%4671 = load double*, double** %55
%4672 = load i32, i32* %30
%4673 = sext i32 %4672 to i64
%4674 = getelementptr inbounds double, double* %4671, i64 %4673
%4675 = load double, double* %4674
%4676 = load double*, double** %17
%4677 = load i32, i32* %34
%4678 = sext i32 %4677 to i64
%4679 = getelementptr inbounds double, double* %4676, i64 %4678
%4680 = load double, double* %4679
%4681 = load double*, double** %28
%4682 = load i32, i32* %35
%4683 = sext i32 %4682 to i64
%4684 = getelementptr inbounds double, double* %4681, i64 %4683
%4685 = load double, double* %4684
%4686 = call double @llvm.fmuladd.f64(double %4675, double %4680, double %4685)
store double %4686, double* %4684
%4687 = load double*, double** %55
%4688 = load i32, i32* %30
%4689 = sext i32 %4688 to i64
%4690 = getelementptr inbounds double, double* %4687, i64 %4689
%4691 = load double, double* %4690
%4692 = load double*, double** %17
%4693 = load i32, i32* %34
%4694 = add nsw i32 %4693, 1
%4695 = sext i32 %4694 to i64
%4696 = getelementptr inbounds double, double* %4692, i64 %4695
%4697 = load double, double* %4696
%4698 = load double*, double** %28
%4699 = load i32, i32* %35
%4700 = add nsw i32 %4699, 1
%4701 = sext i32 %4700 to i64
%4702 = getelementptr inbounds double, double* %4698, i64 %4701
%4703 = load double, double* %4702
%4704 = call double @llvm.fmuladd.f64(double %4691, double %4697, double %4703)
store double %4704, double* %4702
%4705 = load double*, double** %55
%4706 = load i32, i32* %30
%4707 = sext i32 %4706 to i64
%4708 = getelementptr inbounds double, double* %4705, i64 %4707
%4709 = load double, double* %4708
%4710 = load double*, double** %17
%4711 = load i32, i32* %34
%4712 = add nsw i32 %4711, 2
%4713 = sext i32 %4712 to i64
%4714 = getelementptr inbounds double, double* %4710, i64 %4713
%4715 = load double, double* %4714
%4716 = load double*, double** %28
%4717 = load i32, i32* %35
%4718 = add nsw i32 %4717, 2
%4719 = sext i32 %4718 to i64
%4720 = getelementptr inbounds double, double* %4716, i64 %4719
%4721 = load double, double* %4720
%4722 = call double @llvm.fmuladd.f64(double %4709, double %4715, double %4721)
store double %4722, double* %4720
%4723 = load double*, double** %55
%4724 = load i32, i32* %30
%4725 = sext i32 %4724 to i64
%4726 = getelementptr inbounds double, double* %4723, i64 %4725
%4727 = load double, double* %4726
%4728 = load double*, double** %17
%4729 = load i32, i32* %34
%4730 = add nsw i32 %4729, 3
%4731 = sext i32 %4730 to i64
%4732 = getelementptr inbounds double, double* %4728, i64 %4731
%4733 = load double, double* %4732
%4734 = load double, double* %59
%4735 = call double @llvm.fmuladd.f64(double %4727, double %4733, double %4734)
store double %4735, double* %59
br label %4736
4736: ; preds = %4666
%4737 = load i32, i32* %30
%4738 = add nsw i32 %4737, 1
store i32 %4738, i32* %30
br label %4662
4739: ; preds = %4662
%4740 = load double*, double** %28
%4741 = load i32, i32* %35
%4742 = sext i32 %4741 to i64
%4743 = getelementptr inbounds double, double* %4740, i64 %4742
%4744 = load double, double* %4743
%4745 = load double, double* %59
%4746 = fdiv double %4744, %4745
%4747 = load double*, double** %28
%4748 = load i32, i32* %35
%4749 = sext i32 %4748 to i64
%4750 = getelementptr inbounds double, double* %4747, i64 %4749
store double %4746, double* %4750
%4751 = load double*, double** %28
%4752 = load i32, i32* %35
%4753 = add nsw i32 %4752, 1
%4754 = sext i32 %4753 to i64
%4755 = getelementptr inbounds double, double* %4751, i64 %4754
%4756 = load double, double* %4755
%4757 = load double, double* %59
%4758 = fdiv double %4756, %4757
%4759 = load double*, double** %28
%4760 = load i32, i32* %35
%4761 = add nsw i32 %4760, 1
%4762 = sext i32 %4761 to i64
%4763 = getelementptr inbounds double, double* %4759, i64 %4762
store double %4758, double* %4763
%4764 = load double*, double** %28
%4765 = load i32, i32* %35
%4766 = add nsw i32 %4765, 2
%4767 = sext i32 %4766 to i64
%4768 = getelementptr inbounds double, double* %4764, i64 %4767
%4769 = load double, double* %4768
%4770 = load double, double* %59
%4771 = fdiv double %4769, %4770
%4772 = load double*, double** %28
%4773 = load i32, i32* %35
%4774 = add nsw i32 %4773, 2
%4775 = sext i32 %4774 to i64
%4776 = getelementptr inbounds double, double* %4772, i64 %4775
store double %4771, double* %4776
store i32 1, i32* %31
br label %4777
4777: ; preds = %4926, %4739
%4778 = load i32, i32* %31
%4779 = load i32, i32* %42
%4780 = icmp slt i32 %4778, %4779
br i1 %4780, label %4781, label %4929
4781: ; preds = %4777
%4782 = load i32, i32* %40
%4783 = load i32, i32* %31
%4784 = mul nsw i32 %4782, %4783
%4785 = load i32, i32* %38
%4786 = add nsw i32 %4784, %4785
store i32 %4786, i32* %35
%4787 = load i32, i32* %31
%4788 = load i32, i32* %16
%4789 = mul nsw i32 %4787, %4788
store i32 %4789, i32* %36
%4790 = load i32, i32* %50
%4791 = load i32*, i32** %49
%4792 = load i32, i32* %31
%4793 = sext i32 %4792 to i64
%4794 = getelementptr inbounds i32, i32* %4791, i64 %4793
%4795 = load i32, i32* %4794
%4796 = load i32, i32* %18
%4797 = mul nsw i32 %4795, %4796
%4798 = add nsw i32 %4790, %4797
store i32 %4798, i32* %39
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %4799
4799: ; preds = %4885, %4781
%4800 = load i32, i32* %29
%4801 = load i32, i32* %48
%4802 = icmp sle i32 %4800, %4801
br i1 %4802, label %4803, label %4888
4803: ; preds = %4799
%4804 = load i32, i32* %18
%4805 = load i32, i32* %29
%4806 = mul nsw i32 %4804, %4805
%4807 = load i32, i32* %39
%4808 = add nsw i32 %4806, %4807
store i32 %4808, i32* %33
%4809 = load i32, i32* %36
%4810 = load i32, i32* %29
%4811 = add nsw i32 %4809, %4810
store i32 %4811, i32* %37
store i32 0, i32* %30
br label %4812
4812: ; preds = %4881, %4803
%4813 = load i32, i32* %30
%4814 = load i32, i32* %47
%4815 = icmp sle i32 %4813, %4814
br i1 %4815, label %4816, label %4884
4816: ; preds = %4812
%4817 = load i32, i32* %33
%4818 = load i32, i32* %30
%4819 = add nsw i32 %4817, %4818
%4820 = mul nsw i32 4, %4819
store i32 %4820, i32* %34
%4821 = load double*, double** %56
%4822 = load i32, i32* %37
%4823 = sext i32 %4822 to i64
%4824 = getelementptr inbounds double, double* %4821, i64 %4823
%4825 = load double, double* %4824
%4826 = load double*, double** %55
%4827 = load i32, i32* %30
%4828 = sext i32 %4827 to i64
%4829 = getelementptr inbounds double, double* %4826, i64 %4828
%4830 = load double, double* %4829
%4831 = fmul double %4825, %4830
store double %4831, double* %60
%4832 = load double, double* %60
%4833 = load double*, double** %17
%4834 = load i32, i32* %34
%4835 = sext i32 %4834 to i64
%4836 = getelementptr inbounds double, double* %4833, i64 %4835
%4837 = load double, double* %4836
%4838 = load double*, double** %28
%4839 = load i32, i32* %35
%4840 = sext i32 %4839 to i64
%4841 = getelementptr inbounds double, double* %4838, i64 %4840
%4842 = load double, double* %4841
%4843 = call double @llvm.fmuladd.f64(double %4832, double %4837, double %4842)
store double %4843, double* %4841
%4844 = load double, double* %60
%4845 = load double*, double** %17
%4846 = load i32, i32* %34
%4847 = add nsw i32 %4846, 1
%4848 = sext i32 %4847 to i64
%4849 = getelementptr inbounds double, double* %4845, i64 %4848
%4850 = load double, double* %4849
%4851 = load double*, double** %28
%4852 = load i32, i32* %35
%4853 = add nsw i32 %4852, 1
%4854 = sext i32 %4853 to i64
%4855 = getelementptr inbounds double, double* %4851, i64 %4854
%4856 = load double, double* %4855
%4857 = call double @llvm.fmuladd.f64(double %4844, double %4850, double %4856)
store double %4857, double* %4855
%4858 = load double, double* %60
%4859 = load double*, double** %17
%4860 = load i32, i32* %34
%4861 = add nsw i32 %4860, 2
%4862 = sext i32 %4861 to i64
%4863 = getelementptr inbounds double, double* %4859, i64 %4862
%4864 = load double, double* %4863
%4865 = load double*, double** %28
%4866 = load i32, i32* %35
%4867 = add nsw i32 %4866, 2
%4868 = sext i32 %4867 to i64
%4869 = getelementptr inbounds double, double* %4865, i64 %4868
%4870 = load double, double* %4869
%4871 = call double @llvm.fmuladd.f64(double %4858, double %4864, double %4870)
store double %4871, double* %4869
%4872 = load double, double* %60
%4873 = load double*, double** %17
%4874 = load i32, i32* %34
%4875 = add nsw i32 %4874, 3
%4876 = sext i32 %4875 to i64
%4877 = getelementptr inbounds double, double* %4873, i64 %4876
%4878 = load double, double* %4877
%4879 = load double, double* %59
%4880 = call double @llvm.fmuladd.f64(double %4872, double %4878, double %4879)
store double %4880, double* %59
br label %4881
4881: ; preds = %4816
%4882 = load i32, i32* %30
%4883 = add nsw i32 %4882, 1
store i32 %4883, i32* %30
br label %4812
4884: ; preds = %4812
br label %4885
4885: ; preds = %4884
%4886 = load i32, i32* %29
%4887 = add nsw i32 %4886, 1
store i32 %4887, i32* %29
br label %4799
4888: ; preds = %4799
%4889 = load double*, double** %28
%4890 = load i32, i32* %35
%4891 = sext i32 %4890 to i64
%4892 = getelementptr inbounds double, double* %4889, i64 %4891
%4893 = load double, double* %4892
%4894 = load double, double* %59
%4895 = fdiv double %4893, %4894
%4896 = load double*, double** %28
%4897 = load i32, i32* %35
%4898 = sext i32 %4897 to i64
%4899 = getelementptr inbounds double, double* %4896, i64 %4898
store double %4895, double* %4899
%4900 = load double*, double** %28
%4901 = load i32, i32* %35
%4902 = add nsw i32 %4901, 1
%4903 = sext i32 %4902 to i64
%4904 = getelementptr inbounds double, double* %4900, i64 %4903
%4905 = load double, double* %4904
%4906 = load double, double* %59
%4907 = fdiv double %4905, %4906
%4908 = load double*, double** %28
%4909 = load i32, i32* %35
%4910 = add nsw i32 %4909, 1
%4911 = sext i32 %4910 to i64
%4912 = getelementptr inbounds double, double* %4908, i64 %4911
store double %4907, double* %4912
%4913 = load double*, double** %28
%4914 = load i32, i32* %35
%4915 = add nsw i32 %4914, 2
%4916 = sext i32 %4915 to i64
%4917 = getelementptr inbounds double, double* %4913, i64 %4916
%4918 = load double, double* %4917
%4919 = load double, double* %59
%4920 = fdiv double %4918, %4919
%4921 = load double*, double** %28
%4922 = load i32, i32* %35
%4923 = add nsw i32 %4922, 2
%4924 = sext i32 %4923 to i64
%4925 = getelementptr inbounds double, double* %4921, i64 %4924
store double %4920, double* %4925
br label %4926
4926: ; preds = %4888
%4927 = load i32, i32* %31
%4928 = add nsw i32 %4927, 1
store i32 %4928, i32* %31
br label %4777
4929: ; preds = %4777
%4930 = load i32, i32* %40
%4931 = load i32, i32* %42
%4932 = mul nsw i32 %4930, %4931
%4933 = load i32, i32* %38
%4934 = add nsw i32 %4932, %4933
store i32 %4934, i32* %35
%4935 = load i32, i32* %18
%4936 = load i32, i32* %44
%4937 = mul nsw i32 %4935, %4936
%4938 = load i32, i32* %50
%4939 = add nsw i32 %4937, %4938
store i32 %4939, i32* %33
store double 0.000000e+00, double* %59
store i32 0, i32* %30
br label %4940
4940: ; preds = %5014, %4929
%4941 = load i32, i32* %30
%4942 = load i32, i32* %47
%4943 = icmp sle i32 %4941, %4942
br i1 %4943, label %4944, label %5017
4944: ; preds = %4940
%4945 = load i32, i32* %33
%4946 = load i32, i32* %30
%4947 = add nsw i32 %4945, %4946
%4948 = mul nsw i32 4, %4947
store i32 %4948, i32* %34
%4949 = load double*, double** %55
%4950 = load i32, i32* %30
%4951 = sext i32 %4950 to i64
%4952 = getelementptr inbounds double, double* %4949, i64 %4951
%4953 = load double, double* %4952
%4954 = load double*, double** %17
%4955 = load i32, i32* %34
%4956 = sext i32 %4955 to i64
%4957 = getelementptr inbounds double, double* %4954, i64 %4956
%4958 = load double, double* %4957
%4959 = load double*, double** %28
%4960 = load i32, i32* %35
%4961 = sext i32 %4960 to i64
%4962 = getelementptr inbounds double, double* %4959, i64 %4961
%4963 = load double, double* %4962
%4964 = call double @llvm.fmuladd.f64(double %4953, double %4958, double %4963)
store double %4964, double* %4962
%4965 = load double*, double** %55
%4966 = load i32, i32* %30
%4967 = sext i32 %4966 to i64
%4968 = getelementptr inbounds double, double* %4965, i64 %4967
%4969 = load double, double* %4968
%4970 = load double*, double** %17
%4971 = load i32, i32* %34
%4972 = add nsw i32 %4971, 1
%4973 = sext i32 %4972 to i64
%4974 = getelementptr inbounds double, double* %4970, i64 %4973
%4975 = load double, double* %4974
%4976 = load double*, double** %28
%4977 = load i32, i32* %35
%4978 = add nsw i32 %4977, 1
%4979 = sext i32 %4978 to i64
%4980 = getelementptr inbounds double, double* %4976, i64 %4979
%4981 = load double, double* %4980
%4982 = call double @llvm.fmuladd.f64(double %4969, double %4975, double %4981)
store double %4982, double* %4980
%4983 = load double*, double** %55
%4984 = load i32, i32* %30
%4985 = sext i32 %4984 to i64
%4986 = getelementptr inbounds double, double* %4983, i64 %4985
%4987 = load double, double* %4986
%4988 = load double*, double** %17
%4989 = load i32, i32* %34
%4990 = add nsw i32 %4989, 2
%4991 = sext i32 %4990 to i64
%4992 = getelementptr inbounds double, double* %4988, i64 %4991
%4993 = load double, double* %4992
%4994 = load double*, double** %28
%4995 = load i32, i32* %35
%4996 = add nsw i32 %4995, 2
%4997 = sext i32 %4996 to i64
%4998 = getelementptr inbounds double, double* %4994, i64 %4997
%4999 = load double, double* %4998
%5000 = call double @llvm.fmuladd.f64(double %4987, double %4993, double %4999)
store double %5000, double* %4998
%5001 = load double*, double** %55
%5002 = load i32, i32* %30
%5003 = sext i32 %5002 to i64
%5004 = getelementptr inbounds double, double* %5001, i64 %5003
%5005 = load double, double* %5004
%5006 = load double*, double** %17
%5007 = load i32, i32* %34
%5008 = add nsw i32 %5007, 3
%5009 = sext i32 %5008 to i64
%5010 = getelementptr inbounds double, double* %5006, i64 %5009
%5011 = load double, double* %5010
%5012 = load double, double* %59
%5013 = call double @llvm.fmuladd.f64(double %5005, double %5011, double %5012)
store double %5013, double* %59
br label %5014
5014: ; preds = %4944
%5015 = load i32, i32* %30
%5016 = add nsw i32 %5015, 1
store i32 %5016, i32* %30
br label %4940
5017: ; preds = %4940
%5018 = load double*, double** %28
%5019 = load i32, i32* %35
%5020 = sext i32 %5019 to i64
%5021 = getelementptr inbounds double, double* %5018, i64 %5020
%5022 = load double, double* %5021
%5023 = load double, double* %59
%5024 = fdiv double %5022, %5023
%5025 = load double*, double** %28
%5026 = load i32, i32* %35
%5027 = sext i32 %5026 to i64
%5028 = getelementptr inbounds double, double* %5025, i64 %5027
store double %5024, double* %5028
%5029 = load double*, double** %28
%5030 = load i32, i32* %35
%5031 = add nsw i32 %5030, 1
%5032 = sext i32 %5031 to i64
%5033 = getelementptr inbounds double, double* %5029, i64 %5032
%5034 = load double, double* %5033
%5035 = load double, double* %59
%5036 = fdiv double %5034, %5035
%5037 = load double*, double** %28
%5038 = load i32, i32* %35
%5039 = add nsw i32 %5038, 1
%5040 = sext i32 %5039 to i64
%5041 = getelementptr inbounds double, double* %5037, i64 %5040
store double %5036, double* %5041
%5042 = load double*, double** %28
%5043 = load i32, i32* %35
%5044 = add nsw i32 %5043, 2
%5045 = sext i32 %5044 to i64
%5046 = getelementptr inbounds double, double* %5042, i64 %5045
%5047 = load double, double* %5046
%5048 = load double, double* %59
%5049 = fdiv double %5047, %5048
%5050 = load double*, double** %28
%5051 = load i32, i32* %35
%5052 = add nsw i32 %5051, 2
%5053 = sext i32 %5052 to i64
%5054 = getelementptr inbounds double, double* %5050, i64 %5053
store double %5049, double* %5054
br label %5055
5055: ; preds = %5017
%5056 = load i32, i32* %32
%5057 = add nsw i32 %5056, 1
store i32 %5057, i32* %32
br label %4635
5058: ; preds = %4635
br label %6221
5059: ; preds = %4198
%5060 = load i8, i8* %61
%5061 = icmp ne i8 %5060, 0
br i1 %5061, label %5062, label %5694
5062: ; preds = %5059
%5063 = load i32, i32* %19
%5064 = load i32, i32* %48
%5065 = load double, double* %25
%5066 = load double*, double** %21
%5067 = call i32 (i32, i32, double, double*, ...) bitcast (i32 (...)* @FindSpan to i32 (i32, i32, double, double*, ...)*)(i32 %5063, i32 %5064, double %5065, double* %5066)
%5068 = load i32*, i32** %49
%5069 = getelementptr inbounds i32, i32* %5068, i64 0
store i32 %5067, i32* %5069
%5070 = load i32*, i32** %49
%5071 = getelementptr inbounds i32, i32* %5070, i64 0
%5072 = load i32, i32* %5071
%5073 = load double, double* %25
%5074 = load i32, i32* %48
%5075 = load double*, double** %21
%5076 = load double*, double** %56
%5077 = load double*, double** %53
%5078 = load double*, double** %54
%5079 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %5072, double %5073, i32 %5074, double* %5075, double* %5076, double* %5077, double* %5078)
%5080 = load i32*, i32** %49
%5081 = getelementptr inbounds i32, i32* %5080, i64 0
%5082 = load i32, i32* %5081
%5083 = load i32, i32* %48
%5084 = sub nsw i32 %5082, %5083
store i32 %5084, i32* %52
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %5085
5085: ; preds = %5152, %5062
%5086 = load i32, i32* %29
%5087 = load i32, i32* %48
%5088 = icmp sle i32 %5086, %5087
br i1 %5088, label %5089, label %5155
5089: ; preds = %5085
%5090 = load i32, i32* %45
%5091 = load i32, i32* %52
%5092 = load i32, i32* %29
%5093 = add nsw i32 %5091, %5092
%5094 = mul nsw i32 %5090, %5093
store i32 %5094, i32* %34
%5095 = load double*, double** %56
%5096 = load i32, i32* %29
%5097 = sext i32 %5096 to i64
%5098 = getelementptr inbounds double, double* %5095, i64 %5097
%5099 = load double, double* %5098
%5100 = load double*, double** %17
%5101 = load i32, i32* %34
%5102 = sext i32 %5101 to i64
%5103 = getelementptr inbounds double, double* %5100, i64 %5102
%5104 = load double, double* %5103
%5105 = load double*, double** %28
%5106 = getelementptr inbounds double, double* %5105, i64 0
%5107 = load double, double* %5106
%5108 = call double @llvm.fmuladd.f64(double %5099, double %5104, double %5107)
store double %5108, double* %5106
%5109 = load double*, double** %56
%5110 = load i32, i32* %29
%5111 = sext i32 %5110 to i64
%5112 = getelementptr inbounds double, double* %5109, i64 %5111
%5113 = load double, double* %5112
%5114 = load double*, double** %17
%5115 = load i32, i32* %34
%5116 = add nsw i32 %5115, 1
%5117 = sext i32 %5116 to i64
%5118 = getelementptr inbounds double, double* %5114, i64 %5117
%5119 = load double, double* %5118
%5120 = load double*, double** %28
%5121 = getelementptr inbounds double, double* %5120, i64 1
%5122 = load double, double* %5121
%5123 = call double @llvm.fmuladd.f64(double %5113, double %5119, double %5122)
store double %5123, double* %5121
%5124 = load double*, double** %56
%5125 = load i32, i32* %29
%5126 = sext i32 %5125 to i64
%5127 = getelementptr inbounds double, double* %5124, i64 %5126
%5128 = load double, double* %5127
%5129 = load double*, double** %17
%5130 = load i32, i32* %34
%5131 = add nsw i32 %5130, 2
%5132 = sext i32 %5131 to i64
%5133 = getelementptr inbounds double, double* %5129, i64 %5132
%5134 = load double, double* %5133
%5135 = load double*, double** %28
%5136 = getelementptr inbounds double, double* %5135, i64 2
%5137 = load double, double* %5136
%5138 = call double @llvm.fmuladd.f64(double %5128, double %5134, double %5137)
store double %5138, double* %5136
%5139 = load double*, double** %56
%5140 = load i32, i32* %29
%5141 = sext i32 %5140 to i64
%5142 = getelementptr inbounds double, double* %5139, i64 %5141
%5143 = load double, double* %5142
%5144 = load double*, double** %17
%5145 = load i32, i32* %34
%5146 = add nsw i32 %5145, 3
%5147 = sext i32 %5146 to i64
%5148 = getelementptr inbounds double, double* %5144, i64 %5147
%5149 = load double, double* %5148
%5150 = load double, double* %59
%5151 = call double @llvm.fmuladd.f64(double %5143, double %5149, double %5150)
store double %5151, double* %59
br label %5152
5152: ; preds = %5089
%5153 = load i32, i32* %29
%5154 = add nsw i32 %5153, 1
store i32 %5154, i32* %29
br label %5085
5155: ; preds = %5085
%5156 = load double*, double** %28
%5157 = getelementptr inbounds double, double* %5156, i64 0
%5158 = load double, double* %5157
%5159 = load double, double* %59
%5160 = fdiv double %5158, %5159
%5161 = load double*, double** %28
%5162 = getelementptr inbounds double, double* %5161, i64 0
store double %5160, double* %5162
%5163 = load double*, double** %28
%5164 = getelementptr inbounds double, double* %5163, i64 1
%5165 = load double, double* %5164
%5166 = load double, double* %59
%5167 = fdiv double %5165, %5166
%5168 = load double*, double** %28
%5169 = getelementptr inbounds double, double* %5168, i64 1
store double %5167, double* %5169
%5170 = load double*, double** %28
%5171 = getelementptr inbounds double, double* %5170, i64 2
%5172 = load double, double* %5171
%5173 = load double, double* %59
%5174 = fdiv double %5172, %5173
%5175 = load double*, double** %28
%5176 = getelementptr inbounds double, double* %5175, i64 2
store double %5174, double* %5176
%5177 = load double, double* %25
store double %5177, double* %58
store i32 1, i32* %31
br label %5178
5178: ; preds = %5353, %5155
%5179 = load i32, i32* %31
%5180 = load i32, i32* %27
%5181 = icmp slt i32 %5179, %5180
br i1 %5181, label %5182, label %5356
5182: ; preds = %5178
%5183 = load i32, i32* %31
%5184 = load i32, i32* %40
%5185 = mul nsw i32 %5183, %5184
store i32 %5185, i32* %35
%5186 = load i32, i32* %31
%5187 = load i32, i32* %16
%5188 = mul nsw i32 %5186, %5187
store i32 %5188, i32* %36
%5189 = load double, double* %26
%5190 = load double, double* %58
%5191 = fadd double %5190, %5189
store double %5191, double* %58
%5192 = load i32, i32* %19
%5193 = load double, double* %58
%5194 = load double*, double** %21
%5195 = load i32*, i32** %49
%5196 = load i32, i32* %31
%5197 = sub nsw i32 %5196, 1
%5198 = sext i32 %5197 to i64
%5199 = getelementptr inbounds i32, i32* %5195, i64 %5198
%5200 = load i32, i32* %5199
%5201 = call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %5192, double %5193, double* %5194, i32 %5200)
%5202 = load i32*, i32** %49
%5203 = load i32, i32* %31
%5204 = sext i32 %5203 to i64
%5205 = getelementptr inbounds i32, i32* %5202, i64 %5204
store i32 %5201, i32* %5205
%5206 = load i32*, i32** %49
%5207 = load i32, i32* %31
%5208 = sext i32 %5207 to i64
%5209 = getelementptr inbounds i32, i32* %5206, i64 %5208
%5210 = load i32, i32* %5209
%5211 = load double, double* %58
%5212 = load i32, i32* %48
%5213 = load double*, double** %21
%5214 = load double*, double** %56
%5215 = load i32, i32* %36
%5216 = sext i32 %5215 to i64
%5217 = getelementptr inbounds double, double* %5214, i64 %5216
%5218 = load double*, double** %53
%5219 = load double*, double** %54
%5220 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %5210, double %5211, i32 %5212, double* %5213, double* %5217, double* %5218, double* %5219)
%5221 = load i32, i32* %52
%5222 = load i32*, i32** %49
%5223 = load i32, i32* %31
%5224 = sub nsw i32 %5223, 1
%5225 = sext i32 %5224 to i64
%5226 = getelementptr inbounds i32, i32* %5222, i64 %5225
store i32 %5221, i32* %5226
%5227 = load i32*, i32** %49
%5228 = load i32, i32* %31
%5229 = sext i32 %5228 to i64
%5230 = getelementptr inbounds i32, i32* %5227, i64 %5229
%5231 = load i32, i32* %5230
%5232 = load i32, i32* %48
%5233 = sub nsw i32 %5231, %5232
store i32 %5233, i32* %52
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %5234
5234: ; preds = %5312, %5182
%5235 = load i32, i32* %29
%5236 = load i32, i32* %48
%5237 = icmp sle i32 %5235, %5236
br i1 %5237, label %5238, label %5315
5238: ; preds = %5234
%5239 = load i32, i32* %36
%5240 = load i32, i32* %29
%5241 = add nsw i32 %5239, %5240
store i32 %5241, i32* %37
%5242 = load i32, i32* %45
%5243 = load i32, i32* %52
%5244 = load i32, i32* %29
%5245 = add nsw i32 %5243, %5244
%5246 = mul nsw i32 %5242, %5245
store i32 %5246, i32* %34
%5247 = load double*, double** %56
%5248 = load i32, i32* %37
%5249 = sext i32 %5248 to i64
%5250 = getelementptr inbounds double, double* %5247, i64 %5249
%5251 = load double, double* %5250
%5252 = load double*, double** %17
%5253 = load i32, i32* %34
%5254 = sext i32 %5253 to i64
%5255 = getelementptr inbounds double, double* %5252, i64 %5254
%5256 = load double, double* %5255
%5257 = load double*, double** %28
%5258 = load i32, i32* %35
%5259 = sext i32 %5258 to i64
%5260 = getelementptr inbounds double, double* %5257, i64 %5259
%5261 = load double, double* %5260
%5262 = call double @llvm.fmuladd.f64(double %5251, double %5256, double %5261)
store double %5262, double* %5260
%5263 = load double*, double** %56
%5264 = load i32, i32* %37
%5265 = sext i32 %5264 to i64
%5266 = getelementptr inbounds double, double* %5263, i64 %5265
%5267 = load double, double* %5266
%5268 = load double*, double** %17
%5269 = load i32, i32* %34
%5270 = add nsw i32 %5269, 1
%5271 = sext i32 %5270 to i64
%5272 = getelementptr inbounds double, double* %5268, i64 %5271
%5273 = load double, double* %5272
%5274 = load double*, double** %28
%5275 = load i32, i32* %35
%5276 = add nsw i32 %5275, 1
%5277 = sext i32 %5276 to i64
%5278 = getelementptr inbounds double, double* %5274, i64 %5277
%5279 = load double, double* %5278
%5280 = call double @llvm.fmuladd.f64(double %5267, double %5273, double %5279)
store double %5280, double* %5278
%5281 = load double*, double** %56
%5282 = load i32, i32* %37
%5283 = sext i32 %5282 to i64
%5284 = getelementptr inbounds double, double* %5281, i64 %5283
%5285 = load double, double* %5284
%5286 = load double*, double** %17
%5287 = load i32, i32* %34
%5288 = add nsw i32 %5287, 2
%5289 = sext i32 %5288 to i64
%5290 = getelementptr inbounds double, double* %5286, i64 %5289
%5291 = load double, double* %5290
%5292 = load double*, double** %28
%5293 = load i32, i32* %35
%5294 = add nsw i32 %5293, 2
%5295 = sext i32 %5294 to i64
%5296 = getelementptr inbounds double, double* %5292, i64 %5295
%5297 = load double, double* %5296
%5298 = call double @llvm.fmuladd.f64(double %5285, double %5291, double %5297)
store double %5298, double* %5296
%5299 = load double*, double** %56
%5300 = load i32, i32* %37
%5301 = sext i32 %5300 to i64
%5302 = getelementptr inbounds double, double* %5299, i64 %5301
%5303 = load double, double* %5302
%5304 = load double*, double** %17
%5305 = load i32, i32* %34
%5306 = add nsw i32 %5305, 3
%5307 = sext i32 %5306 to i64
%5308 = getelementptr inbounds double, double* %5304, i64 %5307
%5309 = load double, double* %5308
%5310 = load double, double* %59
%5311 = call double @llvm.fmuladd.f64(double %5303, double %5309, double %5310)
store double %5311, double* %59
br label %5312
5312: ; preds = %5238
%5313 = load i32, i32* %29
%5314 = add nsw i32 %5313, 1
store i32 %5314, i32* %29
br label %5234
5315: ; preds = %5234
%5316 = load double*, double** %28
%5317 = load i32, i32* %35
%5318 = sext i32 %5317 to i64
%5319 = getelementptr inbounds double, double* %5316, i64 %5318
%5320 = load double, double* %5319
%5321 = load double, double* %59
%5322 = fdiv double %5320, %5321
%5323 = load double*, double** %28
%5324 = load i32, i32* %35
%5325 = sext i32 %5324 to i64
%5326 = getelementptr inbounds double, double* %5323, i64 %5325
store double %5322, double* %5326
%5327 = load double*, double** %28
%5328 = load i32, i32* %35
%5329 = add nsw i32 %5328, 1
%5330 = sext i32 %5329 to i64
%5331 = getelementptr inbounds double, double* %5327, i64 %5330
%5332 = load double, double* %5331
%5333 = load double, double* %59
%5334 = fdiv double %5332, %5333
%5335 = load double*, double** %28
%5336 = load i32, i32* %35
%5337 = add nsw i32 %5336, 1
%5338 = sext i32 %5337 to i64
%5339 = getelementptr inbounds double, double* %5335, i64 %5338
store double %5334, double* %5339
%5340 = load double*, double** %28
%5341 = load i32, i32* %35
%5342 = add nsw i32 %5341, 2
%5343 = sext i32 %5342 to i64
%5344 = getelementptr inbounds double, double* %5340, i64 %5343
%5345 = load double, double* %5344
%5346 = load double, double* %59
%5347 = fdiv double %5345, %5346
%5348 = load double*, double** %28
%5349 = load i32, i32* %35
%5350 = add nsw i32 %5349, 2
%5351 = sext i32 %5350 to i64
%5352 = getelementptr inbounds double, double* %5348, i64 %5351
store double %5347, double* %5352
br label %5353
5353: ; preds = %5315
%5354 = load i32, i32* %31
%5355 = add nsw i32 %5354, 1
store i32 %5355, i32* %31
br label %5178
5356: ; preds = %5178
%5357 = load i32, i32* %52
%5358 = load i32*, i32** %49
%5359 = load i32, i32* %42
%5360 = sext i32 %5359 to i64
%5361 = getelementptr inbounds i32, i32* %5358, i64 %5360
store i32 %5357, i32* %5361
%5362 = load i32, i32* %47
store i32 %5362, i32* %51
%5363 = load double, double* %22
store double %5363, double* %57
store i32 1, i32* %32
br label %5364
5364: ; preds = %5543, %5356
%5365 = load i32, i32* %32
%5366 = load i32, i32* %41
%5367 = icmp slt i32 %5365, %5366
br i1 %5367, label %5368, label %5546
5368: ; preds = %5364
%5369 = load double, double* %23
%5370 = load double, double* %57
%5371 = fadd double %5370, %5369
store double %5371, double* %57
%5372 = load i32, i32* %18
%5373 = load double, double* %57
%5374 = load double*, double** %20
%5375 = load i32, i32* %51
%5376 = call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %5372, double %5373, double* %5374, i32 %5375)
store i32 %5376, i32* %51
%5377 = load i32, i32* %51
%5378 = load double, double* %57
%5379 = load i32, i32* %47
%5380 = load double*, double** %20
%5381 = load double*, double** %55
%5382 = load double*, double** %53
%5383 = load double*, double** %54
%5384 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %5377, double %5378, i32 %5379, double* %5380, double* %5381, double* %5382, double* %5383)
%5385 = load i32, i32* %51
%5386 = load i32, i32* %47
%5387 = sub nsw i32 %5385, %5386
store i32 %5387, i32* %50
%5388 = load i32, i32* %32
%5389 = mul nsw i32 3, %5388
store i32 %5389, i32* %38
store i32 0, i32* %31
br label %5390
5390: ; preds = %5539, %5368
%5391 = load i32, i32* %31
%5392 = load i32, i32* %27
%5393 = icmp slt i32 %5391, %5392
br i1 %5393, label %5394, label %5542
5394: ; preds = %5390
%5395 = load i32, i32* %40
%5396 = load i32, i32* %31
%5397 = mul nsw i32 %5395, %5396
%5398 = load i32, i32* %38
%5399 = add nsw i32 %5397, %5398
store i32 %5399, i32* %35
%5400 = load i32, i32* %31
%5401 = load i32, i32* %16
%5402 = mul nsw i32 %5400, %5401
store i32 %5402, i32* %36
%5403 = load i32, i32* %50
%5404 = load i32*, i32** %49
%5405 = load i32, i32* %31
%5406 = sext i32 %5405 to i64
%5407 = getelementptr inbounds i32, i32* %5404, i64 %5406
%5408 = load i32, i32* %5407
%5409 = load i32, i32* %18
%5410 = mul nsw i32 %5408, %5409
%5411 = add nsw i32 %5403, %5410
store i32 %5411, i32* %39
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %5412
5412: ; preds = %5498, %5394
%5413 = load i32, i32* %29
%5414 = load i32, i32* %48
%5415 = icmp sle i32 %5413, %5414
br i1 %5415, label %5416, label %5501
5416: ; preds = %5412
%5417 = load i32, i32* %18
%5418 = load i32, i32* %29
%5419 = mul nsw i32 %5417, %5418
%5420 = load i32, i32* %39
%5421 = add nsw i32 %5419, %5420
store i32 %5421, i32* %33
%5422 = load i32, i32* %36
%5423 = load i32, i32* %29
%5424 = add nsw i32 %5422, %5423
store i32 %5424, i32* %37
store i32 0, i32* %30
br label %5425
5425: ; preds = %5494, %5416
%5426 = load i32, i32* %30
%5427 = load i32, i32* %47
%5428 = icmp sle i32 %5426, %5427
br i1 %5428, label %5429, label %5497
5429: ; preds = %5425
%5430 = load i32, i32* %33
%5431 = load i32, i32* %30
%5432 = add nsw i32 %5430, %5431
%5433 = mul nsw i32 4, %5432
store i32 %5433, i32* %34
%5434 = load double*, double** %56
%5435 = load i32, i32* %37
%5436 = sext i32 %5435 to i64
%5437 = getelementptr inbounds double, double* %5434, i64 %5436
%5438 = load double, double* %5437
%5439 = load double*, double** %55
%5440 = load i32, i32* %30
%5441 = sext i32 %5440 to i64
%5442 = getelementptr inbounds double, double* %5439, i64 %5441
%5443 = load double, double* %5442
%5444 = fmul double %5438, %5443
store double %5444, double* %60
%5445 = load double, double* %60
%5446 = load double*, double** %17
%5447 = load i32, i32* %34
%5448 = sext i32 %5447 to i64
%5449 = getelementptr inbounds double, double* %5446, i64 %5448
%5450 = load double, double* %5449
%5451 = load double*, double** %28
%5452 = load i32, i32* %35
%5453 = sext i32 %5452 to i64
%5454 = getelementptr inbounds double, double* %5451, i64 %5453
%5455 = load double, double* %5454
%5456 = call double @llvm.fmuladd.f64(double %5445, double %5450, double %5455)
store double %5456, double* %5454
%5457 = load double, double* %60
%5458 = load double*, double** %17
%5459 = load i32, i32* %34
%5460 = add nsw i32 %5459, 1
%5461 = sext i32 %5460 to i64
%5462 = getelementptr inbounds double, double* %5458, i64 %5461
%5463 = load double, double* %5462
%5464 = load double*, double** %28
%5465 = load i32, i32* %35
%5466 = add nsw i32 %5465, 1
%5467 = sext i32 %5466 to i64
%5468 = getelementptr inbounds double, double* %5464, i64 %5467
%5469 = load double, double* %5468
%5470 = call double @llvm.fmuladd.f64(double %5457, double %5463, double %5469)
store double %5470, double* %5468
%5471 = load double, double* %60
%5472 = load double*, double** %17
%5473 = load i32, i32* %34
%5474 = add nsw i32 %5473, 2
%5475 = sext i32 %5474 to i64
%5476 = getelementptr inbounds double, double* %5472, i64 %5475
%5477 = load double, double* %5476
%5478 = load double*, double** %28
%5479 = load i32, i32* %35
%5480 = add nsw i32 %5479, 2
%5481 = sext i32 %5480 to i64
%5482 = getelementptr inbounds double, double* %5478, i64 %5481
%5483 = load double, double* %5482
%5484 = call double @llvm.fmuladd.f64(double %5471, double %5477, double %5483)
store double %5484, double* %5482
%5485 = load double, double* %60
%5486 = load double*, double** %17
%5487 = load i32, i32* %34
%5488 = add nsw i32 %5487, 3
%5489 = sext i32 %5488 to i64
%5490 = getelementptr inbounds double, double* %5486, i64 %5489
%5491 = load double, double* %5490
%5492 = load double, double* %59
%5493 = call double @llvm.fmuladd.f64(double %5485, double %5491, double %5492)
store double %5493, double* %59
br label %5494
5494: ; preds = %5429
%5495 = load i32, i32* %30
%5496 = add nsw i32 %5495, 1
store i32 %5496, i32* %30
br label %5425
5497: ; preds = %5425
br label %5498
5498: ; preds = %5497
%5499 = load i32, i32* %29
%5500 = add nsw i32 %5499, 1
store i32 %5500, i32* %29
br label %5412
5501: ; preds = %5412
%5502 = load double*, double** %28
%5503 = load i32, i32* %35
%5504 = sext i32 %5503 to i64
%5505 = getelementptr inbounds double, double* %5502, i64 %5504
%5506 = load double, double* %5505
%5507 = load double, double* %59
%5508 = fdiv double %5506, %5507
%5509 = load double*, double** %28
%5510 = load i32, i32* %35
%5511 = sext i32 %5510 to i64
%5512 = getelementptr inbounds double, double* %5509, i64 %5511
store double %5508, double* %5512
%5513 = load double*, double** %28
%5514 = load i32, i32* %35
%5515 = add nsw i32 %5514, 1
%5516 = sext i32 %5515 to i64
%5517 = getelementptr inbounds double, double* %5513, i64 %5516
%5518 = load double, double* %5517
%5519 = load double, double* %59
%5520 = fdiv double %5518, %5519
%5521 = load double*, double** %28
%5522 = load i32, i32* %35
%5523 = add nsw i32 %5522, 1
%5524 = sext i32 %5523 to i64
%5525 = getelementptr inbounds double, double* %5521, i64 %5524
store double %5520, double* %5525
%5526 = load double*, double** %28
%5527 = load i32, i32* %35
%5528 = add nsw i32 %5527, 2
%5529 = sext i32 %5528 to i64
%5530 = getelementptr inbounds double, double* %5526, i64 %5529
%5531 = load double, double* %5530
%5532 = load double, double* %59
%5533 = fdiv double %5531, %5532
%5534 = load double*, double** %28
%5535 = load i32, i32* %35
%5536 = add nsw i32 %5535, 2
%5537 = sext i32 %5536 to i64
%5538 = getelementptr inbounds double, double* %5534, i64 %5537
store double %5533, double* %5538
br label %5539
5539: ; preds = %5501
%5540 = load i32, i32* %31
%5541 = add nsw i32 %5540, 1
store i32 %5541, i32* %31
br label %5390
5542: ; preds = %5390
br label %5543
5543: ; preds = %5542
%5544 = load i32, i32* %32
%5545 = add nsw i32 %5544, 1
store i32 %5545, i32* %32
br label %5364
5546: ; preds = %5364
%5547 = load i32, i32* %41
%5548 = mul nsw i32 3, %5547
store i32 %5548, i32* %38
store i32 0, i32* %31
br label %5549
5549: ; preds = %5690, %5546
%5550 = load i32, i32* %31
%5551 = load i32, i32* %27
%5552 = icmp slt i32 %5550, %5551
br i1 %5552, label %5553, label %5693
5553: ; preds = %5549
%5554 = load i32, i32* %40
%5555 = load i32, i32* %31
%5556 = mul nsw i32 %5554, %5555
%5557 = load i32, i32* %38
%5558 = add nsw i32 %5556, %5557
store i32 %5558, i32* %35
%5559 = load i32, i32* %31
%5560 = load i32, i32* %16
%5561 = mul nsw i32 %5559, %5560
store i32 %5561, i32* %36
%5562 = load i32, i32* %45
%5563 = load i32*, i32** %49
%5564 = load i32, i32* %31
%5565 = sext i32 %5564 to i64
%5566 = getelementptr inbounds i32, i32* %5563, i64 %5565
%5567 = load i32, i32* %5566
%5568 = mul nsw i32 %5562, %5567
%5569 = load i32, i32* %46
%5570 = add nsw i32 %5568, %5569
store i32 %5570, i32* %33
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %5571
5571: ; preds = %5649, %5553
%5572 = load i32, i32* %29
%5573 = load i32, i32* %48
%5574 = icmp sle i32 %5572, %5573
br i1 %5574, label %5575, label %5652
5575: ; preds = %5571
%5576 = load i32, i32* %36
%5577 = load i32, i32* %29
%5578 = add nsw i32 %5576, %5577
store i32 %5578, i32* %37
%5579 = load i32, i32* %45
%5580 = load i32, i32* %29
%5581 = mul nsw i32 %5579, %5580
%5582 = load i32, i32* %33
%5583 = add nsw i32 %5581, %5582
store i32 %5583, i32* %34
%5584 = load double*, double** %56
%5585 = load i32, i32* %37
%5586 = sext i32 %5585 to i64
%5587 = getelementptr inbounds double, double* %5584, i64 %5586
%5588 = load double, double* %5587
%5589 = load double*, double** %17
%5590 = load i32, i32* %34
%5591 = sext i32 %5590 to i64
%5592 = getelementptr inbounds double, double* %5589, i64 %5591
%5593 = load double, double* %5592
%5594 = load double*, double** %28
%5595 = load i32, i32* %35
%5596 = sext i32 %5595 to i64
%5597 = getelementptr inbounds double, double* %5594, i64 %5596
%5598 = load double, double* %5597
%5599 = call double @llvm.fmuladd.f64(double %5588, double %5593, double %5598)
store double %5599, double* %5597
%5600 = load double*, double** %56
%5601 = load i32, i32* %37
%5602 = sext i32 %5601 to i64
%5603 = getelementptr inbounds double, double* %5600, i64 %5602
%5604 = load double, double* %5603
%5605 = load double*, double** %17
%5606 = load i32, i32* %34
%5607 = add nsw i32 %5606, 1
%5608 = sext i32 %5607 to i64
%5609 = getelementptr inbounds double, double* %5605, i64 %5608
%5610 = load double, double* %5609
%5611 = load double*, double** %28
%5612 = load i32, i32* %35
%5613 = add nsw i32 %5612, 1
%5614 = sext i32 %5613 to i64
%5615 = getelementptr inbounds double, double* %5611, i64 %5614
%5616 = load double, double* %5615
%5617 = call double @llvm.fmuladd.f64(double %5604, double %5610, double %5616)
store double %5617, double* %5615
%5618 = load double*, double** %56
%5619 = load i32, i32* %37
%5620 = sext i32 %5619 to i64
%5621 = getelementptr inbounds double, double* %5618, i64 %5620
%5622 = load double, double* %5621
%5623 = load double*, double** %17
%5624 = load i32, i32* %34
%5625 = add nsw i32 %5624, 2
%5626 = sext i32 %5625 to i64
%5627 = getelementptr inbounds double, double* %5623, i64 %5626
%5628 = load double, double* %5627
%5629 = load double*, double** %28
%5630 = load i32, i32* %35
%5631 = add nsw i32 %5630, 2
%5632 = sext i32 %5631 to i64
%5633 = getelementptr inbounds double, double* %5629, i64 %5632
%5634 = load double, double* %5633
%5635 = call double @llvm.fmuladd.f64(double %5622, double %5628, double %5634)
store double %5635, double* %5633
%5636 = load double*, double** %56
%5637 = load i32, i32* %37
%5638 = sext i32 %5637 to i64
%5639 = getelementptr inbounds double, double* %5636, i64 %5638
%5640 = load double, double* %5639
%5641 = load double*, double** %17
%5642 = load i32, i32* %34
%5643 = add nsw i32 %5642, 3
%5644 = sext i32 %5643 to i64
%5645 = getelementptr inbounds double, double* %5641, i64 %5644
%5646 = load double, double* %5645
%5647 = load double, double* %59
%5648 = call double @llvm.fmuladd.f64(double %5640, double %5646, double %5647)
store double %5648, double* %59
br label %5649
5649: ; preds = %5575
%5650 = load i32, i32* %29
%5651 = add nsw i32 %5650, 1
store i32 %5651, i32* %29
br label %5571
5652: ; preds = %5571
%5653 = load double*, double** %28
%5654 = load i32, i32* %35
%5655 = sext i32 %5654 to i64
%5656 = getelementptr inbounds double, double* %5653, i64 %5655
%5657 = load double, double* %5656
%5658 = load double, double* %59
%5659 = fdiv double %5657, %5658
%5660 = load double*, double** %28
%5661 = load i32, i32* %35
%5662 = sext i32 %5661 to i64
%5663 = getelementptr inbounds double, double* %5660, i64 %5662
store double %5659, double* %5663
%5664 = load double*, double** %28
%5665 = load i32, i32* %35
%5666 = add nsw i32 %5665, 1
%5667 = sext i32 %5666 to i64
%5668 = getelementptr inbounds double, double* %5664, i64 %5667
%5669 = load double, double* %5668
%5670 = load double, double* %59
%5671 = fdiv double %5669, %5670
%5672 = load double*, double** %28
%5673 = load i32, i32* %35
%5674 = add nsw i32 %5673, 1
%5675 = sext i32 %5674 to i64
%5676 = getelementptr inbounds double, double* %5672, i64 %5675
store double %5671, double* %5676
%5677 = load double*, double** %28
%5678 = load i32, i32* %35
%5679 = add nsw i32 %5678, 2
%5680 = sext i32 %5679 to i64
%5681 = getelementptr inbounds double, double* %5677, i64 %5680
%5682 = load double, double* %5681
%5683 = load double, double* %59
%5684 = fdiv double %5682, %5683
%5685 = load double*, double** %28
%5686 = load i32, i32* %35
%5687 = add nsw i32 %5686, 2
%5688 = sext i32 %5687 to i64
%5689 = getelementptr inbounds double, double* %5685, i64 %5688
store double %5684, double* %5689
br label %5690
5690: ; preds = %5652
%5691 = load i32, i32* %31
%5692 = add nsw i32 %5691, 1
store i32 %5692, i32* %31
br label %5549
5693: ; preds = %5549
br label %6220
5694: ; preds = %5059
%5695 = load i32, i32* %19
%5696 = load i32, i32* %48
%5697 = load double, double* %25
%5698 = load double*, double** %21
%5699 = call i32 (i32, i32, double, double*, ...) bitcast (i32 (...)* @FindSpan to i32 (i32, i32, double, double*, ...)*)(i32 %5695, i32 %5696, double %5697, double* %5698)
%5700 = load i32*, i32** %49
%5701 = getelementptr inbounds i32, i32* %5700, i64 0
store i32 %5699, i32* %5701
%5702 = load i32*, i32** %49
%5703 = getelementptr inbounds i32, i32* %5702, i64 0
%5704 = load i32, i32* %5703
%5705 = load double, double* %25
%5706 = load i32, i32* %48
%5707 = load double*, double** %21
%5708 = load double*, double** %56
%5709 = load double*, double** %53
%5710 = load double*, double** %54
%5711 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %5704, double %5705, i32 %5706, double* %5707, double* %5708, double* %5709, double* %5710)
%5712 = load i32*, i32** %49
%5713 = getelementptr inbounds i32, i32* %5712, i64 0
%5714 = load i32, i32* %5713
%5715 = load i32, i32* %48
%5716 = sub nsw i32 %5714, %5715
store i32 %5716, i32* %52
%5717 = load i32, i32* %18
%5718 = load i32, i32* %47
%5719 = load double, double* %22
%5720 = load double*, double** %20
%5721 = call i32 (i32, i32, double, double*, ...) bitcast (i32 (...)* @FindSpan to i32 (i32, i32, double, double*, ...)*)(i32 %5717, i32 %5718, double %5719, double* %5720)
store i32 %5721, i32* %51
%5722 = load i32, i32* %51
%5723 = load double, double* %22
%5724 = load i32, i32* %47
%5725 = load double*, double** %20
%5726 = load double*, double** %55
%5727 = load double*, double** %53
%5728 = load double*, double** %54
%5729 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %5722, double %5723, i32 %5724, double* %5725, double* %5726, double* %5727, double* %5728)
%5730 = load i32, i32* %51
%5731 = load i32, i32* %47
%5732 = sub nsw i32 %5730, %5731
store i32 %5732, i32* %50
%5733 = load i32, i32* %52
%5734 = load i32, i32* %18
%5735 = mul nsw i32 %5733, %5734
%5736 = load i32, i32* %50
%5737 = add nsw i32 %5735, %5736
store i32 %5737, i32* %39
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %5738
5738: ; preds = %5813, %5694
%5739 = load i32, i32* %29
%5740 = load i32, i32* %48
%5741 = icmp sle i32 %5739, %5740
br i1 %5741, label %5742, label %5816
5742: ; preds = %5738
%5743 = load i32, i32* %18
%5744 = load i32, i32* %29
%5745 = mul nsw i32 %5743, %5744
%5746 = load i32, i32* %39
%5747 = add nsw i32 %5745, %5746
store i32 %5747, i32* %33
store i32 0, i32* %30
br label %5748
5748: ; preds = %5809, %5742
%5749 = load i32, i32* %30
%5750 = load i32, i32* %47
%5751 = icmp sle i32 %5749, %5750
br i1 %5751, label %5752, label %5812
5752: ; preds = %5748
%5753 = load i32, i32* %33
%5754 = load i32, i32* %30
%5755 = add nsw i32 %5753, %5754
%5756 = mul nsw i32 4, %5755
store i32 %5756, i32* %34
%5757 = load double*, double** %56
%5758 = load i32, i32* %29
%5759 = sext i32 %5758 to i64
%5760 = getelementptr inbounds double, double* %5757, i64 %5759
%5761 = load double, double* %5760
%5762 = load double*, double** %55
%5763 = load i32, i32* %30
%5764 = sext i32 %5763 to i64
%5765 = getelementptr inbounds double, double* %5762, i64 %5764
%5766 = load double, double* %5765
%5767 = fmul double %5761, %5766
store double %5767, double* %60
%5768 = load double, double* %60
%5769 = load double*, double** %17
%5770 = load i32, i32* %34
%5771 = sext i32 %5770 to i64
%5772 = getelementptr inbounds double, double* %5769, i64 %5771
%5773 = load double, double* %5772
%5774 = load double*, double** %28
%5775 = getelementptr inbounds double, double* %5774, i64 0
%5776 = load double, double* %5775
%5777 = call double @llvm.fmuladd.f64(double %5768, double %5773, double %5776)
store double %5777, double* %5775
%5778 = load double, double* %60
%5779 = load double*, double** %17
%5780 = load i32, i32* %34
%5781 = add nsw i32 %5780, 1
%5782 = sext i32 %5781 to i64
%5783 = getelementptr inbounds double, double* %5779, i64 %5782
%5784 = load double, double* %5783
%5785 = load double*, double** %28
%5786 = getelementptr inbounds double, double* %5785, i64 1
%5787 = load double, double* %5786
%5788 = call double @llvm.fmuladd.f64(double %5778, double %5784, double %5787)
store double %5788, double* %5786
%5789 = load double, double* %60
%5790 = load double*, double** %17
%5791 = load i32, i32* %34
%5792 = add nsw i32 %5791, 2
%5793 = sext i32 %5792 to i64
%5794 = getelementptr inbounds double, double* %5790, i64 %5793
%5795 = load double, double* %5794
%5796 = load double*, double** %28
%5797 = getelementptr inbounds double, double* %5796, i64 2
%5798 = load double, double* %5797
%5799 = call double @llvm.fmuladd.f64(double %5789, double %5795, double %5798)
store double %5799, double* %5797
%5800 = load double, double* %60
%5801 = load double*, double** %17
%5802 = load i32, i32* %34
%5803 = add nsw i32 %5802, 3
%5804 = sext i32 %5803 to i64
%5805 = getelementptr inbounds double, double* %5801, i64 %5804
%5806 = load double, double* %5805
%5807 = load double, double* %59
%5808 = call double @llvm.fmuladd.f64(double %5800, double %5806, double %5807)
store double %5808, double* %59
br label %5809
5809: ; preds = %5752
%5810 = load i32, i32* %30
%5811 = add nsw i32 %5810, 1
store i32 %5811, i32* %30
br label %5748
5812: ; preds = %5748
br label %5813
5813: ; preds = %5812
%5814 = load i32, i32* %29
%5815 = add nsw i32 %5814, 1
store i32 %5815, i32* %29
br label %5738
5816: ; preds = %5738
%5817 = load double*, double** %28
%5818 = getelementptr inbounds double, double* %5817, i64 0
%5819 = load double, double* %5818
%5820 = load double, double* %59
%5821 = fdiv double %5819, %5820
%5822 = load double*, double** %28
%5823 = getelementptr inbounds double, double* %5822, i64 0
store double %5821, double* %5823
%5824 = load double*, double** %28
%5825 = getelementptr inbounds double, double* %5824, i64 1
%5826 = load double, double* %5825
%5827 = load double, double* %59
%5828 = fdiv double %5826, %5827
%5829 = load double*, double** %28
%5830 = getelementptr inbounds double, double* %5829, i64 1
store double %5828, double* %5830
%5831 = load double*, double** %28
%5832 = getelementptr inbounds double, double* %5831, i64 2
%5833 = load double, double* %5832
%5834 = load double, double* %59
%5835 = fdiv double %5833, %5834
%5836 = load double*, double** %28
%5837 = getelementptr inbounds double, double* %5836, i64 2
store double %5835, double* %5837
%5838 = load double, double* %25
store double %5838, double* %58
store i32 1, i32* %31
br label %5839
5839: ; preds = %6027, %5816
%5840 = load i32, i32* %31
%5841 = load i32, i32* %27
%5842 = icmp slt i32 %5840, %5841
br i1 %5842, label %5843, label %6030
5843: ; preds = %5839
%5844 = load i32, i32* %31
%5845 = load i32, i32* %40
%5846 = mul nsw i32 %5844, %5845
store i32 %5846, i32* %35
%5847 = load i32, i32* %31
%5848 = load i32, i32* %16
%5849 = mul nsw i32 %5847, %5848
store i32 %5849, i32* %36
%5850 = load double, double* %26
%5851 = load double, double* %58
%5852 = fadd double %5851, %5850
store double %5852, double* %58
%5853 = load i32, i32* %19
%5854 = load double, double* %58
%5855 = load double*, double** %21
%5856 = load i32*, i32** %49
%5857 = load i32, i32* %31
%5858 = sub nsw i32 %5857, 1
%5859 = sext i32 %5858 to i64
%5860 = getelementptr inbounds i32, i32* %5856, i64 %5859
%5861 = load i32, i32* %5860
%5862 = call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %5853, double %5854, double* %5855, i32 %5861)
%5863 = load i32*, i32** %49
%5864 = load i32, i32* %31
%5865 = sext i32 %5864 to i64
%5866 = getelementptr inbounds i32, i32* %5863, i64 %5865
store i32 %5862, i32* %5866
%5867 = load i32*, i32** %49
%5868 = load i32, i32* %31
%5869 = sext i32 %5868 to i64
%5870 = getelementptr inbounds i32, i32* %5867, i64 %5869
%5871 = load i32, i32* %5870
%5872 = load double, double* %58
%5873 = load i32, i32* %48
%5874 = load double*, double** %21
%5875 = load double*, double** %56
%5876 = load i32, i32* %36
%5877 = sext i32 %5876 to i64
%5878 = getelementptr inbounds double, double* %5875, i64 %5877
%5879 = load double*, double** %53
%5880 = load double*, double** %54
%5881 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %5871, double %5872, i32 %5873, double* %5874, double* %5878, double* %5879, double* %5880)
%5882 = load i32, i32* %52
%5883 = load i32*, i32** %49
%5884 = load i32, i32* %31
%5885 = sub nsw i32 %5884, 1
%5886 = sext i32 %5885 to i64
%5887 = getelementptr inbounds i32, i32* %5883, i64 %5886
store i32 %5882, i32* %5887
%5888 = load i32*, i32** %49
%5889 = load i32, i32* %31
%5890 = sext i32 %5889 to i64
%5891 = getelementptr inbounds i32, i32* %5888, i64 %5890
%5892 = load i32, i32* %5891
%5893 = load i32, i32* %48
%5894 = sub nsw i32 %5892, %5893
store i32 %5894, i32* %52
%5895 = load i32, i32* %52
%5896 = load i32, i32* %18
%5897 = mul nsw i32 %5895, %5896
%5898 = load i32, i32* %50
%5899 = add nsw i32 %5897, %5898
store i32 %5899, i32* %39
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %5900
5900: ; preds = %5986, %5843
%5901 = load i32, i32* %29
%5902 = load i32, i32* %48
%5903 = icmp sle i32 %5901, %5902
br i1 %5903, label %5904, label %5989
5904: ; preds = %5900
%5905 = load i32, i32* %18
%5906 = load i32, i32* %29
%5907 = mul nsw i32 %5905, %5906
%5908 = load i32, i32* %39
%5909 = add nsw i32 %5907, %5908
store i32 %5909, i32* %33
%5910 = load i32, i32* %36
%5911 = load i32, i32* %29
%5912 = add nsw i32 %5910, %5911
store i32 %5912, i32* %37
store i32 0, i32* %30
br label %5913
5913: ; preds = %5982, %5904
%5914 = load i32, i32* %30
%5915 = load i32, i32* %47
%5916 = icmp sle i32 %5914, %5915
br i1 %5916, label %5917, label %5985
5917: ; preds = %5913
%5918 = load i32, i32* %33
%5919 = load i32, i32* %30
%5920 = add nsw i32 %5918, %5919
%5921 = mul nsw i32 4, %5920
store i32 %5921, i32* %34
%5922 = load double*, double** %56
%5923 = load i32, i32* %37
%5924 = sext i32 %5923 to i64
%5925 = getelementptr inbounds double, double* %5922, i64 %5924
%5926 = load double, double* %5925
%5927 = load double*, double** %55
%5928 = load i32, i32* %30
%5929 = sext i32 %5928 to i64
%5930 = getelementptr inbounds double, double* %5927, i64 %5929
%5931 = load double, double* %5930
%5932 = fmul double %5926, %5931
store double %5932, double* %60
%5933 = load double, double* %60
%5934 = load double*, double** %17
%5935 = load i32, i32* %34
%5936 = sext i32 %5935 to i64
%5937 = getelementptr inbounds double, double* %5934, i64 %5936
%5938 = load double, double* %5937
%5939 = load double*, double** %28
%5940 = load i32, i32* %35
%5941 = sext i32 %5940 to i64
%5942 = getelementptr inbounds double, double* %5939, i64 %5941
%5943 = load double, double* %5942
%5944 = call double @llvm.fmuladd.f64(double %5933, double %5938, double %5943)
store double %5944, double* %5942
%5945 = load double, double* %60
%5946 = load double*, double** %17
%5947 = load i32, i32* %34
%5948 = add nsw i32 %5947, 1
%5949 = sext i32 %5948 to i64
%5950 = getelementptr inbounds double, double* %5946, i64 %5949
%5951 = load double, double* %5950
%5952 = load double*, double** %28
%5953 = load i32, i32* %35
%5954 = add nsw i32 %5953, 1
%5955 = sext i32 %5954 to i64
%5956 = getelementptr inbounds double, double* %5952, i64 %5955
%5957 = load double, double* %5956
%5958 = call double @llvm.fmuladd.f64(double %5945, double %5951, double %5957)
store double %5958, double* %5956
%5959 = load double, double* %60
%5960 = load double*, double** %17
%5961 = load i32, i32* %34
%5962 = add nsw i32 %5961, 2
%5963 = sext i32 %5962 to i64
%5964 = getelementptr inbounds double, double* %5960, i64 %5963
%5965 = load double, double* %5964
%5966 = load double*, double** %28
%5967 = load i32, i32* %35
%5968 = add nsw i32 %5967, 2
%5969 = sext i32 %5968 to i64
%5970 = getelementptr inbounds double, double* %5966, i64 %5969
%5971 = load double, double* %5970
%5972 = call double @llvm.fmuladd.f64(double %5959, double %5965, double %5971)
store double %5972, double* %5970
%5973 = load double, double* %60
%5974 = load double*, double** %17
%5975 = load i32, i32* %34
%5976 = add nsw i32 %5975, 3
%5977 = sext i32 %5976 to i64
%5978 = getelementptr inbounds double, double* %5974, i64 %5977
%5979 = load double, double* %5978
%5980 = load double, double* %59
%5981 = call double @llvm.fmuladd.f64(double %5973, double %5979, double %5980)
store double %5981, double* %59
br label %5982
5982: ; preds = %5917
%5983 = load i32, i32* %30
%5984 = add nsw i32 %5983, 1
store i32 %5984, i32* %30
br label %5913
5985: ; preds = %5913
br label %5986
5986: ; preds = %5985
%5987 = load i32, i32* %29
%5988 = add nsw i32 %5987, 1
store i32 %5988, i32* %29
br label %5900
5989: ; preds = %5900
%5990 = load double*, double** %28
%5991 = load i32, i32* %35
%5992 = sext i32 %5991 to i64
%5993 = getelementptr inbounds double, double* %5990, i64 %5992
%5994 = load double, double* %5993
%5995 = load double, double* %59
%5996 = fdiv double %5994, %5995
%5997 = load double*, double** %28
%5998 = load i32, i32* %35
%5999 = sext i32 %5998 to i64
%6000 = getelementptr inbounds double, double* %5997, i64 %5999
store double %5996, double* %6000
%6001 = load double*, double** %28
%6002 = load i32, i32* %35
%6003 = add nsw i32 %6002, 1
%6004 = sext i32 %6003 to i64
%6005 = getelementptr inbounds double, double* %6001, i64 %6004
%6006 = load double, double* %6005
%6007 = load double, double* %59
%6008 = fdiv double %6006, %6007
%6009 = load double*, double** %28
%6010 = load i32, i32* %35
%6011 = add nsw i32 %6010, 1
%6012 = sext i32 %6011 to i64
%6013 = getelementptr inbounds double, double* %6009, i64 %6012
store double %6008, double* %6013
%6014 = load double*, double** %28
%6015 = load i32, i32* %35
%6016 = add nsw i32 %6015, 2
%6017 = sext i32 %6016 to i64
%6018 = getelementptr inbounds double, double* %6014, i64 %6017
%6019 = load double, double* %6018
%6020 = load double, double* %59
%6021 = fdiv double %6019, %6020
%6022 = load double*, double** %28
%6023 = load i32, i32* %35
%6024 = add nsw i32 %6023, 2
%6025 = sext i32 %6024 to i64
%6026 = getelementptr inbounds double, double* %6022, i64 %6025
store double %6021, double* %6026
br label %6027
6027: ; preds = %5989
%6028 = load i32, i32* %31
%6029 = add nsw i32 %6028, 1
store i32 %6029, i32* %31
br label %5839
6030: ; preds = %5839
%6031 = load i32, i32* %52
%6032 = load i32*, i32** %49
%6033 = load i32, i32* %42
%6034 = sext i32 %6033 to i64
%6035 = getelementptr inbounds i32, i32* %6032, i64 %6034
store i32 %6031, i32* %6035
%6036 = load double, double* %22
store double %6036, double* %57
store i32 1, i32* %32
br label %6037
6037: ; preds = %6216, %6030
%6038 = load i32, i32* %32
%6039 = load i32, i32* %24
%6040 = icmp slt i32 %6038, %6039
br i1 %6040, label %6041, label %6219
6041: ; preds = %6037
%6042 = load double, double* %23
%6043 = load double, double* %57
%6044 = fadd double %6043, %6042
store double %6044, double* %57
%6045 = load i32, i32* %18
%6046 = load double, double* %57
%6047 = load double*, double** %20
%6048 = load i32, i32* %51
%6049 = call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %6045, double %6046, double* %6047, i32 %6048)
store i32 %6049, i32* %51
%6050 = load i32, i32* %51
%6051 = load double, double* %57
%6052 = load i32, i32* %47
%6053 = load double*, double** %20
%6054 = load double*, double** %55
%6055 = load double*, double** %53
%6056 = load double*, double** %54
%6057 = call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %6050, double %6051, i32 %6052, double* %6053, double* %6054, double* %6055, double* %6056)
%6058 = load i32, i32* %51
%6059 = load i32, i32* %47
%6060 = sub nsw i32 %6058, %6059
store i32 %6060, i32* %50
%6061 = load i32, i32* %32
%6062 = mul nsw i32 3, %6061
store i32 %6062, i32* %38
store i32 0, i32* %31
br label %6063
6063: ; preds = %6212, %6041
%6064 = load i32, i32* %31
%6065 = load i32, i32* %27
%6066 = icmp slt i32 %6064, %6065
br i1 %6066, label %6067, label %6215
6067: ; preds = %6063
%6068 = load i32, i32* %40
%6069 = load i32, i32* %31
%6070 = mul nsw i32 %6068, %6069
%6071 = load i32, i32* %38
%6072 = add nsw i32 %6070, %6071
store i32 %6072, i32* %35
%6073 = load i32, i32* %31
%6074 = load i32, i32* %16
%6075 = mul nsw i32 %6073, %6074
store i32 %6075, i32* %36
%6076 = load i32, i32* %50
%6077 = load i32*, i32** %49
%6078 = load i32, i32* %31
%6079 = sext i32 %6078 to i64
%6080 = getelementptr inbounds i32, i32* %6077, i64 %6079
%6081 = load i32, i32* %6080
%6082 = load i32, i32* %18
%6083 = mul nsw i32 %6081, %6082
%6084 = add nsw i32 %6076, %6083
store i32 %6084, i32* %39
store double 0.000000e+00, double* %59
store i32 0, i32* %29
br label %6085
6085: ; preds = %6171, %6067
%6086 = load i32, i32* %29
%6087 = load i32, i32* %48
%6088 = icmp sle i32 %6086, %6087
br i1 %6088, label %6089, label %6174
6089: ; preds = %6085
%6090 = load i32, i32* %18
%6091 = load i32, i32* %29
%6092 = mul nsw i32 %6090, %6091
%6093 = load i32, i32* %39
%6094 = add nsw i32 %6092, %6093
store i32 %6094, i32* %33
%6095 = load i32, i32* %36
%6096 = load i32, i32* %29
%6097 = add nsw i32 %6095, %6096
store i32 %6097, i32* %37
store i32 0, i32* %30
br label %6098
6098: ; preds = %6167, %6089
%6099 = load i32, i32* %30
%6100 = load i32, i32* %47
%6101 = icmp sle i32 %6099, %6100
br i1 %6101, label %6102, label %6170
6102: ; preds = %6098
%6103 = load i32, i32* %33
%6104 = load i32, i32* %30
%6105 = add nsw i32 %6103, %6104
%6106 = mul nsw i32 4, %6105
store i32 %6106, i32* %34
%6107 = load double*, double** %56
%6108 = load i32, i32* %37
%6109 = sext i32 %6108 to i64
%6110 = getelementptr inbounds double, double* %6107, i64 %6109
%6111 = load double, double* %6110
%6112 = load double*, double** %55
%6113 = load i32, i32* %30
%6114 = sext i32 %6113 to i64
%6115 = getelementptr inbounds double, double* %6112, i64 %6114
%6116 = load double, double* %6115
%6117 = fmul double %6111, %6116
store double %6117, double* %60
%6118 = load double, double* %60
%6119 = load double*, double** %17
%6120 = load i32, i32* %34
%6121 = sext i32 %6120 to i64
%6122 = getelementptr inbounds double, double* %6119, i64 %6121
%6123 = load double, double* %6122
%6124 = load double*, double** %28
%6125 = load i32, i32* %35
%6126 = sext i32 %6125 to i64
%6127 = getelementptr inbounds double, double* %6124, i64 %6126
%6128 = load double, double* %6127
%6129 = call double @llvm.fmuladd.f64(double %6118, double %6123, double %6128)
store double %6129, double* %6127
%6130 = load double, double* %60
%6131 = load double*, double** %17
%6132 = load i32, i32* %34
%6133 = add nsw i32 %6132, 1
%6134 = sext i32 %6133 to i64
%6135 = getelementptr inbounds double, double* %6131, i64 %6134
%6136 = load double, double* %6135
%6137 = load double*, double** %28
%6138 = load i32, i32* %35
%6139 = add nsw i32 %6138, 1
%6140 = sext i32 %6139 to i64
%6141 = getelementptr inbounds double, double* %6137, i64 %6140
%6142 = load double, double* %6141
%6143 = call double @llvm.fmuladd.f64(double %6130, double %6136, double %6142)
store double %6143, double* %6141
%6144 = load double, double* %60
%6145 = load double*, double** %17
%6146 = load i32, i32* %34
%6147 = add nsw i32 %6146, 2
%6148 = sext i32 %6147 to i64
%6149 = getelementptr inbounds double, double* %6145, i64 %6148
%6150 = load double, double* %6149
%6151 = load double*, double** %28
%6152 = load i32, i32* %35
%6153 = add nsw i32 %6152, 2
%6154 = sext i32 %6153 to i64
%6155 = getelementptr inbounds double, double* %6151, i64 %6154
%6156 = load double, double* %6155
%6157 = call double @llvm.fmuladd.f64(double %6144, double %6150, double %6156)
store double %6157, double* %6155
%6158 = load double, double* %60
%6159 = load double*, double** %17
%6160 = load i32, i32* %34
%6161 = add nsw i32 %6160, 3
%6162 = sext i32 %6161 to i64
%6163 = getelementptr inbounds double, double* %6159, i64 %6162
%6164 = load double, double* %6163
%6165 = load double, double* %59
%6166 = call double @llvm.fmuladd.f64(double %6158, double %6164, double %6165)
store double %6166, double* %59
br label %6167
6167: ; preds = %6102
%6168 = load i32, i32* %30
%6169 = add nsw i32 %6168, 1
store i32 %6169, i32* %30
br label %6098
6170: ; preds = %6098
br label %6171
6171: ; preds = %6170
%6172 = load i32, i32* %29
%6173 = add nsw i32 %6172, 1
store i32 %6173, i32* %29
br label %6085
6174: ; preds = %6085
%6175 = load double*, double** %28
%6176 = load i32, i32* %35
%6177 = sext i32 %6176 to i64
%6178 = getelementptr inbounds double, double* %6175, i64 %6177
%6179 = load double, double* %6178
%6180 = load double, double* %59
%6181 = fdiv double %6179, %6180
%6182 = load double*, double** %28
%6183 = load i32, i32* %35
%6184 = sext i32 %6183 to i64
%6185 = getelementptr inbounds double, double* %6182, i64 %6184
store double %6181, double* %6185
%6186 = load double*, double** %28
%6187 = load i32, i32* %35
%6188 = add nsw i32 %6187, 1
%6189 = sext i32 %6188 to i64
%6190 = getelementptr inbounds double, double* %6186, i64 %6189
%6191 = load double, double* %6190
%6192 = load double, double* %59
%6193 = fdiv double %6191, %6192
%6194 = load double*, double** %28
%6195 = load i32, i32* %35
%6196 = add nsw i32 %6195, 1
%6197 = sext i32 %6196 to i64
%6198 = getelementptr inbounds double, double* %6194, i64 %6197
store double %6193, double* %6198
%6199 = load double*, double** %28
%6200 = load i32, i32* %35
%6201 = add nsw i32 %6200, 2
%6202 = sext i32 %6201 to i64
%6203 = getelementptr inbounds double, double* %6199, i64 %6202
%6204 = load double, double* %6203
%6205 = load double, double* %59
%6206 = fdiv double %6204, %6205
%6207 = load double*, double** %28
%6208 = load i32, i32* %35
%6209 = add nsw i32 %6208, 2
%6210 = sext i32 %6209 to i64
%6211 = getelementptr inbounds double, double* %6207, i64 %6210
store double %6206, double* %6211
br label %6212
6212: ; preds = %6174
%6213 = load i32, i32* %31
%6214 = add nsw i32 %6213, 1
store i32 %6214, i32* %31
br label %6063
6215: ; preds = %6063
br label %6216
6216: ; preds = %6215
%6217 = load i32, i32* %32
%6218 = add nsw i32 %6217, 1
store i32 %6218, i32* %32
br label %6037
6219: ; preds = %6037
br label %6220
6220: ; preds = %6219, %5693
br label %6221
6221: ; preds = %6220, %5058
br label %6222
6222: ; preds = %6221, %4138
br label %6223
6223: ; preds = %6222, %3179
%6224 = load i32*, i32** %49
%6225 = bitcast i32* %6224 to i8*
%6226 = load double*, double** %56
%6227 = bitcast double* %6226 to i8*
%6228 = load double*, double** %53
%6229 = bitcast double* %6228 to i8*
%6230 = load double*, double** %54
%6231 = bitcast double* %6230 to i8*
%6232 = load double*, double** %55
%6233 = bitcast double* %6232 to i8*
ret void
}

LLVM IR (-O2):
define void @NURBSsurfaceRegularEval(i32 %0, i32 %1, double* %2, i32 %3, i32 %4, double* %5, double* %6, double %7, double %8, i32 %9, double %10, double %11, i32 %12, double* %13) {
%15 = add i32 %9, -1
%16 = add i32 %12, -1
%17 = add nsw i32 %4, -1
%18 = add nsw i32 %0, -1
%19 = sub i32 1, %0
%20 = add nsw i32 %1, -1
%21 = sub i32 1, %1
%22 = sext i32 %18 to i64
%23 = getelementptr inbounds double, double* %5, i64 %22
%24 = load double, double* %23
%25 = fadd double %24, 0x3D719799812DEA11
%26 = fcmp ogt double %25, %7
br i1 %26, label %27, label %35
27: ; preds = %14
%28 = sitofp i32 %15 to double
%29 = tail call double @llvm.fmuladd.f64(double %28, double %8, double %7)
%30 = sext i32 %3 to i64
%31 = getelementptr inbounds double, double* %5, i64 %30
%32 = load double, double* %31
%33 = fadd double %32, 0xBD719799812DEA11
%34 = fcmp ogt double %29, %33
br i1 %34, label %36, label %35
35: ; preds = %27, %14
br label %36
36: ; preds = %27, %35
%37 = phi i1 [ false, %35 ], [ true, %27 ]
%38 = phi i1 [ true, %35 ], [ false, %27 ]
%39 = sext i32 %20 to i64
%40 = getelementptr inbounds double, double* %6, i64 %39
%41 = load double, double* %40
%42 = fadd double %41, 0x3D719799812DEA11
%43 = fcmp ogt double %42, %10
br i1 %43, label %44, label %52
44: ; preds = %36
%45 = sitofp i32 %16 to double
%46 = tail call double @llvm.fmuladd.f64(double %45, double %11, double %10)
%47 = sext i32 %4 to i64
%48 = getelementptr inbounds double, double* %6, i64 %47
%49 = load double, double* %48
%50 = fadd double %49, 0xBD719799812DEA11
%51 = fcmp ogt double %46, %50
br i1 %51, label %53, label %52
52: ; preds = %44, %36
br label %53
53: ; preds = %44, %52
%54 = phi i1 [ false, %52 ], [ true, %44 ]
%55 = phi i1 [ true, %52 ], [ false, %44 ]
%56 = tail call i32 (i32, i32, ...) bitcast (i32 (...)* @MAX to i32 (i32, i32, ...)*)(i32 %0, i32 %1)
%57 = sext i32 %56 to i64
%58 = shl nsw i64 %57, 3
%59 = or i64 %58, 1
%60 = tail call i8* @malloc(i64 %59)
%61 = bitcast i8* %60 to double*
%62 = tail call i8* @malloc(i64 %59)
%63 = bitcast i8* %62 to double*
%64 = shl nsw i32 %3, 2
%65 = add nsw i32 %64, -4
%66 = mul nsw i32 %9, %0
%67 = sext i32 %66 to i64
%68 = shl nsw i64 %67, 3
%69 = sext i32 %9 to i64
%70 = shl nsw i64 %69, 2
%71 = sext i32 %1 to i64
%72 = shl nsw i64 %71, 3
%73 = add nsw i64 %70, %72
%74 = add nsw i64 %73, %68
%75 = mul nsw i32 %12, %1
%76 = sext i32 %75 to i64
%77 = shl nsw i64 %76, 3
%78 = sext i32 %12 to i64
%79 = shl nsw i64 %78, 2
%80 = sext i32 %0 to i64
%81 = shl nsw i64 %80, 3
%82 = add nsw i64 %79, %81
%83 = add nsw i64 %82, %77
%84 = icmp ult i64 %74, %83
br i1 %84, label %85, label %1637
85: ; preds = %53
%86 = or i64 %72, 1
%87 = tail call i8* @malloc(i64 %86)
%88 = bitcast i8* %87 to double*
%89 = or i64 %70, 1
%90 = tail call i8* @malloc(i64 %89)
%91 = bitcast i8* %90 to i32*
%92 = or i64 %68, 1
%93 = tail call i8* @malloc(i64 %92)
%94 = bitcast i8* %93 to double*
%95 = and i1 %37, %54
br i1 %95, label %96, label %565
96: ; preds = %85
store i32 %18, i32* %91
%97 = load double, double* %2
%98 = getelementptr inbounds double, double* %2, i64 3
%99 = load double, double* %98
%100 = fdiv double %97, %99
store double %100, double* %13
%101 = getelementptr inbounds double, double* %2, i64 1
%102 = load double, double* %101
%103 = load double, double* %98
%104 = fdiv double %102, %103
%105 = getelementptr inbounds double, double* %13, i64 1
store double %104, double* %105
%106 = getelementptr inbounds double, double* %2, i64 2
%107 = load double, double* %106
%108 = load double, double* %98
%109 = fdiv double %107, %108
%110 = getelementptr inbounds double, double* %13, i64 2
store double %109, double* %110
%111 = icmp sgt i32 %9, 2
br i1 %111, label %112, label %194
112: ; preds = %96
%113 = icmp sgt i32 %0, 0
%114 = zext i32 %15 to i64
%115 = zext i32 %0 to i64
br label %116
116: ; preds = %112, %179
%117 = phi i32 [ %18, %112 ], [ %130, %179 ]
%118 = phi i64 [ 1, %112 ], [ %192, %179 ]
%119 = phi double [ %7, %112 ], [ %123, %179 ]
%120 = phi i32 [ 0, %112 ], [ %131, %179 ]
%121 = mul nuw nsw i64 %118, 3
%122 = mul nsw i64 %118, %80
%123 = fadd double %119, %8
%124 = add nsw i64 %118, -1
%125 = getelementptr inbounds i32, i32* %91, i64 %124
%126 = tail call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %3, double %123, double* %5, i32 %117)
%127 = getelementptr inbounds i32, i32* %91, i64 %118
store i32 %126, i32* %127
%128 = getelementptr inbounds double, double* %94, i64 %122
%129 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %126, double %123, i32 %18, double* %5, double* %128, double* %61, double* %63)
store i32 %120, i32* %125
%130 = load i32, i32* %127
%131 = sub nsw i32 %130, %18
%132 = and i64 %121, 4294967295
br i1 %113, label %138, label %133
133: ; preds = %116
%134 = add nuw nsw i64 %121, 1
%135 = and i64 %134, 4294967295
%136 = add nuw nsw i64 %121, 2
%137 = and i64 %136, 4294967295
br label %179
138: ; preds = %116
%139 = getelementptr inbounds double, double* %13, i64 %132
%140 = add nuw nsw i64 %121, 1
%141 = and i64 %140, 4294967295
%142 = getelementptr inbounds double, double* %13, i64 %141
%143 = add nuw nsw i64 %121, 2
%144 = and i64 %143, 4294967295
%145 = getelementptr inbounds double, double* %13, i64 %144
br label %146
146: ; preds = %138, %146
%147 = phi i64 [ 0, %138 ], [ %177, %146 ]
%148 = phi double [ 0.000000e+00, %138 ], [ %176, %146 ]
%149 = trunc i64 %147 to i32
%150 = add nsw i32 %131, %149
%151 = shl nsw i32 %150, 2
%152 = add nsw i64 %147, %122
%153 = getelementptr inbounds double, double* %94, i64 %152
%154 = load double, double* %153
%155 = sext i32 %151 to i64
%156 = getelementptr inbounds double, double* %2, i64 %155
%157 = load double, double* %156
%158 = load double, double* %139
%159 = tail call double @llvm.fmuladd.f64(double %154, double %157, double %158)
store double %159, double* %139
%160 = or i32 %151, 1
%161 = sext i32 %160 to i64
%162 = getelementptr inbounds double, double* %2, i64 %161
%163 = load double, double* %162
%164 = load double, double* %142
%165 = tail call double @llvm.fmuladd.f64(double %154, double %163, double %164)
store double %165, double* %142
%166 = or i32 %151, 2
%167 = sext i32 %166 to i64
%168 = getelementptr inbounds double, double* %2, i64 %167
%169 = load double, double* %168
%170 = load double, double* %145
%171 = tail call double @llvm.fmuladd.f64(double %154, double %169, double %170)
store double %171, double* %145
%172 = or i32 %151, 3
%173 = sext i32 %172 to i64
%174 = getelementptr inbounds double, double* %2, i64 %173
%175 = load double, double* %174
%176 = tail call double @llvm.fmuladd.f64(double %154, double %175, double %148)
%177 = add nuw nsw i64 %147, 1
%178 = icmp eq i64 %177, %115
br i1 %178, label %179, label %146
179: ; preds = %146, %133
%180 = phi i64 [ %137, %133 ], [ %144, %146 ]
%181 = phi i64 [ %135, %133 ], [ %141, %146 ]
%182 = phi double [ 0.000000e+00, %133 ], [ %176, %146 ]
%183 = getelementptr inbounds double, double* %13, i64 %132
%184 = load double, double* %183
%185 = fdiv double %184, %182
store double %185, double* %183
%186 = getelementptr inbounds double, double* %13, i64 %181
%187 = load double, double* %186
%188 = fdiv double %187, %182
store double %188, double* %186
%189 = getelementptr inbounds double, double* %13, i64 %180
%190 = load double, double* %189
%191 = fdiv double %190, %182
store double %191, double* %189
%192 = add nuw nsw i64 %118, 1
%193 = icmp eq i64 %192, %114
br i1 %193, label %194, label %116
194: ; preds = %179, %96
%195 = phi i32 [ 0, %96 ], [ %131, %179 ]
%196 = add nsw i32 %9, -2
%197 = sext i32 %196 to i64
%198 = getelementptr inbounds i32, i32* %91, i64 %197
store i32 %195, i32* %198
%199 = mul nsw i32 %15, 3
%200 = add nsw i32 %64, -1
%201 = sext i32 %65 to i64
%202 = getelementptr inbounds double, double* %2, i64 %201
%203 = load double, double* %202
%204 = sext i32 %200 to i64
%205 = getelementptr inbounds double, double* %2, i64 %204
%206 = load double, double* %205
%207 = fdiv double %203, %206
%208 = sext i32 %199 to i64
%209 = getelementptr inbounds double, double* %13, i64 %208
store double %207, double* %209
%210 = add nsw i32 %64, -3
%211 = sext i32 %210 to i64
%212 = getelementptr inbounds double, double* %2, i64 %211
%213 = load double, double* %212
%214 = load double, double* %205
%215 = fdiv double %213, %214
%216 = add nsw i32 %199, 1
%217 = sext i32 %216 to i64
%218 = getelementptr inbounds double, double* %13, i64 %217
store double %215, double* %218
%219 = add nsw i32 %64, -2
%220 = sext i32 %219 to i64
%221 = getelementptr inbounds double, double* %2, i64 %220
%222 = load double, double* %221
%223 = load double, double* %205
%224 = fdiv double %222, %223
%225 = add nsw i32 %199, 2
%226 = sext i32 %225 to i64
%227 = getelementptr inbounds double, double* %13, i64 %226
store double %224, double* %227
%228 = icmp sgt i32 %12, 2
br i1 %228, label %229, label %453
229: ; preds = %194
%230 = icmp sgt i32 %1, 0
%231 = icmp sgt i32 %0, 0
%232 = sext i32 %15 to i64
%233 = zext i32 %16 to i64
%234 = zext i32 %1 to i64
%235 = zext i32 %15 to i64
%236 = zext i32 %0 to i64
br label %237
237: ; preds = %229, %439
%238 = phi i64 [ 1, %229 ], [ %451, %439 ]
%239 = phi double [ %10, %229 ], [ %241, %439 ]
%240 = phi i32 [ %20, %229 ], [ %242, %439 ]
%241 = fadd double %239, %11
%242 = tail call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %4, double %241, double* %6, i32 %240)
%243 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %242, double %241, i32 %20, double* %6, double* %88, double* %61, double* %63)
%244 = sub nsw i32 %242, %20
%245 = mul nsw i64 %238, %69
%246 = mul nsw i64 %245, 3
%247 = getelementptr inbounds double, double* %13, i64 %246
br i1 %230, label %254, label %248
248: ; preds = %237
%249 = load double, double* %247
%250 = add nsw i64 %246, 1
%251 = getelementptr inbounds double, double* %13, i64 %250
%252 = load double, double* %251
%253 = add nsw i64 %246, 2
br label %294
254: ; preds = %237
%255 = add nsw i64 %246, 1
%256 = getelementptr inbounds double, double* %13, i64 %255
%257 = add nsw i64 %246, 2
%258 = getelementptr inbounds double, double* %13, i64 %257
%259 = load double, double* %247
%260 = load double, double* %256
%261 = load double, double* %258
br label %262
262: ; preds = %254, %262
%263 = phi double [ %261, %254 ], [ %286, %262 ]
%264 = phi double [ %260, %254 ], [ %281, %262 ]
%265 = phi double [ %259, %254 ], [ %276, %262 ]
%266 = phi i64 [ 0, %254 ], [ %292, %262 ]
%267 = phi double [ 0.000000e+00, %254 ], [ %291, %262 ]
%268 = trunc i64 %266 to i32
%269 = add nsw i32 %244, %268
%270 = mul nsw i32 %269, %64
%271 = getelementptr inbounds double, double* %88, i64 %266
%272 = load double, double* %271
%273 = sext i32 %270 to i64
%274 = getelementptr inbounds double, double* %2, i64 %273
%275 = load double, double* %274
%276 = tail call double @llvm.fmuladd.f64(double %272, double %275, double %265)
store double %276, double* %247
%277 = or i32 %270, 1
%278 = sext i32 %277 to i64
%279 = getelementptr inbounds double, double* %2, i64 %278
%280 = load double, double* %279
%281 = tail call double @llvm.fmuladd.f64(double %272, double %280, double %264)
store double %281, double* %256
%282 = or i32 %270, 2
%283 = sext i32 %282 to i64
%284 = getelementptr inbounds double, double* %2, i64 %283
%285 = load double, double* %284
%286 = tail call double @llvm.fmuladd.f64(double %272, double %285, double %263)
store double %286, double* %258
%287 = or i32 %270, 3
%288 = sext i32 %287 to i64
%289 = getelementptr inbounds double, double* %2, i64 %288
%290 = load double, double* %289
%291 = tail call double @llvm.fmuladd.f64(double %272, double %290, double %267)
%292 = add nuw nsw i64 %266, 1
%293 = icmp eq i64 %292, %234
br i1 %293, label %294, label %262
294: ; preds = %262, %248
%295 = phi i64 [ %253, %248 ], [ %257, %262 ]
%296 = phi double [ %252, %248 ], [ %281, %262 ]
%297 = phi i64 [ %250, %248 ], [ %255, %262 ]
%298 = phi double [ %249, %248 ], [ %276, %262 ]
%299 = phi double [ 0.000000e+00, %248 ], [ %291, %262 ]
%300 = fdiv double %298, %299
store double %300, double* %247
%301 = getelementptr inbounds double, double* %13, i64 %297
%302 = fdiv double %296, %299
store double %302, double* %301
%303 = getelementptr inbounds double, double* %13, i64 %295
%304 = load double, double* %303
%305 = fdiv double %304, %299
store double %305, double* %303
br i1 %111, label %306, label %388
306: ; preds = %294, %373
%307 = phi i64 [ %386, %373 ], [ 1, %294 ]
%308 = add nsw i64 %307, %245
%309 = mul nsw i64 %308, 3
%310 = mul nsw i64 %307, %80
%311 = getelementptr inbounds i32, i32* %91, i64 %307
%312 = load i32, i32* %311
br i1 %230, label %316, label %313
313: ; preds = %306
%314 = add nsw i64 %309, 1
%315 = add nsw i64 %309, 2
br label %373
316: ; preds = %306
%317 = getelementptr inbounds double, double* %13, i64 %309
%318 = add nsw i64 %309, 1
%319 = getelementptr inbounds double, double* %13, i64 %318
%320 = add nsw i64 %309, 2
%321 = getelementptr inbounds double, double* %13, i64 %320
br label %322
322: ; preds = %316, %369
%323 = phi i64 [ 0, %316 ], [ %371, %369 ]
%324 = phi double [ 0.000000e+00, %316 ], [ %370, %369 ]
br i1 %231, label %325, label %369
325: ; preds = %322
%326 = trunc i64 %323 to i32
%327 = add i32 %244, %326
%328 = mul i32 %327, %3
%329 = getelementptr inbounds double, double* %88, i64 %323
%330 = load double, double* %329
%331 = load double, double* %317
%332 = load double, double* %319
%333 = load double, double* %321
%334 = add i32 %328, %312
br label %335
335: ; preds = %325, %335
%336 = phi double [ %333, %325 ], [ %361, %335 ]
%337 = phi double [ %332, %325 ], [ %356, %335 ]
%338 = phi double [ %331, %325 ], [ %351, %335 ]
%339 = phi i64 [ 0, %325 ], [ %367, %335 ]
%340 = phi double [ %324, %325 ], [ %366, %335 ]
%341 = trunc i64 %339 to i32
%342 = add i32 %334, %341
%343 = shl nsw i32 %342, 2
%344 = add nsw i64 %339, %310
%345 = getelementptr inbounds double, double* %94, i64 %344
%346 = load double, double* %345
%347 = fmul double %330, %346
%348 = sext i32 %343 to i64
%349 = getelementptr inbounds double, double* %2, i64 %348
%350 = load double, double* %349
%351 = tail call double @llvm.fmuladd.f64(double %347, double %350, double %338)
store double %351, double* %317
%352 = or i32 %343, 1
%353 = sext i32 %352 to i64
%354 = getelementptr inbounds double, double* %2, i64 %353
%355 = load double, double* %354
%356 = tail call double @llvm.fmuladd.f64(double %347, double %355, double %337)
store double %356, double* %319
%357 = or i32 %343, 2
%358 = sext i32 %357 to i64
%359 = getelementptr inbounds double, double* %2, i64 %358
%360 = load double, double* %359
%361 = tail call double @llvm.fmuladd.f64(double %347, double %360, double %336)
store double %361, double* %321
%362 = or i32 %343, 3
%363 = sext i32 %362 to i64
%364 = getelementptr inbounds double, double* %2, i64 %363
%365 = load double, double* %364
%366 = tail call double @llvm.fmuladd.f64(double %347, double %365, double %340)
%367 = add nuw nsw i64 %339, 1
%368 = icmp eq i64 %367, %236
br i1 %368, label %369, label %335
369: ; preds = %335, %322
%370 = phi double [ %324, %322 ], [ %366, %335 ]
%371 = add nuw nsw i64 %323, 1
%372 = icmp eq i64 %371, %234
br i1 %372, label %373, label %322
373: ; preds = %369, %313
%374 = phi i64 [ %315, %313 ], [ %320, %369 ]
%375 = phi i64 [ %314, %313 ], [ %318, %369 ]
%376 = phi double [ 0.000000e+00, %313 ], [ %370, %369 ]
%377 = getelementptr inbounds double, double* %13, i64 %309
%378 = load double, double* %377
%379 = fdiv double %378, %376
store double %379, double* %377
%380 = getelementptr inbounds double, double* %13, i64 %375
%381 = load double, double* %380
%382 = fdiv double %381, %376
store double %382, double* %380
%383 = getelementptr inbounds double, double* %13, i64 %374
%384 = load double, double* %383
%385 = fdiv double %384, %376
store double %385, double* %383
%386 = add nuw nsw i64 %307, 1
%387 = icmp eq i64 %386, %235
br i1 %387, label %388, label %306
388: ; preds = %373, %294
%389 = add nsw i64 %245, %232
%390 = mul nsw i64 %389, 3
%391 = getelementptr inbounds double, double* %13, i64 %390
br i1 %230, label %398, label %392
392: ; preds = %388
%393 = load double, double* %391
%394 = add nsw i64 %390, 1
%395 = getelementptr inbounds double, double* %13, i64 %394
%396 = load double, double* %395
%397 = add nsw i64 %390, 2
br label %439
398: ; preds = %388
%399 = add nsw i64 %390, 1
%400 = getelementptr inbounds double, double* %13, i64 %399
%401 = add nsw i64 %390, 2
%402 = getelementptr inbounds double, double* %13, i64 %401
%403 = load double, double* %391
%404 = load double, double* %400
%405 = load double, double* %402
br label %406
406: ; preds = %398, %406
%407 = phi double [ %405, %398 ], [ %431, %406 ]
%408 = phi double [ %404, %398 ], [ %426, %406 ]
%409 = phi double [ %403, %398 ], [ %421, %406 ]
%410 = phi i64 [ 0, %398 ], [ %437, %406 ]
%411 = phi double [ 0.000000e+00, %398 ], [ %436, %406 ]
%412 = trunc i64 %410 to i32
%413 = add i32 %244, %412
%414 = mul i32 %413, %64
%415 = add i32 %414, %65
%416 = getelementptr inbounds double, double* %88, i64 %410
%417 = load double, double* %416
%418 = sext i32 %415 to i64
%419 = getelementptr inbounds double, double* %2, i64 %418
%420 = load double, double* %419
%421 = tail call double @llvm.fmuladd.f64(double %417, double %420, double %409)
store double %421, double* %391
%422 = or i32 %415, 1
%423 = sext i32 %422 to i64
%424 = getelementptr inbounds double, double* %2, i64 %423
%425 = load double, double* %424
%426 = tail call double @llvm.fmuladd.f64(double %417, double %425, double %408)
store double %426, double* %400
%427 = or i32 %415, 2
%428 = sext i32 %427 to i64
%429 = getelementptr inbounds double, double* %2, i64 %428
%430 = load double, double* %429
%431 = tail call double @llvm.fmuladd.f64(double %417, double %430, double %407)
store double %431, double* %402
%432 = or i32 %415, 3
%433 = sext i32 %432 to i64
%434 = getelementptr inbounds double, double* %2, i64 %433
%435 = load double, double* %434
%436 = tail call double @llvm.fmuladd.f64(double %417, double %435, double %411)
%437 = add nuw nsw i64 %410, 1
%438 = icmp eq i64 %437, %234
br i1 %438, label %439, label %406
439: ; preds = %406, %392
%440 = phi i64 [ %397, %392 ], [ %401, %406 ]
%441 = phi double [ %396, %392 ], [ %426, %406 ]
%442 = phi i64 [ %394, %392 ], [ %399, %406 ]
%443 = phi double [ %393, %392 ], [ %421, %406 ]
%444 = phi double [ 0.000000e+00, %392 ], [ %436, %406 ]
%445 = fdiv double %443, %444
store double %445, double* %391
%446 = getelementptr inbounds double, double* %13, i64 %442
%447 = fdiv double %441, %444
store double %447, double* %446
%448 = getelementptr inbounds double, double* %13, i64 %440
%449 = load double, double* %448
%450 = fdiv double %449, %444
store double %450, double* %448
%451 = add nuw nsw i64 %238, 1
%452 = icmp eq i64 %451, %233
br i1 %452, label %453, label %237
453: ; preds = %439, %194
%454 = mul nsw i32 %16, %9
%455 = mul nsw i32 %454, 3
%456 = mul nsw i32 %17, %64
%457 = or i32 %456, 3
%458 = sext i32 %456 to i64
%459 = getelementptr inbounds double, double* %2, i64 %458
%460 = load double, double* %459
%461 = sext i32 %457 to i64
%462 = getelementptr inbounds double, double* %2, i64 %461
%463 = load double, double* %462
%464 = fdiv double %460, %463
%465 = sext i32 %455 to i64
%466 = getelementptr inbounds double, double* %13, i64 %465
store double %464, double* %466
%467 = or i32 %456, 1
%468 = sext i32 %467 to i64
%469 = getelementptr inbounds double, double* %2, i64 %468
%470 = load double, double* %469
%471 = load double, double* %462
%472 = fdiv double %470, %471
%473 = add nsw i32 %455, 1
%474 = sext i32 %473 to i64
%475 = getelementptr inbounds double, double* %13, i64 %474
store double %472, double* %475
%476 = or i32 %456, 2
%477 = sext i32 %476 to i64
%478 = getelementptr inbounds double, double* %2, i64 %477
%479 = load double, double* %478
%480 = load double, double* %462
%481 = fdiv double %479, %480
%482 = add nsw i32 %455, 2
%483 = sext i32 %482 to i64
%484 = getelementptr inbounds double, double* %13, i64 %483
store double %481, double* %484
%485 = mul nsw i32 %17, %3
br i1 %111, label %486, label %563
486: ; preds = %453
%487 = icmp sgt i32 %0, 0
%488 = sext i32 %454 to i64
%489 = zext i32 %15 to i64
%490 = zext i32 %0 to i64
br label %491
491: ; preds = %486, %548
%492 = phi i64 [ 1, %486 ], [ %561, %548 ]
%493 = add nsw i64 %492, %488
%494 = mul nsw i64 %493, 3
%495 = mul nsw i64 %492, %80
br i1 %487, label %503, label %496
496: ; preds = %491
%497 = getelementptr inbounds double, double* %13, i64 %494
%498 = load double, double* %497
%499 = add nsw i64 %494, 1
%500 = getelementptr inbounds double, double* %13, i64 %499
%501 = load double, double* %500
%502 = add nsw i64 %494, 2
br label %548
503: ; preds = %491
%504 = getelementptr inbounds i32, i32* %91, i64 %492
%505 = load i32, i32* %504
%506 = add nsw i32 %505, %485
%507 = getelementptr inbounds double, double* %13, i64 %494
%508 = add nsw i64 %494, 1
%509 = getelementptr inbounds double, double* %13, i64 %508
%510 = add nsw i64 %494, 2
%511 = getelementptr inbounds double, double* %13, i64 %510
%512 = load double, double* %507
%513 = load double, double* %509
%514 = load double, double* %511
br label %515
515: ; preds = %503, %515
%516 = phi double [ %514, %503 ], [ %540, %515 ]
%517 = phi double [ %513, %503 ], [ %535, %515 ]
%518 = phi double [ %512, %503 ], [ %530, %515 ]
%519 = phi i64 [ 0, %503 ], [ %546, %515 ]
%520 = phi double [ 0.000000e+00, %503 ], [ %545, %515 ]
%521 = trunc i64 %519 to i32
%522 = add i32 %506, %521
%523 = shl nsw i32 %522, 2
%524 = add nsw i64 %519, %495
%525 = getelementptr inbounds double, double* %94, i64 %524
%526 = load double, double* %525
%527 = sext i32 %523 to i64
%528 = getelementptr inbounds double, double* %2, i64 %527
%529 = load double, double* %528
%530 = tail call double @llvm.fmuladd.f64(double %526, double %529, double %518)
store double %530, double* %507
%531 = or i32 %523, 1
%532 = sext i32 %531 to i64
%533 = getelementptr inbounds double, double* %2, i64 %532
%534 = load double, double* %533
%535 = tail call double @llvm.fmuladd.f64(double %526, double %534, double %517)
store double %535, double* %509
%536 = or i32 %523, 2
%537 = sext i32 %536 to i64
%538 = getelementptr inbounds double, double* %2, i64 %537
%539 = load double, double* %538
%540 = tail call double @llvm.fmuladd.f64(double %526, double %539, double %516)
store double %540, double* %511
%541 = or i32 %523, 3
%542 = sext i32 %541 to i64
%543 = getelementptr inbounds double, double* %2, i64 %542
%544 = load double, double* %543
%545 = tail call double @llvm.fmuladd.f64(double %526, double %544, double %520)
%546 = add nuw nsw i64 %519, 1
%547 = icmp eq i64 %546, %490
br i1 %547, label %548, label %515
548: ; preds = %515, %496
%549 = phi i64 [ %502, %496 ], [ %510, %515 ]
%550 = phi double [ %501, %496 ], [ %535, %515 ]
%551 = phi i64 [ %499, %496 ], [ %508, %515 ]
%552 = phi double [ %498, %496 ], [ %530, %515 ]
%553 = phi double [ 0.000000e+00, %496 ], [ %545, %515 ]
%554 = getelementptr inbounds double, double* %13, i64 %494
%555 = fdiv double %552, %553
store double %555, double* %554
%556 = getelementptr inbounds double, double* %13, i64 %551
%557 = fdiv double %550, %553
store double %557, double* %556
%558 = getelementptr inbounds double, double* %13, i64 %549
%559 = load double, double* %558
%560 = fdiv double %559, %553
store double %560, double* %558
%561 = add nuw nsw i64 %492, 1
%562 = icmp eq i64 %561, %489
br i1 %562, label %563, label %491
563: ; preds = %548, %453
%564 = mul i32 %9, 3
br label %3187
565: ; preds = %85
br i1 %55, label %897, label %566
566: ; preds = %565
%567 = tail call i32 (i32, i32, double, double*, ...) bitcast (i32 (...)* @FindSpan to i32 (i32, i32, double, double*, ...)*)(i32 %3, i32 %18, double %7, double* %5)
store i32 %567, i32* %91
%568 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %567, double %7, i32 %18, double* %5, double* %94, double* %61, double* %63)
%569 = load i32, i32* %91
%570 = sub nsw i32 %569, %18
%571 = icmp sgt i32 %0, 0
br i1 %571, label %577, label %572
572: ; preds = %566
%573 = bitcast double* %13 to <2 x double>*
%574 = load <2 x double>, <2 x double>* %573
%575 = getelementptr inbounds double, double* %13, i64 2
%576 = load double, double* %575
br label %619
577: ; preds = %566
%578 = getelementptr inbounds double, double* %13, i64 1
%579 = getelementptr inbounds double, double* %13, i64 2
%580 = zext i32 %0 to i64
%581 = load double, double* %13
%582 = load double, double* %578
%583 = load double, double* %579
br label %584
584: ; preds = %577, %584
%585 = phi double [ %583, %577 ], [ %608, %584 ]
%586 = phi double [ %582, %577 ], [ %603, %584 ]
%587 = phi double [ %581, %577 ], [ %598, %584 ]
%588 = phi i64 [ 0, %577 ], [ %614, %584 ]
%589 = phi double [ 0.000000e+00, %577 ], [ %613, %584 ]
%590 = trunc i64 %588 to i32
%591 = add nsw i32 %570, %590
%592 = shl nsw i32 %591, 2
%593 = getelementptr inbounds double, double* %94, i64 %588
%594 = load double, double* %593
%595 = sext i32 %592 to i64
%596 = getelementptr inbounds double, double* %2, i64 %595
%597 = load double, double* %596
%598 = tail call double @llvm.fmuladd.f64(double %594, double %597, double %587)
store double %598, double* %13
%599 = or i32 %592, 1
%600 = sext i32 %599 to i64
%601 = getelementptr inbounds double, double* %2, i64 %600
%602 = load double, double* %601
%603 = tail call double @llvm.fmuladd.f64(double %594, double %602, double %586)
store double %603, double* %578
%604 = or i32 %592, 2
%605 = sext i32 %604 to i64
%606 = getelementptr inbounds double, double* %2, i64 %605
%607 = load double, double* %606
%608 = tail call double @llvm.fmuladd.f64(double %594, double %607, double %585)
store double %608, double* %579
%609 = or i32 %592, 3
%610 = sext i32 %609 to i64
%611 = getelementptr inbounds double, double* %2, i64 %610
%612 = load double, double* %611
%613 = tail call double @llvm.fmuladd.f64(double %594, double %612, double %589)
%614 = add nuw nsw i64 %588, 1
%615 = icmp eq i64 %614, %580
br i1 %615, label %616, label %584
616: ; preds = %584
%617 = insertelement <2 x double> poison, double %598, i64 0
%618 = insertelement <2 x double> %617, double %603, i64 1
br label %619
619: ; preds = %616, %572
%620 = phi double [ %576, %572 ], [ %608, %616 ]
%621 = phi double [ 0.000000e+00, %572 ], [ %613, %616 ]
%622 = phi <2 x double> [ %574, %572 ], [ %618, %616 ]
%623 = insertelement <2 x double> poison, double %621, i64 0
%624 = shufflevector <2 x double> %623, <2 x double> poison, <2 x i32> zeroinitializer
%625 = fdiv <2 x double> %622, %624
%626 = bitcast double* %13 to <2 x double>*
store <2 x double> %625, <2 x double>* %626
%627 = getelementptr inbounds double, double* %13, i64 2
%628 = fdiv double %620, %621
store double %628, double* %627
%629 = icmp sgt i32 %9, 1
br i1 %629, label %630, label %711
630: ; preds = %619
%631 = zext i32 %9 to i64
%632 = zext i32 %0 to i64
br label %633
633: ; preds = %630, %696
%634 = phi i32 [ %569, %630 ], [ %647, %696 ]
%635 = phi i64 [ 1, %630 ], [ %709, %696 ]
%636 = phi double [ %7, %630 ], [ %640, %696 ]
%637 = phi i32 [ %570, %630 ], [ %648, %696 ]
%638 = mul nuw nsw i64 %635, 3
%639 = mul nsw i64 %635, %80
%640 = fadd double %636, %8
%641 = add nsw i64 %635, -1
%642 = getelementptr inbounds i32, i32* %91, i64 %641
%643 = tail call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %3, double %640, double* %5, i32 %634)
%644 = getelementptr inbounds i32, i32* %91, i64 %635
store i32 %643, i32* %644
%645 = getelementptr inbounds double, double* %94, i64 %639
%646 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %643, double %640, i32 %18, double* %5, double* %645, double* %61, double* %63)
store i32 %637, i32* %642
%647 = load i32, i32* %644
%648 = sub nsw i32 %647, %18
%649 = and i64 %638, 4294967295
br i1 %571, label %655, label %650
650: ; preds = %633
%651 = add nuw nsw i64 %638, 1
%652 = and i64 %651, 4294967295
%653 = add nuw nsw i64 %638, 2
%654 = and i64 %653, 4294967295
br label %696
655: ; preds = %633
%656 = getelementptr inbounds double, double* %13, i64 %649
%657 = add nuw nsw i64 %638, 1
%658 = and i64 %657, 4294967295
%659 = getelementptr inbounds double, double* %13, i64 %658
%660 = add nuw nsw i64 %638, 2
%661 = and i64 %660, 4294967295
%662 = getelementptr inbounds double, double* %13, i64 %661
br label %663
663: ; preds = %655, %663
%664 = phi i64 [ 0, %655 ], [ %694, %663 ]
%665 = phi double [ 0.000000e+00, %655 ], [ %693, %663 ]
%666 = trunc i64 %664 to i32
%667 = add nsw i32 %648, %666
%668 = shl nsw i32 %667, 2
%669 = add nsw i64 %664, %639
%670 = getelementptr inbounds double, double* %94, i64 %669
%671 = load double, double* %670
%672 = sext i32 %668 to i64
%673 = getelementptr inbounds double, double* %2, i64 %672
%674 = load double, double* %673
%675 = load double, double* %656
%676 = tail call double @llvm.fmuladd.f64(double %671, double %674, double %675)
store double %676, double* %656
%677 = or i32 %668, 1
%678 = sext i32 %677 to i64
%679 = getelementptr inbounds double, double* %2, i64 %678
%680 = load double, double* %679
%681 = load double, double* %659
%682 = tail call double @llvm.fmuladd.f64(double %671, double %680, double %681)
store double %682, double* %659
%683 = or i32 %668, 2
%684 = sext i32 %683 to i64
%685 = getelementptr inbounds double, double* %2, i64 %684
%686 = load double, double* %685
%687 = load double, double* %662
%688 = tail call double @llvm.fmuladd.f64(double %671, double %686, double %687)
store double %688, double* %662
%689 = or i32 %668, 3
%690 = sext i32 %689 to i64
%691 = getelementptr inbounds double, double* %2, i64 %690
%692 = load double, double* %691
%693 = tail call double @llvm.fmuladd.f64(double %671, double %692, double %665)
%694 = add nuw nsw i64 %664, 1
%695 = icmp eq i64 %694, %632
br i1 %695, label %696, label %663
696: ; preds = %663, %650
%697 = phi i64 [ %654, %650 ], [ %661, %663 ]
%698 = phi i64 [ %652, %650 ], [ %658, %663 ]
%699 = phi double [ 0.000000e+00, %650 ], [ %693, %663 ]
%700 = getelementptr inbounds double, double* %13, i64 %649
%701 = load double, double* %700
%702 = fdiv double %701, %699
store double %702, double* %700
%703 = getelementptr inbounds double, double* %13, i64 %698
%704 = load double, double* %703
%705 = fdiv double %704, %699
store double %705, double* %703
%706 = getelementptr inbounds double, double* %13, i64 %697
%707 = load double, double* %706
%708 = fdiv double %707, %699
store double %708, double* %706
%709 = add nuw nsw i64 %635, 1
%710 = icmp eq i64 %709, %631
br i1 %710, label %711, label %633
711: ; preds = %696, %619
%712 = phi i32 [ %570, %619 ], [ %648, %696 ]
%713 = sext i32 %15 to i64
%714 = getelementptr inbounds i32, i32* %91, i64 %713
store i32 %712, i32* %714
%715 = icmp sgt i32 %12, 2
br i1 %715, label %716, label %817
716: ; preds = %711
%717 = icmp sgt i32 %9, 0
%718 = icmp sgt i32 %1, 0
%719 = zext i32 %16 to i64
%720 = zext i32 %9 to i64
%721 = zext i32 %1 to i64
%722 = zext i32 %0 to i64
br label %723
723: ; preds = %716, %814
%724 = phi i64 [ 1, %716 ], [ %815, %814 ]
%725 = phi double [ %10, %716 ], [ %727, %814 ]
%726 = phi i32 [ %20, %716 ], [ %728, %814 ]
%727 = fadd double %725, %11
%728 = tail call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %4, double %727, double* %6, i32 %726)
%729 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %728, double %727, i32 %20, double* %6, double* %88, double* %61, double* %63)
%730 = add i32 %728, %21
%731 = mul nsw i64 %724, %69
br i1 %717, label %732, label %814
732: ; preds = %723, %799
%733 = phi i64 [ %812, %799 ], [ 0, %723 ]
%734 = add nsw i64 %733, %731
%735 = mul nsw i64 %734, 3
%736 = mul nsw i64 %733, %80
%737 = getelementptr inbounds i32, i32* %91, i64 %733
%738 = load i32, i32* %737
br i1 %718, label %742, label %739
739: ; preds = %732
%740 = add nsw i64 %735, 1
%741 = add nsw i64 %735, 2
br label %799
742: ; preds = %732
%743 = getelementptr inbounds double, double* %13, i64 %735
%744 = add nsw i64 %735, 1
%745 = getelementptr inbounds double, double* %13, i64 %744
%746 = add nsw i64 %735, 2
%747 = getelementptr inbounds double, double* %13, i64 %746
br label %748
748: ; preds = %742, %795
%749 = phi i64 [ 0, %742 ], [ %797, %795 ]
%750 = phi double [ 0.000000e+00, %742 ], [ %796, %795 ]
br i1 %571, label %751, label %795
751: ; preds = %748
%752 = trunc i64 %749 to i32
%753 = add i32 %730, %752
%754 = mul i32 %753, %3
%755 = getelementptr inbounds double, double* %88, i64 %749
%756 = load double, double* %755
%757 = load double, double* %743
%758 = load double, double* %745
%759 = load double, double* %747
%760 = add i32 %754, %738
br label %761
761: ; preds = %751, %761
%762 = phi double [ %759, %751 ], [ %787, %761 ]
%763 = phi double [ %758, %751 ], [ %782, %761 ]
%764 = phi double [ %757, %751 ], [ %777, %761 ]
%765 = phi i64 [ 0, %751 ], [ %793, %761 ]
%766 = phi double [ %750, %751 ], [ %792, %761 ]
%767 = trunc i64 %765 to i32
%768 = add i32 %760, %767
%769 = shl nsw i32 %768, 2
%770 = add nsw i64 %765, %736
%771 = getelementptr inbounds double, double* %94, i64 %770
%772 = load double, double* %771
%773 = fmul double %756, %772
%774 = sext i32 %769 to i64
%775 = getelementptr inbounds double, double* %2, i64 %774
%776 = load double, double* %775
%777 = tail call double @llvm.fmuladd.f64(double %773, double %776, double %764)
store double %777, double* %743
%778 = or i32 %769, 1
%779 = sext i32 %778 to i64
%780 = getelementptr inbounds double, double* %2, i64 %779
%781 = load double, double* %780
%782 = tail call double @llvm.fmuladd.f64(double %773, double %781, double %763)
store double %782, double* %745
%783 = or i32 %769, 2
%784 = sext i32 %783 to i64
%785 = getelementptr inbounds double, double* %2, i64 %784
%786 = load double, double* %785
%787 = tail call double @llvm.fmuladd.f64(double %773, double %786, double %762)
store double %787, double* %747
%788 = or i32 %769, 3
%789 = sext i32 %788 to i64
%790 = getelementptr inbounds double, double* %2, i64 %789
%791 = load double, double* %790
%792 = tail call double @llvm.fmuladd.f64(double %773, double %791, double %766)
%793 = add nuw nsw i64 %765, 1
%794 = icmp eq i64 %793, %722
br i1 %794, label %795, label %761
795: ; preds = %761, %748
%796 = phi double [ %750, %748 ], [ %792, %761 ]
%797 = add nuw nsw i64 %749, 1
%798 = icmp eq i64 %797, %721
br i1 %798, label %799, label %748
799: ; preds = %795, %739
%800 = phi i64 [ %741, %739 ], [ %746, %795 ]
%801 = phi i64 [ %740, %739 ], [ %744, %795 ]
%802 = phi double [ 0.000000e+00, %739 ], [ %796, %795 ]
%803 = getelementptr inbounds double, double* %13, i64 %735
%804 = load double, double* %803
%805 = fdiv double %804, %802
store double %805, double* %803
%806 = getelementptr inbounds double, double* %13, i64 %801
%807 = load double, double* %806
%808 = fdiv double %807, %802
store double %808, double* %806
%809 = getelementptr inbounds double, double* %13, i64 %800
%810 = load double, double* %809
%811 = fdiv double %810, %802
store double %811, double* %809
%812 = add nuw nsw i64 %733, 1
%813 = icmp eq i64 %812, %720
br i1 %813, label %814, label %732
814: ; preds = %799, %723
%815 = add nuw nsw i64 %724, 1
%816 = icmp eq i64 %815, %719
br i1 %816, label %817, label %723
817: ; preds = %814, %711
%818 = mul nsw i32 %17, %3
%819 = icmp sgt i32 %9, 0
br i1 %819, label %820, label %3224
820: ; preds = %817
%821 = mul nsw i32 %16, %9
%822 = sext i32 %821 to i64
%823 = zext i32 %9 to i64
%824 = zext i32 %0 to i64
br label %825
825: ; preds = %820, %882
%826 = phi i64 [ 0, %820 ], [ %895, %882 ]
%827 = add nsw i64 %826, %822
%828 = mul nsw i64 %827, 3
%829 = mul nsw i64 %826, %80
br i1 %571, label %837, label %830
830: ; preds = %825
%831 = getelementptr inbounds double, double* %13, i64 %828
%832 = load double, double* %831
%833 = add nsw i64 %828, 1
%834 = getelementptr inbounds double, double* %13, i64 %833
%835 = load double, double* %834
%836 = add nsw i64 %828, 2
br label %882
837: ; preds = %825
%838 = getelementptr inbounds i32, i32* %91, i64 %826
%839 = load i32, i32* %838
%840 = add nsw i32 %839, %818
%841 = getelementptr inbounds double, double* %13, i64 %828
%842 = add nsw i64 %828, 1
%843 = getelementptr inbounds double, double* %13, i64 %842
%844 = add nsw i64 %828, 2
%845 = getelementptr inbounds double, double* %13, i64 %844
%846 = load double, double* %841
%847 = load double, double* %843
%848 = load double, double* %845
br label %849
849: ; preds = %837, %849
%850 = phi double [ %848, %837 ], [ %874, %849 ]
%851 = phi double [ %847, %837 ], [ %869, %849 ]
%852 = phi double [ %846, %837 ], [ %864, %849 ]
%853 = phi i64 [ 0, %837 ], [ %880, %849 ]
%854 = phi double [ 0.000000e+00, %837 ], [ %879, %849 ]
%855 = trunc i64 %853 to i32
%856 = add i32 %840, %855
%857 = shl nsw i32 %856, 2
%858 = add nsw i64 %853, %829
%859 = getelementptr inbounds double, double* %94, i64 %858
%860 = load double, double* %859
%861 = sext i32 %857 to i64
%862 = getelementptr inbounds double, double* %2, i64 %861
%863 = load double, double* %862
%864 = tail call double @llvm.fmuladd.f64(double %860, double %863, double %852)
store double %864, double* %841
%865 = or i32 %857, 1
%866 = sext i32 %865 to i64
%867 = getelementptr inbounds double, double* %2, i64 %866
%868 = load double, double* %867
%869 = tail call double @llvm.fmuladd.f64(double %860, double %868, double %851)
store double %869, double* %843
%870 = or i32 %857, 2
%871 = sext i32 %870 to i64
%872 = getelementptr inbounds double, double* %2, i64 %871
%873 = load double, double* %872
%874 = tail call double @llvm.fmuladd.f64(double %860, double %873, double %850)
store double %874, double* %845
%875 = or i32 %857, 3
%876 = sext i32 %875 to i64
%877 = getelementptr inbounds double, double* %2, i64 %876
%878 = load double, double* %877
%879 = tail call double @llvm.fmuladd.f64(double %860, double %878, double %854)
%880 = add nuw nsw i64 %853, 1
%881 = icmp eq i64 %880, %824
br i1 %881, label %882, label %849
882: ; preds = %849, %830
%883 = phi i64 [ %836, %830 ], [ %844, %849 ]
%884 = phi double [ %835, %830 ], [ %869, %849 ]
%885 = phi i64 [ %833, %830 ], [ %842, %849 ]
%886 = phi double [ %832, %830 ], [ %864, %849 ]
%887 = phi double [ 0.000000e+00, %830 ], [ %879, %849 ]
%888 = getelementptr inbounds double, double* %13, i64 %828
%889 = fdiv double %886, %887
store double %889, double* %888
%890 = getelementptr inbounds double, double* %13, i64 %885
%891 = fdiv double %884, %887
store double %891, double* %890
%892 = getelementptr inbounds double, double* %13, i64 %883
%893 = load double, double* %892
%894 = fdiv double %893, %887
store double %894, double* %892
%895 = add nuw nsw i64 %826, 1
%896 = icmp eq i64 %895, %823
br i1 %896, label %3224, label %825
897: ; preds = %565
br i1 %38, label %1354, label %898
898: ; preds = %897
store i32 %18, i32* %91
%899 = tail call i32 (i32, i32, double, double*, ...) bitcast (i32 (...)* @FindSpan to i32 (i32, i32, double, double*, ...)*)(i32 %4, i32 %20, double %10, double* %6)
%900 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %899, double %10, i32 %20, double* %6, double* %88, double* %61, double* %63)
%901 = sub nsw i32 %899, %20
%902 = icmp sgt i32 %1, 0
br i1 %902, label %908, label %903
903: ; preds = %898
%904 = bitcast double* %13 to <2 x double>*
%905 = load <2 x double>, <2 x double>* %904
%906 = getelementptr inbounds double, double* %13, i64 2
%907 = load double, double* %906
br label %950
908: ; preds = %898
%909 = getelementptr inbounds double, double* %13, i64 1
%910 = getelementptr inbounds double, double* %13, i64 2
%911 = zext i32 %1 to i64
%912 = load double, double* %13
%913 = load double, double* %909
%914 = load double, double* %910
br label %915
915: ; preds = %908, %915
%916 = phi double [ %914, %908 ], [ %939, %915 ]
%917 = phi double [ %913, %908 ], [ %934, %915 ]
%918 = phi double [ %912, %908 ], [ %929, %915 ]
%919 = phi i64 [ 0, %908 ], [ %945, %915 ]
%920 = phi double [ 0.000000e+00, %908 ], [ %944, %915 ]
%921 = trunc i64 %919 to i32
%922 = add nsw i32 %901, %921
%923 = mul nsw i32 %922, %64
%924 = getelementptr inbounds double, double* %88, i64 %919
%925 = load double, double* %924
%926 = sext i32 %923 to i64
%927 = getelementptr inbounds double, double* %2, i64 %926
%928 = load double, double* %927
%929 = tail call double @llvm.fmuladd.f64(double %925, double %928, double %918)
store double %929, double* %13
%930 = or i32 %923, 1
%931 = sext i32 %930 to i64
%932 = getelementptr inbounds double, double* %2, i64 %931
%933 = load double, double* %932
%934 = tail call double @llvm.fmuladd.f64(double %925, double %933, double %917)
store double %934, double* %909
%935 = or i32 %923, 2
%936 = sext i32 %935 to i64
%937 = getelementptr inbounds double, double* %2, i64 %936
%938 = load double, double* %937
%939 = tail call double @llvm.fmuladd.f64(double %925, double %938, double %916)
store double %939, double* %910
%940 = or i32 %923, 3
%941 = sext i32 %940 to i64
%942 = getelementptr inbounds double, double* %2, i64 %941
%943 = load double, double* %942
%944 = tail call double @llvm.fmuladd.f64(double %925, double %943, double %920)
%945 = add nuw nsw i64 %919, 1
%946 = icmp eq i64 %945, %911
br i1 %946, label %947, label %915
947: ; preds = %915
%948 = insertelement <2 x double> poison, double %929, i64 0
%949 = insertelement <2 x double> %948, double %934, i64 1
br label %950
950: ; preds = %947, %903
%951 = phi double [ %907, %903 ], [ %939, %947 ]
%952 = phi double [ 0.000000e+00, %903 ], [ %944, %947 ]
%953 = phi <2 x double> [ %905, %903 ], [ %949, %947 ]
%954 = insertelement <2 x double> poison, double %952, i64 0
%955 = shufflevector <2 x double> %954, <2 x double> poison, <2 x i32> zeroinitializer
%956 = fdiv <2 x double> %953, %955
%957 = bitcast double* %13 to <2 x double>*
store <2 x double> %956, <2 x double>* %957
%958 = getelementptr inbounds double, double* %13, i64 2
%959 = fdiv double %951, %952
store double %959, double* %958
%960 = icmp sgt i32 %9, 2
br i1 %960, label %961, label %1060
961: ; preds = %950
%962 = icmp sgt i32 %0, 0
%963 = zext i32 %15 to i64
%964 = load i32, i32* %91
%965 = zext i32 %1 to i64
%966 = zext i32 %0 to i64
br label %967
967: ; preds = %961, %1045
%968 = phi i32 [ %964, %961 ], [ %981, %1045 ]
%969 = phi i64 [ 1, %961 ], [ %1058, %1045 ]
%970 = phi double [ %7, %961 ], [ %974, %1045 ]
%971 = phi i32 [ 0, %961 ], [ %982, %1045 ]
%972 = mul nuw nsw i64 %969, 3
%973 = mul nsw i64 %969, %80
%974 = fadd double %970, %8
%975 = add nsw i64 %969, -1
%976 = getelementptr inbounds i32, i32* %91, i64 %975
%977 = tail call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %3, double %974, double* %5, i32 %968)
%978 = getelementptr inbounds i32, i32* %91, i64 %969
store i32 %977, i32* %978
%979 = getelementptr inbounds double, double* %94, i64 %973
%980 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %977, double %974, i32 %18, double* %5, double* %979, double* %61, double* %63)
store i32 %971, i32* %976
%981 = load i32, i32* %978
%982 = sub nsw i32 %981, %18
%983 = and i64 %972, 4294967295
br i1 %902, label %989, label %984
984: ; preds = %967
%985 = add nuw nsw i64 %972, 1
%986 = and i64 %985, 4294967295
%987 = add nuw nsw i64 %972, 2
%988 = and i64 %987, 4294967295
br label %1045
989: ; preds = %967
%990 = getelementptr inbounds double, double* %13, i64 %983
%991 = add nuw nsw i64 %972, 1
%992 = and i64 %991, 4294967295
%993 = getelementptr inbounds double, double* %13, i64 %992
%994 = add nuw nsw i64 %972, 2
%995 = and i64 %994, 4294967295
%996 = getelementptr inbounds double, double* %13, i64 %995
br label %997
997: ; preds = %989, %1041
%998 = phi i64 [ 0, %989 ], [ %1043, %1041 ]
%999 = phi double [ 0.000000e+00, %989 ], [ %1042, %1041 ]
br i1 %962, label %1000, label %1041
1000: ; preds = %997
%1001 = trunc i64 %998 to i32
%1002 = add i32 %901, %1001
%1003 = mul i32 %1002, %3
%1004 = getelementptr inbounds double, double* %88, i64 %998
%1005 = load double, double* %1004
%1006 = add i32 %1003, %982
br label %1007
1007: ; preds = %1000, %1007
%1008 = phi i64 [ 0, %1000 ], [ %1039, %1007 ]
%1009 = phi double [ %999, %1000 ], [ %1038, %1007 ]
%1010 = trunc i64 %1008 to i32
%1011 = add i32 %1006, %1010
%1012 = shl nsw i32 %1011, 2
%1013 = add nsw i64 %1008, %973
%1014 = getelementptr inbounds double, double* %94, i64 %1013
%1015 = load double, double* %1014
%1016 = fmul double %1005, %1015
%1017 = sext i32 %1012 to i64
%1018 = getelementptr inbounds double, double* %2, i64 %1017
%1019 = load double, double* %1018
%1020 = load double, double* %990
%1021 = tail call double @llvm.fmuladd.f64(double %1016, double %1019, double %1020)
store double %1021, double* %990
%1022 = or i32 %1012, 1
%1023 = sext i32 %1022 to i64
%1024 = getelementptr inbounds double, double* %2, i64 %1023
%1025 = load double, double* %1024
%1026 = load double, double* %993
%1027 = tail call double @llvm.fmuladd.f64(double %1016, double %1025, double %1026)
store double %1027, double* %993
%1028 = or i32 %1012, 2
%1029 = sext i32 %1028 to i64
%1030 = getelementptr inbounds double, double* %2, i64 %1029
%1031 = load double, double* %1030
%1032 = load double, double* %996
%1033 = tail call double @llvm.fmuladd.f64(double %1016, double %1031, double %1032)
store double %1033, double* %996
%1034 = or i32 %1012, 3
%1035 = sext i32 %1034 to i64
%1036 = getelementptr inbounds double, double* %2, i64 %1035
%1037 = load double, double* %1036
%1038 = tail call double @llvm.fmuladd.f64(double %1016, double %1037, double %1009)
%1039 = add nuw nsw i64 %1008, 1
%1040 = icmp eq i64 %1039, %966
br i1 %1040, label %1041, label %1007
1041: ; preds = %1007, %997
%1042 = phi double [ %999, %997 ], [ %1038, %1007 ]
%1043 = add nuw nsw i64 %998, 1
%1044 = icmp eq i64 %1043, %965
br i1 %1044, label %1045, label %997
1045: ; preds = %1041, %984
%1046 = phi i64 [ %988, %984 ], [ %995, %1041 ]
%1047 = phi i64 [ %986, %984 ], [ %992, %1041 ]
%1048 = phi double [ 0.000000e+00, %984 ], [ %1042, %1041 ]
%1049 = getelementptr inbounds double, double* %13, i64 %983
%1050 = load double, double* %1049
%1051 = fdiv double %1050, %1048
store double %1051, double* %1049
%1052 = getelementptr inbounds double, double* %13, i64 %1047
%1053 = load double, double* %1052
%1054 = fdiv double %1053, %1048
store double %1054, double* %1052
%1055 = getelementptr inbounds double, double* %13, i64 %1046
%1056 = load double, double* %1055
%1057 = fdiv double %1056, %1048
store double %1057, double* %1055
%1058 = add nuw nsw i64 %969, 1
%1059 = icmp eq i64 %1058, %963
br i1 %1059, label %1060, label %967
1060: ; preds = %1045, %950
%1061 = phi i32 [ 0, %950 ], [ %982, %1045 ]
%1062 = add nsw i32 %9, -2
%1063 = sext i32 %1062 to i64
%1064 = getelementptr inbounds i32, i32* %91, i64 %1063
store i32 %1061, i32* %1064
%1065 = mul nsw i32 %15, 3
%1066 = sext i32 %1065 to i64
%1067 = getelementptr inbounds double, double* %13, i64 %1066
br i1 %902, label %1074, label %1068
1068: ; preds = %1060
%1069 = load double, double* %1067
%1070 = add nsw i32 %1065, 1
%1071 = sext i32 %1070 to i64
%1072 = add nsw i32 %1065, 2
%1073 = sext i32 %1072 to i64
br label %1118
1074: ; preds = %1060
%1075 = add nsw i32 %1065, 1
%1076 = sext i32 %1075 to i64
%1077 = getelementptr inbounds double, double* %13, i64 %1076
%1078 = add nsw i32 %1065, 2
%1079 = sext i32 %1078 to i64
%1080 = getelementptr inbounds double, double* %13, i64 %1079
%1081 = zext i32 %1 to i64
%1082 = load double, double* %1067
%1083 = load double, double* %1077
%1084 = load double, double* %1080
br label %1085
1085: ; preds = %1074, %1085
%1086 = phi double [ %1084, %1074 ], [ %1110, %1085 ]
%1087 = phi double [ %1083, %1074 ], [ %1105, %1085 ]
%1088 = phi double [ %1082, %1074 ], [ %1100, %1085 ]
%1089 = phi i64 [ 0, %1074 ], [ %1116, %1085 ]
%1090 = phi double [ 0.000000e+00, %1074 ], [ %1115, %1085 ]
%1091 = trunc i64 %1089 to i32
%1092 = add i32 %901, %1091
%1093 = mul i32 %1092, %64
%1094 = add i32 %1093, %65
%1095 = getelementptr inbounds double, double* %88, i64 %1089
%1096 = load double, double* %1095
%1097 = sext i32 %1094 to i64
%1098 = getelementptr inbounds double, double* %2, i64 %1097
%1099 = load double, double* %1098
%1100 = tail call double @llvm.fmuladd.f64(double %1096, double %1099, double %1088)
store double %1100, double* %1067
%1101 = or i32 %1094, 1
%1102 = sext i32 %1101 to i64
%1103 = getelementptr inbounds double, double* %2, i64 %1102
%1104 = load double, double* %1103
%1105 = tail call double @llvm.fmuladd.f64(double %1096, double %1104, double %1087)
store double %1105, double* %1077
%1106 = or i32 %1094, 2
%1107 = sext i32 %1106 to i64
%1108 = getelementptr inbounds double, double* %2, i64 %1107
%1109 = load double, double* %1108
%1110 = tail call double @llvm.fmuladd.f64(double %1096, double %1109, double %1086)
store double %1110, double* %1080
%1111 = or i32 %1094, 3
%1112 = sext i32 %1111 to i64
%1113 = getelementptr inbounds double, double* %2, i64 %1112
%1114 = load double, double* %1113
%1115 = tail call double @llvm.fmuladd.f64(double %1096, double %1114, double %1090)
%1116 = add nuw nsw i64 %1089, 1
%1117 = icmp eq i64 %1116, %1081
br i1 %1117, label %1118, label %1085
1118: ; preds = %1085, %1068
%1119 = phi i64 [ %1073, %1068 ], [ %1079, %1085 ]
%1120 = phi i64 [ %1071, %1068 ], [ %1076, %1085 ]
%1121 = phi double [ %1069, %1068 ], [ %1100, %1085 ]
%1122 = phi double [ 0.000000e+00, %1068 ], [ %1115, %1085 ]
%1123 = fdiv double %1121, %1122
store double %1123, double* %1067
%1124 = getelementptr inbounds double, double* %13, i64 %1120
%1125 = load double, double* %1124
%1126 = fdiv double %1125, %1122
store double %1126, double* %1124
%1127 = getelementptr inbounds double, double* %13, i64 %1119
%1128 = load double, double* %1127
%1129 = fdiv double %1128, %1122
store double %1129, double* %1127
%1130 = icmp sgt i32 %12, 1
br i1 %1130, label %1131, label %3224
1131: ; preds = %1118
%1132 = icmp sgt i32 %0, 0
%1133 = sext i32 %15 to i64
%1134 = zext i32 %12 to i64
%1135 = zext i32 %1 to i64
%1136 = zext i32 %15 to i64
%1137 = zext i32 %0 to i64
br label %1138
1138: ; preds = %1131, %1340
%1139 = phi i64 [ 1, %1131 ], [ %1352, %1340 ]
%1140 = phi double [ %10, %1131 ], [ %1142, %1340 ]
%1141 = phi i32 [ %899, %1131 ], [ %1143, %1340 ]
%1142 = fadd double %1140, %11
%1143 = tail call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %4, double %1142, double* %6, i32 %1141)
%1144 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %1143, double %1142, i32 %20, double* %6, double* %88, double* %61, double* %63)
%1145 = sub nsw i32 %1143, %20
%1146 = mul nsw i64 %1139, %69
%1147 = mul nsw i64 %1146, 3
%1148 = getelementptr inbounds double, double* %13, i64 %1147
br i1 %902, label %1155, label %1149
1149: ; preds = %1138
%1150 = load double, double* %1148
%1151 = add nsw i64 %1147, 1
%1152 = getelementptr inbounds double, double* %13, i64 %1151
%1153 = load double, double* %1152
%1154 = add nsw i64 %1147, 2
br label %1195
1155: ; preds = %1138
%1156 = add nsw i64 %1147, 1
%1157 = getelementptr inbounds double, double* %13, i64 %1156
%1158 = add nsw i64 %1147, 2
%1159 = getelementptr inbounds double, double* %13, i64 %1158
%1160 = load double, double* %1148
%1161 = load double, double* %1157
%1162 = load double, double* %1159
br label %1163
1163: ; preds = %1155, %1163
%1164 = phi double [ %1162, %1155 ], [ %1187, %1163 ]
%1165 = phi double [ %1161, %1155 ], [ %1182, %1163 ]
%1166 = phi double [ %1160, %1155 ], [ %1177, %1163 ]
%1167 = phi i64 [ 0, %1155 ], [ %1193, %1163 ]
%1168 = phi double [ 0.000000e+00, %1155 ], [ %1192, %1163 ]
%1169 = trunc i64 %1167 to i32
%1170 = add nsw i32 %1145, %1169
%1171 = mul nsw i32 %1170, %64
%1172 = getelementptr inbounds double, double* %88, i64 %1167
%1173 = load double, double* %1172
%1174 = sext i32 %1171 to i64
%1175 = getelementptr inbounds double, double* %2, i64 %1174
%1176 = load double, double* %1175
%1177 = tail call double @llvm.fmuladd.f64(double %1173, double %1176, double %1166)
store double %1177, double* %1148
%1178 = or i32 %1171, 1
%1179 = sext i32 %1178 to i64
%1180 = getelementptr inbounds double, double* %2, i64 %1179
%1181 = load double, double* %1180
%1182 = tail call double @llvm.fmuladd.f64(double %1173, double %1181, double %1165)
store double %1182, double* %1157
%1183 = or i32 %1171, 2
%1184 = sext i32 %1183 to i64
%1185 = getelementptr inbounds double, double* %2, i64 %1184
%1186 = load double, double* %1185
%1187 = tail call double @llvm.fmuladd.f64(double %1173, double %1186, double %1164)
store double %1187, double* %1159
%1188 = or i32 %1171, 3
%1189 = sext i32 %1188 to i64
%1190 = getelementptr inbounds double, double* %2, i64 %1189
%1191 = load double, double* %1190
%1192 = tail call double @llvm.fmuladd.f64(double %1173, double %1191, double %1168)
%1193 = add nuw nsw i64 %1167, 1
%1194 = icmp eq i64 %1193, %1135
br i1 %1194, label %1195, label %1163
1195: ; preds = %1163, %1149
%1196 = phi i64 [ %1154, %1149 ], [ %1158, %1163 ]
%1197 = phi double [ %1153, %1149 ], [ %1182, %1163 ]
%1198 = phi i64 [ %1151, %1149 ], [ %1156, %1163 ]
%1199 = phi double [ %1150, %1149 ], [ %1177, %1163 ]
%1200 = phi double [ 0.000000e+00, %1149 ], [ %1192, %1163 ]
%1201 = fdiv double %1199, %1200
store double %1201, double* %1148
%1202 = getelementptr inbounds double, double* %13, i64 %1198
%1203 = fdiv double %1197, %1200
store double %1203, double* %1202
%1204 = getelementptr inbounds double, double* %13, i64 %1196
%1205 = load double, double* %1204
%1206 = fdiv double %1205, %1200
store double %1206, double* %1204
br i1 %960, label %1207, label %1289
1207: ; preds = %1195, %1274
%1208 = phi i64 [ %1287, %1274 ], [ 1, %1195 ]
%1209 = add nsw i64 %1208, %1146
%1210 = mul nsw i64 %1209, 3
%1211 = mul nsw i64 %1208, %80
%1212 = getelementptr inbounds i32, i32* %91, i64 %1208
%1213 = load i32, i32* %1212
br i1 %902, label %1217, label %1214
1214: ; preds = %1207
%1215 = add nsw i64 %1210, 1
%1216 = add nsw i64 %1210, 2
br label %1274
1217: ; preds = %1207
%1218 = getelementptr inbounds double, double* %13, i64 %1210
%1219 = add nsw i64 %1210, 1
%1220 = getelementptr inbounds double, double* %13, i64 %1219
%1221 = add nsw i64 %1210, 2
%1222 = getelementptr inbounds double, double* %13, i64 %1221
br label %1223
1223: ; preds = %1217, %1270
%1224 = phi i64 [ 0, %1217 ], [ %1272, %1270 ]
%1225 = phi double [ 0.000000e+00, %1217 ], [ %1271, %1270 ]
br i1 %1132, label %1226, label %1270
1226: ; preds = %1223
%1227 = trunc i64 %1224 to i32
%1228 = add i32 %1145, %1227
%1229 = mul i32 %1228, %3
%1230 = getelementptr inbounds double, double* %88, i64 %1224
%1231 = load double, double* %1230
%1232 = load double, double* %1218
%1233 = load double, double* %1220
%1234 = load double, double* %1222
%1235 = add i32 %1229, %1213
br label %1236
1236: ; preds = %1226, %1236
%1237 = phi double [ %1234, %1226 ], [ %1262, %1236 ]
%1238 = phi double [ %1233, %1226 ], [ %1257, %1236 ]
%1239 = phi double [ %1232, %1226 ], [ %1252, %1236 ]
%1240 = phi i64 [ 0, %1226 ], [ %1268, %1236 ]
%1241 = phi double [ %1225, %1226 ], [ %1267, %1236 ]
%1242 = trunc i64 %1240 to i32
%1243 = add i32 %1235, %1242
%1244 = shl nsw i32 %1243, 2
%1245 = add nsw i64 %1240, %1211
%1246 = getelementptr inbounds double, double* %94, i64 %1245
%1247 = load double, double* %1246
%1248 = fmul double %1231, %1247
%1249 = sext i32 %1244 to i64
%1250 = getelementptr inbounds double, double* %2, i64 %1249
%1251 = load double, double* %1250
%1252 = tail call double @llvm.fmuladd.f64(double %1248, double %1251, double %1239)
store double %1252, double* %1218
%1253 = or i32 %1244, 1
%1254 = sext i32 %1253 to i64
%1255 = getelementptr inbounds double, double* %2, i64 %1254
%1256 = load double, double* %1255
%1257 = tail call double @llvm.fmuladd.f64(double %1248, double %1256, double %1238)
store double %1257, double* %1220
%1258 = or i32 %1244, 2
%1259 = sext i32 %1258 to i64
%1260 = getelementptr inbounds double, double* %2, i64 %1259
%1261 = load double, double* %1260
%1262 = tail call double @llvm.fmuladd.f64(double %1248, double %1261, double %1237)
store double %1262, double* %1222
%1263 = or i32 %1244, 3
%1264 = sext i32 %1263 to i64
%1265 = getelementptr inbounds double, double* %2, i64 %1264
%1266 = load double, double* %1265
%1267 = tail call double @llvm.fmuladd.f64(double %1248, double %1266, double %1241)
%1268 = add nuw nsw i64 %1240, 1
%1269 = icmp eq i64 %1268, %1137
br i1 %1269, label %1270, label %1236
1270: ; preds = %1236, %1223
%1271 = phi double [ %1225, %1223 ], [ %1267, %1236 ]
%1272 = add nuw nsw i64 %1224, 1
%1273 = icmp eq i64 %1272, %1135
br i1 %1273, label %1274, label %1223
1274: ; preds = %1270, %1214
%1275 = phi i64 [ %1216, %1214 ], [ %1221, %1270 ]
%1276 = phi i64 [ %1215, %1214 ], [ %1219, %1270 ]
%1277 = phi double [ 0.000000e+00, %1214 ], [ %1271, %1270 ]
%1278 = getelementptr inbounds double, double* %13, i64 %1210
%1279 = load double, double* %1278
%1280 = fdiv double %1279, %1277
store double %1280, double* %1278
%1281 = getelementptr inbounds double, double* %13, i64 %1276
%1282 = load double, double* %1281
%1283 = fdiv double %1282, %1277
store double %1283, double* %1281
%1284 = getelementptr inbounds double, double* %13, i64 %1275
%1285 = load double, double* %1284
%1286 = fdiv double %1285, %1277
store double %1286, double* %1284
%1287 = add nuw nsw i64 %1208, 1
%1288 = icmp eq i64 %1287, %1136
br i1 %1288, label %1289, label %1207
1289: ; preds = %1274, %1195
%1290 = add nsw i64 %1146, %1133
%1291 = mul nsw i64 %1290, 3
%1292 = getelementptr inbounds double, double* %13, i64 %1291
br i1 %902, label %1299, label %1293
1293: ; preds = %1289
%1294 = load double, double* %1292
%1295 = add nsw i64 %1291, 1
%1296 = getelementptr inbounds double, double* %13, i64 %1295
%1297 = load double, double* %1296
%1298 = add nsw i64 %1291, 2
br label %1340
1299: ; preds = %1289
%1300 = add nsw i64 %1291, 1
%1301 = getelementptr inbounds double, double* %13, i64 %1300
%1302 = add nsw i64 %1291, 2
%1303 = getelementptr inbounds double, double* %13, i64 %1302
%1304 = load double, double* %1292
%1305 = load double, double* %1301
%1306 = load double, double* %1303
br label %1307
1307: ; preds = %1299, %1307
%1308 = phi double [ %1306, %1299 ], [ %1332, %1307 ]
%1309 = phi double [ %1305, %1299 ], [ %1327, %1307 ]
%1310 = phi double [ %1304, %1299 ], [ %1322, %1307 ]
%1311 = phi i64 [ 0, %1299 ], [ %1338, %1307 ]
%1312 = phi double [ 0.000000e+00, %1299 ], [ %1337, %1307 ]
%1313 = trunc i64 %1311 to i32
%1314 = add i32 %1145, %1313
%1315 = mul i32 %1314, %64
%1316 = add i32 %1315, %65
%1317 = getelementptr inbounds double, double* %88, i64 %1311
%1318 = load double, double* %1317
%1319 = sext i32 %1316 to i64
%1320 = getelementptr inbounds double, double* %2, i64 %1319
%1321 = load double, double* %1320
%1322 = tail call double @llvm.fmuladd.f64(double %1318, double %1321, double %1310)
store double %1322, double* %1292
%1323 = or i32 %1316, 1
%1324 = sext i32 %1323 to i64
%1325 = getelementptr inbounds double, double* %2, i64 %1324
%1326 = load double, double* %1325
%1327 = tail call double @llvm.fmuladd.f64(double %1318, double %1326, double %1309)
store double %1327, double* %1301
%1328 = or i32 %1316, 2
%1329 = sext i32 %1328 to i64
%1330 = getelementptr inbounds double, double* %2, i64 %1329
%1331 = load double, double* %1330
%1332 = tail call double @llvm.fmuladd.f64(double %1318, double %1331, double %1308)
store double %1332, double* %1303
%1333 = or i32 %1316, 3
%1334 = sext i32 %1333 to i64
%1335 = getelementptr inbounds double, double* %2, i64 %1334
%1336 = load double, double* %1335
%1337 = tail call double @llvm.fmuladd.f64(double %1318, double %1336, double %1312)
%1338 = add nuw nsw i64 %1311, 1
%1339 = icmp eq i64 %1338, %1135
br i1 %1339, label %1340, label %1307
1340: ; preds = %1307, %1293
%1341 = phi i64 [ %1298, %1293 ], [ %1302, %1307 ]
%1342 = phi double [ %1297, %1293 ], [ %1327, %1307 ]
%1343 = phi i64 [ %1295, %1293 ], [ %1300, %1307 ]
%1344 = phi double [ %1294, %1293 ], [ %1322, %1307 ]
%1345 = phi double [ 0.000000e+00, %1293 ], [ %1337, %1307 ]
%1346 = fdiv double %1344, %1345
store double %1346, double* %1292
%1347 = getelementptr inbounds double, double* %13, i64 %1343
%1348 = fdiv double %1342, %1345
store double %1348, double* %1347
%1349 = getelementptr inbounds double, double* %13, i64 %1341
%1350 = load double, double* %1349
%1351 = fdiv double %1350, %1345
store double %1351, double* %1349
%1352 = add nuw nsw i64 %1139, 1
%1353 = icmp eq i64 %1352, %1134
br i1 %1353, label %3224, label %1138
1354: ; preds = %897
%1355 = tail call i32 (i32, i32, double, double*, ...) bitcast (i32 (...)* @FindSpan to i32 (i32, i32, double, double*, ...)*)(i32 %3, i32 %18, double %7, double* %5)
store i32 %1355, i32* %91
%1356 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %1355, double %7, i32 %18, double* %5, double* %94, double* %61, double* %63)
%1357 = load i32, i32* %91
%1358 = sub nsw i32 %1357, %18
%1359 = tail call i32 (i32, i32, double, double*, ...) bitcast (i32 (...)* @FindSpan to i32 (i32, i32, double, double*, ...)*)(i32 %4, i32 %20, double %10, double* %6)
%1360 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %1359, double %10, i32 %20, double* %6, double* %88, double* %61, double* %63)
%1361 = sub nsw i32 %1359, %20
%1362 = mul nsw i32 %1361, %3
%1363 = add nsw i32 %1362, %1358
%1364 = icmp sgt i32 %1, 0
br i1 %1364, label %1365, label %1420
1365: ; preds = %1354
%1366 = icmp sgt i32 %0, 0
%1367 = getelementptr inbounds double, double* %13, i64 1
%1368 = getelementptr inbounds double, double* %13, i64 2
%1369 = zext i32 %1 to i64
%1370 = zext i32 %0 to i64
br label %1371
1371: ; preds = %1365, %1416
%1372 = phi i64 [ 0, %1365 ], [ %1418, %1416 ]
%1373 = phi double [ 0.000000e+00, %1365 ], [ %1417, %1416 ]
%1374 = trunc i64 %1372 to i32
%1375 = mul nsw i32 %1374, %3
%1376 = add nsw i32 %1363, %1375
br i1 %1366, label %1377, label %1416
1377: ; preds = %1371
%1378 = getelementptr inbounds double, double* %88, i64 %1372
%1379 = load double, double* %1378
%1380 = load double, double* %13
%1381 = load double, double* %1367
%1382 = load double, double* %1368
br label %1383
1383: ; preds = %1377, %1383
%1384 = phi double [ %1382, %1377 ], [ %1408, %1383 ]
%1385 = phi double [ %1381, %1377 ], [ %1403, %1383 ]
%1386 = phi double [ %1380, %1377 ], [ %1398, %1383 ]
%1387 = phi i64 [ 0, %1377 ], [ %1414, %1383 ]
%1388 = phi double [ %1373, %1377 ], [ %1413, %1383 ]
%1389 = trunc i64 %1387 to i32
%1390 = add nsw i32 %1376, %1389
%1391 = shl nsw i32 %1390, 2
%1392 = getelementptr inbounds double, double* %94, i64 %1387
%1393 = load double, double* %1392
%1394 = fmul double %1379, %1393
%1395 = sext i32 %1391 to i64
%1396 = getelementptr inbounds double, double* %2, i64 %1395
%1397 = load double, double* %1396
%1398 = tail call double @llvm.fmuladd.f64(double %1394, double %1397, double %1386)
store double %1398, double* %13
%1399 = or i32 %1391, 1
%1400 = sext i32 %1399 to i64
%1401 = getelementptr inbounds double, double* %2, i64 %1400
%1402 = load double, double* %1401
%1403 = tail call double @llvm.fmuladd.f64(double %1394, double %1402, double %1385)
store double %1403, double* %1367
%1404 = or i32 %1391, 2
%1405 = sext i32 %1404 to i64
%1406 = getelementptr inbounds double, double* %2, i64 %1405
%1407 = load double, double* %1406
%1408 = tail call double @llvm.fmuladd.f64(double %1394, double %1407, double %1384)
store double %1408, double* %1368
%1409 = or i32 %1391, 3
%1410 = sext i32 %1409 to i64
%1411 = getelementptr inbounds double, double* %2, i64 %1410
%1412 = load double, double* %1411
%1413 = tail call double @llvm.fmuladd.f64(double %1394, double %1412, double %1388)
%1414 = add nuw nsw i64 %1387, 1
%1415 = icmp eq i64 %1414, %1370
br i1 %1415, label %1416, label %1383
1416: ; preds = %1383, %1371
%1417 = phi double [ %1373, %1371 ], [ %1413, %1383 ]
%1418 = add nuw nsw i64 %1372, 1
%1419 = icmp eq i64 %1418, %1369
br i1 %1419, label %1420, label %1371
1420: ; preds = %1416, %1354
%1421 = phi double [ 0.000000e+00, %1354 ], [ %1417, %1416 ]
%1422 = bitcast double* %13 to <2 x double>*
%1423 = load <2 x double>, <2 x double>* %1422
%1424 = insertelement <2 x double> poison, double %1421, i64 0
%1425 = shufflevector <2 x double> %1424, <2 x double> poison, <2 x i32> zeroinitializer
%1426 = fdiv <2 x double> %1423, %1425
%1427 = bitcast double* %13 to <2 x double>*
store <2 x double> %1426, <2 x double>* %1427
%1428 = getelementptr inbounds double, double* %13, i64 2
%1429 = load double, double* %1428
%1430 = fdiv double %1429, %1421
store double %1430, double* %1428
%1431 = icmp sgt i32 %9, 1
br i1 %1431, label %1432, label %1531
1432: ; preds = %1420
%1433 = icmp sgt i32 %0, 0
%1434 = zext i32 %9 to i64
%1435 = load i32, i32* %91
%1436 = zext i32 %1 to i64
%1437 = zext i32 %0 to i64
br label %1438
1438: ; preds = %1432, %1516
%1439 = phi i32 [ %1435, %1432 ], [ %1452, %1516 ]
%1440 = phi i64 [ 1, %1432 ], [ %1529, %1516 ]
%1441 = phi double [ %7, %1432 ], [ %1445, %1516 ]
%1442 = phi i32 [ %1358, %1432 ], [ %1453, %1516 ]
%1443 = mul nuw nsw i64 %1440, 3
%1444 = mul nsw i64 %1440, %80
%1445 = fadd double %1441, %8
%1446 = add nsw i64 %1440, -1
%1447 = getelementptr inbounds i32, i32* %91, i64 %1446
%1448 = tail call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %3, double %1445, double* %5, i32 %1439)
%1449 = getelementptr inbounds i32, i32* %91, i64 %1440
store i32 %1448, i32* %1449
%1450 = getelementptr inbounds double, double* %94, i64 %1444
%1451 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %1448, double %1445, i32 %18, double* %5, double* %1450, double* %61, double* %63)
store i32 %1442, i32* %1447
%1452 = load i32, i32* %1449
%1453 = sub nsw i32 %1452, %18
%1454 = add nsw i32 %1453, %1362
%1455 = and i64 %1443, 4294967295
br i1 %1364, label %1461, label %1456
1456: ; preds = %1438
%1457 = add nuw nsw i64 %1443, 1
%1458 = and i64 %1457, 4294967295
%1459 = add nuw nsw i64 %1443, 2
%1460 = and i64 %1459, 4294967295
br label %1516
1461: ; preds = %1438
%1462 = getelementptr inbounds double, double* %13, i64 %1455
%1463 = add nuw nsw i64 %1443, 1
%1464 = and i64 %1463, 4294967295
%1465 = getelementptr inbounds double, double* %13, i64 %1464
%1466 = add nuw nsw i64 %1443, 2
%1467 = and i64 %1466, 4294967295
%1468 = getelementptr inbounds double, double* %13, i64 %1467
br label %1469
1469: ; preds = %1461, %1512
%1470 = phi i64 [ 0, %1461 ], [ %1514, %1512 ]
%1471 = phi double [ 0.000000e+00, %1461 ], [ %1513, %1512 ]
%1472 = trunc i64 %1470 to i32
%1473 = mul nsw i32 %1472, %3
%1474 = add nsw i32 %1454, %1473
br i1 %1433, label %1475, label %1512
1475: ; preds = %1469
%1476 = getelementptr inbounds double, double* %88, i64 %1470
%1477 = load double, double* %1476
br label %1478
1478: ; preds = %1475, %1478
%1479 = phi i64 [ 0, %1475 ], [ %1510, %1478 ]
%1480 = phi double [ %1471, %1475 ], [ %1509, %1478 ]
%1481 = trunc i64 %1479 to i32
%1482 = add nsw i32 %1474, %1481
%1483 = shl nsw i32 %1482, 2
%1484 = add nsw i64 %1479, %1444
%1485 = getelementptr inbounds double, double* %94, i64 %1484
%1486 = load double, double* %1485
%1487 = fmul double %1477, %1486
%1488 = sext i32 %1483 to i64
%1489 = getelementptr inbounds double, double* %2, i64 %1488
%1490 = load double, double* %1489
%1491 = load double, double* %1462
%1492 = tail call double @llvm.fmuladd.f64(double %1487, double %1490, double %1491)
store double %1492, double* %1462
%1493 = or i32 %1483, 1
%1494 = sext i32 %1493 to i64
%1495 = getelementptr inbounds double, double* %2, i64 %1494
%1496 = load double, double* %1495
%1497 = load double, double* %1465
%1498 = tail call double @llvm.fmuladd.f64(double %1487, double %1496, double %1497)
store double %1498, double* %1465
%1499 = or i32 %1483, 2
%1500 = sext i32 %1499 to i64
%1501 = getelementptr inbounds double, double* %2, i64 %1500
%1502 = load double, double* %1501
%1503 = load double, double* %1468
%1504 = tail call double @llvm.fmuladd.f64(double %1487, double %1502, double %1503)
store double %1504, double* %1468
%1505 = or i32 %1483, 3
%1506 = sext i32 %1505 to i64
%1507 = getelementptr inbounds double, double* %2, i64 %1506
%1508 = load double, double* %1507
%1509 = tail call double @llvm.fmuladd.f64(double %1487, double %1508, double %1480)
%1510 = add nuw nsw i64 %1479, 1
%1511 = icmp eq i64 %1510, %1437
br i1 %1511, label %1512, label %1478
1512: ; preds = %1478, %1469
%1513 = phi double [ %1471, %1469 ], [ %1509, %1478 ]
%1514 = add nuw nsw i64 %1470, 1
%1515 = icmp eq i64 %1514, %1436
br i1 %1515, label %1516, label %1469
1516: ; preds = %1512, %1456
%1517 = phi i64 [ %1460, %1456 ], [ %1467, %1512 ]
%1518 = phi i64 [ %1458, %1456 ], [ %1464, %1512 ]
%1519 = phi double [ 0.000000e+00, %1456 ], [ %1513, %1512 ]
%1520 = getelementptr inbounds double, double* %13, i64 %1455
%1521 = load double, double* %1520
%1522 = fdiv double %1521, %1519
store double %1522, double* %1520
%1523 = getelementptr inbounds double, double* %13, i64 %1518
%1524 = load double, double* %1523
%1525 = fdiv double %1524, %1519
store double %1525, double* %1523
%1526 = getelementptr inbounds double, double* %13, i64 %1517
%1527 = load double, double* %1526
%1528 = fdiv double %1527, %1519
store double %1528, double* %1526
%1529 = add nuw nsw i64 %1440, 1
%1530 = icmp eq i64 %1529, %1434
br i1 %1530, label %1531, label %1438
1531: ; preds = %1516, %1420
%1532 = phi i32 [ %1358, %1420 ], [ %1453, %1516 ]
%1533 = sext i32 %15 to i64
%1534 = getelementptr inbounds i32, i32* %91, i64 %1533
store i32 %1532, i32* %1534
%1535 = icmp sgt i32 %12, 1
br i1 %1535, label %1536, label %3224
1536: ; preds = %1531
%1537 = icmp sgt i32 %9, 0
%1538 = icmp sgt i32 %0, 0
%1539 = zext i32 %12 to i64
%1540 = zext i32 %9 to i64
%1541 = zext i32 %1 to i64
%1542 = zext i32 %0 to i64
br label %1543
1543: ; preds = %1536, %1634
%1544 = phi i64 [ 1, %1536 ], [ %1635, %1634 ]
%1545 = phi double [ %10, %1536 ], [ %1547, %1634 ]
%1546 = phi i32 [ %1359, %1536 ], [ %1548, %1634 ]
%1547 = fadd double %1545, %11
%1548 = tail call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %4, double %1547, double* %6, i32 %1546)
%1549 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %1548, double %1547, i32 %20, double* %6, double* %88, double* %61, double* %63)
%1550 = add i32 %1548, %21
%1551 = mul nsw i64 %1544, %69
br i1 %1537, label %1552, label %1634
1552: ; preds = %1543, %1619
%1553 = phi i64 [ %1632, %1619 ], [ 0, %1543 ]
%1554 = add nsw i64 %1553, %1551
%1555 = mul nsw i64 %1554, 3
%1556 = mul nsw i64 %1553, %80
%1557 = getelementptr inbounds i32, i32* %91, i64 %1553
%1558 = load i32, i32* %1557
br i1 %1364, label %1562, label %1559
1559: ; preds = %1552
%1560 = add nsw i64 %1555, 1
%1561 = add nsw i64 %1555, 2
br label %1619
1562: ; preds = %1552
%1563 = getelementptr inbounds double, double* %13, i64 %1555
%1564 = add nsw i64 %1555, 1
%1565 = getelementptr inbounds double, double* %13, i64 %1564
%1566 = add nsw i64 %1555, 2
%1567 = getelementptr inbounds double, double* %13, i64 %1566
br label %1568
1568: ; preds = %1562, %1615
%1569 = phi i64 [ 0, %1562 ], [ %1617, %1615 ]
%1570 = phi double [ 0.000000e+00, %1562 ], [ %1616, %1615 ]
br i1 %1538, label %1571, label %1615
1571: ; preds = %1568
%1572 = trunc i64 %1569 to i32
%1573 = add i32 %1550, %1572
%1574 = mul i32 %1573, %3
%1575 = getelementptr inbounds double, double* %88, i64 %1569
%1576 = load double, double* %1575
%1577 = load double, double* %1563
%1578 = load double, double* %1565
%1579 = load double, double* %1567
%1580 = add i32 %1574, %1558
br label %1581
1581: ; preds = %1571, %1581
%1582 = phi double [ %1579, %1571 ], [ %1607, %1581 ]
%1583 = phi double [ %1578, %1571 ], [ %1602, %1581 ]
%1584 = phi double [ %1577, %1571 ], [ %1597, %1581 ]
%1585 = phi i64 [ 0, %1571 ], [ %1613, %1581 ]
%1586 = phi double [ %1570, %1571 ], [ %1612, %1581 ]
%1587 = trunc i64 %1585 to i32
%1588 = add i32 %1580, %1587
%1589 = shl nsw i32 %1588, 2
%1590 = add nsw i64 %1585, %1556
%1591 = getelementptr inbounds double, double* %94, i64 %1590
%1592 = load double, double* %1591
%1593 = fmul double %1576, %1592
%1594 = sext i32 %1589 to i64
%1595 = getelementptr inbounds double, double* %2, i64 %1594
%1596 = load double, double* %1595
%1597 = tail call double @llvm.fmuladd.f64(double %1593, double %1596, double %1584)
store double %1597, double* %1563
%1598 = or i32 %1589, 1
%1599 = sext i32 %1598 to i64
%1600 = getelementptr inbounds double, double* %2, i64 %1599
%1601 = load double, double* %1600
%1602 = tail call double @llvm.fmuladd.f64(double %1593, double %1601, double %1583)
store double %1602, double* %1565
%1603 = or i32 %1589, 2
%1604 = sext i32 %1603 to i64
%1605 = getelementptr inbounds double, double* %2, i64 %1604
%1606 = load double, double* %1605
%1607 = tail call double @llvm.fmuladd.f64(double %1593, double %1606, double %1582)
store double %1607, double* %1567
%1608 = or i32 %1589, 3
%1609 = sext i32 %1608 to i64
%1610 = getelementptr inbounds double, double* %2, i64 %1609
%1611 = load double, double* %1610
%1612 = tail call double @llvm.fmuladd.f64(double %1593, double %1611, double %1586)
%1613 = add nuw nsw i64 %1585, 1
%1614 = icmp eq i64 %1613, %1542
br i1 %1614, label %1615, label %1581
1615: ; preds = %1581, %1568
%1616 = phi double [ %1570, %1568 ], [ %1612, %1581 ]
%1617 = add nuw nsw i64 %1569, 1
%1618 = icmp eq i64 %1617, %1541
br i1 %1618, label %1619, label %1568
1619: ; preds = %1615, %1559
%1620 = phi i64 [ %1561, %1559 ], [ %1566, %1615 ]
%1621 = phi i64 [ %1560, %1559 ], [ %1564, %1615 ]
%1622 = phi double [ 0.000000e+00, %1559 ], [ %1616, %1615 ]
%1623 = getelementptr inbounds double, double* %13, i64 %1555
%1624 = load double, double* %1623
%1625 = fdiv double %1624, %1622
store double %1625, double* %1623
%1626 = getelementptr inbounds double, double* %13, i64 %1621
%1627 = load double, double* %1626
%1628 = fdiv double %1627, %1622
store double %1628, double* %1626
%1629 = getelementptr inbounds double, double* %13, i64 %1620
%1630 = load double, double* %1629
%1631 = fdiv double %1630, %1622
store double %1631, double* %1629
%1632 = add nuw nsw i64 %1553, 1
%1633 = icmp eq i64 %1632, %1540
br i1 %1633, label %1634, label %1552
1634: ; preds = %1619, %1543
%1635 = add nuw nsw i64 %1544, 1
%1636 = icmp eq i64 %1635, %1539
br i1 %1636, label %3224, label %1543
1637: ; preds = %53
%1638 = or i64 %81, 1
%1639 = tail call i8* @malloc(i64 %1638)
%1640 = bitcast i8* %1639 to double*
%1641 = or i64 %79, 1
%1642 = tail call i8* @malloc(i64 %1641)
%1643 = bitcast i8* %1642 to i32*
%1644 = or i64 %77, 1
%1645 = tail call i8* @malloc(i64 %1644)
%1646 = bitcast i8* %1645 to double*
%1647 = mul i32 %9, 3
%1648 = and i1 %37, %54
br i1 %1648, label %1649, label %2114
1649: ; preds = %1637
store i32 %20, i32* %1643
%1650 = load double, double* %2
%1651 = getelementptr inbounds double, double* %2, i64 3
%1652 = load double, double* %1651
%1653 = fdiv double %1650, %1652
store double %1653, double* %13
%1654 = getelementptr inbounds double, double* %2, i64 1
%1655 = load double, double* %1654
%1656 = load double, double* %1651
%1657 = fdiv double %1655, %1656
%1658 = getelementptr inbounds double, double* %13, i64 1
store double %1657, double* %1658
%1659 = getelementptr inbounds double, double* %2, i64 2
%1660 = load double, double* %1659
%1661 = load double, double* %1651
%1662 = fdiv double %1660, %1661
%1663 = getelementptr inbounds double, double* %13, i64 2
store double %1662, double* %1663
%1664 = icmp sgt i32 %12, 2
br i1 %1664, label %1665, label %1748
1665: ; preds = %1649
%1666 = icmp sgt i32 %1, 0
%1667 = sext i32 %1647 to i64
%1668 = zext i32 %16 to i64
%1669 = zext i32 %1 to i64
br label %1670
1670: ; preds = %1665, %1734
%1671 = phi i32 [ %20, %1665 ], [ %1684, %1734 ]
%1672 = phi i64 [ 1, %1665 ], [ %1746, %1734 ]
%1673 = phi double [ %10, %1665 ], [ %1677, %1734 ]
%1674 = phi i32 [ 0, %1665 ], [ %1685, %1734 ]
%1675 = mul nsw i64 %1672, %1667
%1676 = mul nsw i64 %1672, %71
%1677 = fadd double %1673, %11
%1678 = add nsw i64 %1672, -1
%1679 = getelementptr inbounds i32, i32* %1643, i64 %1678
%1680 = tail call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %4, double %1677, double* %6, i32 %1671)
%1681 = getelementptr inbounds i32, i32* %1643, i64 %1672
store i32 %1680, i32* %1681
%1682 = getelementptr inbounds double, double* %1646, i64 %1676
%1683 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %1680, double %1677, i32 %20, double* %6, double* %1682, double* %61, double* %63)
store i32 %1674, i32* %1679
%1684 = load i32, i32* %1681
%1685 = sub nsw i32 %1684, %20
%1686 = getelementptr inbounds double, double* %13, i64 %1675
br i1 %1666, label %1693, label %1687
1687: ; preds = %1670
%1688 = load double, double* %1686
%1689 = add nsw i64 %1675, 1
%1690 = getelementptr inbounds double, double* %13, i64 %1689
%1691 = load double, double* %1690
%1692 = add nsw i64 %1675, 2
br label %1734
1693: ; preds = %1670
%1694 = add nsw i64 %1675, 1
%1695 = getelementptr inbounds double, double* %13, i64 %1694
%1696 = add nsw i64 %1675, 2
%1697 = getelementptr inbounds double, double* %13, i64 %1696
%1698 = load double, double* %1686
%1699 = load double, double* %1695
%1700 = load double, double* %1697
br label %1701
1701: ; preds = %1693, %1701
%1702 = phi double [ %1700, %1693 ], [ %1726, %1701 ]
%1703 = phi double [ %1699, %1693 ], [ %1721, %1701 ]
%1704 = phi double [ %1698, %1693 ], [ %1716, %1701 ]
%1705 = phi i64 [ 0, %1693 ], [ %1732, %1701 ]
%1706 = phi double [ 0.000000e+00, %1693 ], [ %1731, %1701 ]
%1707 = trunc i64 %1705 to i32
%1708 = add nsw i32 %1685, %1707
%1709 = mul nsw i32 %1708, %64
%1710 = add nsw i64 %1705, %1676
%1711 = getelementptr inbounds double, double* %1646, i64 %1710
%1712 = load double, double* %1711
%1713 = sext i32 %1709 to i64
%1714 = getelementptr inbounds double, double* %2, i64 %1713
%1715 = load double, double* %1714
%1716 = tail call double @llvm.fmuladd.f64(double %1712, double %1715, double %1704)
store double %1716, double* %1686
%1717 = or i32 %1709, 1
%1718 = sext i32 %1717 to i64
%1719 = getelementptr inbounds double, double* %2, i64 %1718
%1720 = load double, double* %1719
%1721 = tail call double @llvm.fmuladd.f64(double %1712, double %1720, double %1703)
store double %1721, double* %1695
%1722 = or i32 %1709, 2
%1723 = sext i32 %1722 to i64
%1724 = getelementptr inbounds double, double* %2, i64 %1723
%1725 = load double, double* %1724
%1726 = tail call double @llvm.fmuladd.f64(double %1712, double %1725, double %1702)
store double %1726, double* %1697
%1727 = or i32 %1709, 3
%1728 = sext i32 %1727 to i64
%1729 = getelementptr inbounds double, double* %2, i64 %1728
%1730 = load double, double* %1729
%1731 = tail call double @llvm.fmuladd.f64(double %1712, double %1730, double %1706)
%1732 = add nuw nsw i64 %1705, 1
%1733 = icmp eq i64 %1732, %1669
br i1 %1733, label %1734, label %1701
1734: ; preds = %1701, %1687
%1735 = phi i64 [ %1692, %1687 ], [ %1696, %1701 ]
%1736 = phi double [ %1691, %1687 ], [ %1721, %1701 ]
%1737 = phi i64 [ %1689, %1687 ], [ %1694, %1701 ]
%1738 = phi double [ %1688, %1687 ], [ %1716, %1701 ]
%1739 = phi double [ 0.000000e+00, %1687 ], [ %1731, %1701 ]
%1740 = fdiv double %1738, %1739
store double %1740, double* %1686
%1741 = getelementptr inbounds double, double* %13, i64 %1737
%1742 = fdiv double %1736, %1739
store double %1742, double* %1741
%1743 = getelementptr inbounds double, double* %13, i64 %1735
%1744 = load double, double* %1743
%1745 = fdiv double %1744, %1739
store double %1745, double* %1743
%1746 = add nuw nsw i64 %1672, 1
%1747 = icmp eq i64 %1746, %1668
br i1 %1747, label %1748, label %1670
1748: ; preds = %1734, %1649
%1749 = phi i32 [ 0, %1649 ], [ %1685, %1734 ]
%1750 = add nsw i32 %12, -2
%1751 = sext i32 %1750 to i64
%1752 = getelementptr inbounds i32, i32* %1643, i64 %1751
store i32 %1749, i32* %1752
%1753 = mul nsw i32 %16, %1647
%1754 = mul nsw i32 %17, %64
%1755 = or i32 %1754, 3
%1756 = sext i32 %1754 to i64
%1757 = getelementptr inbounds double, double* %2, i64 %1756
%1758 = load double, double* %1757
%1759 = sext i32 %1755 to i64
%1760 = getelementptr inbounds double, double* %2, i64 %1759
%1761 = load double, double* %1760
%1762 = fdiv double %1758, %1761
%1763 = sext i32 %1753 to i64
%1764 = getelementptr inbounds double, double* %13, i64 %1763
store double %1762, double* %1764
%1765 = or i32 %1754, 1
%1766 = sext i32 %1765 to i64
%1767 = getelementptr inbounds double, double* %2, i64 %1766
%1768 = load double, double* %1767
%1769 = load double, double* %1760
%1770 = fdiv double %1768, %1769
%1771 = add nsw i32 %1753, 1
%1772 = sext i32 %1771 to i64
%1773 = getelementptr inbounds double, double* %13, i64 %1772
store double %1770, double* %1773
%1774 = or i32 %1754, 2
%1775 = sext i32 %1774 to i64
%1776 = getelementptr inbounds double, double* %2, i64 %1775
%1777 = load double, double* %1776
%1778 = load double, double* %1760
%1779 = fdiv double %1777, %1778
%1780 = add nsw i32 %1753, 2
%1781 = sext i32 %1780 to i64
%1782 = getelementptr inbounds double, double* %13, i64 %1781
store double %1779, double* %1782
%1783 = icmp sgt i32 %9, 2
br i1 %1783, label %1784, label %2009
1784: ; preds = %1748
%1785 = icmp sgt i32 %0, 0
%1786 = icmp sgt i32 %1, 0
%1787 = mul nsw i32 %17, %3
%1788 = sext i32 %1647 to i64
%1789 = zext i32 %15 to i64
%1790 = zext i32 %0 to i64
%1791 = zext i32 %16 to i64
%1792 = zext i32 %1 to i64
br label %1793
1793: ; preds = %1784, %1994
%1794 = phi i64 [ 1, %1784 ], [ %2007, %1994 ]
%1795 = phi double [ %7, %1784 ], [ %1797, %1994 ]
%1796 = phi i32 [ %18, %1784 ], [ %1798, %1994 ]
%1797 = fadd double %1795, %8
%1798 = tail call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %3, double %1797, double* %5, i32 %1796)
%1799 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %1798, double %1797, i32 %18, double* %5, double* %1640, double* %61, double* %63)
%1800 = sub nsw i32 %1798, %18
%1801 = mul nuw nsw i64 %1794, 3
%1802 = and i64 %1801, 4294967295
br i1 %1785, label %1808, label %1803
1803: ; preds = %1793
%1804 = add nuw nsw i64 %1801, 1
%1805 = and i64 %1804, 4294967295
%1806 = add nuw nsw i64 %1801, 2
%1807 = and i64 %1806, 4294967295
br label %1848
1808: ; preds = %1793
%1809 = getelementptr inbounds double, double* %13, i64 %1802
%1810 = add nuw nsw i64 %1801, 1
%1811 = and i64 %1810, 4294967295
%1812 = getelementptr inbounds double, double* %13, i64 %1811
%1813 = add nuw nsw i64 %1801, 2
%1814 = and i64 %1813, 4294967295
%1815 = getelementptr inbounds double, double* %13, i64 %1814
br label %1816
1816: ; preds = %1808, %1816
%1817 = phi i64 [ 0, %1808 ], [ %1846, %1816 ]
%1818 = phi double [ 0.000000e+00, %1808 ], [ %1845, %1816 ]
%1819 = trunc i64 %1817 to i32
%1820 = add nsw i32 %1800, %1819
%1821 = shl nsw i32 %1820, 2
%1822 = getelementptr inbounds double, double* %1640, i64 %1817
%1823 = load double, double* %1822
%1824 = sext i32 %1821 to i64
%1825 = getelementptr inbounds double, double* %2, i64 %1824
%1826 = load double, double* %1825
%1827 = load double, double* %1809
%1828 = tail call double @llvm.fmuladd.f64(double %1823, double %1826, double %1827)
store double %1828, double* %1809
%1829 = or i32 %1821, 1
%1830 = sext i32 %1829 to i64
%1831 = getelementptr inbounds double, double* %2, i64 %1830
%1832 = load double, double* %1831
%1833 = load double, double* %1812
%1834 = tail call double @llvm.fmuladd.f64(double %1823, double %1832, double %1833)
store double %1834, double* %1812
%1835 = or i32 %1821, 2
%1836 = sext i32 %1835 to i64
%1837 = getelementptr inbounds double, double* %2, i64 %1836
%1838 = load double, double* %1837
%1839 = load double, double* %1815
%1840 = tail call double @llvm.fmuladd.f64(double %1823, double %1838, double %1839)
store double %1840, double* %1815
%1841 = or i32 %1821, 3
%1842 = sext i32 %1841 to i64
%1843 = getelementptr inbounds double, double* %2, i64 %1842
%1844 = load double, double* %1843
%1845 = tail call double @llvm.fmuladd.f64(double %1823, double %1844, double %1818)
%1846 = add nuw nsw i64 %1817, 1
%1847 = icmp eq i64 %1846, %1790
br i1 %1847, label %1848, label %1816
1848: ; preds = %1816, %1803
%1849 = phi i64 [ %1807, %1803 ], [ %1814, %1816 ]
%1850 = phi i64 [ %1805, %1803 ], [ %1811, %1816 ]
%1851 = phi double [ 0.000000e+00, %1803 ], [ %1845, %1816 ]
%1852 = getelementptr inbounds double, double* %13, i64 %1802
%1853 = load double, double* %1852
%1854 = fdiv double %1853, %1851
store double %1854, double* %1852
%1855 = getelementptr inbounds double, double* %13, i64 %1850
%1856 = load double, double* %1855
%1857 = fdiv double %1856, %1851
store double %1857, double* %1855
%1858 = getelementptr inbounds double, double* %13, i64 %1849
%1859 = load double, double* %1858
%1860 = fdiv double %1859, %1851
store double %1860, double* %1858
br i1 %1664, label %1861, label %1943
1861: ; preds = %1848, %1928
%1862 = phi i64 [ %1941, %1928 ], [ 1, %1848 ]
%1863 = mul nsw i64 %1862, %1788
%1864 = add nsw i64 %1863, %1801
%1865 = mul nsw i64 %1862, %71
%1866 = getelementptr inbounds i32, i32* %1643, i64 %1862
%1867 = load i32, i32* %1866
br i1 %1786, label %1871, label %1868
1868: ; preds = %1861
%1869 = add nsw i64 %1864, 1
%1870 = add nsw i64 %1864, 2
br label %1928
1871: ; preds = %1861
%1872 = getelementptr inbounds double, double* %13, i64 %1864
%1873 = add nsw i64 %1864, 1
%1874 = getelementptr inbounds double, double* %13, i64 %1873
%1875 = add nsw i64 %1864, 2
%1876 = getelementptr inbounds double, double* %13, i64 %1875
br label %1877
1877: ; preds = %1871, %1924
%1878 = phi i64 [ 0, %1871 ], [ %1926, %1924 ]
%1879 = phi double [ 0.000000e+00, %1871 ], [ %1925, %1924 ]
br i1 %1785, label %1880, label %1924
1880: ; preds = %1877
%1881 = add nsw i64 %1878, %1865
%1882 = trunc i64 %1878 to i32
%1883 = add i32 %1867, %1882
%1884 = mul i32 %1883, %3
%1885 = getelementptr inbounds double, double* %1646, i64 %1881
%1886 = load double, double* %1885
%1887 = load double, double* %1872
%1888 = load double, double* %1874
%1889 = load double, double* %1876
%1890 = add i32 %1884, %1800
br label %1891
1891: ; preds = %1880, %1891
%1892 = phi double [ %1889, %1880 ], [ %1916, %1891 ]
%1893 = phi double [ %1888, %1880 ], [ %1911, %1891 ]
%1894 = phi double [ %1887, %1880 ], [ %1906, %1891 ]
%1895 = phi i64 [ 0, %1880 ], [ %1922, %1891 ]
%1896 = phi double [ %1879, %1880 ], [ %1921, %1891 ]
%1897 = trunc i64 %1895 to i32
%1898 = add i32 %1890, %1897
%1899 = shl nsw i32 %1898, 2
%1900 = getelementptr inbounds double, double* %1640, i64 %1895
%1901 = load double, double* %1900
%1902 = fmul double %1886, %1901
%1903 = sext i32 %1899 to i64
%1904 = getelementptr inbounds double, double* %2, i64 %1903
%1905 = load double, double* %1904
%1906 = tail call double @llvm.fmuladd.f64(double %1902, double %1905, double %1894)
store double %1906, double* %1872
%1907 = or i32 %1899, 1
%1908 = sext i32 %1907 to i64
%1909 = getelementptr inbounds double, double* %2, i64 %1908
%1910 = load double, double* %1909
%1911 = tail call double @llvm.fmuladd.f64(double %1902, double %1910, double %1893)
store double %1911, double* %1874
%1912 = or i32 %1899, 2
%1913 = sext i32 %1912 to i64
%1914 = getelementptr inbounds double, double* %2, i64 %1913
%1915 = load double, double* %1914
%1916 = tail call double @llvm.fmuladd.f64(double %1902, double %1915, double %1892)
store double %1916, double* %1876
%1917 = or i32 %1899, 3
%1918 = sext i32 %1917 to i64
%1919 = getelementptr inbounds double, double* %2, i64 %1918
%1920 = load double, double* %1919
%1921 = tail call double @llvm.fmuladd.f64(double %1902, double %1920, double %1896)
%1922 = add nuw nsw i64 %1895, 1
%1923 = icmp eq i64 %1922, %1790
br i1 %1923, label %1924, label %1891
1924: ; preds = %1891, %1877
%1925 = phi double [ %1879, %1877 ], [ %1921, %1891 ]
%1926 = add nuw nsw i64 %1878, 1
%1927 = icmp eq i64 %1926, %1792
br i1 %1927, label %1928, label %1877
1928: ; preds = %1924, %1868
%1929 = phi i64 [ %1870, %1868 ], [ %1875, %1924 ]
%1930 = phi i64 [ %1869, %1868 ], [ %1873, %1924 ]
%1931 = phi double [ 0.000000e+00, %1868 ], [ %1925, %1924 ]
%1932 = getelementptr inbounds double, double* %13, i64 %1864
%1933 = load double, double* %1932
%1934 = fdiv double %1933, %1931
store double %1934, double* %1932
%1935 = getelementptr inbounds double, double* %13, i64 %1930
%1936 = load double, double* %1935
%1937 = fdiv double %1936, %1931
store double %1937, double* %1935
%1938 = getelementptr inbounds double, double* %13, i64 %1929
%1939 = load double, double* %1938
%1940 = fdiv double %1939, %1931
store double %1940, double* %1938
%1941 = add nuw nsw i64 %1862, 1
%1942 = icmp eq i64 %1941, %1791
br i1 %1942, label %1943, label %1861
1943: ; preds = %1928, %1848
%1944 = add nsw i64 %1801, %1763
br i1 %1785, label %1952, label %1945
1945: ; preds = %1943
%1946 = getelementptr inbounds double, double* %13, i64 %1944
%1947 = load double, double* %1946
%1948 = add nsw i64 %1944, 1
%1949 = getelementptr inbounds double, double* %13, i64 %1948
%1950 = load double, double* %1949
%1951 = add nsw i64 %1944, 2
br label %1994
1952: ; preds = %1943
%1953 = add nsw i32 %1800, %1787
%1954 = getelementptr inbounds double, double* %13, i64 %1944
%1955 = add nsw i64 %1944, 1
%1956 = getelementptr inbounds double, double* %13, i64 %1955
%1957 = add nsw i64 %1944, 2
%1958 = getelementptr inbounds double, double* %13, i64 %1957
%1959 = load double, double* %1954
%1960 = load double, double* %1956
%1961 = load double, double* %1958
br label %1962
1962: ; preds = %1952, %1962
%1963 = phi double [ %1961, %1952 ], [ %1986, %1962 ]
%1964 = phi double [ %1960, %1952 ], [ %1981, %1962 ]
%1965 = phi double [ %1959, %1952 ], [ %1976, %1962 ]
%1966 = phi i64 [ 0, %1952 ], [ %1992, %1962 ]
%1967 = phi double [ 0.000000e+00, %1952 ], [ %1991, %1962 ]
%1968 = trunc i64 %1966 to i32
%1969 = add i32 %1953, %1968
%1970 = shl nsw i32 %1969, 2
%1971 = getelementptr inbounds double, double* %1640, i64 %1966
%1972 = load double, double* %1971
%1973 = sext i32 %1970 to i64
%1974 = getelementptr inbounds double, double* %2, i64 %1973
%1975 = load double, double* %1974
%1976 = tail call double @llvm.fmuladd.f64(double %1972, double %1975, double %1965)
store double %1976, double* %1954
%1977 = or i32 %1970, 1
%1978 = sext i32 %1977 to i64
%1979 = getelementptr inbounds double, double* %2, i64 %1978
%1980 = load double, double* %1979
%1981 = tail call double @llvm.fmuladd.f64(double %1972, double %1980, double %1964)
store double %1981, double* %1956
%1982 = or i32 %1970, 2
%1983 = sext i32 %1982 to i64
%1984 = getelementptr inbounds double, double* %2, i64 %1983
%1985 = load double, double* %1984
%1986 = tail call double @llvm.fmuladd.f64(double %1972, double %1985, double %1963)
store double %1986, double* %1958
%1987 = or i32 %1970, 3
%1988 = sext i32 %1987 to i64
%1989 = getelementptr inbounds double, double* %2, i64 %1988
%1990 = load double, double* %1989
%1991 = tail call double @llvm.fmuladd.f64(double %1972, double %1990, double %1967)
%1992 = add nuw nsw i64 %1966, 1
%1993 = icmp eq i64 %1992, %1790
br i1 %1993, label %1994, label %1962
1994: ; preds = %1962, %1945
%1995 = phi i64 [ %1951, %1945 ], [ %1957, %1962 ]
%1996 = phi double [ %1950, %1945 ], [ %1981, %1962 ]
%1997 = phi i64 [ %1948, %1945 ], [ %1955, %1962 ]
%1998 = phi double [ %1947, %1945 ], [ %1976, %1962 ]
%1999 = phi double [ 0.000000e+00, %1945 ], [ %1991, %1962 ]
%2000 = getelementptr inbounds double, double* %13, i64 %1944
%2001 = fdiv double %1998, %1999
store double %2001, double* %2000
%2002 = getelementptr inbounds double, double* %13, i64 %1997
%2003 = fdiv double %1996, %1999
store double %2003, double* %2002
%2004 = getelementptr inbounds double, double* %13, i64 %1995
%2005 = load double, double* %2004
%2006 = fdiv double %2005, %1999
store double %2006, double* %2004
%2007 = add nuw nsw i64 %1794, 1
%2008 = icmp eq i64 %2007, %1789
br i1 %2008, label %2009, label %1793
2009: ; preds = %1994, %1748
%2010 = mul nsw i32 %15, 3
%2011 = add nsw i32 %64, -1
%2012 = sext i32 %65 to i64
%2013 = getelementptr inbounds double, double* %2, i64 %2012
%2014 = load double, double* %2013
%2015 = sext i32 %2011 to i64
%2016 = getelementptr inbounds double, double* %2, i64 %2015
%2017 = load double, double* %2016
%2018 = fdiv double %2014, %2017
%2019 = sext i32 %2010 to i64
%2020 = getelementptr inbounds double, double* %13, i64 %2019
store double %2018, double* %2020
%2021 = add nsw i32 %64, -3
%2022 = sext i32 %2021 to i64
%2023 = getelementptr inbounds double, double* %2, i64 %2022
%2024 = load double, double* %2023
%2025 = load double, double* %2016
%2026 = fdiv double %2024, %2025
%2027 = add nsw i32 %2010, 1
%2028 = sext i32 %2027 to i64
%2029 = getelementptr inbounds double, double* %13, i64 %2028
store double %2026, double* %2029
%2030 = add nsw i32 %64, -2
%2031 = sext i32 %2030 to i64
%2032 = getelementptr inbounds double, double* %2, i64 %2031
%2033 = load double, double* %2032
%2034 = load double, double* %2016
%2035 = fdiv double %2033, %2034
%2036 = add nsw i32 %2010, 2
%2037 = sext i32 %2036 to i64
%2038 = getelementptr inbounds double, double* %13, i64 %2037
store double %2035, double* %2038
br i1 %1664, label %2039, label %3187
2039: ; preds = %2009
%2040 = icmp sgt i32 %1, 0
%2041 = sext i32 %1647 to i64
%2042 = zext i32 %16 to i64
%2043 = zext i32 %1 to i64
br label %2044
2044: ; preds = %2039, %2100
%2045 = phi i64 [ 1, %2039 ], [ %2112, %2100 ]
%2046 = mul nsw i64 %2045, %2041
%2047 = add nsw i64 %2046, %2019
%2048 = mul nsw i64 %2045, %71
%2049 = getelementptr inbounds i32, i32* %1643, i64 %2045
%2050 = load i32, i32* %2049
%2051 = getelementptr inbounds double, double* %13, i64 %2047
br i1 %2040, label %2058, label %2052
2052: ; preds = %2044
%2053 = load double, double* %2051
%2054 = add nsw i64 %2047, 1
%2055 = getelementptr inbounds double, double* %13, i64 %2054
%2056 = load double, double* %2055
%2057 = add nsw i64 %2047, 2
br label %2100
2058: ; preds = %2044
%2059 = add nsw i64 %2047, 1
%2060 = getelementptr inbounds double, double* %13, i64 %2059
%2061 = add nsw i64 %2047, 2
%2062 = getelementptr inbounds double, double* %13, i64 %2061
%2063 = load double, double* %2051
%2064 = load double, double* %2060
%2065 = load double, double* %2062
br label %2066
2066: ; preds = %2058, %2066
%2067 = phi double [ %2065, %2058 ], [ %2092, %2066 ]
%2068 = phi double [ %2064, %2058 ], [ %2087, %2066 ]
%2069 = phi double [ %2063, %2058 ], [ %2082, %2066 ]
%2070 = phi i64 [ 0, %2058 ], [ %2098, %2066 ]
%2071 = phi double [ 0.000000e+00, %2058 ], [ %2097, %2066 ]
%2072 = trunc i64 %2070 to i32
%2073 = add i32 %2050, %2072
%2074 = mul i32 %2073, %64
%2075 = add i32 %2074, %65
%2076 = add nsw i64 %2070, %2048
%2077 = getelementptr inbounds double, double* %1646, i64 %2076
%2078 = load double, double* %2077
%2079 = sext i32 %2075 to i64
%2080 = getelementptr inbounds double, double* %2, i64 %2079
%2081 = load double, double* %2080
%2082 = tail call double @llvm.fmuladd.f64(double %2078, double %2081, double %2069)
store double %2082, double* %2051
%2083 = or i32 %2075, 1
%2084 = sext i32 %2083 to i64
%2085 = getelementptr inbounds double, double* %2, i64 %2084
%2086 = load double, double* %2085
%2087 = tail call double @llvm.fmuladd.f64(double %2078, double %2086, double %2068)
store double %2087, double* %2060
%2088 = or i32 %2075, 2
%2089 = sext i32 %2088 to i64
%2090 = getelementptr inbounds double, double* %2, i64 %2089
%2091 = load double, double* %2090
%2092 = tail call double @llvm.fmuladd.f64(double %2078, double %2091, double %2067)
store double %2092, double* %2062
%2093 = or i32 %2075, 3
%2094 = sext i32 %2093 to i64
%2095 = getelementptr inbounds double, double* %2, i64 %2094
%2096 = load double, double* %2095
%2097 = tail call double @llvm.fmuladd.f64(double %2078, double %2096, double %2071)
%2098 = add nuw nsw i64 %2070, 1
%2099 = icmp eq i64 %2098, %2043
br i1 %2099, label %2100, label %2066
2100: ; preds = %2066, %2052
%2101 = phi i64 [ %2057, %2052 ], [ %2061, %2066 ]
%2102 = phi double [ %2056, %2052 ], [ %2087, %2066 ]
%2103 = phi i64 [ %2054, %2052 ], [ %2059, %2066 ]
%2104 = phi double [ %2053, %2052 ], [ %2082, %2066 ]
%2105 = phi double [ 0.000000e+00, %2052 ], [ %2097, %2066 ]
%2106 = fdiv double %2104, %2105
store double %2106, double* %2051
%2107 = getelementptr inbounds double, double* %13, i64 %2103
%2108 = fdiv double %2102, %2105
store double %2108, double* %2107
%2109 = getelementptr inbounds double, double* %13, i64 %2101
%2110 = load double, double* %2109
%2111 = fdiv double %2110, %2105
store double %2111, double* %2109
%2112 = add nuw nsw i64 %2045, 1
%2113 = icmp eq i64 %2112, %2042
br i1 %2113, label %3187, label %2044
2114: ; preds = %1637
br i1 %55, label %2575, label %2115
2115: ; preds = %2114
store i32 %20, i32* %1643
%2116 = tail call i32 (i32, i32, double, double*, ...) bitcast (i32 (...)* @FindSpan to i32 (i32, i32, double, double*, ...)*)(i32 %3, i32 %18, double %7, double* %5)
%2117 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %2116, double %7, i32 %18, double* %5, double* %1640, double* %61, double* %63)
%2118 = sub nsw i32 %2116, %18
%2119 = icmp sgt i32 %0, 0
br i1 %2119, label %2125, label %2120
2120: ; preds = %2115
%2121 = bitcast double* %13 to <2 x double>*
%2122 = load <2 x double>, <2 x double>* %2121
%2123 = getelementptr inbounds double, double* %13, i64 2
%2124 = load double, double* %2123
br label %2167
2125: ; preds = %2115
%2126 = getelementptr inbounds double, double* %13, i64 1
%2127 = getelementptr inbounds double, double* %13, i64 2
%2128 = zext i32 %0 to i64
%2129 = load double, double* %13
%2130 = load double, double* %2126
%2131 = load double, double* %2127
br label %2132
2132: ; preds = %2125, %2132
%2133 = phi double [ %2131, %2125 ], [ %2156, %2132 ]
%2134 = phi double [ %2130, %2125 ], [ %2151, %2132 ]
%2135 = phi double [ %2129, %2125 ], [ %2146, %2132 ]
%2136 = phi i64 [ 0, %2125 ], [ %2162, %2132 ]
%2137 = phi double [ 0.000000e+00, %2125 ], [ %2161, %2132 ]
%2138 = trunc i64 %2136 to i32
%2139 = add nsw i32 %2118, %2138
%2140 = shl nsw i32 %2139, 2
%2141 = getelementptr inbounds double, double* %1640, i64 %2136
%2142 = load double, double* %2141
%2143 = sext i32 %2140 to i64
%2144 = getelementptr inbounds double, double* %2, i64 %2143
%2145 = load double, double* %2144
%2146 = tail call double @llvm.fmuladd.f64(double %2142, double %2145, double %2135)
store double %2146, double* %13
%2147 = or i32 %2140, 1
%2148 = sext i32 %2147 to i64
%2149 = getelementptr inbounds double, double* %2, i64 %2148
%2150 = load double, double* %2149
%2151 = tail call double @llvm.fmuladd.f64(double %2142, double %2150, double %2134)
store double %2151, double* %2126
%2152 = or i32 %2140, 2
%2153 = sext i32 %2152 to i64
%2154 = getelementptr inbounds double, double* %2, i64 %2153
%2155 = load double, double* %2154
%2156 = tail call double @llvm.fmuladd.f64(double %2142, double %2155, double %2133)
store double %2156, double* %2127
%2157 = or i32 %2140, 3
%2158 = sext i32 %2157 to i64
%2159 = getelementptr inbounds double, double* %2, i64 %2158
%2160 = load double, double* %2159
%2161 = tail call double @llvm.fmuladd.f64(double %2142, double %2160, double %2137)
%2162 = add nuw nsw i64 %2136, 1
%2163 = icmp eq i64 %2162, %2128
br i1 %2163, label %2164, label %2132
2164: ; preds = %2132
%2165 = insertelement <2 x double> poison, double %2146, i64 0
%2166 = insertelement <2 x double> %2165, double %2151, i64 1
br label %2167
2167: ; preds = %2164, %2120
%2168 = phi double [ %2124, %2120 ], [ %2156, %2164 ]
%2169 = phi double [ 0.000000e+00, %2120 ], [ %2161, %2164 ]
%2170 = phi <2 x double> [ %2122, %2120 ], [ %2166, %2164 ]
%2171 = insertelement <2 x double> poison, double %2169, i64 0
%2172 = shufflevector <2 x double> %2171, <2 x double> poison, <2 x i32> zeroinitializer
%2173 = fdiv <2 x double> %2170, %2172
%2174 = bitcast double* %13 to <2 x double>*
store <2 x double> %2173, <2 x double>* %2174
%2175 = getelementptr inbounds double, double* %13, i64 2
%2176 = fdiv double %2168, %2169
store double %2176, double* %2175
%2177 = icmp sgt i32 %12, 2
br i1 %2177, label %2178, label %2276
2178: ; preds = %2167
%2179 = icmp sgt i32 %1, 0
%2180 = sext i32 %1647 to i64
%2181 = zext i32 %16 to i64
%2182 = load i32, i32* %1643
%2183 = zext i32 %1 to i64
%2184 = zext i32 %0 to i64
br label %2185
2185: ; preds = %2178, %2261
%2186 = phi i32 [ %2182, %2178 ], [ %2199, %2261 ]
%2187 = phi i64 [ 1, %2178 ], [ %2274, %2261 ]
%2188 = phi double [ %10, %2178 ], [ %2192, %2261 ]
%2189 = phi i32 [ 0, %2178 ], [ %2200, %2261 ]
%2190 = mul nsw i64 %2187, %2180
%2191 = mul nsw i64 %2187, %71
%2192 = fadd double %2188, %11
%2193 = add nsw i64 %2187, -1
%2194 = getelementptr inbounds i32, i32* %1643, i64 %2193
%2195 = tail call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %4, double %2192, double* %6, i32 %2186)
%2196 = getelementptr inbounds i32, i32* %1643, i64 %2187
store i32 %2195, i32* %2196
%2197 = getelementptr inbounds double, double* %1646, i64 %2191
%2198 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %2195, double %2192, i32 %20, double* %6, double* %2197, double* %61, double* %63)
store i32 %2189, i32* %2194
%2199 = load i32, i32* %2196
%2200 = sub nsw i32 %2199, %20
br i1 %2179, label %2204, label %2201
2201: ; preds = %2185
%2202 = add nsw i64 %2190, 1
%2203 = add nsw i64 %2190, 2
br label %2261
2204: ; preds = %2185
%2205 = getelementptr inbounds double, double* %13, i64 %2190
%2206 = add nsw i64 %2190, 1
%2207 = getelementptr inbounds double, double* %13, i64 %2206
%2208 = add nsw i64 %2190, 2
%2209 = getelementptr inbounds double, double* %13, i64 %2208
br label %2210
2210: ; preds = %2204, %2257
%2211 = phi i64 [ 0, %2204 ], [ %2259, %2257 ]
%2212 = phi double [ 0.000000e+00, %2204 ], [ %2258, %2257 ]
br i1 %2119, label %2213, label %2257
2213: ; preds = %2210
%2214 = add nsw i64 %2211, %2191
%2215 = trunc i64 %2211 to i32
%2216 = add i32 %2200, %2215
%2217 = mul i32 %2216, %3
%2218 = getelementptr inbounds double, double* %1646, i64 %2214
%2219 = load double, double* %2218
%2220 = load double, double* %2205
%2221 = load double, double* %2207
%2222 = load double, double* %2209
%2223 = add i32 %2217, %2118
br label %2224
2224: ; preds = %2213, %2224
%2225 = phi double [ %2222, %2213 ], [ %2249, %2224 ]
%2226 = phi double [ %2221, %2213 ], [ %2244, %2224 ]
%2227 = phi double [ %2220, %2213 ], [ %2239, %2224 ]
%2228 = phi i64 [ 0, %2213 ], [ %2255, %2224 ]
%2229 = phi double [ %2212, %2213 ], [ %2254, %2224 ]
%2230 = trunc i64 %2228 to i32
%2231 = add i32 %2223, %2230
%2232 = shl nsw i32 %2231, 2
%2233 = getelementptr inbounds double, double* %1640, i64 %2228
%2234 = load double, double* %2233
%2235 = fmul double %2219, %2234
%2236 = sext i32 %2232 to i64
%2237 = getelementptr inbounds double, double* %2, i64 %2236
%2238 = load double, double* %2237
%2239 = tail call double @llvm.fmuladd.f64(double %2235, double %2238, double %2227)
store double %2239, double* %2205
%2240 = or i32 %2232, 1
%2241 = sext i32 %2240 to i64
%2242 = getelementptr inbounds double, double* %2, i64 %2241
%2243 = load double, double* %2242
%2244 = tail call double @llvm.fmuladd.f64(double %2235, double %2243, double %2226)
store double %2244, double* %2207
%2245 = or i32 %2232, 2
%2246 = sext i32 %2245 to i64
%2247 = getelementptr inbounds double, double* %2, i64 %2246
%2248 = load double, double* %2247
%2249 = tail call double @llvm.fmuladd.f64(double %2235, double %2248, double %2225)
store double %2249, double* %2209
%2250 = or i32 %2232, 3
%2251 = sext i32 %2250 to i64
%2252 = getelementptr inbounds double, double* %2, i64 %2251
%2253 = load double, double* %2252
%2254 = tail call double @llvm.fmuladd.f64(double %2235, double %2253, double %2229)
%2255 = add nuw nsw i64 %2228, 1
%2256 = icmp eq i64 %2255, %2184
br i1 %2256, label %2257, label %2224
2257: ; preds = %2224, %2210
%2258 = phi double [ %2212, %2210 ], [ %2254, %2224 ]
%2259 = add nuw nsw i64 %2211, 1
%2260 = icmp eq i64 %2259, %2183
br i1 %2260, label %2261, label %2210
2261: ; preds = %2257, %2201
%2262 = phi i64 [ %2203, %2201 ], [ %2208, %2257 ]
%2263 = phi i64 [ %2202, %2201 ], [ %2206, %2257 ]
%2264 = phi double [ 0.000000e+00, %2201 ], [ %2258, %2257 ]
%2265 = getelementptr inbounds double, double* %13, i64 %2190
%2266 = load double, double* %2265
%2267 = fdiv double %2266, %2264
store double %2267, double* %2265
%2268 = getelementptr inbounds double, double* %13, i64 %2263
%2269 = load double, double* %2268
%2270 = fdiv double %2269, %2264
store double %2270, double* %2268
%2271 = getelementptr inbounds double, double* %13, i64 %2262
%2272 = load double, double* %2271
%2273 = fdiv double %2272, %2264
store double %2273, double* %2271
%2274 = add nuw nsw i64 %2187, 1
%2275 = icmp eq i64 %2274, %2181
br i1 %2275, label %2276, label %2185
2276: ; preds = %2261, %2167
%2277 = phi i32 [ 0, %2167 ], [ %2200, %2261 ]
%2278 = add nsw i32 %12, -2
%2279 = sext i32 %2278 to i64
%2280 = getelementptr inbounds i32, i32* %1643, i64 %2279
store i32 %2277, i32* %2280
%2281 = mul nsw i32 %16, %1647
%2282 = mul nsw i32 %17, %3
br i1 %2119, label %2291, label %2283
2283: ; preds = %2276
%2284 = sext i32 %2281 to i64
%2285 = getelementptr inbounds double, double* %13, i64 %2284
%2286 = load double, double* %2285
%2287 = add nsw i32 %2281, 1
%2288 = sext i32 %2287 to i64
%2289 = add nsw i32 %2281, 2
%2290 = sext i32 %2289 to i64
br label %2337
2291: ; preds = %2276
%2292 = add nsw i32 %2118, %2282
%2293 = sext i32 %2281 to i64
%2294 = getelementptr inbounds double, double* %13, i64 %2293
%2295 = add nsw i32 %2281, 1
%2296 = sext i32 %2295 to i64
%2297 = getelementptr inbounds double, double* %13, i64 %2296
%2298 = add nsw i32 %2281, 2
%2299 = sext i32 %2298 to i64
%2300 = getelementptr inbounds double, double* %13, i64 %2299
%2301 = zext i32 %0 to i64
%2302 = load double, double* %2294
%2303 = load double, double* %2297
%2304 = load double, double* %2300
br label %2305
2305: ; preds = %2291, %2305
%2306 = phi double [ %2304, %2291 ], [ %2329, %2305 ]
%2307 = phi double [ %2303, %2291 ], [ %2324, %2305 ]
%2308 = phi double [ %2302, %2291 ], [ %2319, %2305 ]
%2309 = phi i64 [ 0, %2291 ], [ %2335, %2305 ]
%2310 = phi double [ 0.000000e+00, %2291 ], [ %2334, %2305 ]
%2311 = trunc i64 %2309 to i32
%2312 = add i32 %2292, %2311
%2313 = shl nsw i32 %2312, 2
%2314 = getelementptr inbounds double, double* %1640, i64 %2309
%2315 = load double, double* %2314
%2316 = sext i32 %2313 to i64
%2317 = getelementptr inbounds double, double* %2, i64 %2316
%2318 = load double, double* %2317
%2319 = tail call double @llvm.fmuladd.f64(double %2315, double %2318, double %2308)
store double %2319, double* %2294
%2320 = or i32 %2313, 1
%2321 = sext i32 %2320 to i64
%2322 = getelementptr inbounds double, double* %2, i64 %2321
%2323 = load double, double* %2322
%2324 = tail call double @llvm.fmuladd.f64(double %2315, double %2323, double %2307)
store double %2324, double* %2297
%2325 = or i32 %2313, 2
%2326 = sext i32 %2325 to i64
%2327 = getelementptr inbounds double, double* %2, i64 %2326
%2328 = load double, double* %2327
%2329 = tail call double @llvm.fmuladd.f64(double %2315, double %2328, double %2306)
store double %2329, double* %2300
%2330 = or i32 %2313, 3
%2331 = sext i32 %2330 to i64
%2332 = getelementptr inbounds double, double* %2, i64 %2331
%2333 = load double, double* %2332
%2334 = tail call double @llvm.fmuladd.f64(double %2315, double %2333, double %2310)
%2335 = add nuw nsw i64 %2309, 1
%2336 = icmp eq i64 %2335, %2301
br i1 %2336, label %2337, label %2305
2337: ; preds = %2305, %2283
%2338 = phi i64 [ %2290, %2283 ], [ %2299, %2305 ]
%2339 = phi i64 [ %2288, %2283 ], [ %2296, %2305 ]
%2340 = phi i64 [ %2284, %2283 ], [ %2293, %2305 ]
%2341 = phi double [ %2286, %2283 ], [ %2319, %2305 ]
%2342 = phi double [ 0.000000e+00, %2283 ], [ %2334, %2305 ]
%2343 = getelementptr inbounds double, double* %13, i64 %2340
%2344 = fdiv double %2341, %2342
store double %2344, double* %2343
%2345 = getelementptr inbounds double, double* %13, i64 %2339
%2346 = load double, double* %2345
%2347 = fdiv double %2346, %2342
store double %2347, double* %2345
%2348 = getelementptr inbounds double, double* %13, i64 %2338
%2349 = load double, double* %2348
%2350 = fdiv double %2349, %2342
store double %2350, double* %2348
%2351 = icmp sgt i32 %9, 1
br i1 %2351, label %2352, label %3224
2352: ; preds = %2337
%2353 = icmp sgt i32 %1, 0
%2354 = sext i32 %1647 to i64
%2355 = zext i32 %9 to i64
%2356 = zext i32 %0 to i64
%2357 = zext i32 %16 to i64
%2358 = zext i32 %1 to i64
br label %2359
2359: ; preds = %2352, %2560
%2360 = phi i64 [ 1, %2352 ], [ %2573, %2560 ]
%2361 = phi double [ %7, %2352 ], [ %2363, %2560 ]
%2362 = phi i32 [ %2116, %2352 ], [ %2364, %2560 ]
%2363 = fadd double %2361, %8
%2364 = tail call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %3, double %2363, double* %5, i32 %2362)
%2365 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %2364, double %2363, i32 %18, double* %5, double* %1640, double* %61, double* %63)
%2366 = sub nsw i32 %2364, %18
%2367 = mul nuw nsw i64 %2360, 3
%2368 = and i64 %2367, 4294967295
br i1 %2119, label %2374, label %2369
2369: ; preds = %2359
%2370 = add nuw nsw i64 %2367, 1
%2371 = and i64 %2370, 4294967295
%2372 = add nuw nsw i64 %2367, 2
%2373 = and i64 %2372, 4294967295
br label %2414
2374: ; preds = %2359
%2375 = getelementptr inbounds double, double* %13, i64 %2368
%2376 = add nuw nsw i64 %2367, 1
%2377 = and i64 %2376, 4294967295
%2378 = getelementptr inbounds double, double* %13, i64 %2377
%2379 = add nuw nsw i64 %2367, 2
%2380 = and i64 %2379, 4294967295
%2381 = getelementptr inbounds double, double* %13, i64 %2380
br label %2382
2382: ; preds = %2374, %2382
%2383 = phi i64 [ 0, %2374 ], [ %2412, %2382 ]
%2384 = phi double [ 0.000000e+00, %2374 ], [ %2411, %2382 ]
%2385 = trunc i64 %2383 to i32
%2386 = add nsw i32 %2366, %2385
%2387 = shl nsw i32 %2386, 2
%2388 = getelementptr inbounds double, double* %1640, i64 %2383
%2389 = load double, double* %2388
%2390 = sext i32 %2387 to i64
%2391 = getelementptr inbounds double, double* %2, i64 %2390
%2392 = load double, double* %2391
%2393 = load double, double* %2375
%2394 = tail call double @llvm.fmuladd.f64(double %2389, double %2392, double %2393)
store double %2394, double* %2375
%2395 = or i32 %2387, 1
%2396 = sext i32 %2395 to i64
%2397 = getelementptr inbounds double, double* %2, i64 %2396
%2398 = load double, double* %2397
%2399 = load double, double* %2378
%2400 = tail call double @llvm.fmuladd.f64(double %2389, double %2398, double %2399)
store double %2400, double* %2378
%2401 = or i32 %2387, 2
%2402 = sext i32 %2401 to i64
%2403 = getelementptr inbounds double, double* %2, i64 %2402
%2404 = load double, double* %2403
%2405 = load double, double* %2381
%2406 = tail call double @llvm.fmuladd.f64(double %2389, double %2404, double %2405)
store double %2406, double* %2381
%2407 = or i32 %2387, 3
%2408 = sext i32 %2407 to i64
%2409 = getelementptr inbounds double, double* %2, i64 %2408
%2410 = load double, double* %2409
%2411 = tail call double @llvm.fmuladd.f64(double %2389, double %2410, double %2384)
%2412 = add nuw nsw i64 %2383, 1
%2413 = icmp eq i64 %2412, %2356
br i1 %2413, label %2414, label %2382
2414: ; preds = %2382, %2369
%2415 = phi i64 [ %2373, %2369 ], [ %2380, %2382 ]
%2416 = phi i64 [ %2371, %2369 ], [ %2377, %2382 ]
%2417 = phi double [ 0.000000e+00, %2369 ], [ %2411, %2382 ]
%2418 = getelementptr inbounds double, double* %13, i64 %2368
%2419 = load double, double* %2418
%2420 = fdiv double %2419, %2417
store double %2420, double* %2418
%2421 = getelementptr inbounds double, double* %13, i64 %2416
%2422 = load double, double* %2421
%2423 = fdiv double %2422, %2417
store double %2423, double* %2421
%2424 = getelementptr inbounds double, double* %13, i64 %2415
%2425 = load double, double* %2424
%2426 = fdiv double %2425, %2417
store double %2426, double* %2424
br i1 %2177, label %2427, label %2509
2427: ; preds = %2414, %2494
%2428 = phi i64 [ %2507, %2494 ], [ 1, %2414 ]
%2429 = mul nsw i64 %2428, %2354
%2430 = add nsw i64 %2429, %2367
%2431 = mul nsw i64 %2428, %71
%2432 = getelementptr inbounds i32, i32* %1643, i64 %2428
%2433 = load i32, i32* %2432
br i1 %2353, label %2437, label %2434
2434: ; preds = %2427
%2435 = add nsw i64 %2430, 1
%2436 = add nsw i64 %2430, 2
br label %2494
2437: ; preds = %2427
%2438 = getelementptr inbounds double, double* %13, i64 %2430
%2439 = add nsw i64 %2430, 1
%2440 = getelementptr inbounds double, double* %13, i64 %2439
%2441 = add nsw i64 %2430, 2
%2442 = getelementptr inbounds double, double* %13, i64 %2441
br label %2443
2443: ; preds = %2437, %2490
%2444 = phi i64 [ 0, %2437 ], [ %2492, %2490 ]
%2445 = phi double [ 0.000000e+00, %2437 ], [ %2491, %2490 ]
br i1 %2119, label %2446, label %2490
2446: ; preds = %2443
%2447 = add nsw i64 %2444, %2431
%2448 = trunc i64 %2444 to i32
%2449 = add i32 %2433, %2448
%2450 = mul i32 %2449, %3
%2451 = getelementptr inbounds double, double* %1646, i64 %2447
%2452 = load double, double* %2451
%2453 = load double, double* %2438
%2454 = load double, double* %2440
%2455 = load double, double* %2442
%2456 = add i32 %2450, %2366
br label %2457
2457: ; preds = %2446, %2457
%2458 = phi double [ %2455, %2446 ], [ %2482, %2457 ]
%2459 = phi double [ %2454, %2446 ], [ %2477, %2457 ]
%2460 = phi double [ %2453, %2446 ], [ %2472, %2457 ]
%2461 = phi i64 [ 0, %2446 ], [ %2488, %2457 ]
%2462 = phi double [ %2445, %2446 ], [ %2487, %2457 ]
%2463 = trunc i64 %2461 to i32
%2464 = add i32 %2456, %2463
%2465 = shl nsw i32 %2464, 2
%2466 = getelementptr inbounds double, double* %1640, i64 %2461
%2467 = load double, double* %2466
%2468 = fmul double %2452, %2467
%2469 = sext i32 %2465 to i64
%2470 = getelementptr inbounds double, double* %2, i64 %2469
%2471 = load double, double* %2470
%2472 = tail call double @llvm.fmuladd.f64(double %2468, double %2471, double %2460)
store double %2472, double* %2438
%2473 = or i32 %2465, 1
%2474 = sext i32 %2473 to i64
%2475 = getelementptr inbounds double, double* %2, i64 %2474
%2476 = load double, double* %2475
%2477 = tail call double @llvm.fmuladd.f64(double %2468, double %2476, double %2459)
store double %2477, double* %2440
%2478 = or i32 %2465, 2
%2479 = sext i32 %2478 to i64
%2480 = getelementptr inbounds double, double* %2, i64 %2479
%2481 = load double, double* %2480
%2482 = tail call double @llvm.fmuladd.f64(double %2468, double %2481, double %2458)
store double %2482, double* %2442
%2483 = or i32 %2465, 3
%2484 = sext i32 %2483 to i64
%2485 = getelementptr inbounds double, double* %2, i64 %2484
%2486 = load double, double* %2485
%2487 = tail call double @llvm.fmuladd.f64(double %2468, double %2486, double %2462)
%2488 = add nuw nsw i64 %2461, 1
%2489 = icmp eq i64 %2488, %2356
br i1 %2489, label %2490, label %2457
2490: ; preds = %2457, %2443
%2491 = phi double [ %2445, %2443 ], [ %2487, %2457 ]
%2492 = add nuw nsw i64 %2444, 1
%2493 = icmp eq i64 %2492, %2358
br i1 %2493, label %2494, label %2443
2494: ; preds = %2490, %2434
%2495 = phi i64 [ %2436, %2434 ], [ %2441, %2490 ]
%2496 = phi i64 [ %2435, %2434 ], [ %2439, %2490 ]
%2497 = phi double [ 0.000000e+00, %2434 ], [ %2491, %2490 ]
%2498 = getelementptr inbounds double, double* %13, i64 %2430
%2499 = load double, double* %2498
%2500 = fdiv double %2499, %2497
store double %2500, double* %2498
%2501 = getelementptr inbounds double, double* %13, i64 %2496
%2502 = load double, double* %2501
%2503 = fdiv double %2502, %2497
store double %2503, double* %2501
%2504 = getelementptr inbounds double, double* %13, i64 %2495
%2505 = load double, double* %2504
%2506 = fdiv double %2505, %2497
store double %2506, double* %2504
%2507 = add nuw nsw i64 %2428, 1
%2508 = icmp eq i64 %2507, %2357
br i1 %2508, label %2509, label %2427
2509: ; preds = %2494, %2414
%2510 = add nsw i64 %2367, %2340
br i1 %2119, label %2518, label %2511
2511: ; preds = %2509
%2512 = getelementptr inbounds double, double* %13, i64 %2510
%2513 = load double, double* %2512
%2514 = add nsw i64 %2510, 1
%2515 = getelementptr inbounds double, double* %13, i64 %2514
%2516 = load double, double* %2515
%2517 = add nsw i64 %2510, 2
br label %2560
2518: ; preds = %2509
%2519 = add nsw i32 %2366, %2282
%2520 = getelementptr inbounds double, double* %13, i64 %2510
%2521 = add nsw i64 %2510, 1
%2522 = getelementptr inbounds double, double* %13, i64 %2521
%2523 = add nsw i64 %2510, 2
%2524 = getelementptr inbounds double, double* %13, i64 %2523
%2525 = load double, double* %2520
%2526 = load double, double* %2522
%2527 = load double, double* %2524
br label %2528
2528: ; preds = %2518, %2528
%2529 = phi double [ %2527, %2518 ], [ %2552, %2528 ]
%2530 = phi double [ %2526, %2518 ], [ %2547, %2528 ]
%2531 = phi double [ %2525, %2518 ], [ %2542, %2528 ]
%2532 = phi i64 [ 0, %2518 ], [ %2558, %2528 ]
%2533 = phi double [ 0.000000e+00, %2518 ], [ %2557, %2528 ]
%2534 = trunc i64 %2532 to i32
%2535 = add i32 %2519, %2534
%2536 = shl nsw i32 %2535, 2
%2537 = getelementptr inbounds double, double* %1640, i64 %2532
%2538 = load double, double* %2537
%2539 = sext i32 %2536 to i64
%2540 = getelementptr inbounds double, double* %2, i64 %2539
%2541 = load double, double* %2540
%2542 = tail call double @llvm.fmuladd.f64(double %2538, double %2541, double %2531)
store double %2542, double* %2520
%2543 = or i32 %2536, 1
%2544 = sext i32 %2543 to i64
%2545 = getelementptr inbounds double, double* %2, i64 %2544
%2546 = load double, double* %2545
%2547 = tail call double @llvm.fmuladd.f64(double %2538, double %2546, double %2530)
store double %2547, double* %2522
%2548 = or i32 %2536, 2
%2549 = sext i32 %2548 to i64
%2550 = getelementptr inbounds double, double* %2, i64 %2549
%2551 = load double, double* %2550
%2552 = tail call double @llvm.fmuladd.f64(double %2538, double %2551, double %2529)
store double %2552, double* %2524
%2553 = or i32 %2536, 3
%2554 = sext i32 %2553 to i64
%2555 = getelementptr inbounds double, double* %2, i64 %2554
%2556 = load double, double* %2555
%2557 = tail call double @llvm.fmuladd.f64(double %2538, double %2556, double %2533)
%2558 = add nuw nsw i64 %2532, 1
%2559 = icmp eq i64 %2558, %2356
br i1 %2559, label %2560, label %2528
2560: ; preds = %2528, %2511
%2561 = phi i64 [ %2517, %2511 ], [ %2523, %2528 ]
%2562 = phi double [ %2516, %2511 ], [ %2547, %2528 ]
%2563 = phi i64 [ %2514, %2511 ], [ %2521, %2528 ]
%2564 = phi double [ %2513, %2511 ], [ %2542, %2528 ]
%2565 = phi double [ 0.000000e+00, %2511 ], [ %2557, %2528 ]
%2566 = getelementptr inbounds double, double* %13, i64 %2510
%2567 = fdiv double %2564, %2565
store double %2567, double* %2566
%2568 = getelementptr inbounds double, double* %13, i64 %2563
%2569 = fdiv double %2562, %2565
store double %2569, double* %2568
%2570 = getelementptr inbounds double, double* %13, i64 %2561
%2571 = load double, double* %2570
%2572 = fdiv double %2571, %2565
store double %2572, double* %2570
%2573 = add nuw nsw i64 %2360, 1
%2574 = icmp eq i64 %2573, %2355
br i1 %2574, label %3224, label %2359
2575: ; preds = %2114
%2576 = tail call i32 (i32, i32, double, double*, ...) bitcast (i32 (...)* @FindSpan to i32 (i32, i32, double, double*, ...)*)(i32 %4, i32 %20, double %10, double* %6)
store i32 %2576, i32* %1643
%2577 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %2576, double %10, i32 %20, double* %6, double* %1646, double* %61, double* %63)
%2578 = load i32, i32* %1643
%2579 = sub nsw i32 %2578, %20
br i1 %38, label %2908, label %2580
2580: ; preds = %2575
%2581 = icmp sgt i32 %1, 0
br i1 %2581, label %2587, label %2582
2582: ; preds = %2580
%2583 = bitcast double* %13 to <2 x double>*
%2584 = load <2 x double>, <2 x double>* %2583
%2585 = getelementptr inbounds double, double* %13, i64 2
%2586 = load double, double* %2585
br label %2629
2587: ; preds = %2580
%2588 = getelementptr inbounds double, double* %13, i64 1
%2589 = getelementptr inbounds double, double* %13, i64 2
%2590 = zext i32 %1 to i64
%2591 = load double, double* %13
%2592 = load double, double* %2588
%2593 = load double, double* %2589
br label %2594
2594: ; preds = %2587, %2594
%2595 = phi double [ %2593, %2587 ], [ %2618, %2594 ]
%2596 = phi double [ %2592, %2587 ], [ %2613, %2594 ]
%2597 = phi double [ %2591, %2587 ], [ %2608, %2594 ]
%2598 = phi i64 [ 0, %2587 ], [ %2624, %2594 ]
%2599 = phi double [ 0.000000e+00, %2587 ], [ %2623, %2594 ]
%2600 = trunc i64 %2598 to i32
%2601 = add nsw i32 %2579, %2600
%2602 = mul nsw i32 %2601, %64
%2603 = getelementptr inbounds double, double* %1646, i64 %2598
%2604 = load double, double* %2603
%2605 = sext i32 %2602 to i64
%2606 = getelementptr inbounds double, double* %2, i64 %2605
%2607 = load double, double* %2606
%2608 = tail call double @llvm.fmuladd.f64(double %2604, double %2607, double %2597)
store double %2608, double* %13
%2609 = or i32 %2602, 1
%2610 = sext i32 %2609 to i64
%2611 = getelementptr inbounds double, double* %2, i64 %2610
%2612 = load double, double* %2611
%2613 = tail call double @llvm.fmuladd.f64(double %2604, double %2612, double %2596)
store double %2613, double* %2588
%2614 = or i32 %2602, 2
%2615 = sext i32 %2614 to i64
%2616 = getelementptr inbounds double, double* %2, i64 %2615
%2617 = load double, double* %2616
%2618 = tail call double @llvm.fmuladd.f64(double %2604, double %2617, double %2595)
store double %2618, double* %2589
%2619 = or i32 %2602, 3
%2620 = sext i32 %2619 to i64
%2621 = getelementptr inbounds double, double* %2, i64 %2620
%2622 = load double, double* %2621
%2623 = tail call double @llvm.fmuladd.f64(double %2604, double %2622, double %2599)
%2624 = add nuw nsw i64 %2598, 1
%2625 = icmp eq i64 %2624, %2590
br i1 %2625, label %2626, label %2594
2626: ; preds = %2594
%2627 = insertelement <2 x double> poison, double %2608, i64 0
%2628 = insertelement <2 x double> %2627, double %2613, i64 1
br label %2629
2629: ; preds = %2626, %2582
%2630 = phi double [ %2586, %2582 ], [ %2618, %2626 ]
%2631 = phi double [ 0.000000e+00, %2582 ], [ %2623, %2626 ]
%2632 = phi <2 x double> [ %2584, %2582 ], [ %2628, %2626 ]
%2633 = insertelement <2 x double> poison, double %2631, i64 0
%2634 = shufflevector <2 x double> %2633, <2 x double> poison, <2 x i32> zeroinitializer
%2635 = fdiv <2 x double> %2632, %2634
%2636 = bitcast double* %13 to <2 x double>*
store <2 x double> %2635, <2 x double>* %2636
%2637 = getelementptr inbounds double, double* %13, i64 2
%2638 = fdiv double %2630, %2631
store double %2638, double* %2637
%2639 = icmp sgt i32 %12, 1
br i1 %2639, label %2640, label %2722
2640: ; preds = %2629
%2641 = sext i32 %1647 to i64
%2642 = zext i32 %12 to i64
%2643 = zext i32 %1 to i64
br label %2644
2644: ; preds = %2640, %2708
%2645 = phi i32 [ %2578, %2640 ], [ %2658, %2708 ]
%2646 = phi i64 [ 1, %2640 ], [ %2720, %2708 ]
%2647 = phi double [ %10, %2640 ], [ %2651, %2708 ]
%2648 = phi i32 [ %2579, %2640 ], [ %2659, %2708 ]
%2649 = mul nsw i64 %2646, %2641
%2650 = mul nsw i64 %2646, %71
%2651 = fadd double %2647, %11
%2652 = add nsw i64 %2646, -1
%2653 = getelementptr inbounds i32, i32* %1643, i64 %2652
%2654 = tail call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %4, double %2651, double* %6, i32 %2645)
%2655 = getelementptr inbounds i32, i32* %1643, i64 %2646
store i32 %2654, i32* %2655
%2656 = getelementptr inbounds double, double* %1646, i64 %2650
%2657 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %2654, double %2651, i32 %20, double* %6, double* %2656, double* %61, double* %63)
store i32 %2648, i32* %2653
%2658 = load i32, i32* %2655
%2659 = sub nsw i32 %2658, %20
%2660 = getelementptr inbounds double, double* %13, i64 %2649
br i1 %2581, label %2667, label %2661
2661: ; preds = %2644
%2662 = load double, double* %2660
%2663 = add nsw i64 %2649, 1
%2664 = getelementptr inbounds double, double* %13, i64 %2663
%2665 = load double, double* %2664
%2666 = add nsw i64 %2649, 2
br label %2708
2667: ; preds = %2644
%2668 = add nsw i64 %2649, 1
%2669 = getelementptr inbounds double, double* %13, i64 %2668
%2670 = add nsw i64 %2649, 2
%2671 = getelementptr inbounds double, double* %13, i64 %2670
%2672 = load double, double* %2660
%2673 = load double, double* %2669
%2674 = load double, double* %2671
br label %2675
2675: ; preds = %2667, %2675
%2676 = phi double [ %2674, %2667 ], [ %2700, %2675 ]
%2677 = phi double [ %2673, %2667 ], [ %2695, %2675 ]
%2678 = phi double [ %2672, %2667 ], [ %2690, %2675 ]
%2679 = phi i64 [ 0, %2667 ], [ %2706, %2675 ]
%2680 = phi double [ 0.000000e+00, %2667 ], [ %2705, %2675 ]
%2681 = trunc i64 %2679 to i32
%2682 = add nsw i64 %2679, %2650
%2683 = add nsw i32 %2659, %2681
%2684 = mul nsw i32 %2683, %64
%2685 = getelementptr inbounds double, double* %1646, i64 %2682
%2686 = load double, double* %2685
%2687 = sext i32 %2684 to i64
%2688 = getelementptr inbounds double, double* %2, i64 %2687
%2689 = load double, double* %2688
%2690 = tail call double @llvm.fmuladd.f64(double %2686, double %2689, double %2678)
store double %2690, double* %2660
%2691 = or i32 %2684, 1
%2692 = sext i32 %2691 to i64
%2693 = getelementptr inbounds double, double* %2, i64 %2692
%2694 = load double, double* %2693
%2695 = tail call double @llvm.fmuladd.f64(double %2686, double %2694, double %2677)
store double %2695, double* %2669
%2696 = or i32 %2684, 2
%2697 = sext i32 %2696 to i64
%2698 = getelementptr inbounds double, double* %2, i64 %2697
%2699 = load double, double* %2698
%2700 = tail call double @llvm.fmuladd.f64(double %2686, double %2699, double %2676)
store double %2700, double* %2671
%2701 = or i32 %2684, 3
%2702 = sext i32 %2701 to i64
%2703 = getelementptr inbounds double, double* %2, i64 %2702
%2704 = load double, double* %2703
%2705 = tail call double @llvm.fmuladd.f64(double %2686, double %2704, double %2680)
%2706 = add nuw nsw i64 %2679, 1
%2707 = icmp eq i64 %2706, %2643
br i1 %2707, label %2708, label %2675
2708: ; preds = %2675, %2661
%2709 = phi i64 [ %2666, %2661 ], [ %2670, %2675 ]
%2710 = phi double [ %2665, %2661 ], [ %2695, %2675 ]
%2711 = phi i64 [ %2663, %2661 ], [ %2668, %2675 ]
%2712 = phi double [ %2662, %2661 ], [ %2690, %2675 ]
%2713 = phi double [ 0.000000e+00, %2661 ], [ %2705, %2675 ]
%2714 = fdiv double %2712, %2713
store double %2714, double* %2660
%2715 = getelementptr inbounds double, double* %13, i64 %2711
%2716 = fdiv double %2710, %2713
store double %2716, double* %2715
%2717 = getelementptr inbounds double, double* %13, i64 %2709
%2718 = load double, double* %2717
%2719 = fdiv double %2718, %2713
store double %2719, double* %2717
%2720 = add nuw nsw i64 %2646, 1
%2721 = icmp eq i64 %2720, %2642
br i1 %2721, label %2722, label %2644
2722: ; preds = %2708, %2629
%2723 = phi i32 [ %2579, %2629 ], [ %2659, %2708 ]
%2724 = sext i32 %16 to i64
%2725 = getelementptr inbounds i32, i32* %1643, i64 %2724
store i32 %2723, i32* %2725
%2726 = icmp sgt i32 %9, 2
br i1 %2726, label %2727, label %2830
2727: ; preds = %2722
%2728 = icmp sgt i32 %12, 0
%2729 = icmp sgt i32 %0, 0
%2730 = sext i32 %1647 to i64
%2731 = zext i32 %15 to i64
%2732 = zext i32 %12 to i64
%2733 = zext i32 %1 to i64
%2734 = zext i32 %0 to i64
br label %2735
2735: ; preds = %2727, %2827
%2736 = phi i64 [ 1, %2727 ], [ %2828, %2827 ]
%2737 = phi double [ %7, %2727 ], [ %2739, %2827 ]
%2738 = phi i32 [ %18, %2727 ], [ %2740, %2827 ]
%2739 = fadd double %2737, %8
%2740 = tail call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %3, double %2739, double* %5, i32 %2738)
%2741 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %2740, double %2739, i32 %18, double* %5, double* %1640, double* %61, double* %63)
%2742 = mul nuw nsw i64 %2736, 3
br i1 %2728, label %2743, label %2827
2743: ; preds = %2735
%2744 = add i32 %2740, %19
br label %2745
2745: ; preds = %2743, %2812
%2746 = phi i64 [ 0, %2743 ], [ %2825, %2812 ]
%2747 = mul nsw i64 %2746, %2730
%2748 = add nsw i64 %2747, %2742
%2749 = mul nsw i64 %2746, %71
%2750 = getelementptr inbounds i32, i32* %1643, i64 %2746
%2751 = load i32, i32* %2750
br i1 %2581, label %2755, label %2752
2752: ; preds = %2745
%2753 = add nsw i64 %2748, 1
%2754 = add nsw i64 %2748, 2
br label %2812
2755: ; preds = %2745
%2756 = getelementptr inbounds double, double* %13, i64 %2748
%2757 = add nsw i64 %2748, 1
%2758 = getelementptr inbounds double, double* %13, i64 %2757
%2759 = add nsw i64 %2748, 2
%2760 = getelementptr inbounds double, double* %13, i64 %2759
br label %2761
2761: ; preds = %2755, %2808
%2762 = phi i64 [ 0, %2755 ], [ %2810, %2808 ]
%2763 = phi double [ 0.000000e+00, %2755 ], [ %2809, %2808 ]
br i1 %2729, label %2764, label %2808
2764: ; preds = %2761
%2765 = add nsw i64 %2762, %2749
%2766 = trunc i64 %2762 to i32
%2767 = add i32 %2751, %2766
%2768 = mul i32 %2767, %3
%2769 = getelementptr inbounds double, double* %1646, i64 %2765
%2770 = load double, double* %2769
%2771 = load double, double* %2756
%2772 = load double, double* %2758
%2773 = load double, double* %2760
%2774 = add i32 %2744, %2768
br label %2775
2775: ; preds = %2764, %2775
%2776 = phi double [ %2773, %2764 ], [ %2800, %2775 ]
%2777 = phi double [ %2772, %2764 ], [ %2795, %2775 ]
%2778 = phi double [ %2771, %2764 ], [ %2790, %2775 ]
%2779 = phi i64 [ 0, %2764 ], [ %2806, %2775 ]
%2780 = phi double [ %2763, %2764 ], [ %2805, %2775 ]
%2781 = trunc i64 %2779 to i32
%2782 = add i32 %2774, %2781
%2783 = shl nsw i32 %2782, 2
%2784 = getelementptr inbounds double, double* %1640, i64 %2779
%2785 = load double, double* %2784
%2786 = fmul double %2770, %2785
%2787 = sext i32 %2783 to i64
%2788 = getelementptr inbounds double, double* %2, i64 %2787
%2789 = load double, double* %2788
%2790 = tail call double @llvm.fmuladd.f64(double %2786, double %2789, double %2778)
store double %2790, double* %2756
%2791 = or i32 %2783, 1
%2792 = sext i32 %2791 to i64
%2793 = getelementptr inbounds double, double* %2, i64 %2792
%2794 = load double, double* %2793
%2795 = tail call double @llvm.fmuladd.f64(double %2786, double %2794, double %2777)
store double %2795, double* %2758
%2796 = or i32 %2783, 2
%2797 = sext i32 %2796 to i64
%2798 = getelementptr inbounds double, double* %2, i64 %2797
%2799 = load double, double* %2798
%2800 = tail call double @llvm.fmuladd.f64(double %2786, double %2799, double %2776)
store double %2800, double* %2760
%2801 = or i32 %2783, 3
%2802 = sext i32 %2801 to i64
%2803 = getelementptr inbounds double, double* %2, i64 %2802
%2804 = load double, double* %2803
%2805 = tail call double @llvm.fmuladd.f64(double %2786, double %2804, double %2780)
%2806 = add nuw nsw i64 %2779, 1
%2807 = icmp eq i64 %2806, %2734
br i1 %2807, label %2808, label %2775
2808: ; preds = %2775, %2761
%2809 = phi double [ %2763, %2761 ], [ %2805, %2775 ]
%2810 = add nuw nsw i64 %2762, 1
%2811 = icmp eq i64 %2810, %2733
br i1 %2811, label %2812, label %2761
2812: ; preds = %2808, %2752
%2813 = phi i64 [ %2754, %2752 ], [ %2759, %2808 ]
%2814 = phi i64 [ %2753, %2752 ], [ %2757, %2808 ]
%2815 = phi double [ 0.000000e+00, %2752 ], [ %2809, %2808 ]
%2816 = getelementptr inbounds double, double* %13, i64 %2748
%2817 = load double, double* %2816
%2818 = fdiv double %2817, %2815
store double %2818, double* %2816
%2819 = getelementptr inbounds double, double* %13, i64 %2814
%2820 = load double, double* %2819
%2821 = fdiv double %2820, %2815
store double %2821, double* %2819
%2822 = getelementptr inbounds double, double* %13, i64 %2813
%2823 = load double, double* %2822
%2824 = fdiv double %2823, %2815
store double %2824, double* %2822
%2825 = add nuw nsw i64 %2746, 1
%2826 = icmp eq i64 %2825, %2732
br i1 %2826, label %2827, label %2745
2827: ; preds = %2812, %2735
%2828 = add nuw nsw i64 %2736, 1
%2829 = icmp eq i64 %2828, %2731
br i1 %2829, label %2830, label %2735
2830: ; preds = %2827, %2722
%2831 = icmp sgt i32 %12, 0
br i1 %2831, label %2832, label %3224
2832: ; preds = %2830
%2833 = mul nsw i32 %15, 3
%2834 = sext i32 %1647 to i64
%2835 = sext i32 %2833 to i64
%2836 = zext i32 %12 to i64
%2837 = zext i32 %1 to i64
br label %2838
2838: ; preds = %2832, %2894
%2839 = phi i64 [ 0, %2832 ], [ %2906, %2894 ]
%2840 = mul nsw i64 %2839, %2834
%2841 = add nsw i64 %2840, %2835
%2842 = mul nsw i64 %2839, %71
%2843 = getelementptr inbounds i32, i32* %1643, i64 %2839
%2844 = load i32, i32* %2843
%2845 = getelementptr inbounds double, double* %13, i64 %2841
br i1 %2581, label %2852, label %2846
2846: ; preds = %2838
%2847 = load double, double* %2845
%2848 = add nsw i64 %2841, 1
%2849 = getelementptr inbounds double, double* %13, i64 %2848
%2850 = load double, double* %2849
%2851 = add nsw i64 %2841, 2
br label %2894
2852: ; preds = %2838
%2853 = add nsw i64 %2841, 1
%2854 = getelementptr inbounds double, double* %13, i64 %2853
%2855 = add nsw i64 %2841, 2
%2856 = getelementptr inbounds double, double* %13, i64 %2855
%2857 = load double, double* %2845
%2858 = load double, double* %2854
%2859 = load double, double* %2856
br label %2860
2860: ; preds = %2852, %2860
%2861 = phi double [ %2859, %2852 ], [ %2886, %2860 ]
%2862 = phi double [ %2858, %2852 ], [ %2881, %2860 ]
%2863 = phi double [ %2857, %2852 ], [ %2876, %2860 ]
%2864 = phi i64 [ 0, %2852 ], [ %2892, %2860 ]
%2865 = phi double [ 0.000000e+00, %2852 ], [ %2891, %2860 ]
%2866 = add nsw i64 %2864, %2842
%2867 = trunc i64 %2864 to i32
%2868 = add i32 %2844, %2867
%2869 = mul i32 %2868, %64
%2870 = add i32 %2869, %65
%2871 = getelementptr inbounds double, double* %1646, i64 %2866
%2872 = load double, double* %2871
%2873 = sext i32 %2870 to i64
%2874 = getelementptr inbounds double, double* %2, i64 %2873
%2875 = load double, double* %2874
%2876 = tail call double @llvm.fmuladd.f64(double %2872, double %2875, double %2863)
store double %2876, double* %2845
%2877 = or i32 %2870, 1
%2878 = sext i32 %2877 to i64
%2879 = getelementptr inbounds double, double* %2, i64 %2878
%2880 = load double, double* %2879
%2881 = tail call double @llvm.fmuladd.f64(double %2872, double %2880, double %2862)
store double %2881, double* %2854
%2882 = or i32 %2870, 2
%2883 = sext i32 %2882 to i64
%2884 = getelementptr inbounds double, double* %2, i64 %2883
%2885 = load double, double* %2884
%2886 = tail call double @llvm.fmuladd.f64(double %2872, double %2885, double %2861)
store double %2886, double* %2856
%2887 = or i32 %2870, 3
%2888 = sext i32 %2887 to i64
%2889 = getelementptr inbounds double, double* %2, i64 %2888
%2890 = load double, double* %2889
%2891 = tail call double @llvm.fmuladd.f64(double %2872, double %2890, double %2865)
%2892 = add nuw nsw i64 %2864, 1
%2893 = icmp eq i64 %2892, %2837
br i1 %2893, label %2894, label %2860
2894: ; preds = %2860, %2846
%2895 = phi i64 [ %2851, %2846 ], [ %2855, %2860 ]
%2896 = phi double [ %2850, %2846 ], [ %2881, %2860 ]
%2897 = phi i64 [ %2848, %2846 ], [ %2853, %2860 ]
%2898 = phi double [ %2847, %2846 ], [ %2876, %2860 ]
%2899 = phi double [ 0.000000e+00, %2846 ], [ %2891, %2860 ]
%2900 = fdiv double %2898, %2899
store double %2900, double* %2845
%2901 = getelementptr inbounds double, double* %13, i64 %2897
%2902 = fdiv double %2896, %2899
store double %2902, double* %2901
%2903 = getelementptr inbounds double, double* %13, i64 %2895
%2904 = load double, double* %2903
%2905 = fdiv double %2904, %2899
store double %2905, double* %2903
%2906 = add nuw nsw i64 %2839, 1
%2907 = icmp eq i64 %2906, %2836
br i1 %2907, label %3224, label %2838
2908: ; preds = %2575
%2909 = tail call i32 (i32, i32, double, double*, ...) bitcast (i32 (...)* @FindSpan to i32 (i32, i32, double, double*, ...)*)(i32 %3, i32 %18, double %7, double* %5)
%2910 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %2909, double %7, i32 %18, double* %5, double* %1640, double* %61, double* %63)
%2911 = sub nsw i32 %2909, %18
%2912 = icmp sgt i32 %1, 0
br i1 %2912, label %2913, label %2969
2913: ; preds = %2908
%2914 = icmp sgt i32 %0, 0
%2915 = getelementptr inbounds double, double* %13, i64 1
%2916 = getelementptr inbounds double, double* %13, i64 2
%2917 = zext i32 %1 to i64
%2918 = zext i32 %0 to i64
br label %2919
2919: ; preds = %2913, %2965
%2920 = phi i64 [ 0, %2913 ], [ %2967, %2965 ]
%2921 = phi double [ 0.000000e+00, %2913 ], [ %2966, %2965 ]
br i1 %2914, label %2922, label %2965
2922: ; preds = %2919
%2923 = trunc i64 %2920 to i32
%2924 = add i32 %2579, %2923
%2925 = mul i32 %2924, %3
%2926 = getelementptr inbounds double, double* %1646, i64 %2920
%2927 = load double, double* %2926
%2928 = load double, double* %13
%2929 = load double, double* %2915
%2930 = load double, double* %2916
%2931 = add i32 %2925, %2911
br label %2932
2932: ; preds = %2922, %2932
%2933 = phi double [ %2930, %2922 ], [ %2957, %2932 ]
%2934 = phi double [ %2929, %2922 ], [ %2952, %2932 ]
%2935 = phi double [ %2928, %2922 ], [ %2947, %2932 ]
%2936 = phi i64 [ 0, %2922 ], [ %2963, %2932 ]
%2937 = phi double [ %2921, %2922 ], [ %2962, %2932 ]
%2938 = trunc i64 %2936 to i32
%2939 = add i32 %2931, %2938
%2940 = shl nsw i32 %2939, 2
%2941 = getelementptr inbounds double, double* %1640, i64 %2936
%2942 = load double, double* %2941
%2943 = fmul double %2927, %2942
%2944 = sext i32 %2940 to i64
%2945 = getelementptr inbounds double, double* %2, i64 %2944
%2946 = load double, double* %2945
%2947 = tail call double @llvm.fmuladd.f64(double %2943, double %2946, double %2935)
store double %2947, double* %13
%2948 = or i32 %2940, 1
%2949 = sext i32 %2948 to i64
%2950 = getelementptr inbounds double, double* %2, i64 %2949
%2951 = load double, double* %2950
%2952 = tail call double @llvm.fmuladd.f64(double %2943, double %2951, double %2934)
store double %2952, double* %2915
%2953 = or i32 %2940, 2
%2954 = sext i32 %2953 to i64
%2955 = getelementptr inbounds double, double* %2, i64 %2954
%2956 = load double, double* %2955
%2957 = tail call double @llvm.fmuladd.f64(double %2943, double %2956, double %2933)
store double %2957, double* %2916
%2958 = or i32 %2940, 3
%2959 = sext i32 %2958 to i64
%2960 = getelementptr inbounds double, double* %2, i64 %2959
%2961 = load double, double* %2960
%2962 = tail call double @llvm.fmuladd.f64(double %2943, double %2961, double %2937)
%2963 = add nuw nsw i64 %2936, 1
%2964 = icmp eq i64 %2963, %2918
br i1 %2964, label %2965, label %2932
2965: ; preds = %2932, %2919
%2966 = phi double [ %2921, %2919 ], [ %2962, %2932 ]
%2967 = add nuw nsw i64 %2920, 1
%2968 = icmp eq i64 %2967, %2917
br i1 %2968, label %2969, label %2919
2969: ; preds = %2965, %2908
%2970 = phi double [ 0.000000e+00, %2908 ], [ %2966, %2965 ]
%2971 = bitcast double* %13 to <2 x double>*
%2972 = load <2 x double>, <2 x double>* %2971
%2973 = insertelement <2 x double> poison, double %2970, i64 0
%2974 = shufflevector <2 x double> %2973, <2 x double> poison, <2 x i32> zeroinitializer
%2975 = fdiv <2 x double> %2972, %2974
%2976 = bitcast double* %13 to <2 x double>*
store <2 x double> %2975, <2 x double>* %2976
%2977 = getelementptr inbounds double, double* %13, i64 2
%2978 = load double, double* %2977
%2979 = fdiv double %2978, %2970
store double %2979, double* %2977
%2980 = icmp sgt i32 %12, 1
br i1 %2980, label %2981, label %3079
2981: ; preds = %2969
%2982 = icmp sgt i32 %0, 0
%2983 = sext i32 %1647 to i64
%2984 = zext i32 %12 to i64
%2985 = load i32, i32* %1643
%2986 = zext i32 %1 to i64
%2987 = zext i32 %0 to i64
br label %2988
2988: ; preds = %2981, %3064
%2989 = phi i32 [ %2985, %2981 ], [ %3002, %3064 ]
%2990 = phi i64 [ 1, %2981 ], [ %3077, %3064 ]
%2991 = phi double [ %10, %2981 ], [ %2995, %3064 ]
%2992 = phi i32 [ %2579, %2981 ], [ %3003, %3064 ]
%2993 = mul nsw i64 %2990, %2983
%2994 = mul nsw i64 %2990, %71
%2995 = fadd double %2991, %11
%2996 = add nsw i64 %2990, -1
%2997 = getelementptr inbounds i32, i32* %1643, i64 %2996
%2998 = tail call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %4, double %2995, double* %6, i32 %2989)
%2999 = getelementptr inbounds i32, i32* %1643, i64 %2990
store i32 %2998, i32* %2999
%3000 = getelementptr inbounds double, double* %1646, i64 %2994
%3001 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %2998, double %2995, i32 %20, double* %6, double* %3000, double* %61, double* %63)
store i32 %2992, i32* %2997
%3002 = load i32, i32* %2999
%3003 = sub nsw i32 %3002, %20
br i1 %2912, label %3007, label %3004
3004: ; preds = %2988
%3005 = add nsw i64 %2993, 1
%3006 = add nsw i64 %2993, 2
br label %3064
3007: ; preds = %2988
%3008 = getelementptr inbounds double, double* %13, i64 %2993
%3009 = add nsw i64 %2993, 1
%3010 = getelementptr inbounds double, double* %13, i64 %3009
%3011 = add nsw i64 %2993, 2
%3012 = getelementptr inbounds double, double* %13, i64 %3011
br label %3013
3013: ; preds = %3007, %3060
%3014 = phi i64 [ 0, %3007 ], [ %3062, %3060 ]
%3015 = phi double [ 0.000000e+00, %3007 ], [ %3061, %3060 ]
br i1 %2982, label %3016, label %3060
3016: ; preds = %3013
%3017 = add nsw i64 %3014, %2994
%3018 = trunc i64 %3014 to i32
%3019 = add i32 %3003, %3018
%3020 = mul i32 %3019, %3
%3021 = getelementptr inbounds double, double* %1646, i64 %3017
%3022 = load double, double* %3021
%3023 = load double, double* %3008
%3024 = load double, double* %3010
%3025 = load double, double* %3012
%3026 = add i32 %3020, %2911
br label %3027
3027: ; preds = %3016, %3027
%3028 = phi double [ %3025, %3016 ], [ %3052, %3027 ]
%3029 = phi double [ %3024, %3016 ], [ %3047, %3027 ]
%3030 = phi double [ %3023, %3016 ], [ %3042, %3027 ]
%3031 = phi i64 [ 0, %3016 ], [ %3058, %3027 ]
%3032 = phi double [ %3015, %3016 ], [ %3057, %3027 ]
%3033 = trunc i64 %3031 to i32
%3034 = add i32 %3026, %3033
%3035 = shl nsw i32 %3034, 2
%3036 = getelementptr inbounds double, double* %1640, i64 %3031
%3037 = load double, double* %3036
%3038 = fmul double %3022, %3037
%3039 = sext i32 %3035 to i64
%3040 = getelementptr inbounds double, double* %2, i64 %3039
%3041 = load double, double* %3040
%3042 = tail call double @llvm.fmuladd.f64(double %3038, double %3041, double %3030)
store double %3042, double* %3008
%3043 = or i32 %3035, 1
%3044 = sext i32 %3043 to i64
%3045 = getelementptr inbounds double, double* %2, i64 %3044
%3046 = load double, double* %3045
%3047 = tail call double @llvm.fmuladd.f64(double %3038, double %3046, double %3029)
store double %3047, double* %3010
%3048 = or i32 %3035, 2
%3049 = sext i32 %3048 to i64
%3050 = getelementptr inbounds double, double* %2, i64 %3049
%3051 = load double, double* %3050
%3052 = tail call double @llvm.fmuladd.f64(double %3038, double %3051, double %3028)
store double %3052, double* %3012
%3053 = or i32 %3035, 3
%3054 = sext i32 %3053 to i64
%3055 = getelementptr inbounds double, double* %2, i64 %3054
%3056 = load double, double* %3055
%3057 = tail call double @llvm.fmuladd.f64(double %3038, double %3056, double %3032)
%3058 = add nuw nsw i64 %3031, 1
%3059 = icmp eq i64 %3058, %2987
br i1 %3059, label %3060, label %3027
3060: ; preds = %3027, %3013
%3061 = phi double [ %3015, %3013 ], [ %3057, %3027 ]
%3062 = add nuw nsw i64 %3014, 1
%3063 = icmp eq i64 %3062, %2986
br i1 %3063, label %3064, label %3013
3064: ; preds = %3060, %3004
%3065 = phi i64 [ %3006, %3004 ], [ %3011, %3060 ]
%3066 = phi i64 [ %3005, %3004 ], [ %3009, %3060 ]
%3067 = phi double [ 0.000000e+00, %3004 ], [ %3061, %3060 ]
%3068 = getelementptr inbounds double, double* %13, i64 %2993
%3069 = load double, double* %3068
%3070 = fdiv double %3069, %3067
store double %3070, double* %3068
%3071 = getelementptr inbounds double, double* %13, i64 %3066
%3072 = load double, double* %3071
%3073 = fdiv double %3072, %3067
store double %3073, double* %3071
%3074 = getelementptr inbounds double, double* %13, i64 %3065
%3075 = load double, double* %3074
%3076 = fdiv double %3075, %3067
store double %3076, double* %3074
%3077 = add nuw nsw i64 %2990, 1
%3078 = icmp eq i64 %3077, %2984
br i1 %3078, label %3079, label %2988
3079: ; preds = %3064, %2969
%3080 = phi i32 [ %2579, %2969 ], [ %3003, %3064 ]
%3081 = sext i32 %16 to i64
%3082 = getelementptr inbounds i32, i32* %1643, i64 %3081
store i32 %3080, i32* %3082
%3083 = icmp sgt i32 %9, 1
br i1 %3083, label %3084, label %3224
3084: ; preds = %3079
%3085 = icmp sgt i32 %12, 0
%3086 = icmp sgt i32 %0, 0
%3087 = sext i32 %1647 to i64
%3088 = zext i32 %9 to i64
%3089 = zext i32 %12 to i64
%3090 = zext i32 %1 to i64
%3091 = zext i32 %0 to i64
br label %3092
3092: ; preds = %3084, %3184
%3093 = phi i64 [ 1, %3084 ], [ %3185, %3184 ]
%3094 = phi double [ %7, %3084 ], [ %3096, %3184 ]
%3095 = phi i32 [ %2909, %3084 ], [ %3097, %3184 ]
%3096 = fadd double %3094, %8
%3097 = tail call i32 (i32, double, double*, i32, ...) bitcast (i32 (...)* @FindSpanIncSeq to i32 (i32, double, double*, i32, ...)*)(i32 %3, double %3096, double* %5, i32 %3095)
%3098 = tail call i32 (i32, double, i32, double*, double*, double*, double*, ...) bitcast (i32 (...)* @BasisFuns to i32 (i32, double, i32, double*, double*, double*, double*, ...)*)(i32 %3097, double %3096, i32 %18, double* %5, double* %1640, double* %61, double* %63)
%3099 = mul nuw nsw i64 %3093, 3
br i1 %3085, label %3100, label %3184
3100: ; preds = %3092
%3101 = add i32 %3097, %19
br label %3102
3102: ; preds = %3100, %3169
%3103 = phi i64 [ 0, %3100 ], [ %3182, %3169 ]
%3104 = mul nsw i64 %3103, %3087
%3105 = add nsw i64 %3104, %3099
%3106 = mul nsw i64 %3103, %71
%3107 = getelementptr inbounds i32, i32* %1643, i64 %3103
%3108 = load i32, i32* %3107
br i1 %2912, label %3112, label %3109
3109: ; preds = %3102
%3110 = add nsw i64 %3105, 1
%3111 = add nsw i64 %3105, 2
br label %3169
3112: ; preds = %3102
%3113 = getelementptr inbounds double, double* %13, i64 %3105
%3114 = add nsw i64 %3105, 1
%3115 = getelementptr inbounds double, double* %13, i64 %3114
%3116 = add nsw i64 %3105, 2
%3117 = getelementptr inbounds double, double* %13, i64 %3116
br label %3118
3118: ; preds = %3112, %3165
%3119 = phi i64 [ 0, %3112 ], [ %3167, %3165 ]
%3120 = phi double [ 0.000000e+00, %3112 ], [ %3166, %3165 ]
br i1 %3086, label %3121, label %3165
3121: ; preds = %3118
%3122 = add nsw i64 %3119, %3106
%3123 = trunc i64 %3119 to i32
%3124 = add i32 %3108, %3123
%3125 = mul i32 %3124, %3
%3126 = getelementptr inbounds double, double* %1646, i64 %3122
%3127 = load double, double* %3126
%3128 = load double, double* %3113
%3129 = load double, double* %3115
%3130 = load double, double* %3117
%3131 = add i32 %3101, %3125
br label %3132
3132: ; preds = %3121, %3132
%3133 = phi double [ %3130, %3121 ], [ %3157, %3132 ]
%3134 = phi double [ %3129, %3121 ], [ %3152, %3132 ]
%3135 = phi double [ %3128, %3121 ], [ %3147, %3132 ]
%3136 = phi i64 [ 0, %3121 ], [ %3163, %3132 ]
%3137 = phi double [ %3120, %3121 ], [ %3162, %3132 ]
%3138 = trunc i64 %3136 to i32
%3139 = add i32 %3131, %3138
%3140 = shl nsw i32 %3139, 2
%3141 = getelementptr inbounds double, double* %1640, i64 %3136
%3142 = load double, double* %3141
%3143 = fmul double %3127, %3142
%3144 = sext i32 %3140 to i64
%3145 = getelementptr inbounds double, double* %2, i64 %3144
%3146 = load double, double* %3145
%3147 = tail call double @llvm.fmuladd.f64(double %3143, double %3146, double %3135)
store double %3147, double* %3113
%3148 = or i32 %3140, 1
%3149 = sext i32 %3148 to i64
%3150 = getelementptr inbounds double, double* %2, i64 %3149
%3151 = load double, double* %3150
%3152 = tail call double @llvm.fmuladd.f64(double %3143, double %3151, double %3134)
store double %3152, double* %3115
%3153 = or i32 %3140, 2
%3154 = sext i32 %3153 to i64
%3155 = getelementptr inbounds double, double* %2, i64 %3154
%3156 = load double, double* %3155
%3157 = tail call double @llvm.fmuladd.f64(double %3143, double %3156, double %3133)
store double %3157, double* %3117
%3158 = or i32 %3140, 3
%3159 = sext i32 %3158 to i64
%3160 = getelementptr inbounds double, double* %2, i64 %3159
%3161 = load double, double* %3160
%3162 = tail call double @llvm.fmuladd.f64(double %3143, double %3161, double %3137)
%3163 = add nuw nsw i64 %3136, 1
%3164 = icmp eq i64 %3163, %3091
br i1 %3164, label %3165, label %3132
3165: ; preds = %3132, %3118
%3166 = phi double [ %3120, %3118 ], [ %3162, %3132 ]
%3167 = add nuw nsw i64 %3119, 1
%3168 = icmp eq i64 %3167, %3090
br i1 %3168, label %3169, label %3118
3169: ; preds = %3165, %3109
%3170 = phi i64 [ %3111, %3109 ], [ %3116, %3165 ]
%3171 = phi i64 [ %3110, %3109 ], [ %3114, %3165 ]
%3172 = phi double [ 0.000000e+00, %3109 ], [ %3166, %3165 ]
%3173 = getelementptr inbounds double, double* %13, i64 %3105
%3174 = load double, double* %3173
%3175 = fdiv double %3174, %3172
store double %3175, double* %3173
%3176 = getelementptr inbounds double, double* %13, i64 %3171
%3177 = load double, double* %3176
%3178 = fdiv double %3177, %3172
store double %3178, double* %3176
%3179 = getelementptr inbounds double, double* %13, i64 %3170
%3180 = load double, double* %3179
%3181 = fdiv double %3180, %3172
store double %3181, double* %3179
%3182 = add nuw nsw i64 %3103, 1
%3183 = icmp eq i64 %3182, %3089
br i1 %3183, label %3184, label %3102
3184: ; preds = %3169, %3092
%3185 = add nuw nsw i64 %3093, 1
%3186 = icmp eq i64 %3185, %3088
br i1 %3186, label %3224, label %3092
3187: ; preds = %2100, %2009, %563
%3188 = phi i32 [ %564, %563 ], [ %1647, %2009 ], [ %1647, %2100 ]
%3189 = phi i8* [ %90, %563 ], [ %1642, %2009 ], [ %1642, %2100 ]
%3190 = phi i8* [ %87, %563 ], [ %1639, %2009 ], [ %1639, %2100 ]
%3191 = phi i8* [ %93, %563 ], [ %1645, %2009 ], [ %1645, %2100 ]
%3192 = mul i32 %3188, %12
%3193 = mul nsw i32 %64, %4
%3194 = add i32 %3192, -3
%3195 = add nsw i32 %3193, -1
%3196 = add nsw i32 %3193, -4
%3197 = sext i32 %3196 to i64
%3198 = getelementptr inbounds double, double* %2, i64 %3197
%3199 = load double, double* %3198
%3200 = sext i32 %3195 to i64
%3201 = getelementptr inbounds double, double* %2, i64 %3200
%3202 = load double, double* %3201
%3203 = fdiv double %3199, %3202
%3204 = sext i32 %3194 to i64
%3205 = getelementptr inbounds double, double* %13, i64 %3204
store double %3203, double* %3205
%3206 = add nsw i32 %3193, -3
%3207 = sext i32 %3206 to i64
%3208 = getelementptr inbounds double, double* %2, i64 %3207
%3209 = load double, double* %3208
%3210 = load double, double* %3201
%3211 = fdiv double %3209, %3210
%3212 = add i32 %3192, -2
%3213 = sext i32 %3212 to i64
%3214 = getelementptr inbounds double, double* %13, i64 %3213
store double %3211, double* %3214
%3215 = add nsw i32 %3193, -2
%3216 = sext i32 %3215 to i64
%3217 = getelementptr inbounds double, double* %2, i64 %3216
%3218 = load double, double* %3217
%3219 = load double, double* %3201
%3220 = fdiv double %3218, %3219
%3221 = add i32 %3192, -1
%3222 = sext i32 %3221 to i64
%3223 = getelementptr inbounds double, double* %13, i64 %3222
store double %3220, double* %3223
br label %3224
3224: ; preds = %2560, %2894, %3184, %882, %1340, %1634, %3187, %2337, %2830, %3079, %817, %1118, %1531
%3225 = phi i8* [ %90, %1531 ], [ %90, %1118 ], [ %90, %817 ], [ %1642, %3079 ], [ %1642, %2830 ], [ %1642, %2337 ], [ %3189, %3187 ], [ %90, %1634 ], [ %90, %1340 ], [ %90, %882 ], [ %1642, %3184 ], [ %1642, %2894 ], [ %1642, %2560 ]
%3226 = phi i8* [ %87, %1531 ], [ %87, %1118 ], [ %87, %817 ], [ %1639, %3079 ], [ %1639, %2830 ], [ %1639, %2337 ], [ %3190, %3187 ], [ %87, %1634 ], [ %87, %1340 ], [ %87, %882 ], [ %1639, %3184 ], [ %1639, %2894 ], [ %1639, %2560 ]
%3227 = phi i8* [ %93, %1531 ], [ %93, %1118 ], [ %93, %817 ], [ %1645, %3079 ], [ %1645, %2830 ], [ %1645, %2337 ], [ %3191, %3187 ], [ %93, %1634 ], [ %93, %1340 ], [ %93, %882 ], [ %1645, %3184 ], [ %1645, %2894 ], [ %1645, %2560 ]
tail call void @free(i8* %3225)
tail call void @free(i8* %3227)
tail call void @free(i8* %60)
tail call void @free(i8* %62)
tail call void @free(i8* %3226)
ret void
}