Program: 169886
Project: 169886
Buggy source:
/** 
 * Makes an entity get affected by Red Matter.
 * @Return True if explosion happened 
 */
public boolean affectEntity(float radius,Entity entity,boolean doExplosion){
  boolean explosionCreated=false;
  if (entity == this.controller) {
    return false;
  }
  if (entity instanceof IExplosiveIgnore) {
    if (((IExplosiveIgnore)entity).canIgnore(this)) {
      return false;
    }
  }
  if (entity instanceof EntityPlayer) {
    if (((EntityPlayer)entity).capabilities.isCreativeMode) {
      return false;
    }
  }
  double xDifference=entity.posX - position.x;
  double yDifference=entity.posY - position.y;
  double zDifference=entity.posZ - position.z;
  double xPercentage=1 - (xDifference / radius);
  double yPercentage=1 - (yDifference / radius);
  double zPercentage=1 - (zDifference / radius);
  double distancePercentage=(this.position.distanceTo(new Vector3(entity)) / radius);
  Vector3 entityPosition=new Vector3(entity);
  Vector3 centeredPosition=entityPosition.clone().subtract(this.position);
  centeredPosition.rotate(1.5 * distancePercentage * Math.random(),1.5 * distancePercentage * Math.random(),1.5 * distancePercentage * Math.random());
  Vector3 newPosition=Vector3.add(this.position,centeredPosition);
  entity.addVelocity(newPosition.x - entityPosition.x,0,newPosition.z - entityPosition.z);
  entity.addVelocity(-xDifference * 0.015 * xPercentage,-yDifference * 0.015 * yPercentage,-zDifference * 0.015 * zPercentage);
  if (this.worldObj.isRemote) {
    if (entity instanceof EntityFlyingBlock) {
      if (ICBMExplosion.proxy.getParticleSetting() == 0) {
        if (this.worldObj.rand.nextInt(5) == 0) {
          ICBMExplosion.proxy.spawnParticle("String_Node_Str",this.worldObj,new Vector3(entity),-xDifference,-yDifference + 10,-zDifference,((EntityFlyingBlock)entity).blockID,0,((EntityFlyingBlock)entity).metadata,2,1);
        }
      }
    }
  }
  if (Vector3.distance(new Vector3(entity.posX,entity.posY,entity.posZ),position) < 4) {
    if (doExplosion && !explosionCreated && callCount % 5 == 0) {
      Vector3 tempMotion=new Vector3(this.controller.motionX,this.controller.motionY,this.controller.motionZ);
      this.worldObj.createExplosion(this.exploder,entity.posX,entity.posY,entity.posZ,3.0F,true);
      this.controller.motionX=tempMotion.x;
      this.controller.motionY=tempMotion.y;
      this.controller.motionZ=tempMotion.z;
      explosionCreated=true;
    }
    if (entity instanceof EntityLiving) {
      entity.fallDistance=0;
    }
 else {
      if (entity instanceof EntityExplosion) {
        if (((EntityExplosion)entity).baoZha instanceof BlastAntimatter || ((EntityExplosion)entity).baoZha instanceof BlastRedMatter) {
          this.worldObj.playSoundEffect(position.x,position.y,position.z,ICBMCore.PREFIX + "String_Node_Str",7.0F,(1.0F + (this.worldObj.rand.nextFloat() - this.worldObj.rand.nextFloat()) * 0.2F) * 0.7F);
          if (this.worldObj.rand.nextFloat() > 0.85 && !this.worldObj.isRemote) {
            entity.setDead();
            return explosionCreated;
          }
        }
      }
 else       if (entity instanceof EntityExplosive) {
        ((EntityExplosive)entity).explode();
      }
 else {
        entity.setDead();
      }
    }
  }
  return explosionCreated;
}

Fixed version (ground truth):
/** 
 * Makes an entity get affected by Red Matter.
 * @Return True if explosion happened 
 */
public boolean affectEntity(float radius,Entity entity,boolean doExplosion){
  boolean explosionCreated=false;
  if (entity == this.controller) {
    return false;
  }
  if (entity instanceof IExplosiveIgnore) {
    if (((IExplosiveIgnore)entity).canIgnore(this)) {
      return false;
    }
  }
  if (entity instanceof EntityPlayer) {
    if (((EntityPlayer)entity).capabilities.isCreativeMode) {
      return false;
    }
  }
  double xDifference=entity.posX - position.x;
  double yDifference=entity.posY - position.y;
  double zDifference=entity.posZ - position.z;
  double xPercentage=1 - (xDifference / radius);
  double yPercentage=1 - (yDifference / radius);
  double zPercentage=1 - (zDifference / radius);
  double distancePercentage=(this.position.distanceTo(new Vector3(entity)) / radius);
  Vector3 entityPosition=new Vector3(entity);
  Vector3 centeredPosition=entityPosition.clone().subtract(this.position);
  centeredPosition.rotate(1.5 * distancePercentage * Math.random(),1.5 * distancePercentage * Math.random(),1.5 * distancePercentage * Math.random());
  Vector3 newPosition=Vector3.add(this.position,centeredPosition);
  entity.addVelocity(newPosition.x - entityPosition.x,0,newPosition.z - entityPosition.z);
  entity.addVelocity(-xDifference * 0.015 * xPercentage,-yDifference * 0.015 * yPercentage,-zDifference * 0.015 * zPercentage);
  if (this.worldObj.isRemote) {
    if (entity instanceof EntityFlyingBlock) {
      if (ICBMExplosion.proxy.getParticleSetting() == 0) {
        if (this.worldObj.rand.nextInt(5) == 0) {
          ICBMExplosion.proxy.spawnParticle("String_Node_Str",this.worldObj,new Vector3(entity),-xDifference,-yDifference + 10,-zDifference,((EntityFlyingBlock)entity).blockID,0,((EntityFlyingBlock)entity).metadata,2,1);
        }
      }
    }
  }
  if (Vector3.distance(new Vector3(entity.posX,entity.posY,entity.posZ),position) < 4) {
    if (doExplosion && !explosionCreated && callCount % 5 == 0) {
      Vector3 tempMotion=new Vector3(this.controller.motionX,this.controller.motionY,this.controller.motionZ);
      this.worldObj.createExplosion(this.exploder,entity.posX,entity.posY,entity.posZ,3.0F,true);
      this.controller.motionX=tempMotion.x;
      this.controller.motionY=tempMotion.y;
      this.controller.motionZ=tempMotion.z;
      explosionCreated=true;
    }
    if (entity instanceof EntityLiving) {
      entity.fallDistance=0;
    }
 else {
      if (entity instanceof EntityExplosion) {
        if (((EntityExplosion)entity).baoZha instanceof BlastAntimatter || ((EntityExplosion)entity).baoZha instanceof BlastRedmatter) {
          this.worldObj.playSoundEffect(position.x,position.y,position.z,ICBMCore.PREFIX + "String_Node_Str",7.0F,(1.0F + (this.worldObj.rand.nextFloat() - this.worldObj.rand.nextFloat()) * 0.2F) * 0.7F);
          if (this.worldObj.rand.nextFloat() > 0.85 && !this.worldObj.isRemote) {
            entity.setDead();
            return explosionCreated;
          }
        }
      }
 else       if (entity instanceof EntityExplosive) {
        ((EntityExplosive)entity).explode();
      }
 else {
        entity.setDead();
      }
    }
  }
  return explosionCreated;
}