Program: 61621
Project: 61621
Buggy source:
public GraphTextWriter getParamStr(GraphTextWriter writer,AVM2ConstantPool constants,MethodBody body,ABC abc,List<String> fullyQualifiedNames){
  Map<Integer,String> localRegNames=new HashMap<>();
  if (body != null && Configuration.getLocalNamesFromDebugInfo.get()) {
    localRegNames=body.getCode().getLocalRegNamesFromDebug(abc);
  }
  Map<String,String> pdata;
  for (int i=0; i < param_types.length; i++) {
    if (i > 0) {
      writer.appendNoHilight("String_Node_Str");
    }
    pdata=new HashMap<>();
    pdata.put("String_Node_Str","String_Node_Str");
    if (!localRegNames.isEmpty()) {
      pdata.put("String_Node_Str",localRegNames.get(i + 1));
      writer.hilightSpecial(IdentifiersDeobfuscation.printIdentifier(true,localRegNames.get(i + 1)),"String_Node_Str",i,pdata);
    }
 else     if ((paramNames.length > i) && (paramNames[i] != 0) && Configuration.paramNamesEnable.get()) {
      writer.hilightSpecial(IdentifiersDeobfuscation.printIdentifier(true,constants.getString(paramNames[i])),"String_Node_Str",i,pdata);
    }
 else {
      writer.hilightSpecial("String_Node_Str" + (i + 1),"String_Node_Str",i,pdata);
    }
    writer.appendNoHilight("String_Node_Str");
    if (param_types[i] == 0) {
      writer.hilightSpecial("String_Node_Str","String_Node_Str",i);
    }
 else {
      writer.hilightSpecial(constants.getMultiname(param_types[i]).getName(constants,fullyQualifiedNames,false),"String_Node_Str",i);
    }
    if (optional != null) {
      if (i >= param_types.length - optional.length) {
        int optionalIndex=i - (param_types.length - optional.length);
        writer.appendNoHilight("String_Node_Str");
        writer.hilightSpecial(optional[optionalIndex].toString(constants),"String_Node_Str",optionalIndex);
      }
    }
  }
  if (flagNeed_rest()) {
    String restAdd="String_Node_Str";
    if ((param_types != null) && (param_types.length > 0)) {
      restAdd+="String_Node_Str";
    }
    restAdd+="String_Node_Str";
    String restName;
    if (!localRegNames.isEmpty()) {
      restName=localRegNames.get(param_types.length + 1);
    }
 else {
      restName="String_Node_Str";
    }
    restAdd+=restName;
    pdata=new HashMap<>();
    pdata.put("String_Node_Str","String_Node_Str");
    pdata.put("String_Node_Str",restName);
    writer.hilightSpecial(restAdd,"String_Node_Str",0,pdata);
  }
  return writer;
}

Fixed version (ground truth):
public GraphTextWriter getParamStr(GraphTextWriter writer,AVM2ConstantPool constants,MethodBody body,ABC abc,List<String> fullyQualifiedNames){
  Map<Integer,String> localRegNames=new HashMap<>();
  if (body != null && Configuration.getLocalNamesFromDebugInfo.get()) {
    localRegNames=body.getCode().getLocalRegNamesFromDebug(abc);
  }
  Map<String,String> pdata;
  for (int i=0; i < param_types.length; i++) {
    if (i > 0) {
      writer.appendNoHilight("String_Node_Str");
    }
    pdata=new HashMap<>();
    pdata.put("String_Node_Str","String_Node_Str");
    if (!localRegNames.isEmpty()) {
      pdata.put("String_Node_Str",localRegNames.get(i + 1));
      writer.hilightSpecial(IdentifiersDeobfuscation.printIdentifier(true,localRegNames.get(i + 1)),"String_Node_Str",i,pdata);
    }
 else     if ((paramNames.length > i) && (paramNames[i] != 0) && Configuration.paramNamesEnable.get()) {
      pdata.put("String_Node_Str",constants.getString(paramNames[i]));
      writer.hilightSpecial(IdentifiersDeobfuscation.printIdentifier(true,constants.getString(paramNames[i])),"String_Node_Str",i,pdata);
    }
 else {
      pdata.put("String_Node_Str","String_Node_Str" + (i + 1));
      writer.hilightSpecial("String_Node_Str" + (i + 1),"String_Node_Str",i,pdata);
    }
    writer.appendNoHilight("String_Node_Str");
    if (param_types[i] == 0) {
      writer.hilightSpecial("String_Node_Str","String_Node_Str",i);
    }
 else {
      writer.hilightSpecial(constants.getMultiname(param_types[i]).getName(constants,fullyQualifiedNames,false),"String_Node_Str",i);
    }
    if (optional != null) {
      if (i >= param_types.length - optional.length) {
        int optionalIndex=i - (param_types.length - optional.length);
        writer.appendNoHilight("String_Node_Str");
        writer.hilightSpecial(optional[optionalIndex].toString(constants),"String_Node_Str",optionalIndex);
      }
    }
  }
  if (flagNeed_rest()) {
    String restAdd="String_Node_Str";
    if ((param_types != null) && (param_types.length > 0)) {
      restAdd+="String_Node_Str";
    }
    restAdd+="String_Node_Str";
    String restName;
    if (!localRegNames.isEmpty()) {
      restName=localRegNames.get(param_types.length + 1);
    }
 else {
      restName="String_Node_Str";
    }
    pdata=new HashMap<>();
    pdata.put("String_Node_Str","String_Node_Str");
    pdata.put("String_Node_Str",restName);
    writer.append(restAdd);
    writer.hilightSpecial(restName,"String_Node_Str",0,pdata);
  }
  return writer;
}