Program: 25397
Project: 25397
Buggy source:
public void r(){
  if (k != null && k.G) {
    k=null;
  }
  X++;
  K=L;
  m=p;
  n=q;
  o=r;
  y=w;
  x=v;
  if (v()) {
    if (!ab && !c) {
      float f1=MathHelper.a(s * s * 0.20000000298023224D + t * t + u * u * 0.20000000298023224D) * 0.2F;
      if (f1 > 1.0F) {
        f1=1.0F;
      }
      l.a(this,"String_Node_Str",f1,1.0F + (W.nextFloat() - W.nextFloat()) * 0.4F);
      float f2=MathHelper.b(z.b);
      for (int i1=0; (float)i1 < 1.0F + I * 20F; i1++) {
        float f3=(W.nextFloat() * 2.0F - 1.0F) * I;
        float f5=(W.nextFloat() * 2.0F - 1.0F) * I;
        l.a("String_Node_Str",p + (double)f3,f2 + 1.0F,r + (double)f5,s,t - (double)(W.nextFloat() * 0.2F),u);
      }
      for (int j1=0; (float)j1 < 1.0F + I * 20F; j1++) {
        float f4=(W.nextFloat() * 2.0F - 1.0F) * I;
        float f6=(W.nextFloat() * 2.0F - 1.0F) * I;
        l.a("String_Node_Str",p + (double)f4,f2 + 1.0F,r + (double)f6,s,t,u);
      }
    }
    N=0.0F;
    ab=true;
    Z=0;
  }
 else {
    ab=false;
  }
  if (l.z) {
    Z=0;
  }
 else   if (Z > 0) {
    if (ae) {
      Z-=4;
      if (Z < 0) {
        Z=0;
      }
    }
 else {
      if (Z % 20 == 0) {
        if (this instanceof EntityLiving) {
          CraftServer server=((WorldServer)l).getServer();
          EntityDamageEvent ede=new EntityDamageEvent(this.getBukkitEntity(),EntityDamageEvent.DamageCause.DROWNING,1);
          server.getPluginManager().callEvent(ede);
          if (!ede.isCancelled()) {
            a(((Entity)(null)),ede.getDamage());
          }
        }
 else {
          a(((Entity)(null)),1);
        }
      }
      Z--;
    }
  }
  if (x()) {
    s();
  }
  if (q < -64D) {
    t();
  }
  if (!l.z) {
    a(0,Z > 0);
    a(2,k != null);
  }
  c=false;
}

Fixed version (ground truth):
public void r(){
  if (k != null && k.G) {
    k=null;
  }
  X++;
  K=L;
  m=p;
  n=q;
  o=r;
  y=w;
  x=v;
  if (v()) {
    if (!ab && !c) {
      float f1=MathHelper.a(s * s * 0.20000000298023224D + t * t + u * u * 0.20000000298023224D) * 0.2F;
      if (f1 > 1.0F) {
        f1=1.0F;
      }
      l.a(this,"String_Node_Str",f1,1.0F + (W.nextFloat() - W.nextFloat()) * 0.4F);
      float f2=MathHelper.b(z.b);
      for (int i1=0; (float)i1 < 1.0F + I * 20F; i1++) {
        float f3=(W.nextFloat() * 2.0F - 1.0F) * I;
        float f5=(W.nextFloat() * 2.0F - 1.0F) * I;
        l.a("String_Node_Str",p + (double)f3,f2 + 1.0F,r + (double)f5,s,t - (double)(W.nextFloat() * 0.2F),u);
      }
      for (int j1=0; (float)j1 < 1.0F + I * 20F; j1++) {
        float f4=(W.nextFloat() * 2.0F - 1.0F) * I;
        float f6=(W.nextFloat() * 2.0F - 1.0F) * I;
        l.a("String_Node_Str",p + (double)f4,f2 + 1.0F,r + (double)f6,s,t,u);
      }
    }
    N=0.0F;
    ab=true;
    Z=0;
  }
 else {
    ab=false;
  }
  if (l.z) {
    Z=0;
  }
 else   if (Z > 0) {
    if (ae) {
      Z-=4;
      if (Z < 0) {
        Z=0;
      }
    }
 else {
      if (Z % 20 == 0) {
        if (this instanceof EntityLiving) {
          CraftServer server=((WorldServer)l).getServer();
          org.bukkit.entity.Entity damagee=this.getBukkitEntity();
          DamageCause damageType=EntityDamageEvent.DamageCause.DROWNING;
          int damageDone=1;
          EntityDamageEvent ede=new EntityDamageEvent(damagee,damageType,damageDone);
          server.getPluginManager().callEvent(ede);
          if (!ede.isCancelled()) {
            a(((Entity)(null)),ede.getDamage());
          }
        }
 else {
          a(((Entity)(null)),1);
        }
      }
      Z--;
    }
  }
  if (x()) {
    s();
  }
  if (q < -64D) {
    t();
  }
  if (!l.z) {
    a(0,Z > 0);
    a(2,k != null);
  }
  c=false;
}