Program: 30565
Project: 30565
Buggy source:
public void renderParticle(Tessellator par1Tessellator,float par2,float par3,float par4,float par5,float par6,float par7){
  float f6=this.particleTextureIndex.getMinU();
  float f7=this.particleTextureIndex.getMaxU();
  float f8=this.particleTextureIndex.getMinV();
  float f9=this.particleTextureIndex.getMaxV();
  float f10=0.1F * this.particleScale;
  float f11=(float)(this.prevPosX + (this.posX - this.prevPosX) * (double)par2 - interpPosX);
  float f12=(float)(this.prevPosY + (this.posY - this.prevPosY) * (double)par2 - interpPosY);
  float f13=(float)(this.prevPosZ + (this.posZ - this.prevPosZ) * (double)par2 - interpPosZ);
  float f14=1.0F;
  int blkX=MathHelper.floor_double(posX);
  int blkY=MathHelper.floor_double(posY);
  int blkZ=MathHelper.floor_double(posZ);
  if (blkX == startBlkX && blkY == startBlkY && blkZ == startBlkZ) {
    par1Tessellator.setColorRGBA_F(this.particleRed * f14,this.particleGreen * f14,this.particleBlue * f14,this.particleAlpha);
    par1Tessellator.addVertexWithUV((double)(f11 - par3 * f10 - par6 * f10),(double)(f12 - par4 * f10),(double)(f13 - par5 * f10 - par7 * f10),(double)f7,(double)f9);
    par1Tessellator.addVertexWithUV((double)(f11 - par3 * f10 + par6 * f10),(double)(f12 + par4 * f10),(double)(f13 - par5 * f10 + par7 * f10),(double)f7,(double)f8);
    par1Tessellator.addVertexWithUV((double)(f11 + par3 * f10 + par6 * f10),(double)(f12 + par4 * f10),(double)(f13 + par5 * f10 + par7 * f10),(double)f6,(double)f8);
    par1Tessellator.addVertexWithUV((double)(f11 + par3 * f10 - par6 * f10),(double)(f12 - par4 * f10),(double)(f13 + par5 * f10 - par7 * f10),(double)f6,(double)f9);
  }
}

Fixed version (ground truth):
public void renderParticle(Tessellator par1Tessellator,float partialTick,float x,float y,float z,float rx,float rz){
  if (partialTick < 0 || partialTick > 1)   return;
  float f6=this.particleTextureIndex.getMinU();
  float f7=this.particleTextureIndex.getMaxU();
  float f8=this.particleTextureIndex.getMinV();
  float f9=this.particleTextureIndex.getMaxV();
  float scale=0.1F * this.particleScale;
  float offx=(float)(this.prevPosX + (this.posX - this.prevPosX) * (double)partialTick);
  float offy=(float)(this.prevPosY + (this.posY - this.prevPosY) * (double)partialTick);
  float offz=(float)(this.prevPosZ + (this.posZ - this.prevPosZ) * (double)partialTick);
  float f14=1.0F;
  int blkX=MathHelper.floor_double(offx);
  int blkY=MathHelper.floor_double(offy);
  int blkZ=MathHelper.floor_double(offz);
  if (blkX == startBlkX && blkY == startBlkY && blkZ == startBlkZ) {
    offx-=interpPosX;
    offy-=interpPosY;
    offz-=interpPosZ;
    par1Tessellator.setColorRGBA_F(this.particleRed * f14,this.particleGreen * f14,this.particleBlue * f14,this.particleAlpha);
    par1Tessellator.addVertexWithUV((double)(offx - x * scale - rx * scale),(double)(offy - y * scale),(double)(offz - z * scale - rz * scale),(double)f7,(double)f9);
    par1Tessellator.addVertexWithUV((double)(offx - x * scale + rx * scale),(double)(offy + y * scale),(double)(offz - z * scale + rz * scale),(double)f7,(double)f8);
    par1Tessellator.addVertexWithUV((double)(offx + x * scale + rx * scale),(double)(offy + y * scale),(double)(offz + z * scale + rz * scale),(double)f6,(double)f8);
    par1Tessellator.addVertexWithUV((double)(offx + x * scale - rx * scale),(double)(offy - y * scale),(double)(offz + z * scale - rz * scale),(double)f6,(double)f9);
  }
}