Program: 156921
Project: 156921
Buggy source:
private void drawToolTips(ToolTip toolTips,int mouseX,int mouseY){
  if (toolTips.size() > 0) {
    int left=this.guiLeft;
    int top=this.guiTop;
    int lenght=0;
    int x;
    int y;
    for (    ToolTipLine tip : toolTips) {
      y=this.fontRendererObj.getStringWidth(tip.text);
      if (y > lenght) {
        lenght=y;
      }
    }
    x=mouseX - left + 12;
    y=mouseY - top - 12;
    int var14=8;
    if (toolTips.size() > 1) {
      var14+=2 + (toolTips.size() - 1) * 10;
    }
    this.zLevel=300.0F;
    itemRendererObj.zLevel=300.0F;
    int var15=-267386864;
    this.drawGradientRect(x - 3,y - 4,x + lenght + 3,y - 3,var15,var15);
    this.drawGradientRect(x - 3,y + var14 + 3,x + lenght + 3,y + var14 + 4,var15,var15);
    this.drawGradientRect(x - 3,y - 3,x + lenght + 3,y + var14 + 3,var15,var15);
    this.drawGradientRect(x - 4,y - 3,x - 3,y + var14 + 3,var15,var15);
    this.drawGradientRect(x + lenght + 3,y - 3,x + lenght + 4,y + var14 + 3,var15,var15);
    int var16=1347420415;
    int var17=(var16 & 16711422) >> 1 | var16 & -16777216;
    this.drawGradientRect(x - 3,y - 3 + 1,x - 3 + 1,y + var14 + 3 - 1,var16,var17);
    this.drawGradientRect(x + lenght + 2,y - 3 + 1,x + lenght + 3,y + var14 + 3 - 1,var16,var17);
    this.drawGradientRect(x - 3,y - 3,x + lenght + 3,y - 3 + 1,var16,var16);
    this.drawGradientRect(x - 3,y + var14 + 2,x + lenght + 3,y + var14 + 3,var17,var17);
    for (    ToolTipLine tip : toolTips) {
      String line=tip.text;
      if (tip.color == -1) {
        line="String_Node_Str" + line;
      }
 else {
        line="String_Node_Str" + Integer.toHexString(tip.color) + line;
      }
      this.fontRendererObj.drawStringWithShadow(line,x,y,-1);
      y+=10 + tip.getSpacing();
    }
    this.zLevel=0.0F;
    itemRenderer.zLevel=0.0F;
  }
}

Fixed version (ground truth):
private void drawToolTips(ToolTip toolTips,int mouseX,int mouseY){
  if (toolTips.size() > 0) {
    int left=this.guiLeft;
    int top=this.guiTop;
    int lenght=0;
    int x;
    int y;
    for (    ToolTipLine tip : toolTips) {
      y=this.fontRendererObj.getStringWidth(tip.text);
      if (y > lenght) {
        lenght=y;
      }
    }
    x=mouseX - left + 12;
    y=mouseY - top - 12;
    int var14=8;
    if (toolTips.size() > 1) {
      var14+=2 + (toolTips.size() - 1) * 10;
    }
    this.zLevel=300.0F;
    itemRender.zLevel=300.0F;
    int var15=-267386864;
    this.drawGradientRect(x - 3,y - 4,x + lenght + 3,y - 3,var15,var15);
    this.drawGradientRect(x - 3,y + var14 + 3,x + lenght + 3,y + var14 + 4,var15,var15);
    this.drawGradientRect(x - 3,y - 3,x + lenght + 3,y + var14 + 3,var15,var15);
    this.drawGradientRect(x - 4,y - 3,x - 3,y + var14 + 3,var15,var15);
    this.drawGradientRect(x + lenght + 3,y - 3,x + lenght + 4,y + var14 + 3,var15,var15);
    int var16=1347420415;
    int var17=(var16 & 16711422) >> 1 | var16 & -16777216;
    this.drawGradientRect(x - 3,y - 3 + 1,x - 3 + 1,y + var14 + 3 - 1,var16,var17);
    this.drawGradientRect(x + lenght + 2,y - 3 + 1,x + lenght + 3,y + var14 + 3 - 1,var16,var17);
    this.drawGradientRect(x - 3,y - 3,x + lenght + 3,y - 3 + 1,var16,var16);
    this.drawGradientRect(x - 3,y + var14 + 2,x + lenght + 3,y + var14 + 3,var17,var17);
    for (    ToolTipLine tip : toolTips) {
      String line=tip.text;
      if (tip.color == -1) {
        line="String_Node_Str" + line;
      }
 else {
        line="String_Node_Str" + Integer.toHexString(tip.color) + line;
      }
      this.fontRendererObj.drawStringWithShadow(line,x,y,-1);
      y+=10 + tip.getSpacing();
    }
    this.zLevel=0.0F;
    itemRender.zLevel=0.0F;
  }
}