Program: 87107
Project: 87107
Buggy source:
public void x(){
  this.aD=this.aE;
  super.x();
  this.q.C.a("String_Node_Str");
  if (this.R() && this.S()) {
    DamageHook hook=(DamageHook)new DamageHook(null,entity,new CanaryDamageSource(DamageSource.d),1).call();
    if (!hook.isCanceled()) {
      this.a((((CanaryDamageSource)hook.getDamageSource()).getHandle()),hook.getDamageDealt());
    }
  }
  if (this.E() || this.q.I) {
    this.A();
  }
  boolean flag0=this instanceof EntityPlayer && ((EntityPlayer)this).bG.a;
  if (this.R() && this.a(Material.h)) {
    if (!this.ay() && !this.i(Potion.o.H) && !flag0) {
      this.g(this.h(this.aj()));
      if (this.aj() == -20) {
        this.g(0);
        DamageHook hook=(DamageHook)new DamageHook(null,entity,new CanaryDamageSource(DamageSource.e),2).call();
        if (!hook.isCanceled()) {
          for (int i0=0; i0 < 8; ++i0) {
            float f0=this.ab.nextFloat() - this.ab.nextFloat();
            float f1=this.ab.nextFloat() - this.ab.nextFloat();
            float f2=this.ab.nextFloat() - this.ab.nextFloat();
            this.q.a("String_Node_Str",this.u + (double)f0,this.v + (double)f1,this.w + (double)f2,this.x,this.y,this.z);
          }
          this.a((((CanaryDamageSource)hook.getDamageSource()).getHandle()),hook.getDamageDealt());
        }
      }
      this.A();
      if (!this.q.I && this.ae() && this.o instanceof EntityLivingBase) {
        this.a((Entity)null);
      }
    }
 else {
      this.g(300);
    }
    this.aJ=this.aK;
    if (this.aC > 0) {
      --this.aC;
    }
    if (this.ay > 0) {
      --this.ay;
    }
    if (this.af > 0) {
      --this.af;
    }
    if (this.aJ() <= 0.0F) {
      this.az();
    }
    if (this.aT > 0) {
      --this.aT;
    }
 else {
      this.aS=null;
    }
    if (this.bn != null && !this.bn.R()) {
      this.bn=null;
    }
    if (this.i != null) {
      if (!this.i.R()) {
        this.b((EntityLivingBase)null);
      }
 else       if (this.j > 0) {
        --this.j;
      }
 else {
        this.b((EntityLivingBase)null);
      }
    }
    this.aF();
    this.aZ=this.aY;
    this.aO=this.aN;
    this.aQ=this.aP;
    this.C=this.A;
    this.D=this.B;
    this.q.C.b();
  }
}

Fixed version (ground truth):
public void x(){
  this.aD=this.aE;
  super.x();
  this.q.C.a("String_Node_Str");
  if (this.R() && this.S()) {
    DamageHook hook=(DamageHook)new DamageHook(null,entity,new CanaryDamageSource(DamageSource.d),1).call();
    if (!hook.isCanceled()) {
      this.a((((CanaryDamageSource)hook.getDamageSource()).getHandle()),hook.getDamageDealt());
    }
  }
  if (this.E() || this.q.I) {
    this.A();
  }
  boolean flag0=this instanceof EntityPlayer && ((EntityPlayer)this).bG.a;
  if (this.R() && this.a(Material.h)) {
    if (!this.ay() && !this.i(Potion.o.H) && !flag0) {
      this.g(this.h(this.aj()));
      if (this.aj() == -20) {
        this.g(0);
        DamageHook hook=(DamageHook)new DamageHook(null,entity,new CanaryDamageSource(DamageSource.e),2).call();
        if (!hook.isCanceled()) {
          for (int i0=0; i0 < 8; ++i0) {
            float f0=this.ab.nextFloat() - this.ab.nextFloat();
            float f1=this.ab.nextFloat() - this.ab.nextFloat();
            float f2=this.ab.nextFloat() - this.ab.nextFloat();
            this.q.a("String_Node_Str",this.u + (double)f0,this.v + (double)f1,this.w + (double)f2,this.x,this.y,this.z);
          }
          this.a((((CanaryDamageSource)hook.getDamageSource()).getHandle()),hook.getDamageDealt());
        }
      }
    }
    this.A();
    if (!this.q.I && this.ae() && this.o instanceof EntityLivingBase) {
      this.a((Entity)null);
    }
  }
 else {
    this.g(300);
  }
  this.aJ=this.aK;
  if (this.aC > 0) {
    --this.aC;
  }
  if (this.ay > 0) {
    --this.ay;
  }
  if (this.af > 0) {
    --this.af;
  }
  if (this.aJ() <= 0.0F) {
    this.az();
  }
  if (this.aT > 0) {
    --this.aT;
  }
 else {
    this.aS=null;
  }
  if (this.bn != null && !this.bn.R()) {
    this.bn=null;
  }
  if (this.i != null) {
    if (!this.i.R()) {
      this.b((EntityLivingBase)null);
    }
 else     if (this.j > 0) {
      --this.j;
    }
 else {
      this.b((EntityLivingBase)null);
    }
  }
  this.aF();
  this.aZ=this.aY;
  this.aO=this.aN;
  this.aQ=this.aP;
  this.C=this.A;
  this.D=this.B;
  this.q.C.b();
}