
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int __regparm3 pa_get_absolute_expression(pa_it *insn,char **strp)

{
  char *pcVar1;
  offsetT oVar2;
  uint uVar3;
  
  the_insn.field_selector = pa_chk_field_selector((char **)insn);
  pcVar1 = input_line_pointer;
  input_line_pointer = (char *)insn->opcode;
  expr(0,&the_insn.exp,expr_normal);
  expr_end = input_line_pointer;
  input_line_pointer = pcVar1;
  if (the_insn.exp._12_1_ == '\x02') {
    uVar3 = the_insn.exp.X_add_number;
    oVar2 = the_insn.exp.X_add_number;
    switch(the_insn.field_selector) {
    case 0:
      break;
    case 1:
      oVar2 = the_insn.exp.X_add_number + 0x400;
    case 3:
    case 10:
      uVar3 = oVar2 >> 0xb;
      break;
    case 2:
      uVar3 = (the_insn.exp.X_add_number << 0x15) >> 0x15;
      break;
    case 4:
      uVar3 = the_insn.exp.X_add_number & 0x7ff;
      break;
    case 5:
      uVar3 = the_insn.exp.X_add_number + 0x800 >> 0xb;
      break;
    case 6:
      uVar3 = the_insn.exp.X_add_number | 0xfffff800;
      break;
    case 7:
    case 0xb:
      uVar3 = the_insn.exp.X_add_number + 0x1000 >> 0xb & 0xfffffffc;
      break;
    case 8:
      uVar3 = (the_insn.exp.X_add_number << 0x13) >> 0x13;
      break;
    case 9:
      goto _L627;
    default:
                    /* WARNING: Subroutine does not return */
      as_abort("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust");
    }
  }
  else {
    if (strict == 0) {
      pcVar1 = (char *)dcgettext(0,"Bad segment (should be absolute).",5);
      as_bad(pcVar1);
      return 0;
    }
_L627:
    uVar3 = 0;
  }
  return uVar3;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

uint __regparm3 FUN_00044900(undefined4 *param_1)

{
  undefined4 uVar1;
  uint uVar2;
  
  DAT_00083c04 = FUN_00041780();
  uVar1 = DAT_00083ef0;
  DAT_00083ef0 = *param_1;
  FUN_00024f00(0,&DAT_00083be4,1);
  DAT_00083bcc = DAT_00083ef0;
  DAT_00083ef0 = uVar1;
  if (DAT_00083bf0 == '\x02') {
    uVar2 = DAT_00083bec;
    switch(DAT_00083c04) {
    case 0:
      break;
    case 1:
      uVar2 = DAT_00083bec + 0x400;
    case 3:
    case 10:
      uVar2 = (int)uVar2 >> 0xb;
      break;
    case 2:
      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;
      break;
    case 4:
      uVar2 = DAT_00083bec & 0x7ff;
      break;
    case 5:
      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;
      break;
    case 6:
      uVar2 = DAT_00083bec | 0xfffff800;
      break;
    case 7:
    case 0xb:
      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;
      break;
    case 8:
      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;
      break;
    case 9:
      goto code_r0x0004495e;
    default:
                    /* WARNING: Subroutine does not return */
      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);
    }
  }
  else {
    if (DAT_00083bac == 0) {
      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);
      FUN_0002d660(uVar1);
      return 0;
    }
code_r0x0004495e:
    uVar2 = 0;
  }
  return uVar2;
}


PUSH EBP
PUSH EDI
MOV EDI,EAX
PUSH ESI
PUSH EBX
CALL 0x00019010
ADD EBX,0x366f5
SUB ESP,0xc
CALL 0x00041780
SUB ESP,0x4
LEA ESI,[EBX + 0x8ef0]
MOV dword ptr [EBX + 0x8c04],EAX
MOV EAX,dword ptr [EDI]
MOV EBP,dword ptr [ESI]
MOV dword ptr [ESI],EAX
LEA EAX,[EBX + 0x8be4]
PUSH 0x1
PUSH EAX
PUSH 0x0
CALL 0x00024f00
MOV EAX,dword ptr [ESI]
ADD ESP,0x10
MOV dword ptr [ESI],EBP
CMP byte ptr [EBX + 0x8bf0],0x2
MOV dword ptr [EBX + 0x8bcc],EAX
JZ 0x000449a0
MOV ESI,dword ptr [EBX + 0x8bac]
TEST ESI,ESI
JZ 0x00044970
XOR ESI,ESI
ADD ESP,0xc
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe19e0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000171a0
MOV dword ptr [ESP],EAX
CALL 0x0002d660
ADD ESP,0x10
MOV EAX,ESI
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP dword ptr [EBX + 0x8c04],0xb
MOV ESI,dword ptr [EBX + 0x8bec]
JA 0x00044a33
MOV EAX,dword ptr [EBX + 0x8c04]
ADD EBX,dword ptr [EBX + EAX*0x4 + 0xfffe1eac]
JMP EBX
PUSH EAX
LEA EAX,[EBX + 0xfffe2acc]
PUSH EAX
LEA EAX,[EBX + 0xfffdff4b]
PUSH 0x176
PUSH EAX
CALL 0x0002d780
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nuint __regparm3 FUN_00044900(undefined4 *param_1)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  \n  DAT_00083c04 = FUN_00041780();\n  uVar1 = DAT_00083ef0;\n  DAT_00083ef0 = *param_1;\n  FUN_00024f00(0,&DAT_00083be4,1);\n  DAT_00083bcc = DAT_00083ef0;\n  DAT_00083ef0 = uVar1;\n  if (DAT_00083bf0 == '\x02') {\n    uVar2 = DAT_00083bec;\n    switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }\n  }\n  else {\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }\n  return uVar2;\n}\n\n" comment (function_definition "uint __regparm3 FUN_00044900(undefined4 *param_1)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  \n  DAT_00083c04 = FUN_00041780();\n  uVar1 = DAT_00083ef0;\n  DAT_00083ef0 = *param_1;\n  FUN_00024f00(0,&DAT_00083be4,1);\n  DAT_00083bcc = DAT_00083ef0;\n  DAT_00083ef0 = uVar1;\n  if (DAT_00083bf0 == '\x02') {\n    uVar2 = DAT_00083bec;\n    switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }\n  }\n  else {\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }\n  return uVar2;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00044900(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  uint uVar2;\n  \n  DAT_00083c04 = FUN_00041780();\n  uVar1 = DAT_00083ef0;\n  DAT_00083ef0 = *param_1;\n  FUN_00024f00(0,&DAT_00083be4,1);\n  DAT_00083bcc = DAT_00083ef0;\n  DAT_00083ef0 = uVar1;\n  if (DAT_00083bf0 == '\x02') {\n    uVar2 = DAT_00083bec;\n    switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }\n  }\n  else {\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }\n  return uVar2;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (expression_statement "DAT_00083c04 = FUN_00041780();" (assignment_expression "DAT_00083c04 = FUN_00041780()" identifier = (call_expression "FUN_00041780()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = DAT_00083ef0;" (assignment_expression "uVar1 = DAT_00083ef0" identifier = identifier) ;) (expression_statement "DAT_00083ef0 = *param_1;" (assignment_expression "DAT_00083ef0 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "FUN_00024f00(0,&DAT_00083be4,1);" (call_expression "FUN_00024f00(0,&DAT_00083be4,1)" identifier (argument_list "(0,&DAT_00083be4,1)" ( number_literal , (pointer_expression "&DAT_00083be4" & identifier) , number_literal ))) ;) (expression_statement "DAT_00083bcc = DAT_00083ef0;" (assignment_expression "DAT_00083bcc = DAT_00083ef0" identifier = identifier) ;) (expression_statement "DAT_00083ef0 = uVar1;" (assignment_expression "DAT_00083ef0 = uVar1" identifier = identifier) ;) (if_statement "if (DAT_00083bf0 == '\x02') {\n    uVar2 = DAT_00083bec;\n    switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }\n  }\n  else {\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }" if (parenthesized_expression "(DAT_00083bf0 == '\x02')" ( (binary_expression "DAT_00083bf0 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    uVar2 = DAT_00083bec;\n    switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }\n  }" { (expression_statement "uVar2 = DAT_00083bec;" (assignment_expression "uVar2 = DAT_00083bec" identifier = identifier) ;) (switch_statement "switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }" switch (parenthesized_expression "(DAT_00083c04)" ( identifier )) (compound_statement "{\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }" { (case_statement "case 0:\n      break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 1:\n      uVar2 = DAT_00083bec + 0x400;" case number_literal : (expression_statement "uVar2 = DAT_00083bec + 0x400;" (assignment_expression "uVar2 = DAT_00083bec + 0x400" identifier = (binary_expression "DAT_00083bec + 0x400" identifier + number_literal)) ;)) (case_statement "case 3:" case number_literal :) (case_statement "case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;" case number_literal : (expression_statement "uVar2 = (int)uVar2 >> 0xb;" (assignment_expression "uVar2 = (int)uVar2 >> 0xb" identifier = (binary_expression "(int)uVar2 >> 0xb" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;" case number_literal : (expression_statement "uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;" (assignment_expression "uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15" identifier = (binary_expression "(int)(DAT_00083bec << 0x15) >> 0x15" (cast_expression "(int)(DAT_00083bec << 0x15)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(DAT_00083bec << 0x15)" ( (binary_expression "DAT_00083bec << 0x15" identifier << number_literal) ))) >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;" case number_literal : (expression_statement "uVar2 = DAT_00083bec & 0x7ff;" (assignment_expression "uVar2 = DAT_00083bec & 0x7ff" identifier = (binary_expression "DAT_00083bec & 0x7ff" identifier & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;" case number_literal : (expression_statement "uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;" (assignment_expression "uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb" identifier = (binary_expression "(int)(DAT_00083bec + 0x800) >> 0xb" (cast_expression "(int)(DAT_00083bec + 0x800)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(DAT_00083bec + 0x800)" ( (binary_expression "DAT_00083bec + 0x800" identifier + number_literal) ))) >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;" case number_literal : (expression_statement "uVar2 = DAT_00083bec | 0xfffff800;" (assignment_expression "uVar2 = DAT_00083bec | 0xfffff800" identifier = (binary_expression "DAT_00083bec | 0xfffff800" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 7:" case number_literal :) (case_statement "case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;" case number_literal : (expression_statement "uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;" (assignment_expression "uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc" identifier = (binary_expression "(int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc" (binary_expression "(int)(DAT_00083bec + 0x1000) >> 0xb" (cast_expression "(int)(DAT_00083bec + 0x1000)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(DAT_00083bec + 0x1000)" ( (binary_expression "DAT_00083bec + 0x1000" identifier + number_literal) ))) >> number_literal) & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;" case number_literal : (expression_statement "uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;" (assignment_expression "uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13" identifier = (binary_expression "(int)(DAT_00083bec << 0x13) >> 0x13" (cast_expression "(int)(DAT_00083bec << 0x13)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(DAT_00083bec << 0x13)" ( (binary_expression "DAT_00083bec << 0x13" identifier << number_literal) ))) >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n      goto code_r0x0004495e;" case number_literal : (goto_statement "goto code_r0x0004495e;" goto statement_identifier ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);" default : comment (expression_statement "FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);" (call_expression "FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc)" identifier (argument_list "("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc)" ( (string_literal ""../../gas/../bfd/libhppa.h"" " string_content ") , number_literal , (string_literal ""hppa_field_adjust"" " string_content ") , identifier ))) ;)) })) }) (else_clause "else {\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }" else (compound_statement "{\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }" { (if_statement "if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }" if (parenthesized_expression "(DAT_00083bac == 0)" ( (binary_expression "DAT_00083bac == 0" identifier == number_literal) )) (compound_statement "{\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }" { (expression_statement "uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);" (assignment_expression "uVar1 = dcgettext(0,"Bad segment (should be absolute).",5)" identifier = (call_expression "dcgettext(0,"Bad segment (should be absolute).",5)" identifier (argument_list "(0,"Bad segment (should be absolute).",5)" ( number_literal , (string_literal ""Bad segment (should be absolute)."" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002d660(uVar1);" (call_expression "FUN_0002d660(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (labeled_statement "code_r0x0004495e:\n    uVar2 = 0;" statement_identifier : (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;)) }))) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 pa_get_absolute_expression(pa_it *insn,char **strp)\n\n{\n  char *pcVar1;\n  offsetT oVar2;\n  uint uVar3;\n  \n  the_insn.field_selector = pa_chk_field_selector((char **)insn);\n  pcVar1 = input_line_pointer;\n  input_line_pointer = (char *)insn->opcode;\n  expr(0,&the_insn.exp,expr_normal);\n  expr_end = input_line_pointer;\n  input_line_pointer = pcVar1;\n  if (the_insn.exp._12_1_ == '\x02') {\n    uVar3 = the_insn.exp.X_add_number;\n    oVar2 = the_insn.exp.X_add_number;\n    switch(the_insn.field_selector) {\n    case 0:\n      break;\n    case 1:\n      oVar2 = the_insn.exp.X_add_number + 0x400;\n    case 3:\n    case 10:\n      uVar3 = oVar2 >> 0xb;\n      break;\n    case 2:\n      uVar3 = (the_insn.exp.X_add_number << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar3 = the_insn.exp.X_add_number & 0x7ff;\n      break;\n    case 5:\n      uVar3 = the_insn.exp.X_add_number + 0x800 >> 0xb;\n      break;\n    case 6:\n      uVar3 = the_insn.exp.X_add_number | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar3 = the_insn.exp.X_add_number + 0x1000 >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar3 = (the_insn.exp.X_add_number << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto _L627;\n    default:\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust");\n    }\n  }\n  else {\n    if (strict == 0) {\n      pcVar1 = (char *)dcgettext(0,"Bad segment (should be absolute).",5);\n      as_bad(pcVar1);\n      return 0;\n    }\n_L627:\n    uVar3 = 0;\n  }\n  return uVar3;\n}\n\n" comment (function_definition "int __regparm3 pa_get_absolute_expression(pa_it *insn,char **strp)\n\n{\n  char *pcVar1;\n  offsetT oVar2;\n  uint uVar3;\n  \n  the_insn.field_selector = pa_chk_field_selector((char **)insn);\n  pcVar1 = input_line_pointer;\n  input_line_pointer = (char *)insn->opcode;\n  expr(0,&the_insn.exp,expr_normal);\n  expr_end = input_line_pointer;\n  input_line_pointer = pcVar1;\n  if (the_insn.exp._12_1_ == '\x02') {\n    uVar3 = the_insn.exp.X_add_number;\n    oVar2 = the_insn.exp.X_add_number;\n    switch(the_insn.field_selector) {\n    case 0:\n      break;\n    case 1:\n      oVar2 = the_insn.exp.X_add_number + 0x400;\n    case 3:\n    case 10:\n      uVar3 = oVar2 >> 0xb;\n      break;\n    case 2:\n      uVar3 = (the_insn.exp.X_add_number << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar3 = the_insn.exp.X_add_number & 0x7ff;\n      break;\n    case 5:\n      uVar3 = the_insn.exp.X_add_number + 0x800 >> 0xb;\n      break;\n    case 6:\n      uVar3 = the_insn.exp.X_add_number | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar3 = the_insn.exp.X_add_number + 0x1000 >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar3 = (the_insn.exp.X_add_number << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto _L627;\n    default:\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust");\n    }\n  }\n  else {\n    if (strict == 0) {\n      pcVar1 = (char *)dcgettext(0,"Bad segment (should be absolute).",5);\n      as_bad(pcVar1);\n      return 0;\n    }\n_L627:\n    uVar3 = 0;\n  }\n  return uVar3;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "pa_get_absolute_expression(pa_it *insn,char **strp)" identifier (parameter_list "(pa_it *insn,char **strp)" ( (parameter_declaration "pa_it *insn" type_identifier (pointer_declarator "*insn" * identifier)) , (parameter_declaration "char **strp" primitive_type (pointer_declarator "**strp" * (pointer_declarator "*strp" * identifier))) ))) (compound_statement "{\n  char *pcVar1;\n  offsetT oVar2;\n  uint uVar3;\n  \n  the_insn.field_selector = pa_chk_field_selector((char **)insn);\n  pcVar1 = input_line_pointer;\n  input_line_pointer = (char *)insn->opcode;\n  expr(0,&the_insn.exp,expr_normal);\n  expr_end = input_line_pointer;\n  input_line_pointer = pcVar1;\n  if (the_insn.exp._12_1_ == '\x02') {\n    uVar3 = the_insn.exp.X_add_number;\n    oVar2 = the_insn.exp.X_add_number;\n    switch(the_insn.field_selector) {\n    case 0:\n      break;\n    case 1:\n      oVar2 = the_insn.exp.X_add_number + 0x400;\n    case 3:\n    case 10:\n      uVar3 = oVar2 >> 0xb;\n      break;\n    case 2:\n      uVar3 = (the_insn.exp.X_add_number << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar3 = the_insn.exp.X_add_number & 0x7ff;\n      break;\n    case 5:\n      uVar3 = the_insn.exp.X_add_number + 0x800 >> 0xb;\n      break;\n    case 6:\n      uVar3 = the_insn.exp.X_add_number | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar3 = the_insn.exp.X_add_number + 0x1000 >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar3 = (the_insn.exp.X_add_number << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto _L627;\n    default:\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust");\n    }\n  }\n  else {\n    if (strict == 0) {\n      pcVar1 = (char *)dcgettext(0,"Bad segment (should be absolute).",5);\n      as_bad(pcVar1);\n      return 0;\n    }\n_L627:\n    uVar3 = 0;\n  }\n  return uVar3;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "offsetT oVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "the_insn.field_selector = pa_chk_field_selector((char **)insn);" (assignment_expression "the_insn.field_selector = pa_chk_field_selector((char **)insn)" (field_expression "the_insn.field_selector" identifier . field_identifier) = (call_expression "pa_chk_field_selector((char **)insn)" identifier (argument_list "((char **)insn)" ( (cast_expression "(char **)insn" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) )))) ;) (expression_statement "pcVar1 = input_line_pointer;" (assignment_expression "pcVar1 = input_line_pointer" identifier = identifier) ;) (expression_statement "input_line_pointer = (char *)insn->opcode;" (assignment_expression "input_line_pointer = (char *)insn->opcode" identifier = (cast_expression "(char *)insn->opcode" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "insn->opcode" identifier -> field_identifier))) ;) (expression_statement "expr(0,&the_insn.exp,expr_normal);" (call_expression "expr(0,&the_insn.exp,expr_normal)" identifier (argument_list "(0,&the_insn.exp,expr_normal)" ( number_literal , (pointer_expression "&the_insn.exp" & (field_expression "the_insn.exp" identifier . field_identifier)) , identifier ))) ;) (expression_statement "expr_end = input_line_pointer;" (assignment_expression "expr_end = input_line_pointer" identifier = identifier) ;) (expression_statement "input_line_pointer = pcVar1;" (assignment_expression "input_line_pointer = pcVar1" identifier = identifier) ;) (if_statement "if (the_insn.exp._12_1_ == '\x02') {\n    uVar3 = the_insn.exp.X_add_number;\n    oVar2 = the_insn.exp.X_add_number;\n    switch(the_insn.field_selector) {\n    case 0:\n      break;\n    case 1:\n      oVar2 = the_insn.exp.X_add_number + 0x400;\n    case 3:\n    case 10:\n      uVar3 = oVar2 >> 0xb;\n      break;\n    case 2:\n      uVar3 = (the_insn.exp.X_add_number << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar3 = the_insn.exp.X_add_number & 0x7ff;\n      break;\n    case 5:\n      uVar3 = the_insn.exp.X_add_number + 0x800 >> 0xb;\n      break;\n    case 6:\n      uVar3 = the_insn.exp.X_add_number | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar3 = the_insn.exp.X_add_number + 0x1000 >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar3 = (the_insn.exp.X_add_number << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto _L627;\n    default:\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust");\n    }\n  }\n  else {\n    if (strict == 0) {\n      pcVar1 = (char *)dcgettext(0,"Bad segment (should be absolute).",5);\n      as_bad(pcVar1);\n      return 0;\n    }\n_L627:\n    uVar3 = 0;\n  }" if (parenthesized_expression "(the_insn.exp._12_1_ == '\x02')" ( (binary_expression "the_insn.exp._12_1_ == '\x02'" (field_expression "the_insn.exp._12_1_" (field_expression "the_insn.exp" identifier . field_identifier) . field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    uVar3 = the_insn.exp.X_add_number;\n    oVar2 = the_insn.exp.X_add_number;\n    switch(the_insn.field_selector) {\n    case 0:\n      break;\n    case 1:\n      oVar2 = the_insn.exp.X_add_number + 0x400;\n    case 3:\n    case 10:\n      uVar3 = oVar2 >> 0xb;\n      break;\n    case 2:\n      uVar3 = (the_insn.exp.X_add_number << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar3 = the_insn.exp.X_add_number & 0x7ff;\n      break;\n    case 5:\n      uVar3 = the_insn.exp.X_add_number + 0x800 >> 0xb;\n      break;\n    case 6:\n      uVar3 = the_insn.exp.X_add_number | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar3 = the_insn.exp.X_add_number + 0x1000 >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar3 = (the_insn.exp.X_add_number << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto _L627;\n    default:\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust");\n    }\n  }" { (expression_statement "uVar3 = the_insn.exp.X_add_number;" (assignment_expression "uVar3 = the_insn.exp.X_add_number" identifier = (field_expression "the_insn.exp.X_add_number" (field_expression "the_insn.exp" identifier . field_identifier) . field_identifier)) ;) (expression_statement "oVar2 = the_insn.exp.X_add_number;" (assignment_expression "oVar2 = the_insn.exp.X_add_number" identifier = (field_expression "the_insn.exp.X_add_number" (field_expression "the_insn.exp" identifier . field_identifier) . field_identifier)) ;) (switch_statement "switch(the_insn.field_selector) {\n    case 0:\n      break;\n    case 1:\n      oVar2 = the_insn.exp.X_add_number + 0x400;\n    case 3:\n    case 10:\n      uVar3 = oVar2 >> 0xb;\n      break;\n    case 2:\n      uVar3 = (the_insn.exp.X_add_number << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar3 = the_insn.exp.X_add_number & 0x7ff;\n      break;\n    case 5:\n      uVar3 = the_insn.exp.X_add_number + 0x800 >> 0xb;\n      break;\n    case 6:\n      uVar3 = the_insn.exp.X_add_number | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar3 = the_insn.exp.X_add_number + 0x1000 >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar3 = (the_insn.exp.X_add_number << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto _L627;\n    default:\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust");\n    }" switch (parenthesized_expression "(the_insn.field_selector)" ( (field_expression "the_insn.field_selector" identifier . field_identifier) )) (compound_statement "{\n    case 0:\n      break;\n    case 1:\n      oVar2 = the_insn.exp.X_add_number + 0x400;\n    case 3:\n    case 10:\n      uVar3 = oVar2 >> 0xb;\n      break;\n    case 2:\n      uVar3 = (the_insn.exp.X_add_number << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar3 = the_insn.exp.X_add_number & 0x7ff;\n      break;\n    case 5:\n      uVar3 = the_insn.exp.X_add_number + 0x800 >> 0xb;\n      break;\n    case 6:\n      uVar3 = the_insn.exp.X_add_number | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar3 = the_insn.exp.X_add_number + 0x1000 >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar3 = (the_insn.exp.X_add_number << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto _L627;\n    default:\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust");\n    }" { (case_statement "case 0:\n      break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 1:\n      oVar2 = the_insn.exp.X_add_number + 0x400;" case number_literal : (expression_statement "oVar2 = the_insn.exp.X_add_number + 0x400;" (assignment_expression "oVar2 = the_insn.exp.X_add_number + 0x400" identifier = (binary_expression "the_insn.exp.X_add_number + 0x400" (field_expression "the_insn.exp.X_add_number" (field_expression "the_insn.exp" identifier . field_identifier) . field_identifier) + number_literal)) ;)) (case_statement "case 3:" case number_literal :) (case_statement "case 10:\n      uVar3 = oVar2 >> 0xb;\n      break;" case number_literal : (expression_statement "uVar3 = oVar2 >> 0xb;" (assignment_expression "uVar3 = oVar2 >> 0xb" identifier = (binary_expression "oVar2 >> 0xb" identifier >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n      uVar3 = (the_insn.exp.X_add_number << 0x15) >> 0x15;\n      break;" case number_literal : (expression_statement "uVar3 = (the_insn.exp.X_add_number << 0x15) >> 0x15;" (assignment_expression "uVar3 = (the_insn.exp.X_add_number << 0x15) >> 0x15" identifier = (binary_expression "(the_insn.exp.X_add_number << 0x15) >> 0x15" (parenthesized_expression "(the_insn.exp.X_add_number << 0x15)" ( (binary_expression "the_insn.exp.X_add_number << 0x15" (field_expression "the_insn.exp.X_add_number" (field_expression "the_insn.exp" identifier . field_identifier) . field_identifier) << number_literal) )) >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n      uVar3 = the_insn.exp.X_add_number & 0x7ff;\n      break;" case number_literal : (expression_statement "uVar3 = the_insn.exp.X_add_number & 0x7ff;" (assignment_expression "uVar3 = the_insn.exp.X_add_number & 0x7ff" identifier = (binary_expression "the_insn.exp.X_add_number & 0x7ff" (field_expression "the_insn.exp.X_add_number" (field_expression "the_insn.exp" identifier . field_identifier) . field_identifier) & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n      uVar3 = the_insn.exp.X_add_number + 0x800 >> 0xb;\n      break;" case number_literal : (expression_statement "uVar3 = the_insn.exp.X_add_number + 0x800 >> 0xb;" (assignment_expression "uVar3 = the_insn.exp.X_add_number + 0x800 >> 0xb" identifier = (binary_expression "the_insn.exp.X_add_number + 0x800 >> 0xb" (binary_expression "the_insn.exp.X_add_number + 0x800" (field_expression "the_insn.exp.X_add_number" (field_expression "the_insn.exp" identifier . field_identifier) . field_identifier) + number_literal) >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n      uVar3 = the_insn.exp.X_add_number | 0xfffff800;\n      break;" case number_literal : (expression_statement "uVar3 = the_insn.exp.X_add_number | 0xfffff800;" (assignment_expression "uVar3 = the_insn.exp.X_add_number | 0xfffff800" identifier = (binary_expression "the_insn.exp.X_add_number | 0xfffff800" (field_expression "the_insn.exp.X_add_number" (field_expression "the_insn.exp" identifier . field_identifier) . field_identifier) | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 7:" case number_literal :) (case_statement "case 0xb:\n      uVar3 = the_insn.exp.X_add_number + 0x1000 >> 0xb & 0xfffffffc;\n      break;" case number_literal : (expression_statement "uVar3 = the_insn.exp.X_add_number + 0x1000 >> 0xb & 0xfffffffc;" (assignment_expression "uVar3 = the_insn.exp.X_add_number + 0x1000 >> 0xb & 0xfffffffc" identifier = (binary_expression "the_insn.exp.X_add_number + 0x1000 >> 0xb & 0xfffffffc" (binary_expression "the_insn.exp.X_add_number + 0x1000 >> 0xb" (binary_expression "the_insn.exp.X_add_number + 0x1000" (field_expression "the_insn.exp.X_add_number" (field_expression "the_insn.exp" identifier . field_identifier) . field_identifier) + number_literal) >> number_literal) & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n      uVar3 = (the_insn.exp.X_add_number << 0x13) >> 0x13;\n      break;" case number_literal : (expression_statement "uVar3 = (the_insn.exp.X_add_number << 0x13) >> 0x13;" (assignment_expression "uVar3 = (the_insn.exp.X_add_number << 0x13) >> 0x13" identifier = (binary_expression "(the_insn.exp.X_add_number << 0x13) >> 0x13" (parenthesized_expression "(the_insn.exp.X_add_number << 0x13)" ( (binary_expression "the_insn.exp.X_add_number << 0x13" (field_expression "the_insn.exp.X_add_number" (field_expression "the_insn.exp" identifier . field_identifier) . field_identifier) << number_literal) )) >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n      goto _L627;" case number_literal : (goto_statement "goto _L627;" goto statement_identifier ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust");" default : comment (expression_statement "as_abort("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust");" (call_expression "as_abort("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust")" identifier (argument_list "("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust")" ( (string_literal ""../../gas/../bfd/libhppa.h"" " string_content ") , number_literal , (string_literal ""hppa_field_adjust"" " string_content ") ))) ;)) })) }) (else_clause "else {\n    if (strict == 0) {\n      pcVar1 = (char *)dcgettext(0,"Bad segment (should be absolute).",5);\n      as_bad(pcVar1);\n      return 0;\n    }\n_L627:\n    uVar3 = 0;\n  }" else (compound_statement "{\n    if (strict == 0) {\n      pcVar1 = (char *)dcgettext(0,"Bad segment (should be absolute).",5);\n      as_bad(pcVar1);\n      return 0;\n    }\n_L627:\n    uVar3 = 0;\n  }" { (if_statement "if (strict == 0) {\n      pcVar1 = (char *)dcgettext(0,"Bad segment (should be absolute).",5);\n      as_bad(pcVar1);\n      return 0;\n    }" if (parenthesized_expression "(strict == 0)" ( (binary_expression "strict == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar1 = (char *)dcgettext(0,"Bad segment (should be absolute).",5);\n      as_bad(pcVar1);\n      return 0;\n    }" { (expression_statement "pcVar1 = (char *)dcgettext(0,"Bad segment (should be absolute).",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"Bad segment (should be absolute).",5)" identifier = (cast_expression "(char *)dcgettext(0,"Bad segment (should be absolute).",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Bad segment (should be absolute).",5)" identifier (argument_list "(0,"Bad segment (should be absolute).",5)" ( number_literal , (string_literal ""Bad segment (should be absolute)."" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar1);" (call_expression "as_bad(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (labeled_statement "_L627:\n    uVar3 = 0;" statement_identifier : (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;)) }))) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit "uint __regparm3 FUN_00044900(undefined4 *param_1)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  \n  DAT_00083c04 = FUN_00041780();\n  uVar1 = DAT_00083ef0;\n  DAT_00083ef0 = *param_1;\n  FUN_00024f00(0,&DAT_00083be4,1);\n  DAT_00083bcc = DAT_00083ef0;\n  DAT_00083ef0 = uVar1;\n  if (DAT_00083bf0 == '\x02') {\n    uVar2 = DAT_00083bec;\n    switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    \n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }\n  }\n  else {\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }\n  return uVar2;\n}\n\n" (function_definition "uint __regparm3 FUN_00044900(undefined4 *param_1)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  \n  DAT_00083c04 = FUN_00041780();\n  uVar1 = DAT_00083ef0;\n  DAT_00083ef0 = *param_1;\n  FUN_00024f00(0,&DAT_00083be4,1);\n  DAT_00083bcc = DAT_00083ef0;\n  DAT_00083ef0 = uVar1;\n  if (DAT_00083bf0 == '\x02') {\n    uVar2 = DAT_00083bec;\n    switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    \n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }\n  }\n  else {\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }\n  return uVar2;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00044900(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  uint uVar2;\n  \n  DAT_00083c04 = FUN_00041780();\n  uVar1 = DAT_00083ef0;\n  DAT_00083ef0 = *param_1;\n  FUN_00024f00(0,&DAT_00083be4,1);\n  DAT_00083bcc = DAT_00083ef0;\n  DAT_00083ef0 = uVar1;\n  if (DAT_00083bf0 == '\x02') {\n    uVar2 = DAT_00083bec;\n    switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    \n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }\n  }\n  else {\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }\n  return uVar2;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (expression_statement "DAT_00083c04 = FUN_00041780();" (assignment_expression "DAT_00083c04 = FUN_00041780()" identifier = (call_expression "FUN_00041780()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = DAT_00083ef0;" (assignment_expression "uVar1 = DAT_00083ef0" identifier = identifier) ;) (expression_statement "DAT_00083ef0 = *param_1;" (assignment_expression "DAT_00083ef0 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "FUN_00024f00(0,&DAT_00083be4,1);" (call_expression "FUN_00024f00(0,&DAT_00083be4,1)" identifier (argument_list "(0,&DAT_00083be4,1)" ( number_literal , (pointer_expression "&DAT_00083be4" & identifier) , number_literal ))) ;) (expression_statement "DAT_00083bcc = DAT_00083ef0;" (assignment_expression "DAT_00083bcc = DAT_00083ef0" identifier = identifier) ;) (expression_statement "DAT_00083ef0 = uVar1;" (assignment_expression "DAT_00083ef0 = uVar1" identifier = identifier) ;) (if_statement "if (DAT_00083bf0 == '\x02') {\n    uVar2 = DAT_00083bec;\n    switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    \n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }\n  }\n  else {\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }" if (parenthesized_expression "(DAT_00083bf0 == '\x02')" ( (binary_expression "DAT_00083bf0 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    uVar2 = DAT_00083bec;\n    switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    \n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }\n  }" { (expression_statement "uVar2 = DAT_00083bec;" (assignment_expression "uVar2 = DAT_00083bec" identifier = identifier) ;) (switch_statement "switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    \n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }" switch (parenthesized_expression "(DAT_00083c04)" ( identifier )) (compound_statement "{\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    \n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }" { (case_statement "case 0:\n      break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 1:\n      uVar2 = DAT_00083bec + 0x400;" case number_literal : (expression_statement "uVar2 = DAT_00083bec + 0x400;" (assignment_expression "uVar2 = DAT_00083bec + 0x400" identifier = (binary_expression "DAT_00083bec + 0x400" identifier + number_literal)) ;)) (case_statement "case 3:" case number_literal :) (case_statement "case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;" case number_literal : (expression_statement "uVar2 = (int)uVar2 >> 0xb;" (assignment_expression "uVar2 = (int)uVar2 >> 0xb" identifier = (binary_expression "(int)uVar2 >> 0xb" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;" case number_literal : (expression_statement "uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;" (assignment_expression "uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15" identifier = (binary_expression "(int)(DAT_00083bec << 0x15) >> 0x15" (cast_expression "(int)(DAT_00083bec << 0x15)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(DAT_00083bec << 0x15)" ( (binary_expression "DAT_00083bec << 0x15" identifier << number_literal) ))) >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;" case number_literal : (expression_statement "uVar2 = DAT_00083bec & 0x7ff;" (assignment_expression "uVar2 = DAT_00083bec & 0x7ff" identifier = (binary_expression "DAT_00083bec & 0x7ff" identifier & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;" case number_literal : (expression_statement "uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;" (assignment_expression "uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb" identifier = (binary_expression "(int)(DAT_00083bec + 0x800) >> 0xb" (cast_expression "(int)(DAT_00083bec + 0x800)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(DAT_00083bec + 0x800)" ( (binary_expression "DAT_00083bec + 0x800" identifier + number_literal) ))) >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;" case number_literal : (expression_statement "uVar2 = DAT_00083bec | 0xfffff800;" (assignment_expression "uVar2 = DAT_00083bec | 0xfffff800" identifier = (binary_expression "DAT_00083bec | 0xfffff800" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 7:" case number_literal :) (case_statement "case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;" case number_literal : (expression_statement "uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;" (assignment_expression "uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc" identifier = (binary_expression "(int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc" (binary_expression "(int)(DAT_00083bec + 0x1000) >> 0xb" (cast_expression "(int)(DAT_00083bec + 0x1000)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(DAT_00083bec + 0x1000)" ( (binary_expression "DAT_00083bec + 0x1000" identifier + number_literal) ))) >> number_literal) & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;" case number_literal : (expression_statement "uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;" (assignment_expression "uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13" identifier = (binary_expression "(int)(DAT_00083bec << 0x13) >> 0x13" (cast_expression "(int)(DAT_00083bec << 0x13)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(DAT_00083bec << 0x13)" ( (binary_expression "DAT_00083bec << 0x13" identifier << number_literal) ))) >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n      goto code_r0x0004495e;" case number_literal : (goto_statement "goto code_r0x0004495e;" goto statement_identifier ;)) (case_statement "default:\n                    \n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);" default : (expression_statement "FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);" (call_expression "FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc)" identifier (argument_list "("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc)" ( (string_literal ""../../gas/../bfd/libhppa.h"" " string_content ") , number_literal , (string_literal ""hppa_field_adjust"" " string_content ") , identifier ))) ;)) })) }) (else_clause "else {\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }" else (compound_statement "{\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }" { (if_statement "if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }" if (parenthesized_expression "(DAT_00083bac == 0)" ( (binary_expression "DAT_00083bac == 0" identifier == number_literal) )) (compound_statement "{\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }" { (expression_statement "uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);" (assignment_expression "uVar1 = dcgettext(0,"Bad segment (should be absolute).",5)" identifier = (call_expression "dcgettext(0,"Bad segment (should be absolute).",5)" identifier (argument_list "(0,"Bad segment (should be absolute).",5)" ( number_literal , (string_literal ""Bad segment (should be absolute)."" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002d660(uVar1);" (call_expression "FUN_0002d660(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (labeled_statement "code_r0x0004495e:\n    uVar2 = 0;" statement_identifier : (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;)) }))) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) >> LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) >> LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) >> LIT) & LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) >> LIT)) ;) (break_statement break ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (return_statement return IDENT ;) })))
(function_definition "uint __regparm3 FUN_00044900(undefined4 *param_1)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  \n  DAT_00083c04 = FUN_00041780();\n  uVar1 = DAT_00083ef0;\n  DAT_00083ef0 = *param_1;\n  FUN_00024f00(0,&DAT_00083be4,1);\n  DAT_00083bcc = DAT_00083ef0;\n  DAT_00083ef0 = uVar1;\n  if (DAT_00083bf0 == '\x02') {\n    uVar2 = DAT_00083bec;\n    switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    \n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }\n  }\n  else {\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }\n  return uVar2;\n}" (type_identifier "uint") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00044900(undefined4 *param_1)" (identifier "FUN_00044900") (parameter_list "(undefined4 *param_1)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  uint uVar2;\n  \n  DAT_00083c04 = FUN_00041780();\n  uVar1 = DAT_00083ef0;\n  DAT_00083ef0 = *param_1;\n  FUN_00024f00(0,&DAT_00083be4,1);\n  DAT_00083bcc = DAT_00083ef0;\n  DAT_00083ef0 = uVar1;\n  if (DAT_00083bf0 == '\x02') {\n    uVar2 = DAT_00083bec;\n    switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    \n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }\n  }\n  else {\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }\n  return uVar2;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (expression_statement "DAT_00083c04 = FUN_00041780();" (assignment_expression "DAT_00083c04 = FUN_00041780()" (identifier "DAT_00083c04") (= "=") (call_expression "FUN_00041780()" (identifier "FUN_00041780") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = DAT_00083ef0;" (assignment_expression "uVar1 = DAT_00083ef0" (identifier "uVar1") (= "=") (identifier "DAT_00083ef0")) (; ";")) (expression_statement "DAT_00083ef0 = *param_1;" (assignment_expression "DAT_00083ef0 = *param_1" (identifier "DAT_00083ef0") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "FUN_00024f00(0,&DAT_00083be4,1);" (call_expression "FUN_00024f00(0,&DAT_00083be4,1)" (identifier "FUN_00024f00") (argument_list "(0,&DAT_00083be4,1)" (( "(") (number_literal "0") (, ",") (pointer_expression "&DAT_00083be4" (& "&") (identifier "DAT_00083be4")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "DAT_00083bcc = DAT_00083ef0;" (assignment_expression "DAT_00083bcc = DAT_00083ef0" (identifier "DAT_00083bcc") (= "=") (identifier "DAT_00083ef0")) (; ";")) (expression_statement "DAT_00083ef0 = uVar1;" (assignment_expression "DAT_00083ef0 = uVar1" (identifier "DAT_00083ef0") (= "=") (identifier "uVar1")) (; ";")) (if_statement "if (DAT_00083bf0 == '\x02') {\n    uVar2 = DAT_00083bec;\n    switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    \n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }\n  }\n  else {\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }" (if "if") (parenthesized_expression "(DAT_00083bf0 == '\x02')" (( "(") (binary_expression "DAT_00083bf0 == '\x02'" (identifier "DAT_00083bf0") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n    uVar2 = DAT_00083bec;\n    switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    \n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }\n  }" ({ "{") (expression_statement "uVar2 = DAT_00083bec;" (assignment_expression "uVar2 = DAT_00083bec" (identifier "uVar2") (= "=") (identifier "DAT_00083bec")) (; ";")) (switch_statement "switch(DAT_00083c04) {\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    \n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }" (switch "switch") (parenthesized_expression "(DAT_00083c04)" (( "(") (identifier "DAT_00083c04") () ")")) (compound_statement "{\n    case 0:\n      break;\n    case 1:\n      uVar2 = DAT_00083bec + 0x400;\n    case 3:\n    case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;\n    case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;\n    case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;\n    case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;\n    case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;\n    case 7:\n    case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;\n    case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;\n    case 9:\n      goto code_r0x0004495e;\n    default:\n                    \n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);\n    }" ({ "{") (case_statement "case 0:\n      break;" (case "case") (number_literal "0") (: ":") (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n      uVar2 = DAT_00083bec + 0x400;" (case "case") (number_literal "1") (: ":") (expression_statement "uVar2 = DAT_00083bec + 0x400;" (assignment_expression "uVar2 = DAT_00083bec + 0x400" (identifier "uVar2") (= "=") (binary_expression "DAT_00083bec + 0x400" (identifier "DAT_00083bec") (+ "+") (number_literal "0x400"))) (; ";"))) (case_statement "case 3:" (case "case") (number_literal "3") (: ":")) (case_statement "case 10:\n      uVar2 = (int)uVar2 >> 0xb;\n      break;" (case "case") (number_literal "10") (: ":") (expression_statement "uVar2 = (int)uVar2 >> 0xb;" (assignment_expression "uVar2 = (int)uVar2 >> 0xb" (identifier "uVar2") (= "=") (binary_expression "(int)uVar2 >> 0xb" (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2")) (>> ">>") (number_literal "0xb"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;\n      break;" (case "case") (number_literal "2") (: ":") (expression_statement "uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;" (assignment_expression "uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15" (identifier "uVar2") (= "=") (binary_expression "(int)(DAT_00083bec << 0x15) >> 0x15" (cast_expression "(int)(DAT_00083bec << 0x15)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(DAT_00083bec << 0x15)" (( "(") (binary_expression "DAT_00083bec << 0x15" (identifier "DAT_00083bec") (<< "<<") (number_literal "0x15")) () ")"))) (>> ">>") (number_literal "0x15"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n      uVar2 = DAT_00083bec & 0x7ff;\n      break;" (case "case") (number_literal "4") (: ":") (expression_statement "uVar2 = DAT_00083bec & 0x7ff;" (assignment_expression "uVar2 = DAT_00083bec & 0x7ff" (identifier "uVar2") (= "=") (binary_expression "DAT_00083bec & 0x7ff" (identifier "DAT_00083bec") (& "&") (number_literal "0x7ff"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;\n      break;" (case "case") (number_literal "5") (: ":") (expression_statement "uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;" (assignment_expression "uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb" (identifier "uVar2") (= "=") (binary_expression "(int)(DAT_00083bec + 0x800) >> 0xb" (cast_expression "(int)(DAT_00083bec + 0x800)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(DAT_00083bec + 0x800)" (( "(") (binary_expression "DAT_00083bec + 0x800" (identifier "DAT_00083bec") (+ "+") (number_literal "0x800")) () ")"))) (>> ">>") (number_literal "0xb"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n      uVar2 = DAT_00083bec | 0xfffff800;\n      break;" (case "case") (number_literal "6") (: ":") (expression_statement "uVar2 = DAT_00083bec | 0xfffff800;" (assignment_expression "uVar2 = DAT_00083bec | 0xfffff800" (identifier "uVar2") (= "=") (binary_expression "DAT_00083bec | 0xfffff800" (identifier "DAT_00083bec") (| "|") (number_literal "0xfffff800"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 7:" (case "case") (number_literal "7") (: ":")) (case_statement "case 0xb:\n      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;\n      break;" (case "case") (number_literal "0xb") (: ":") (expression_statement "uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;" (assignment_expression "uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc" (identifier "uVar2") (= "=") (binary_expression "(int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc" (binary_expression "(int)(DAT_00083bec + 0x1000) >> 0xb" (cast_expression "(int)(DAT_00083bec + 0x1000)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(DAT_00083bec + 0x1000)" (( "(") (binary_expression "DAT_00083bec + 0x1000" (identifier "DAT_00083bec") (+ "+") (number_literal "0x1000")) () ")"))) (>> ">>") (number_literal "0xb")) (& "&") (number_literal "0xfffffffc"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\n      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;\n      break;" (case "case") (number_literal "8") (: ":") (expression_statement "uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;" (assignment_expression "uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13" (identifier "uVar2") (= "=") (binary_expression "(int)(DAT_00083bec << 0x13) >> 0x13" (cast_expression "(int)(DAT_00083bec << 0x13)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(DAT_00083bec << 0x13)" (( "(") (binary_expression "DAT_00083bec << 0x13" (identifier "DAT_00083bec") (<< "<<") (number_literal "0x13")) () ")"))) (>> ">>") (number_literal "0x13"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 9:\n      goto code_r0x0004495e;" (case "case") (number_literal "9") (: ":") (goto_statement "goto code_r0x0004495e;" (goto "goto") (statement_identifier "code_r0x0004495e") (; ";"))) (case_statement "default:\n                    \n      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);" (default "default") (: ":") (expression_statement "FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);" (call_expression "FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc)" (identifier "FUN_0002d780") (argument_list "("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc)" (( "(") (string_literal ""../../gas/../bfd/libhppa.h"" (" """) (string_content "../../gas/../bfd/libhppa.h") (" """)) (, ",") (number_literal "0x176") (, ",") (string_literal ""hppa_field_adjust"" (" """) (string_content "hppa_field_adjust") (" """)) (, ",") (identifier "DAT_00083bcc") () ")"))) (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }" (else "else") (compound_statement "{\n    if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }\ncode_r0x0004495e:\n    uVar2 = 0;\n  }" ({ "{") (if_statement "if (DAT_00083bac == 0) {\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }" (if "if") (parenthesized_expression "(DAT_00083bac == 0)" (( "(") (binary_expression "DAT_00083bac == 0" (identifier "DAT_00083bac") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);\n      FUN_0002d660(uVar1);\n      return 0;\n    }" ({ "{") (expression_statement "uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);" (assignment_expression "uVar1 = dcgettext(0,"Bad segment (should be absolute).",5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,"Bad segment (should be absolute).",5)" (identifier "dcgettext") (argument_list "(0,"Bad segment (should be absolute).",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Bad segment (should be absolute)."" (" """) (string_content "Bad segment (should be absolute).") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002d660(uVar1);" (call_expression "FUN_0002d660(uVar1)" (identifier "FUN_0002d660") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (labeled_statement "code_r0x0004495e:\n    uVar2 = 0;" (statement_identifier "code_r0x0004495e") (: ":") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";"))) (} "}")))) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int __regparm3 function_1(type_1 *insn,char **strp)

{
  char *pcVar1;
  type_2 var_3;
  type_3 uVar3;
  
  the_insn.field_selector = var_1((char **)insn);
  pcVar1 = input_line_pointer;
  input_line_pointer = (char *)insn->opcode;
  var_2(0,&the_insn.exp,expr_normal);
  expr_end = input_line_pointer;
  input_line_pointer = pcVar1;
  if (the_insn.exp._12_1_ == '\x02') {
    uVar3 = the_insn.exp.X_add_number;
    var_3 = the_insn.exp.X_add_number;
    switch(the_insn.field_selector) {
    case 0:
      break;
    case 1:
      var_3 = the_insn.exp.X_add_number + 0x400;
    case 3:
    case 10:
      uVar3 = var_3 >> 0xb;
      break;
    case 2:
      uVar3 = (the_insn.exp.X_add_number << 0x15) >> 0x15;
      break;
    case 4:
      uVar3 = the_insn.exp.X_add_number & 0x7ff;
      break;
    case 5:
      uVar3 = the_insn.exp.X_add_number + 0x800 >> 0xb;
      break;
    case 6:
      uVar3 = the_insn.exp.X_add_number | 0xfffff800;
      break;
    case 7:
    case 0xb:
      uVar3 = the_insn.exp.X_add_number + 0x1000 >> 0xb & 0xfffffffc;
      break;
    case 8:
      uVar3 = (the_insn.exp.X_add_number << 0x13) >> 0x13;
      break;
    case 9:
      goto _L627;
    default:
                    /* WARNING: Subroutine does not return */
      var_4("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust");
    }
  }
  else {
    if (var_5 == 0) {
      pcVar1 = (char *)var_6(0,"Bad segment (should be absolute).",5);
      var_7(pcVar1);
      return 0;
    }
_L627:
    uVar3 = 0;
  }
  return uVar3;
}


(translation_unit (function_definition type: (type_identifier) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)) right: (number_literal)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))) (break_statement)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) (return_statement (identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

uint __regparm3 MASKED(undefined4 *param_1)

{
  undefined4 uVar1;
  uint uVar2;
  
  DAT_00083c04 = FUN_00041780();
  uVar1 = DAT_00083ef0;
  DAT_00083ef0 = *param_1;
  FUN_00024f00(0,&DAT_00083be4,1);
  DAT_00083bcc = DAT_00083ef0;
  DAT_00083ef0 = uVar1;
  if (DAT_00083bf0 == '\x02') {
    uVar2 = DAT_00083bec;
    switch(DAT_00083c04) {
    case 0:
      break;
    case 1:
      uVar2 = DAT_00083bec + 0x400;
    case 3:
    case 10:
      uVar2 = (int)uVar2 >> 0xb;
      break;
    case 2:
      uVar2 = (int)(DAT_00083bec << 0x15) >> 0x15;
      break;
    case 4:
      uVar2 = DAT_00083bec & 0x7ff;
      break;
    case 5:
      uVar2 = (int)(DAT_00083bec + 0x800) >> 0xb;
      break;
    case 6:
      uVar2 = DAT_00083bec | 0xfffff800;
      break;
    case 7:
    case 0xb:
      uVar2 = (int)(DAT_00083bec + 0x1000) >> 0xb & 0xfffffffc;
      break;
    case 8:
      uVar2 = (int)(DAT_00083bec << 0x13) >> 0x13;
      break;
    case 9:
      goto code_r0x0004495e;
    default:
                    /* WARNING: Subroutine does not return */
      FUN_0002d780("../../gas/../bfd/libhppa.h",0x176,"hppa_field_adjust",DAT_00083bcc);
    }
  }
  else {
    if (DAT_00083bac == 0) {
      uVar1 = dcgettext(0,"Bad segment (should be absolute).",5);
      FUN_0002d660(uVar1);
      return 0;
    }
code_r0x0004495e:
    uVar2 = 0;
  }
  return uVar2;
}

