public void r() {
    if (al > 0) {
      double d1 = aK + (am - aK) / al;
      double d2 = aL + (an - aL) / al;
      double d3 = aM + (ao - aM) / al;

      double d4 = ap - aQ;
      while (d4 < -180.0D) d4 += 360.0D;
      while (d4 >= 180.0D) d4 -= 360.0D;
      aQ = (float) (aQ + d4 / al);
      aR = (float) (aR + (aq - aR) / al);

      al -= 1;
      a(d1, d2, d3);
      c(aQ, aR);
    }

    if (p_()) {
      ax = false;
      au = 0.0F;
      av = 0.0F;
      aw = 0.0F;
    } else if (!T) c_();

    boolean bool1 = g_();
    boolean bool2 = V();

    if (ax)
      if (bool1) aO += 0.03999999910593033D;
      else if (bool2) aO += 0.03999999910593033D;
      else if (aV) I();

    au *= 0.98F;
    av *= 0.98F;
    aw *= 0.9F;
    a(au, av);

    List localList = aG.b(this, aU.b(0.2000000029802322D, 0.0D, 0.2000000029802322D));
    if ((localList != null) && (localList.size() > 0))
      for (int i = 0; i < localList.size(); i++) {
        OEntity localOEntity = (OEntity) localList.get(i);
        if (!localOEntity.e_()) continue;
        localOEntity.h(this);
      }
  }