ItemStack var5 = var4.getStack();
var3 = var5.copy();
if(par2 == 0) {
if(!mergeItemStack(var5, 1, 36, false)) return null;
var4.onSlotChange(var5, var3);
} else if(isProgrammableItem(var3)) {
if(!mergeItemStack(var5, 0, 1, false)) return null;
var4.onSlotChange(var5, var3);
}
if(var5.stackSize == 0) {