private PathEntity func_75861_a(
      Entity p_75861_1_,
      PathPoint p_75861_2_,
      PathPoint p_75861_3_,
      PathPoint p_75861_4_,
      float p_75861_5_) {
    p_75861_2_.field_75836_e = 0.0F;
    p_75861_2_.field_75833_f = p_75861_2_.func_75832_b(p_75861_3_);
    p_75861_2_.field_75834_g = p_75861_2_.field_75833_f;
    this.field_75866_b.func_75848_a();
    this.field_75866_b.func_75849_a(p_75861_2_);
    PathPoint var6 = p_75861_2_;

    while (!this.field_75866_b.func_75845_e()) {
      PathPoint var7 = this.field_75866_b.func_75844_c();
      if (var7.equals(p_75861_3_)) {
        return this.func_75853_a(p_75861_2_, p_75861_3_);
      }

      if (var7.func_75832_b(p_75861_3_) < var6.func_75832_b(p_75861_3_)) {
        var6 = var7;
      }

      var7.field_75842_i = true;
      int var8 = this.func_75860_b(p_75861_1_, var7, p_75861_4_, p_75861_3_, p_75861_5_);

      for (int var9 = 0; var9 < var8; ++var9) {
        PathPoint var10 = this.field_75864_d[var9];
        float var11 = var7.field_75836_e + var7.func_75832_b(var10);
        if (!var10.func_75831_a() || var11 < var10.field_75836_e) {
          var10.field_75841_h = var7;
          var10.field_75836_e = var11;
          var10.field_75833_f = var10.func_75832_b(p_75861_3_);
          if (var10.func_75831_a()) {
            this.field_75866_b.func_75850_a(var10, var10.field_75836_e + var10.field_75833_f);
          } else {
            var10.field_75834_g = var10.field_75836_e + var10.field_75833_f;
            this.field_75866_b.func_75849_a(var10);
          }
        }
      }
    }

    if (var6 == p_75861_2_) {
      return null;
    } else {
      return this.func_75853_a(p_75861_2_, var6);
    }
  }