Program: 165692
Project: 165692
Buggy source:
private boolean renderFaces(Tessellator tessellator,final VertexBuffer buffer,ItemStack stack,boolean showScan,boolean grayscale,int scanId){
  RenderData data=getRenderDataAndCreate(shapeID);
  if (data.isWantData() || waitForNewRequest > 0) {
    if (waitForNewRequest <= 0) {
      RFToolsMessages.INSTANCE.sendToServer(new PacketRequestShapeData(stack,shapeID));
      waitForNewRequest=20;
      data.setWantData(false);
    }
 else {
      waitForNewRequest--;
    }
  }
 else {
    long check=calculateChecksum(stack);
    if (!data.hasData() || check != data.getChecksum()) {
      data.setChecksum(check);
      data.setWantData(true);
    }
  }
  boolean needScanSound=false;
  if (data.getPlanes() != null) {
    long time=System.currentTimeMillis();
    for (    RenderData.RenderPlane plane : data.getPlanes()) {
      if (plane != null) {
        if (plane.isDirty()) {
          createRenderData(tessellator,buffer,plane,data,grayscale);
          plane.markClean();
        }
        boolean flash=showScan && (plane.getBirthtime() > time - ScannerConfiguration.projectorFlashTimeout);
        if (flash) {
          needScanSound=true;
          GlStateManager.enableBlend();
          GlStateManager.blendFunc(GL11.GL_ONE,GL11.GL_ONE);
        }
        plane.render();
        if (flash) {
          GlStateManager.disableBlend();
          GlStateManager.blendFunc(GL11.GL_SRC_ALPHA,GL11.GL_ONE_MINUS_SRC_ALPHA);
        }
      }
    }
  }
  if (scanId != -1) {
    extraDataCounter--;
    if (extraDataCounter <= 0) {
      extraDataCounter=10;
      ScanDataManagerClient.getScansClient().requestExtraDataClient(scanId);
    }
    ScanExtraData extraData=ScanDataManagerClient.getScansClient().getExtraDataClient(scanId);
    for (    ScanExtraData.Beacon beacon : extraData.getBeacons()) {
      int x=beacon.getPos().getX();
      int y=beacon.getPos().getY() + 1;
      int z=beacon.getPos().getZ();
      BeaconType type=beacon.getType();
      GlStateManager.translate(x,y,z);
      RenderData.RenderElement element=getBeaconElement(tessellator,buffer,type,beacon.isDoBeacon());
      element.render();
      GlStateManager.translate(-x,-y,-z);
    }
  }
  return needScanSound;
}

Fixed version (ground truth):
private boolean renderFaces(Tessellator tessellator,final VertexBuffer buffer,ItemStack stack,boolean showScan,boolean grayscale,int scanId){
  RenderData data=getRenderDataAndCreate(shapeID);
  if (data.isWantData() || waitForNewRequest > 0) {
    if (waitForNewRequest <= 0) {
      RFToolsMessages.INSTANCE.sendToServer(new PacketRequestShapeData(stack,shapeID));
      waitForNewRequest=20;
      data.setWantData(false);
    }
 else {
      waitForNewRequest--;
    }
  }
 else {
    long check=calculateChecksum(stack);
    if (!data.hasData() || check != data.getChecksum()) {
      data.setChecksum(check);
      data.setWantData(true);
    }
  }
  boolean needScanSound=false;
  if (data.getPlanes() != null) {
    long time=System.currentTimeMillis();
    for (    RenderData.RenderPlane plane : data.getPlanes()) {
      if (plane != null) {
        if (plane.isDirty()) {
          createRenderData(tessellator,buffer,plane,data,grayscale);
          plane.markClean();
        }
        boolean flash=showScan && (plane.getBirthtime() > time - ScannerConfiguration.projectorFlashTimeout);
        if (flash) {
          needScanSound=true;
          GlStateManager.enableBlend();
          GlStateManager.blendFunc(GL11.GL_ONE,GL11.GL_ONE);
        }
        plane.render();
        if (flash) {
          GlStateManager.disableBlend();
          GlStateManager.blendFunc(GL11.GL_SRC_ALPHA,GL11.GL_ONE_MINUS_SRC_ALPHA);
        }
      }
    }
  }
  int recursiveScanId=ShapeCardItem.getScanIdRecursive(stack);
  if (recursiveScanId > 0) {
    extraDataCounter--;
    if (extraDataCounter <= 0) {
      extraDataCounter=10;
      ScanDataManagerClient.getScansClient().requestExtraDataClient(recursiveScanId);
    }
    ScanExtraData extraData=ScanDataManagerClient.getScansClient().getExtraDataClient(recursiveScanId);
    for (    ScanExtraData.Beacon beacon : extraData.getBeacons()) {
      int x=beacon.getPos().getX();
      int y=beacon.getPos().getY() + 1;
      int z=beacon.getPos().getZ();
      BeaconType type=beacon.getType();
      GlStateManager.translate(x,y,z);
      RenderData.RenderElement element=getBeaconElement(tessellator,buffer,type,beacon.isDoBeacon());
      element.render();
      GlStateManager.translate(-x,-y,-z);
    }
  }
  return needScanSound;
}