Program: 169696
Project: 169696
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.distance(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.translate(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.world().isRemote) {
    if (entity instanceof EntityFlyingBlock) {
      if (ICBMExplosion.proxy.getParticleSetting() == 0) {
        if (this.world().rand.nextInt(5) == 0) {
          ICBMExplosion.proxy.spawnParticle("String_Node_Str",this.world(),new Vector3(entity),-xDifference,-yDifference + 10,-zDifference,((EntityFlyingBlock)entity).mimicBlock,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.world().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).blast instanceof BlastAntimatter || ((EntityExplosion)entity).blast instanceof BlastRedmatter) {
          this.world().playSoundEffect(position.x(),position.y(),position.z(),Reference.PREFIX + "String_Node_Str",7.0F,(1.0F + (this.world().rand.nextFloat() - this.world().rand.nextFloat()) * 0.2F) * 0.7F);
          if (this.world().rand.nextFloat() > 0.85 && !this.world().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.distance(new Vector3(entity)) / radius);
  Vector3 entityPosition=new Vector3(entity);
  Vector3 centeredPosition=entityPosition.clone().subtract(this.position);
  EulerAngle angle=new EulerAngle(1.5 * distancePercentage * Math.random(),1.5 * distancePercentage * Math.random(),1.5 * distancePercentage * Math.random());
  centeredPosition.transform(angle);
  Vector3 newPosition=this.position.add(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.world().isRemote) {
    if (entity instanceof EntityFlyingBlock) {
      if (ICBMExplosion.proxy.getParticleSetting() == 0) {
        if (this.world().rand.nextInt(5) == 0) {
          ICBMExplosion.proxy.spawnParticle("String_Node_Str",this.world(),new Vector3(entity),-xDifference,-yDifference + 10,-zDifference,Block.getIdFromBlock(((EntityFlyingBlock)entity).mimicBlock),0,((EntityFlyingBlock)entity).metadata,2,1);
        }
      }
    }
  }
  if (new Vector3(entity.posX,entity.posY,entity.posZ).add(position).magnitude() < 4) {
    if (doExplosion && !explosionCreated && callCount % 5 == 0) {
      Vector3 tempMotion=new Vector3(this.controller.motionX,this.controller.motionY,this.controller.motionZ);
      this.world().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).blast instanceof BlastAntimatter || ((EntityExplosion)entity).blast instanceof BlastRedmatter) {
          this.world().playSoundEffect(position.x(),position.y(),position.z(),Reference.PREFIX + "String_Node_Str",7.0F,(1.0F + (this.world().rand.nextFloat() - this.world().rand.nextFloat()) * 0.2F) * 0.7F);
          if (this.world().rand.nextFloat() > 0.85 && !this.world().isRemote) {
            entity.setDead();
            return explosionCreated;
          }
        }
      }
 else       if (entity instanceof EntityExplosive) {
        ((EntityExplosive)entity).explode();
      }
 else {
        entity.setDead();
      }
    }
  }
  return explosionCreated;
}