
asection * ppc_add_stub_section(char *stub_sec_name,asection *input_section)

{
  uint uVar1;
  bfd_boolean bVar2;
  asection *section;
  lang_output_section_statement_type *output;
  char *fmt;
  hook_stub_info info;
  
  section = (asection *)
            bfd_make_section_anyway_with_flags
                      (stub_file->the_bfd,stub_sec_name,
                       "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */
                      );
  if (section != (asection *)0x0) {
    uVar1 = params.plt_stub_align;
    if (params.plt_stub_align < 6) {
      uVar1 = 5;
      if (params.plt_stub_align < -5) {
        uVar1 = -params.plt_stub_align;
      }
    }
    section->alignment_power = uVar1;
    output = lang_output_section_get(input_section->output_section);
    info.input_section = input_section;
    lang_list_init(&info.add);
    lang_add_section(&info.add,section,(flag_info *)0x0,output);
    if ((info.add.head != (lang_statement_union *)0x0) &&
       (bVar2 = hook_in_stub(&info,&(output->children).head), bVar2 != 0)) {
      return section;
    }
  }
  fmt = (char *)dcgettext(0,"%X%P: can not make stub section: %E\n",5);
  einfo(fmt);
  return (asection *)0x0;
}



long FUN_001453d0(undefined8 param_1,long param_2)

{
  int iVar1;
  long lVar2;
  long lVar3;
  undefined8 uVar4;
  long local_38 [2];
  long local_28;
  
  lVar2 = bfd_make_section_anyway_with_flags
                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,
                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */
                    );
  if (lVar2 != 0) {
    iVar1 = DAT_002a4c50;
    if (DAT_002a4c50 < 6) {
      iVar1 = 5;
      if (DAT_002a4c50 < -5) {
        iVar1 = -DAT_002a4c50;
      }
    }
    *(int *)(lVar2 + 0x70) = iVar1;
    lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));
    local_28 = param_2;
    FUN_00118d00(local_38);
    FUN_0011ad60(local_38,lVar2,0,lVar3);
    if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {
      return lVar2;
    }
  }
  uVar4 = dcgettext(0,"%X%P: can not make stub section: %E\n",5);
  FUN_001283c0(uVar4);
  return 0;
}


PUSH R12
MOV RAX,RDI
MOV R12,RSI
PUSH RBP
MOV RSI,RAX
PUSH RBX
SUB RSP,0x20
MOV RDX,qword ptr [0x002a6440]
MOV RDI,qword ptr [RDX + 0x20]
MOV EDX,0x20411b
CALL 0x0010c270
TEST RAX,RAX
JZ 0x00145460
MOV RBX,RAX
MOV EAX,dword ptr [0x002a4c50]
CMP EAX,0x5
JLE 0x00145490
MOV dword ptr [RBX + 0x70],EAX
MOV RDI,qword ptr [R12 + 0x68]
CALL 0x00119fe0
MOV qword ptr [RSP + 0x10],R12
MOV R12,RSP
MOV RBP,RAX
MOV RDI,R12
CALL 0x00118d00
XOR EDX,EDX
MOV RCX,RBP
MOV RSI,RBX
MOV RDI,R12
CALL 0x0011ad60
CMP qword ptr [RSP],0x0
JZ 0x00145460
LEA RSI,[RBP + 0x10]
MOV RDI,R12
CALL 0x001452f0
TEST EAX,EAX
JZ 0x00145460
ADD RSP,0x20
MOV RAX,RBX
POP RBX
POP RBP
POP R12
RET
MOV EDX,0x5
LEA RSI,[0x25fa68]
XOR EDI,EDI
XOR EBX,EBX
CALL 0x0010c350
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001283c0
ADD RSP,0x20
MOV RAX,RBX
POP RBX
POP RBP
POP R12
RET
MOV EDX,EAX
NEG EDX
CMP EAX,-0x5
MOV EAX,0x5
CMOVL EAX,EDX
JMP 0x0014540d
(translation_unit "long FUN_001453d0(undefined8 param_1,long param_2)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 uVar4;\n  long local_38 [2];\n  long local_28;\n  \n  lVar2 = bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */\n                    );\n  if (lVar2 != 0) {\n    iVar1 = DAT_002a4c50;\n    if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }\n    *(int *)(lVar2 + 0x70) = iVar1;\n    lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));\n    local_28 = param_2;\n    FUN_00118d00(local_38);\n    FUN_0011ad60(local_38,lVar2,0,lVar3);\n    if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }\n  }\n  uVar4 = dcgettext(0,"%X%P: can not make stub section: %E\n",5);\n  FUN_001283c0(uVar4);\n  return 0;\n}\n\n" (function_definition "long FUN_001453d0(undefined8 param_1,long param_2)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 uVar4;\n  long local_38 [2];\n  long local_28;\n  \n  lVar2 = bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */\n                    );\n  if (lVar2 != 0) {\n    iVar1 = DAT_002a4c50;\n    if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }\n    *(int *)(lVar2 + 0x70) = iVar1;\n    lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));\n    local_28 = param_2;\n    FUN_00118d00(local_38);\n    FUN_0011ad60(local_38,lVar2,0,lVar3);\n    if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }\n  }\n  uVar4 = dcgettext(0,"%X%P: can not make stub section: %E\n",5);\n  FUN_001283c0(uVar4);\n  return 0;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_001453d0(undefined8 param_1,long param_2)" identifier (parameter_list "(undefined8 param_1,long param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 uVar4;\n  long local_38 [2];\n  long local_28;\n  \n  lVar2 = bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */\n                    );\n  if (lVar2 != 0) {\n    iVar1 = DAT_002a4c50;\n    if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }\n    *(int *)(lVar2 + 0x70) = iVar1;\n    lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));\n    local_28 = param_2;\n    FUN_00118d00(local_38);\n    FUN_0011ad60(local_38,lVar2,0,lVar3);\n    if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }\n  }\n  uVar4 = dcgettext(0,"%X%P: can not make stub section: %E\n",5);\n  FUN_001283c0(uVar4);\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "long local_38 [2];" (sized_type_specifier "long" long) (array_declarator "local_38 [2]" identifier [ number_literal ]) ;) (declaration "long local_28;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar2 = bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */\n                    );" (assignment_expression "lVar2 = bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */\n                    )" identifier = (call_expression "bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */\n                    )" identifier (argument_list "(*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */\n                    )" ( (pointer_expression "*(undefined8 *)(DAT_002a6440 + 0x20)" * (cast_expression "(undefined8 *)(DAT_002a6440 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002a6440 + 0x20)" ( (binary_expression "DAT_002a6440 + 0x20" identifier + number_literal) )))) , identifier , (string_literal ""t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..."" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") comment )))) ;) (if_statement "if (lVar2 != 0) {\n    iVar1 = DAT_002a4c50;\n    if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }\n    *(int *)(lVar2 + 0x70) = iVar1;\n    lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));\n    local_28 = param_2;\n    FUN_00118d00(local_38);\n    FUN_0011ad60(local_38,lVar2,0,lVar3);\n    if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }\n  }" if (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar1 = DAT_002a4c50;\n    if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }\n    *(int *)(lVar2 + 0x70) = iVar1;\n    lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));\n    local_28 = param_2;\n    FUN_00118d00(local_38);\n    FUN_0011ad60(local_38,lVar2,0,lVar3);\n    if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }\n  }" { (expression_statement "iVar1 = DAT_002a4c50;" (assignment_expression "iVar1 = DAT_002a4c50" identifier = identifier) ;) (if_statement "if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }" if (parenthesized_expression "(DAT_002a4c50 < 6)" ( (binary_expression "DAT_002a4c50 < 6" identifier < number_literal) )) (compound_statement "{\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }" { (expression_statement "iVar1 = 5;" (assignment_expression "iVar1 = 5" identifier = number_literal) ;) (if_statement "if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }" if (parenthesized_expression "(DAT_002a4c50 < -5)" ( (binary_expression "DAT_002a4c50 < -5" identifier < number_literal) )) (compound_statement "{\n        iVar1 = -DAT_002a4c50;\n      }" { (expression_statement "iVar1 = -DAT_002a4c50;" (assignment_expression "iVar1 = -DAT_002a4c50" identifier = (unary_expression "-DAT_002a4c50" - identifier)) ;) })) })) (expression_statement "*(int *)(lVar2 + 0x70) = iVar1;" (assignment_expression "*(int *)(lVar2 + 0x70) = iVar1" (pointer_expression "*(int *)(lVar2 + 0x70)" * (cast_expression "(int *)(lVar2 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x70)" ( (binary_expression "lVar2 + 0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));" (assignment_expression "lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68))" identifier = (call_expression "FUN_00119fe0(*(undefined8 *)(param_2 + 0x68))" identifier (argument_list "(*(undefined8 *)(param_2 + 0x68))" ( (pointer_expression "*(undefined8 *)(param_2 + 0x68)" * (cast_expression "(undefined8 *)(param_2 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) )))) )))) ;) (expression_statement "local_28 = param_2;" (assignment_expression "local_28 = param_2" identifier = identifier) ;) (expression_statement "FUN_00118d00(local_38);" (call_expression "FUN_00118d00(local_38)" identifier (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "FUN_0011ad60(local_38,lVar2,0,lVar3);" (call_expression "FUN_0011ad60(local_38,lVar2,0,lVar3)" identifier (argument_list "(local_38,lVar2,0,lVar3)" ( identifier , identifier , number_literal , identifier ))) ;) (if_statement "if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }" if (parenthesized_expression "((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0))" ( (binary_expression "(local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)" (parenthesized_expression "(local_38[0] != 0)" ( (binary_expression "local_38[0] != 0" (subscript_expression "local_38[0]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)" ( (comma_expression "iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0" (assignment_expression "iVar1 = FUN_001452f0(local_38,lVar3 + 0x10)" identifier = (call_expression "FUN_001452f0(local_38,lVar3 + 0x10)" identifier (argument_list "(local_38,lVar3 + 0x10)" ( identifier , (binary_expression "lVar3 + 0x10" identifier + number_literal) )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      return lVar2;\n    }" { (return_statement "return lVar2;" return identifier ;) })) })) (expression_statement "uVar4 = dcgettext(0,"%X%P: can not make stub section: %E\n",5);" (assignment_expression "uVar4 = dcgettext(0,"%X%P: can not make stub section: %E\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: can not make stub section: %E\n",5)" identifier (argument_list "(0,"%X%P: can not make stub section: %E\n",5)" ( number_literal , (string_literal ""%X%P: can not make stub section: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_001283c0(uVar4);" (call_expression "FUN_001283c0(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "asection * ppc_add_stub_section(char *stub_sec_name,asection *input_section)\n\n{\n  uint uVar1;\n  bfd_boolean bVar2;\n  asection *section;\n  lang_output_section_statement_type *output;\n  char *fmt;\n  hook_stub_info info;\n  \n  section = (asection *)\n            bfd_make_section_anyway_with_flags\n                      (stub_file->the_bfd,stub_sec_name,\n                       "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */\n                      );\n  if (section != (asection *)0x0) {\n    uVar1 = params.plt_stub_align;\n    if (params.plt_stub_align < 6) {\n      uVar1 = 5;\n      if (params.plt_stub_align < -5) {\n        uVar1 = -params.plt_stub_align;\n      }\n    }\n    section->alignment_power = uVar1;\n    output = lang_output_section_get(input_section->output_section);\n    info.input_section = input_section;\n    lang_list_init(&info.add);\n    lang_add_section(&info.add,section,(flag_info *)0x0,output);\n    if ((info.add.head != (lang_statement_union *)0x0) &&\n       (bVar2 = hook_in_stub(&info,&(output->children).head), bVar2 != 0)) {\n      return section;\n    }\n  }\n  fmt = (char *)dcgettext(0,"%X%P: can not make stub section: %E\n",5);\n  einfo(fmt);\n  return (asection *)0x0;\n}\n\n" (function_definition "asection * ppc_add_stub_section(char *stub_sec_name,asection *input_section)\n\n{\n  uint uVar1;\n  bfd_boolean bVar2;\n  asection *section;\n  lang_output_section_statement_type *output;\n  char *fmt;\n  hook_stub_info info;\n  \n  section = (asection *)\n            bfd_make_section_anyway_with_flags\n                      (stub_file->the_bfd,stub_sec_name,\n                       "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */\n                      );\n  if (section != (asection *)0x0) {\n    uVar1 = params.plt_stub_align;\n    if (params.plt_stub_align < 6) {\n      uVar1 = 5;\n      if (params.plt_stub_align < -5) {\n        uVar1 = -params.plt_stub_align;\n      }\n    }\n    section->alignment_power = uVar1;\n    output = lang_output_section_get(input_section->output_section);\n    info.input_section = input_section;\n    lang_list_init(&info.add);\n    lang_add_section(&info.add,section,(flag_info *)0x0,output);\n    if ((info.add.head != (lang_statement_union *)0x0) &&\n       (bVar2 = hook_in_stub(&info,&(output->children).head), bVar2 != 0)) {\n      return section;\n    }\n  }\n  fmt = (char *)dcgettext(0,"%X%P: can not make stub section: %E\n",5);\n  einfo(fmt);\n  return (asection *)0x0;\n}" type_identifier (pointer_declarator "* ppc_add_stub_section(char *stub_sec_name,asection *input_section)" * (function_declarator "ppc_add_stub_section(char *stub_sec_name,asection *input_section)" identifier (parameter_list "(char *stub_sec_name,asection *input_section)" ( (parameter_declaration "char *stub_sec_name" primitive_type (pointer_declarator "*stub_sec_name" * identifier)) , (parameter_declaration "asection *input_section" type_identifier (pointer_declarator "*input_section" * identifier)) )))) (compound_statement "{\n  uint uVar1;\n  bfd_boolean bVar2;\n  asection *section;\n  lang_output_section_statement_type *output;\n  char *fmt;\n  hook_stub_info info;\n  \n  section = (asection *)\n            bfd_make_section_anyway_with_flags\n                      (stub_file->the_bfd,stub_sec_name,\n                       "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */\n                      );\n  if (section != (asection *)0x0) {\n    uVar1 = params.plt_stub_align;\n    if (params.plt_stub_align < 6) {\n      uVar1 = 5;\n      if (params.plt_stub_align < -5) {\n        uVar1 = -params.plt_stub_align;\n      }\n    }\n    section->alignment_power = uVar1;\n    output = lang_output_section_get(input_section->output_section);\n    info.input_section = input_section;\n    lang_list_init(&info.add);\n    lang_add_section(&info.add,section,(flag_info *)0x0,output);\n    if ((info.add.head != (lang_statement_union *)0x0) &&\n       (bVar2 = hook_in_stub(&info,&(output->children).head), bVar2 != 0)) {\n      return section;\n    }\n  }\n  fmt = (char *)dcgettext(0,"%X%P: can not make stub section: %E\n",5);\n  einfo(fmt);\n  return (asection *)0x0;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "bfd_boolean bVar2;" type_identifier identifier ;) (declaration "asection *section;" type_identifier (pointer_declarator "*section" * identifier) ;) (declaration "lang_output_section_statement_type *output;" type_identifier (pointer_declarator "*output" * identifier) ;) (declaration "char *fmt;" primitive_type (pointer_declarator "*fmt" * identifier) ;) (declaration "hook_stub_info info;" type_identifier identifier ;) (expression_statement "section = (asection *)\n            bfd_make_section_anyway_with_flags\n                      (stub_file->the_bfd,stub_sec_name,\n                       "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */\n                      );" (assignment_expression "section = (asection *)\n            bfd_make_section_anyway_with_flags\n                      (stub_file->the_bfd,stub_sec_name,\n                       "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */\n                      )" identifier = (cast_expression "(asection *)\n            bfd_make_section_anyway_with_flags\n                      (stub_file->the_bfd,stub_sec_name,\n                       "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */\n                      )" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_make_section_anyway_with_flags\n                      (stub_file->the_bfd,stub_sec_name,\n                       "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */\n                      )" identifier (argument_list "(stub_file->the_bfd,stub_sec_name,\n                       "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */\n                      )" ( (field_expression "stub_file->the_bfd" identifier -> field_identifier) , identifier , (string_literal ""t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..."" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") comment ))))) ;) (if_statement "if (section != (asection *)0x0) {\n    uVar1 = params.plt_stub_align;\n    if (params.plt_stub_align < 6) {\n      uVar1 = 5;\n      if (params.plt_stub_align < -5) {\n        uVar1 = -params.plt_stub_align;\n      }\n    }\n    section->alignment_power = uVar1;\n    output = lang_output_section_get(input_section->output_section);\n    info.input_section = input_section;\n    lang_list_init(&info.add);\n    lang_add_section(&info.add,section,(flag_info *)0x0,output);\n    if ((info.add.head != (lang_statement_union *)0x0) &&\n       (bVar2 = hook_in_stub(&info,&(output->children).head), bVar2 != 0)) {\n      return section;\n    }\n  }" if (parenthesized_expression "(section != (asection *)0x0)" ( (binary_expression "section != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar1 = params.plt_stub_align;\n    if (params.plt_stub_align < 6) {\n      uVar1 = 5;\n      if (params.plt_stub_align < -5) {\n        uVar1 = -params.plt_stub_align;\n      }\n    }\n    section->alignment_power = uVar1;\n    output = lang_output_section_get(input_section->output_section);\n    info.input_section = input_section;\n    lang_list_init(&info.add);\n    lang_add_section(&info.add,section,(flag_info *)0x0,output);\n    if ((info.add.head != (lang_statement_union *)0x0) &&\n       (bVar2 = hook_in_stub(&info,&(output->children).head), bVar2 != 0)) {\n      return section;\n    }\n  }" { (expression_statement "uVar1 = params.plt_stub_align;" (assignment_expression "uVar1 = params.plt_stub_align" identifier = (field_expression "params.plt_stub_align" identifier . field_identifier)) ;) (if_statement "if (params.plt_stub_align < 6) {\n      uVar1 = 5;\n      if (params.plt_stub_align < -5) {\n        uVar1 = -params.plt_stub_align;\n      }\n    }" if (parenthesized_expression "(params.plt_stub_align < 6)" ( (binary_expression "params.plt_stub_align < 6" (field_expression "params.plt_stub_align" identifier . field_identifier) < number_literal) )) (compound_statement "{\n      uVar1 = 5;\n      if (params.plt_stub_align < -5) {\n        uVar1 = -params.plt_stub_align;\n      }\n    }" { (expression_statement "uVar1 = 5;" (assignment_expression "uVar1 = 5" identifier = number_literal) ;) (if_statement "if (params.plt_stub_align < -5) {\n        uVar1 = -params.plt_stub_align;\n      }" if (parenthesized_expression "(params.plt_stub_align < -5)" ( (binary_expression "params.plt_stub_align < -5" (field_expression "params.plt_stub_align" identifier . field_identifier) < number_literal) )) (compound_statement "{\n        uVar1 = -params.plt_stub_align;\n      }" { (expression_statement "uVar1 = -params.plt_stub_align;" (assignment_expression "uVar1 = -params.plt_stub_align" identifier = (unary_expression "-params.plt_stub_align" - (field_expression "params.plt_stub_align" identifier . field_identifier))) ;) })) })) (expression_statement "section->alignment_power = uVar1;" (assignment_expression "section->alignment_power = uVar1" (field_expression "section->alignment_power" identifier -> field_identifier) = identifier) ;) (expression_statement "output = lang_output_section_get(input_section->output_section);" (assignment_expression "output = lang_output_section_get(input_section->output_section)" identifier = (call_expression "lang_output_section_get(input_section->output_section)" identifier (argument_list "(input_section->output_section)" ( (field_expression "input_section->output_section" identifier -> field_identifier) )))) ;) (expression_statement "info.input_section = input_section;" (assignment_expression "info.input_section = input_section" (field_expression "info.input_section" identifier . field_identifier) = identifier) ;) (expression_statement "lang_list_init(&info.add);" (call_expression "lang_list_init(&info.add)" identifier (argument_list "(&info.add)" ( (pointer_expression "&info.add" & (field_expression "info.add" identifier . field_identifier)) ))) ;) (expression_statement "lang_add_section(&info.add,section,(flag_info *)0x0,output);" (call_expression "lang_add_section(&info.add,section,(flag_info *)0x0,output)" identifier (argument_list "(&info.add,section,(flag_info *)0x0,output)" ( (pointer_expression "&info.add" & (field_expression "info.add" identifier . field_identifier)) , identifier , (cast_expression "(flag_info *)0x0" ( (type_descriptor "flag_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;) (if_statement "if ((info.add.head != (lang_statement_union *)0x0) &&\n       (bVar2 = hook_in_stub(&info,&(output->children).head), bVar2 != 0)) {\n      return section;\n    }" if (parenthesized_expression "((info.add.head != (lang_statement_union *)0x0) &&\n       (bVar2 = hook_in_stub(&info,&(output->children).head), bVar2 != 0))" ( (binary_expression "(info.add.head != (lang_statement_union *)0x0) &&\n       (bVar2 = hook_in_stub(&info,&(output->children).head), bVar2 != 0)" (parenthesized_expression "(info.add.head != (lang_statement_union *)0x0)" ( (binary_expression "info.add.head != (lang_statement_union *)0x0" (field_expression "info.add.head" (field_expression "info.add" identifier . field_identifier) . field_identifier) != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar2 = hook_in_stub(&info,&(output->children).head), bVar2 != 0)" ( (comma_expression "bVar2 = hook_in_stub(&info,&(output->children).head), bVar2 != 0" (assignment_expression "bVar2 = hook_in_stub(&info,&(output->children).head)" identifier = (call_expression "hook_in_stub(&info,&(output->children).head)" identifier (argument_list "(&info,&(output->children).head)" ( (pointer_expression "&info" & identifier) , (pointer_expression "&(output->children).head" & (field_expression "(output->children).head" (parenthesized_expression "(output->children)" ( (field_expression "output->children" identifier -> field_identifier) )) . field_identifier)) )))) , (binary_expression "bVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      return section;\n    }" { (return_statement "return section;" return identifier ;) })) })) (expression_statement "fmt = (char *)dcgettext(0,"%X%P: can not make stub section: %E\n",5);" (assignment_expression "fmt = (char *)dcgettext(0,"%X%P: can not make stub section: %E\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%X%P: can not make stub section: %E\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%X%P: can not make stub section: %E\n",5)" identifier (argument_list "(0,"%X%P: can not make stub section: %E\n",5)" ( number_literal , (string_literal ""%X%P: can not make stub section: %E\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(fmt);" (call_expression "einfo(fmt)" identifier (argument_list "(fmt)" ( identifier ))) ;) (return_statement "return (asection *)0x0;" return (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit "long FUN_001453d0(undefined8 param_1,long param_2)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 uVar4;\n  long local_38 [2];\n  long local_28;\n  \n  lVar2 = bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   \n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  \n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  \n  \n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  \n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  \n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubty..." \n                    );\n  if (lVar2 != 0) {\n    iVar1 = DAT_002a4c50;\n    if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }\n    *(int *)(lVar2 + 0x70) = iVar1;\n    lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));\n    local_28 = param_2;\n    FUN_00118d00(local_38);\n    FUN_0011ad60(local_38,lVar2,0,lVar3);\n    if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }\n  }\n  uVar4 = dcgettext(0,"%X%P: can not make stub section: %E\n",5);\n  FUN_001283c0(uVar4);\n  return 0;\n}\n\n" (function_definition "long FUN_001453d0(undefined8 param_1,long param_2)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 uVar4;\n  long local_38 [2];\n  long local_28;\n  \n  lVar2 = bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   \n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  \n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  \n  \n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  \n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  \n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubty..." \n                    );\n  if (lVar2 != 0) {\n    iVar1 = DAT_002a4c50;\n    if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }\n    *(int *)(lVar2 + 0x70) = iVar1;\n    lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));\n    local_28 = param_2;\n    FUN_00118d00(local_38);\n    FUN_0011ad60(local_38,lVar2,0,lVar3);\n    if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }\n  }\n  uVar4 = dcgettext(0,"%X%P: can not make stub section: %E\n",5);\n  FUN_001283c0(uVar4);\n  return 0;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_001453d0(undefined8 param_1,long param_2)" identifier (parameter_list "(undefined8 param_1,long param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 uVar4;\n  long local_38 [2];\n  long local_28;\n  \n  lVar2 = bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   \n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  \n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  \n  \n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  \n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  \n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubty..." \n                    );\n  if (lVar2 != 0) {\n    iVar1 = DAT_002a4c50;\n    if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }\n    *(int *)(lVar2 + 0x70) = iVar1;\n    lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));\n    local_28 = param_2;\n    FUN_00118d00(local_38);\n    FUN_0011ad60(local_38,lVar2,0,lVar3);\n    if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }\n  }\n  uVar4 = dcgettext(0,"%X%P: can not make stub section: %E\n",5);\n  FUN_001283c0(uVar4);\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "long local_38 [2];" (sized_type_specifier "long" long) (array_declarator "local_38 [2]" identifier [ number_literal ]) ;) (declaration "long local_28;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar2 = bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   \n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  \n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  \n  \n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  \n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  \n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubty..." \n                    );" (assignment_expression "lVar2 = bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   \n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  \n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  \n  \n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  \n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  \n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubty..." \n                    )" identifier = (call_expression "bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   \n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  \n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  \n  \n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  \n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  \n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubty..." \n                    )" identifier (argument_list "(*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   \n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  \n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  \n  \n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  \n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  \n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubty..." \n                    )" ( (pointer_expression "*(undefined8 *)(DAT_002a6440 + 0x20)" * (cast_expression "(undefined8 *)(DAT_002a6440 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002a6440 + 0x20)" ( (binary_expression "DAT_002a6440 + 0x20" identifier + number_literal) )))) , identifier , (string_literal ""t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   \n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  \n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  \n  \n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  \n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  \n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubty..."" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (if_statement "if (lVar2 != 0) {\n    iVar1 = DAT_002a4c50;\n    if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }\n    *(int *)(lVar2 + 0x70) = iVar1;\n    lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));\n    local_28 = param_2;\n    FUN_00118d00(local_38);\n    FUN_0011ad60(local_38,lVar2,0,lVar3);\n    if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }\n  }" if (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar1 = DAT_002a4c50;\n    if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }\n    *(int *)(lVar2 + 0x70) = iVar1;\n    lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));\n    local_28 = param_2;\n    FUN_00118d00(local_38);\n    FUN_0011ad60(local_38,lVar2,0,lVar3);\n    if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }\n  }" { (expression_statement "iVar1 = DAT_002a4c50;" (assignment_expression "iVar1 = DAT_002a4c50" identifier = identifier) ;) (if_statement "if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }" if (parenthesized_expression "(DAT_002a4c50 < 6)" ( (binary_expression "DAT_002a4c50 < 6" identifier < number_literal) )) (compound_statement "{\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }" { (expression_statement "iVar1 = 5;" (assignment_expression "iVar1 = 5" identifier = number_literal) ;) (if_statement "if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }" if (parenthesized_expression "(DAT_002a4c50 < -5)" ( (binary_expression "DAT_002a4c50 < -5" identifier < number_literal) )) (compound_statement "{\n        iVar1 = -DAT_002a4c50;\n      }" { (expression_statement "iVar1 = -DAT_002a4c50;" (assignment_expression "iVar1 = -DAT_002a4c50" identifier = (unary_expression "-DAT_002a4c50" - identifier)) ;) })) })) (expression_statement "*(int *)(lVar2 + 0x70) = iVar1;" (assignment_expression "*(int *)(lVar2 + 0x70) = iVar1" (pointer_expression "*(int *)(lVar2 + 0x70)" * (cast_expression "(int *)(lVar2 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x70)" ( (binary_expression "lVar2 + 0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));" (assignment_expression "lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68))" identifier = (call_expression "FUN_00119fe0(*(undefined8 *)(param_2 + 0x68))" identifier (argument_list "(*(undefined8 *)(param_2 + 0x68))" ( (pointer_expression "*(undefined8 *)(param_2 + 0x68)" * (cast_expression "(undefined8 *)(param_2 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) )))) )))) ;) (expression_statement "local_28 = param_2;" (assignment_expression "local_28 = param_2" identifier = identifier) ;) (expression_statement "FUN_00118d00(local_38);" (call_expression "FUN_00118d00(local_38)" identifier (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "FUN_0011ad60(local_38,lVar2,0,lVar3);" (call_expression "FUN_0011ad60(local_38,lVar2,0,lVar3)" identifier (argument_list "(local_38,lVar2,0,lVar3)" ( identifier , identifier , number_literal , identifier ))) ;) (if_statement "if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }" if (parenthesized_expression "((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0))" ( (binary_expression "(local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)" (parenthesized_expression "(local_38[0] != 0)" ( (binary_expression "local_38[0] != 0" (subscript_expression "local_38[0]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)" ( (comma_expression "iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0" (assignment_expression "iVar1 = FUN_001452f0(local_38,lVar3 + 0x10)" identifier = (call_expression "FUN_001452f0(local_38,lVar3 + 0x10)" identifier (argument_list "(local_38,lVar3 + 0x10)" ( identifier , (binary_expression "lVar3 + 0x10" identifier + number_literal) )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      return lVar2;\n    }" { (return_statement "return lVar2;" return identifier ;) })) })) (expression_statement "uVar4 = dcgettext(0,"%X%P: can not make stub section: %E\n",5);" (assignment_expression "uVar4 = dcgettext(0,"%X%P: can not make stub section: %E\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: can not make stub section: %E\n",5)" identifier (argument_list "(0,"%X%P: can not make stub section: %E\n",5)" ( number_literal , (string_literal ""%X%P: can not make stub section: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_001283c0(uVar4);" (call_expression "FUN_001283c0(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (return_statement return IDENT ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "long FUN_001453d0(undefined8 param_1,long param_2)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 uVar4;\n  long local_38 [2];\n  long local_28;\n  \n  lVar2 = bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   \n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  \n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  \n  \n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  \n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  \n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubty..." \n                    );\n  if (lVar2 != 0) {\n    iVar1 = DAT_002a4c50;\n    if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }\n    *(int *)(lVar2 + 0x70) = iVar1;\n    lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));\n    local_28 = param_2;\n    FUN_00118d00(local_38);\n    FUN_0011ad60(local_38,lVar2,0,lVar3);\n    if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }\n  }\n  uVar4 = dcgettext(0,"%X%P: can not make stub section: %E\n",5);\n  FUN_001283c0(uVar4);\n  return 0;\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_001453d0(undefined8 param_1,long param_2)" (identifier "FUN_001453d0") (parameter_list "(undefined8 param_1,long param_2)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 uVar4;\n  long local_38 [2];\n  long local_28;\n  \n  lVar2 = bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   \n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  \n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  \n  \n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  \n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  \n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubty..." \n                    );\n  if (lVar2 != 0) {\n    iVar1 = DAT_002a4c50;\n    if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }\n    *(int *)(lVar2 + 0x70) = iVar1;\n    lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));\n    local_28 = param_2;\n    FUN_00118d00(local_38);\n    FUN_0011ad60(local_38,lVar2,0,lVar3);\n    if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }\n  }\n  uVar4 = dcgettext(0,"%X%P: can not make stub section: %E\n",5);\n  FUN_001283c0(uVar4);\n  return 0;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "long local_38 [2];" (sized_type_specifier "long" (long "long")) (array_declarator "local_38 [2]" (identifier "local_38") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "long local_28;" (sized_type_specifier "long" (long "long")) (identifier "local_28") (; ";")) (expression_statement "lVar2 = bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   \n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  \n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  \n  \n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  \n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  \n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubty..." \n                    );" (assignment_expression "lVar2 = bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   \n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  \n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  \n  \n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  \n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  \n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubty..." \n                    )" (identifier "lVar2") (= "=") (call_expression "bfd_make_section_anyway_with_flags\n                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   \n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  \n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  \n  \n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  \n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  \n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubty..." \n                    )" (identifier "bfd_make_section_anyway_with_flags") (argument_list "(*(undefined8 *)(DAT_002a6440 + 0x20),param_1,\n                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   \n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  \n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  \n  \n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  \n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  \n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubty..." \n                    )" (( "(") (pointer_expression "*(undefined8 *)(DAT_002a6440 + 0x20)" (* "*") (cast_expression "(undefined8 *)(DAT_002a6440 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002a6440 + 0x20)" (( "(") (binary_expression "DAT_002a6440 + 0x20" (identifier "DAT_002a6440") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (identifier "param_1") (, ",") (string_literal ""t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   \n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  \n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  \n  \n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  \n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  \n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubty..."" (" """) (string_content "t            : SPECIAL { *(.plt) }") (escape_sequence "\n") (string_content "  .iplt           : { *(.iplt) }") (escape_sequence "\n") (string_content "  .bss            :") (escape_sequence "\n") (string_content "  {") (escape_sequence "\n") (string_content "   *(.dynbss)") (escape_sequence "\n") (string_content "   *(.bss .bss.* .gnu.linkonce.b.*)") (escape_sequence "\n") (string_content "   *(COMMON)") (escape_sequence "\n") (string_content "   ") (escape_sequence "\n") (string_content "   . = ALIGN(. != 0 ? 32 / 8 : 1);") (escape_sequence "\n") (string_content "  }") (escape_sequence "\n") (string_content "  . = ALIGN(32 / 8);") (escape_sequence "\n") (string_content "  . = SEGMENT_START(") (escape_sequence "\"") (string_content "ldata-segment") (escape_sequence "\"") (string_content ", .);") (escape_sequence "\n") (string_content "  . = ALIGN(32 / 8);") (escape_sequence "\n") (string_content "  __end = .;") (escape_sequence "\n") (string_content "  _end = .; PROVIDE (end = .);") (escape_sequence "\n") (string_content "  ") (escape_sequence "\n") (string_content "  .stab          0 : { *(.stab) }") (escape_sequence "\n") (string_content "  .stabstr       0 : { *(.stabstr) }") (escape_sequence "\n") (string_content "  .stab.excl     0 : { *(.stab.excl) }") (escape_sequence "\n") (string_content "  .stab.exclstr  0 : { *(.stab.exclstr) }") (escape_sequence "\n") (string_content "  .stab.index    0 : { *(.stab.index) }") (escape_sequence "\n") (string_content "  .stab.indexstr 0 : { *(.stab.indexstr) }") (escape_sequence "\n") (string_content "  .comment       0 : { *(.comment) }") (escape_sequence "\n") (string_content "  ") (escape_sequence "\n") (string_content "  ") (escape_sequence "\n") (string_content "  .debug          0 : { *(.debug) }") (escape_sequence "\n") (string_content "  .line           0 : { *(.line) }") (escape_sequence "\n") (string_content "  ") (escape_sequence "\n") (string_content "  .debug_srcinfo  0 : { *(.debug_srcinfo) }") (escape_sequence "\n") (string_content "  .debug_sfnames  0 : { *(.debug_sfnames) }") (escape_sequence "\n") (string_content "  ") (escape_sequence "\n") (string_content "  .debug_aranges  0 : { *(.debug_aranges) }") (escape_sequence "\n") (string_content "  .debug_pubnames 0 : { *(.debug_pubnames) }") (escape_sequence "\n") (string_content "  ") (escape_sequence "\n") (string_content "  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }") (escape_sequence "\n") (string_content "  .debug_abbrev   0 : { *(.debug_abbrev) }") (escape_sequence "\n") (string_content "  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }") (escape_sequence "\n") (string_content "  .debug_frame    0 : { *(.debug_frame) }") (escape_sequence "\n") (string_content "  .debug_str      0 : { *(.debug_str) }") (escape_sequence "\n") (string_content "  .debug_loc      0 : { *(.debug_loc) }") (escape_sequence "\n") (string_content "  .debug_macinfo  0 : { *(.debug_macinfo) }") (escape_sequence "\n") (string_content "  ") (escape_sequence "\n") (string_content "  .debug_weaknames 0 : { *(.debug_weaknames) }") (escape_sequence "\n") (string_content "  .debug_funcnames 0 : { *(.debug_funcnames) }") (escape_sequence "\n") (string_content "  .debug_typenames 0 : { *(.debug_typenames) }") (escape_sequence "\n") (string_content "  .debug_varnames  0 : { *(.debug_varnames) }") (escape_sequence "\n") (string_content "  ") (escape_sequence "\n") (string_content "  .debug_pubtypes 0 : { *(.debug_pubty...") (" """)) () ")")))) (; ";")) (if_statement "if (lVar2 != 0) {\n    iVar1 = DAT_002a4c50;\n    if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }\n    *(int *)(lVar2 + 0x70) = iVar1;\n    lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));\n    local_28 = param_2;\n    FUN_00118d00(local_38);\n    FUN_0011ad60(local_38,lVar2,0,lVar3);\n    if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }\n  }" (if "if") (parenthesized_expression "(lVar2 != 0)" (( "(") (binary_expression "lVar2 != 0" (identifier "lVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = DAT_002a4c50;\n    if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }\n    *(int *)(lVar2 + 0x70) = iVar1;\n    lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));\n    local_28 = param_2;\n    FUN_00118d00(local_38);\n    FUN_0011ad60(local_38,lVar2,0,lVar3);\n    if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }\n  }" ({ "{") (expression_statement "iVar1 = DAT_002a4c50;" (assignment_expression "iVar1 = DAT_002a4c50" (identifier "iVar1") (= "=") (identifier "DAT_002a4c50")) (; ";")) (if_statement "if (DAT_002a4c50 < 6) {\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }" (if "if") (parenthesized_expression "(DAT_002a4c50 < 6)" (( "(") (binary_expression "DAT_002a4c50 < 6" (identifier "DAT_002a4c50") (< "<") (number_literal "6")) () ")")) (compound_statement "{\n      iVar1 = 5;\n      if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }\n    }" ({ "{") (expression_statement "iVar1 = 5;" (assignment_expression "iVar1 = 5" (identifier "iVar1") (= "=") (number_literal "5")) (; ";")) (if_statement "if (DAT_002a4c50 < -5) {\n        iVar1 = -DAT_002a4c50;\n      }" (if "if") (parenthesized_expression "(DAT_002a4c50 < -5)" (( "(") (binary_expression "DAT_002a4c50 < -5" (identifier "DAT_002a4c50") (< "<") (number_literal "-5")) () ")")) (compound_statement "{\n        iVar1 = -DAT_002a4c50;\n      }" ({ "{") (expression_statement "iVar1 = -DAT_002a4c50;" (assignment_expression "iVar1 = -DAT_002a4c50" (identifier "iVar1") (= "=") (unary_expression "-DAT_002a4c50" (- "-") (identifier "DAT_002a4c50"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*(int *)(lVar2 + 0x70) = iVar1;" (assignment_expression "*(int *)(lVar2 + 0x70) = iVar1" (pointer_expression "*(int *)(lVar2 + 0x70)" (* "*") (cast_expression "(int *)(lVar2 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x70)" (( "(") (binary_expression "lVar2 + 0x70" (identifier "lVar2") (+ "+") (number_literal "0x70")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));" (assignment_expression "lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68))" (identifier "lVar3") (= "=") (call_expression "FUN_00119fe0(*(undefined8 *)(param_2 + 0x68))" (identifier "FUN_00119fe0") (argument_list "(*(undefined8 *)(param_2 + 0x68))" (( "(") (pointer_expression "*(undefined8 *)(param_2 + 0x68)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x68)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x68)" (( "(") (binary_expression "param_2 + 0x68" (identifier "param_2") (+ "+") (number_literal "0x68")) () ")")))) () ")")))) (; ";")) (expression_statement "local_28 = param_2;" (assignment_expression "local_28 = param_2" (identifier "local_28") (= "=") (identifier "param_2")) (; ";")) (expression_statement "FUN_00118d00(local_38);" (call_expression "FUN_00118d00(local_38)" (identifier "FUN_00118d00") (argument_list "(local_38)" (( "(") (identifier "local_38") () ")"))) (; ";")) (expression_statement "FUN_0011ad60(local_38,lVar2,0,lVar3);" (call_expression "FUN_0011ad60(local_38,lVar2,0,lVar3)" (identifier "FUN_0011ad60") (argument_list "(local_38,lVar2,0,lVar3)" (( "(") (identifier "local_38") (, ",") (identifier "lVar2") (, ",") (number_literal "0") (, ",") (identifier "lVar3") () ")"))) (; ";")) (if_statement "if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {\n      return lVar2;\n    }" (if "if") (parenthesized_expression "((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0))" (( "(") (binary_expression "(local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)" (parenthesized_expression "(local_38[0] != 0)" (( "(") (binary_expression "local_38[0] != 0" (subscript_expression "local_38[0]" (identifier "local_38") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)" (( "(") (comma_expression "iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0" (assignment_expression "iVar1 = FUN_001452f0(local_38,lVar3 + 0x10)" (identifier "iVar1") (= "=") (call_expression "FUN_001452f0(local_38,lVar3 + 0x10)" (identifier "FUN_001452f0") (argument_list "(local_38,lVar3 + 0x10)" (( "(") (identifier "local_38") (, ",") (binary_expression "lVar3 + 0x10" (identifier "lVar3") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      return lVar2;\n    }" ({ "{") (return_statement "return lVar2;" (return "return") (identifier "lVar2") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar4 = dcgettext(0,"%X%P: can not make stub section: %E\n",5);" (assignment_expression "uVar4 = dcgettext(0,"%X%P: can not make stub section: %E\n",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"%X%P: can not make stub section: %E\n",5)" (identifier "dcgettext") (argument_list "(0,"%X%P: can not make stub section: %E\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: can not make stub section: %E\n"" (" """) (string_content "%X%P: can not make stub section: %E") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_001283c0(uVar4);" (call_expression "FUN_001283c0(uVar4)" (identifier "FUN_001283c0") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

type_1 * function_1(char *stub_sec_name,type_1 *input_section)

{
  type_2 uVar1;
  type_3 var_7;
  type_1 *var_2;
  type_4 *output;
  char *fmt;
  type_5 info;
  
  var_2 = (type_1 *)
            var_1
                      (stub_file->the_bfd,stub_sec_name,
                       "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */
                      );
  if (var_2 != (type_1 *)0x0) {
    uVar1 = params.plt_stub_align;
    if (params.plt_stub_align < 6) {
      uVar1 = 5;
      if (params.plt_stub_align < -5) {
        uVar1 = -params.plt_stub_align;
      }
    }
    var_2->alignment_power = uVar1;
    output = var_3(input_section->output_section);
    info.input_section = input_section;
    var_4(&info.add);
    var_5(&info.add,var_2,(type_6 *)0x0,output);
    if ((info.add.head != (type_7 *)0x0) &&
       (var_7 = var_6(&info,&(output->children).head), var_7 != 0)) {
      return var_2;
    }
  }
  fmt = (char *)var_8(0,"%X%P: can not make stub section: %E\n",5);
  var_9(fmt);
  return (type_1 *)0x0;
}


(translation_unit (function_definition type: (sized_type_specifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (identifier)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (return_statement (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement (number_literal)))))

long MASKED(undefined8 param_1,long param_2)

{
  int iVar1;
  long lVar2;
  long lVar3;
  undefined8 uVar4;
  long local_38 [2];
  long local_28;
  
  lVar2 = bfd_make_section_anyway_with_flags
                    (*(undefined8 *)(DAT_002a6440 + 0x20),param_1,
                     "t            : SPECIAL { *(.plt) }\n  .iplt           : { *(.iplt) }\n  .bss            :\n  {\n   *(.dynbss)\n   *(.bss .bss.* .gnu.linkonce.b.*)\n   *(COMMON)\n   /* Align here to ensure that the .bss section occupies space up to\n      _end.  Align after .bss to ensure correct alignment even if the\n      .bss section disappears because there are no input sections.\n      FIXME: Why do we need it? When there is no .bss section, we don\'t\n      pad the .data section.  */\n   . = ALIGN(. != 0 ? 32 / 8 : 1);\n  }\n  . = ALIGN(32 / 8);\n  . = SEGMENT_START(\"ldata-segment\", .);\n  . = ALIGN(32 / 8);\n  __end = .;\n  _end = .; PROVIDE (end = .);\n  /* Stabs debugging sections.  */\n  .stab          0 : { *(.stab) }\n  .stabstr       0 : { *(.stabstr) }\n  .stab.excl     0 : { *(.stab.excl) }\n  .stab.exclstr  0 : { *(.stab.exclstr) }\n  .stab.index    0 : { *(.stab.index) }\n  .stab.indexstr 0 : { *(.stab.indexstr) }\n  .comment       0 : { *(.comment) }\n  /* DWARF debug sections.\n     Symbols in the DWARF debugging sections are relative to the beginning\n     of the section so we begin them at 0.  */\n  /* DWARF 1 */\n  .debug          0 : { *(.debug) }\n  .line           0 : { *(.line) }\n  /* GNU DWARF 1 extensions */\n  .debug_srcinfo  0 : { *(.debug_srcinfo) }\n  .debug_sfnames  0 : { *(.debug_sfnames) }\n  /* DWARF 1.1 and DWARF 2 */\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubty..." /* TRUNCATED STRING LITERAL */
                    );
  if (lVar2 != 0) {
    iVar1 = DAT_002a4c50;
    if (DAT_002a4c50 < 6) {
      iVar1 = 5;
      if (DAT_002a4c50 < -5) {
        iVar1 = -DAT_002a4c50;
      }
    }
    *(int *)(lVar2 + 0x70) = iVar1;
    lVar3 = FUN_00119fe0(*(undefined8 *)(param_2 + 0x68));
    local_28 = param_2;
    FUN_00118d00(local_38);
    FUN_0011ad60(local_38,lVar2,0,lVar3);
    if ((local_38[0] != 0) && (iVar1 = FUN_001452f0(local_38,lVar3 + 0x10), iVar1 != 0)) {
      return lVar2;
    }
  }
  uVar4 = dcgettext(0,"%X%P: can not make stub section: %E\n",5);
  FUN_001283c0(uVar4);
  return 0;
}

