Program: 109776
Project: 109776
Buggy source:
private void printRecipes() throws Exception {
  List<ShapedRecipes> recipes=((Encyclopedia)book).getRecipesForEntry(selectedIndex);
  if (recipes == null || recipes.isEmpty()) {
    return;
  }
  int newx=width / 2 + 25;
  int newy=height / 2 - 80;
  int indexPosition=0;
  for (int entry=contentPage * book.entriesPerContentPage(contentMode); entry < (contentPage + 1) * book.entriesPerContentPage(contentMode); entry++) {
    if (entry >= book.getContentPageCount(selectedIndex,contentMode)) {
      return;
    }
    Encyclopedia.RecipeEntry recipe=((Encyclopedia)book).getFormattedRecipe(recipes.get(entry));
    TropicraftRenderUtils.bindTextureGui(openTextureIndex);
    drawTexturedModalRect(newx - 3,newy - 3,0,187,122,60);
    int offsetX=18;
    int offsetY=18;
    for (int row=0; row < recipe.height; row++) {
      for (int col=0; col < recipe.width; col++) {
        int itemIndex=(row * recipe.width) + col;
        if (recipe.ingredients[itemIndex] != null) {
          int renderX=newx + (offsetX * col) + 1;
          int renderY=newy + (offsetY * row) + 1;
          GlStateManager.pushMatrix();
          GlStateManager.enableRescaleNormal();
          RenderHelper.enableGUIStandardItemLighting();
          itemRenderer.renderItemIntoGUI(recipe.ingredients[itemIndex],renderX,renderY);
          RenderHelper.disableStandardItemLighting();
          GlStateManager.disableRescaleNormal();
          GlStateManager.popMatrix();
        }
      }
    }
    for (int row=0; row < recipe.height; row++) {
      for (int col=0; col < recipe.width; col++) {
        int itemIndex=(row * recipe.width) + col;
        int renderX=newx + (offsetX * col) + 1;
        int renderY=newy + (offsetY * row) + 1;
        checkMouseHover(recipe.ingredients[itemIndex],renderX,renderY,18);
      }
    }
    GlStateManager.pushMatrix();
    GlStateManager.scale(1.5F,1.5F,1.5F);
    GlStateManager.translate(newx / 3F + 1F,newy / 3F - .75F,0F);
    GlStateManager.enableRescaleNormal();
    RenderHelper.enableGUIStandardItemLighting();
    itemRenderer.renderItemIntoGUI(recipe.output,newx / 3 + 60,newy / 3 + 11);
    itemRenderer.renderItemOverlayIntoGUI(fontRenderer,recipe.output,newx / 3 + 60,newy / 3 + 11,"String_Node_Str");
    RenderHelper.disableStandardItemLighting();
    GlStateManager.disableRescaleNormal();
    GlStateManager.popMatrix();
    GlStateManager.pushMatrix();
    checkMouseHover(recipe.output,newx + 90,newy + 20,25);
    GlStateManager.popMatrix();
    indexPosition++;
    newy+=62;
  }
}

Fixed version (ground truth):
private void printRecipes() throws Exception {
  List<ShapedRecipes> recipes=((Encyclopedia)book).getRecipesForEntry(selectedIndex);
  if (recipes == null || recipes.isEmpty()) {
    return;
  }
  int newx=width / 2 + 25;
  int newy=height / 2 - 80;
  int indexPosition=0;
  for (int entry=contentPage * book.entriesPerContentPage(contentMode); entry < (contentPage + 1) * book.entriesPerContentPage(contentMode); entry++) {
    if (entry >= book.getContentPageCount(selectedIndex,contentMode)) {
      return;
    }
    Encyclopedia.RecipeEntry recipe=((Encyclopedia)book).getFormattedRecipe(recipes.get(entry));
    TropicraftRenderUtils.bindTextureGui(openTextureIndex);
    drawTexturedModalRect(newx - 3,newy - 3,0,187,122,60);
    int offsetX=18;
    int offsetY=18;
    for (int row=0; row < recipe.height; row++) {
      for (int col=0; col < recipe.width; col++) {
        int itemIndex=(row * recipe.width) + col;
        if (recipe.ingredients.get(itemIndex) != Ingredient.EMPTY) {
          int renderX=newx + (offsetX * col) + 1;
          int renderY=newy + (offsetY * row) + 1;
          GlStateManager.pushMatrix();
          GlStateManager.enableRescaleNormal();
          RenderHelper.enableGUIStandardItemLighting();
          itemRenderer.renderItemIntoGUI(recipe.ingredients.get(itemIndex).getMatchingStacks()[0],renderX,renderY);
          RenderHelper.disableStandardItemLighting();
          GlStateManager.disableRescaleNormal();
          GlStateManager.popMatrix();
        }
      }
    }
    for (int row=0; row < recipe.height; row++) {
      for (int col=0; col < recipe.width; col++) {
        int itemIndex=(row * recipe.width) + col;
        int renderX=newx + (offsetX * col) + 1;
        int renderY=newy + (offsetY * row) + 1;
        checkMouseHover(recipe.ingredients.get(itemIndex),renderX,renderY,18);
      }
    }
    GlStateManager.pushMatrix();
    GlStateManager.scale(1.5F,1.5F,1.5F);
    GlStateManager.translate(newx / 3F + 1F,newy / 3F - .75F,0F);
    GlStateManager.enableRescaleNormal();
    RenderHelper.enableGUIStandardItemLighting();
    itemRenderer.renderItemIntoGUI(recipe.output,newx / 3 + 60,newy / 3 + 11);
    itemRenderer.renderItemOverlayIntoGUI(fontRenderer,recipe.output,newx / 3 + 60,newy / 3 + 11,"String_Node_Str");
    RenderHelper.disableStandardItemLighting();
    GlStateManager.disableRescaleNormal();
    GlStateManager.popMatrix();
    GlStateManager.pushMatrix();
    checkMouseHover(recipe.output,newx + 90,newy + 20,25);
    GlStateManager.popMatrix();
    indexPosition++;
    newy+=62;
  }
}