Program: 58411
Project: 58411
Buggy source:
private static byte[] alterLongHashMap(String name,String transformedName,byte[] bytes,ClassReader cr){
  String[] names;
  if (LoadingPlugin.runtimeDeobfEnabled) {
    names=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"};
  }
 else {
    names=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"};
  }
  name=name.replace('.','/');
  ClassNode cn=new ClassNode(ASM5);
  cr.accept(cn,ClassReader.EXPAND_FRAMES);
  l: {
    boolean updated=false;
    MethodNode getEntry=null, containsItem=null;
    for (    MethodNode m : cn.methods) {
      String mName=m.name;
      if (names[0].equals(mName) && "String_Node_Str".equals(m.desc)) {
        updated=true;
        for (int i=0, e=m.instructions.size(); i < e; ++i) {
          AbstractInsnNode n=m.instructions.get(i);
          if (n.getOpcode() == LXOR) {
            m.instructions.insertBefore(n,new LdcInsnNode(new Long(13L)));
            m.instructions.insertBefore(n,new InsnNode(LMUL));
            break;
          }
        }
        if (containsItem != null) {
          break;
        }
      }
 else       if (names[2].equals(mName) && "String_Node_Str".equals(m.desc)) {
        containsItem=m;
        if (updated) {
          break;
        }
      }
    }
    mc:     if (containsItem != null) {
      ClassNode clone=new ClassNode(ASM5);
      cr.accept(clone,ClassReader.EXPAND_FRAMES);
      String sig="String_Node_Str";
      for (      MethodNode m : clone.methods) {
        String mName=m.name;
        if (names[1].equals(mName) && sig.equals(m.desc)) {
          getEntry=m;
          break;
        }
      }
      if (getEntry == null) {
        break mc;
      }
      updated=true;
      containsItem.instructions.clear();
      containsItem.instructions.add(getEntry.instructions);
      for (AbstractInsnNode n=containsItem.instructions.get(0); n != null; n=n.getNext()) {
        if (n.getOpcode() == ARETURN) {
          AbstractInsnNode n2=n.getPrevious();
          if (n2.getOpcode() == ACONST_NULL) {
            containsItem.instructions.set(n2,new InsnNode(ICONST_0));
          }
 else {
            containsItem.instructions.set(n2,new InsnNode(ICONST_1));
          }
          containsItem.instructions.set(n,n=new InsnNode(IRETURN));
        }
      }
    }
    if (!updated) {
      break l;
    }
    ClassWriter cw=new ClassWriter(ClassWriter.COMPUTE_MAXS);
    cn.accept(cw);
    bytes=cw.toByteArray();
  }
  return bytes;
}

Fixed version (ground truth):
private static byte[] alterLongHashMap(String name,String transformedName,byte[] bytes,ClassReader cr){
  String[] names;
  if (LoadingPlugin.runtimeDeobfEnabled) {
    names=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"};
  }
 else {
    names=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"};
  }
  ClassNode cn=new ClassNode(ASM5);
  cr.accept(cn,ClassReader.EXPAND_FRAMES);
  l: {
    boolean updated=false;
    MethodNode getEntry=null, containsItem=null;
    for (    MethodNode m : cn.methods) {
      String mName=m.name;
      if (names[0].equals(mName) && "String_Node_Str".equals(m.desc)) {
        updated=true;
        for (int i=0, e=m.instructions.size(); i < e; ++i) {
          AbstractInsnNode n=m.instructions.get(i);
          if (n.getOpcode() == LXOR) {
            m.instructions.insertBefore(n,new LdcInsnNode(new Long(13L)));
            m.instructions.insertBefore(n,new InsnNode(LMUL));
            break;
          }
        }
        if (containsItem != null) {
          break;
        }
      }
 else       if (names[2].equals(mName) && "String_Node_Str".equals(m.desc)) {
        containsItem=m;
        if (updated) {
          break;
        }
      }
    }
    mc:     if (containsItem != null) {
      ClassNode clone=new ClassNode(ASM5);
      cr.accept(clone,ClassReader.EXPAND_FRAMES);
      String sig="String_Node_Str";
      for (      MethodNode m : clone.methods) {
        String mName=m.name;
        if (names[1].equals(mName) && sig.equals(m.desc)) {
          getEntry=m;
          break;
        }
      }
      if (getEntry == null) {
        break mc;
      }
      updated=true;
      containsItem.instructions.clear();
      containsItem.instructions.add(getEntry.instructions);
      for (AbstractInsnNode n=containsItem.instructions.get(0); n != null; n=n.getNext()) {
        if (n.getOpcode() == ARETURN) {
          AbstractInsnNode n2=n.getPrevious();
          if (n2.getOpcode() == ACONST_NULL) {
            containsItem.instructions.set(n2,new InsnNode(ICONST_0));
          }
 else {
            containsItem.instructions.set(n2,new InsnNode(ICONST_1));
          }
          containsItem.instructions.set(n,n=new InsnNode(IRETURN));
        }
      }
    }
    if (!updated) {
      break l;
    }
    ClassWriter cw=new ClassWriter(ClassWriter.COMPUTE_MAXS);
    cn.accept(cw);
    bytes=cw.toByteArray();
  }
  return bytes;
}