Program: 94236
Project: 94236
Buggy source:
public Gamepad(int i){
  index=i;
  Array controllers=Controllers.getControllers();
  if (controllers.size > index)   controller=(Controller)controllers.get(index);
 else   throw new IndexOutOfBoundsException("String_Node_Str" + index);
  controller.addListener(new GdxProcessor.GamepadAdapter(this));
  profiles=new HashMap<String,Profile>();
  Profile p=new Profile("String_Node_Str");
  p.btnToCode.put("String_Node_Str",3);
  p.btnToCode.put("String_Node_Str",4);
  p.btnToCode.put("String_Node_Str",0);
  p.btnToCode.put("String_Node_Str",1);
  p.btnToCode.put("String_Node_Str",5);
  p.btnToCode.put("String_Node_Str",2);
  p.btnToCode.put("String_Node_Str",6);
  p.btnToCode.put("String_Node_Str",7);
  p.btnToCode.put("String_Node_Str",8);
  p.btnToCode.put("String_Node_Str",9);
  p.axes.put("String_Node_Str",new Axis(0));
  p.axes.put("String_Node_Str",new Axis(1));
  p.axes.put("String_Node_Str",new Axis(3));
  p.axes.put("String_Node_Str",new Axis(4));
  p.axes.put("String_Node_Str",new Axis(2));
  p.axes.put("String_Node_Str",new Axis(5));
  p.sticks.put("String_Node_Str",new Stick(p.axes.get("String_Node_Str"),p.axes.get("String_Node_Str")));
  p.sticks.put("String_Node_Str",new Stick(p.axes.get("String_Node_Str"),p.axes.get("String_Node_Str")));
  p.processAxis=new Profile.FnProcessAxis(){
    public float[] eval(    int axis,    float value){
      if (axis == 2 || axis == 5) {
        value=(value + 1) / 2;
      }
      return new float[]{axis,value};
    }
  }
;
  p.btnToCode.put("String_Node_Str",100 + PovDirection.west.ordinal());
  p.btnToCode.put("String_Node_Str",100 + PovDirection.east.ordinal());
  p.btnToCode.put("String_Node_Str",100 + PovDirection.north.ordinal());
  p.btnToCode.put("String_Node_Str",100 + PovDirection.south.ordinal());
  p.btnToCode.put("String_Node_Str",-200 - p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",-200 - p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",-200 - p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",-200 - p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  profiles.put(p.name,p);
  p=new Profile("String_Node_Str");
  p.btnToCode=new HashMap<String,Integer>(profiles.get("String_Node_Str").btnToCode);
  p.btnToCode.remove("String_Node_Str");
  p.btnToCode.remove("String_Node_Str");
  p.btnToCode.put("String_Node_Str",2);
  p.btnToCode.put("String_Node_Str",3);
  p.btnToCode.put("String_Node_Str",4);
  p.btnToCode.put("String_Node_Str",5);
  p.btnToCode.put("String_Node_Str",8);
  p.btnToCode.put("String_Node_Str",9);
  if (SharedLibraryLoader.isLinux) {
    p.btnToCode.put("String_Node_Str",9);
    p.btnToCode.put("String_Node_Str",10);
  }
  p.axes.put("String_Node_Str",new Axis(1));
  p.axes.put("String_Node_Str",new Axis(0));
  if (SharedLibraryLoader.isLinux) {
    p.axes.put("String_Node_Str",new Axis(0));
    p.axes.put("String_Node_Str",new Axis(1));
  }
  p.axes.put("String_Node_Str",new Axis(3));
  p.axes.put("String_Node_Str",new Axis(2));
  if (SharedLibraryLoader.isLinux) {
    p.axes.put("String_Node_Str",new Axis(3));
    p.axes.put("String_Node_Str",new Axis(4));
  }
  p.axes.put("String_Node_Str",new Axis(4));
  p.axes.put("String_Node_Str",new Axis(5));
  if (SharedLibraryLoader.isLinux) {
    p.axes.put("String_Node_Str",new Axis(2));
    p.axes.put("String_Node_Str",new Axis(5));
  }
  p.sticks.put("String_Node_Str",new Stick(p.axes.get("String_Node_Str"),p.axes.get("String_Node_Str")));
  p.sticks.put("String_Node_Str",new Stick(p.axes.get("String_Node_Str"),p.axes.get("String_Node_Str")));
  p.btnToCode.put("String_Node_Str",-200 - p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",-200 - p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",-200 - p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",-200 - p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.processAxis=new Profile.FnProcessAxis(){
    public float[] eval(    int axis,    float value){
      if (SharedLibraryLoader.isWindows) {
        if (axis == 4 && value < 0) {
          axis=5;
          value=-value;
        }
      }
 else       if ((SharedLibraryLoader.isLinux) && (axis == axes.get("String_Node_Str").code || axis == axes.get("String_Node_Str").code)) {
        value+=1;
        value/=2;
        value=Math.min(Math.max(value,0),1);
      }
      return new float[]{axis,value};
    }
  }
;
  profiles.put(p.name,p);
  p=new Profile("String_Node_Str");
  for (int a=0; a < 32; a++)   p.btnToCode.put("String_Node_Str" + String.valueOf(a),a);
  for (int a=0; a < 16; a++) {
    String axisName="String_Node_Str" + String.valueOf(a);
    Axis axis=new Axis(a);
    p.axes.put(axisName,axis);
    p.btnToCode.put(axisName + "String_Node_Str",-200 - axis.code);
    p.btnToCode.put(axisName + "String_Node_Str",200 + axis.code);
  }
  for (int a=0; a < 8; a++) {
    Stick s=new Stick(p.axes.get("String_Node_Str" + String.valueOf(a * 2)),p.axes.get("String_Node_Str" + String.valueOf(a * 2 + 1)));
    p.sticks.put("String_Node_Str" + String.valueOf(a),s);
  }
  p.btnToCode.put("String_Node_Str",100 + PovDirection.west.ordinal());
  p.btnToCode.put("String_Node_Str",100 + PovDirection.east.ordinal());
  p.btnToCode.put("String_Node_Str",100 + PovDirection.north.ordinal());
  p.btnToCode.put("String_Node_Str",100 + PovDirection.south.ordinal());
  profiles.put(p.name,p);
  profile("String_Node_Str");
}

Fixed version (ground truth):
public Gamepad(int i){
  index=i;
  Array controllers=Controllers.getControllers();
  if (controllers.size > index)   controller=(Controller)controllers.get(index);
 else   throw new IndexOutOfBoundsException("String_Node_Str" + index);
  controller.addListener(new GdxProcessor.GamepadAdapter(this));
  profiles=new HashMap<String,Profile>();
  Profile p=new Profile("String_Node_Str");
  p.btnToCode.put("String_Node_Str",3);
  p.btnToCode.put("String_Node_Str",4);
  p.btnToCode.put("String_Node_Str",0);
  p.btnToCode.put("String_Node_Str",1);
  p.btnToCode.put("String_Node_Str",5);
  p.btnToCode.put("String_Node_Str",2);
  p.btnToCode.put("String_Node_Str",6);
  p.btnToCode.put("String_Node_Str",7);
  p.btnToCode.put("String_Node_Str",8);
  p.btnToCode.put("String_Node_Str",9);
  p.axes.put("String_Node_Str",new Axis(0));
  p.axes.put("String_Node_Str",new Axis(1));
  p.axes.put("String_Node_Str",new Axis(3));
  p.axes.put("String_Node_Str",new Axis(4));
  p.axes.put("String_Node_Str",new Axis(2));
  p.axes.put("String_Node_Str",new Axis(5));
  p.sticks.put("String_Node_Str",new Stick(p.axes.get("String_Node_Str"),p.axes.get("String_Node_Str")));
  p.sticks.put("String_Node_Str",new Stick(p.axes.get("String_Node_Str"),p.axes.get("String_Node_Str")));
  p.processAxis=new Profile.FnProcessAxis(){
    public float[] eval(    int axis,    float value){
      if (axis == 2 || axis == 5) {
        value=(value + 1) / 2;
      }
      return new float[]{axis,value};
    }
  }
;
  p.btnToCode.put("String_Node_Str",100 + PovDirection.west.ordinal());
  p.btnToCode.put("String_Node_Str",100 + PovDirection.east.ordinal());
  p.btnToCode.put("String_Node_Str",100 + PovDirection.north.ordinal());
  p.btnToCode.put("String_Node_Str",100 + PovDirection.south.ordinal());
  p.btnToCode.put("String_Node_Str",-200 - p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",-200 - p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",-200 - p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",-200 - p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  profiles.put(p.name,p);
  p=new Profile("String_Node_Str");
  p.btnToCode=new HashMap<String,Integer>(profiles.get("String_Node_Str").btnToCode);
  p.btnToCode.remove("String_Node_Str");
  p.btnToCode.remove("String_Node_Str");
  p.btnToCode.put("String_Node_Str",2);
  p.btnToCode.put("String_Node_Str",3);
  p.btnToCode.put("String_Node_Str",4);
  p.btnToCode.put("String_Node_Str",5);
  p.btnToCode.put("String_Node_Str",8);
  p.btnToCode.put("String_Node_Str",9);
  String os=System.getProperty("String_Node_Str");
  if (os.contains("String_Node_Str")) {
    p.btnToCode.put("String_Node_Str",9);
    p.btnToCode.put("String_Node_Str",10);
  }
  p.axes.put("String_Node_Str",new Axis(1));
  p.axes.put("String_Node_Str",new Axis(0));
  if (os.contains("String_Node_Str")) {
    p.axes.put("String_Node_Str",new Axis(0));
    p.axes.put("String_Node_Str",new Axis(1));
  }
  p.axes.put("String_Node_Str",new Axis(3));
  p.axes.put("String_Node_Str",new Axis(2));
  if (os.contains("String_Node_Str")) {
    p.axes.put("String_Node_Str",new Axis(3));
    p.axes.put("String_Node_Str",new Axis(4));
  }
  p.axes.put("String_Node_Str",new Axis(4));
  p.axes.put("String_Node_Str",new Axis(5));
  if (os.contains("String_Node_Str")) {
    p.axes.put("String_Node_Str",new Axis(2));
    p.axes.put("String_Node_Str",new Axis(5));
  }
  p.sticks.put("String_Node_Str",new Stick(p.axes.get("String_Node_Str"),p.axes.get("String_Node_Str")));
  p.sticks.put("String_Node_Str",new Stick(p.axes.get("String_Node_Str"),p.axes.get("String_Node_Str")));
  p.btnToCode.put("String_Node_Str",-200 - p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",-200 - p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",-200 - p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",-200 - p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.btnToCode.put("String_Node_Str",200 + p.axes.get("String_Node_Str").code);
  p.processAxis=new Profile.FnProcessAxis(){
    public float[] eval(    int axis,    float value){
      String os=System.getProperty("String_Node_Str");
      if (os.contains("String_Node_Str")) {
        if (axis == 4 && value < 0) {
          axis=5;
          value=-value;
        }
      }
 else       if ((os.contains("String_Node_Str")) && (axis == axes.get("String_Node_Str").code || axis == axes.get("String_Node_Str").code)) {
        value+=1;
        value/=2;
        value=Math.min(Math.max(value,0),1);
      }
      return new float[]{axis,value};
    }
  }
;
  profiles.put(p.name,p);
  p=new Profile("String_Node_Str");
  for (int a=0; a < 32; a++)   p.btnToCode.put("String_Node_Str" + String.valueOf(a),a);
  for (int a=0; a < 16; a++) {
    String axisName="String_Node_Str" + String.valueOf(a);
    Axis axis=new Axis(a);
    p.axes.put(axisName,axis);
    p.btnToCode.put(axisName + "String_Node_Str",-200 - axis.code);
    p.btnToCode.put(axisName + "String_Node_Str",200 + axis.code);
  }
  for (int a=0; a < 8; a++) {
    Stick s=new Stick(p.axes.get("String_Node_Str" + String.valueOf(a * 2)),p.axes.get("String_Node_Str" + String.valueOf(a * 2 + 1)));
    p.sticks.put("String_Node_Str" + String.valueOf(a),s);
  }
  p.btnToCode.put("String_Node_Str",100 + PovDirection.west.ordinal());
  p.btnToCode.put("String_Node_Str",100 + PovDirection.east.ordinal());
  p.btnToCode.put("String_Node_Str",100 + PovDirection.north.ordinal());
  p.btnToCode.put("String_Node_Str",100 + PovDirection.south.ordinal());
  profiles.put(p.name,p);
  profile("String_Node_Str");
}