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

void __regparm3 print_statement(lang_statement_union_type *s,lang_output_section_statement_type *os)

{
  byte bVar1;
  name_list *pnVar2;
  wildcard_list *pwVar3;
  fill_type *pfVar4;
  size_t sVar5;
  lang_statement_union_type *plVar6;
  bool bVar7;
  asection *paVar8;
  char *pcVar9;
  uint uVar10;
  size_t sVar11;
  char *pcVar12;
  statement_enum sVar13;
  etree_type *tree;
  uchar *puVar14;
  int iVar15;
  statement_enum sVar16;
  lang_statement_union *plVar17;
  walk_wild_section_handler_t p_Var18;
  bfd_vma bVar19;
  asection *paVar20;
  char *local_2c;
  
  sVar16 = (s->header).type;
  switch(sVar16) {
  case lang_output_section_statement_enum:
    if (s != (lang_statement_union_type *)abs_output_section) {
      paVar20 = (s->output_section_statement).bfd_section;
      minfo("\n%s",(s->wild_statement).children.head);
      if (paVar20 != (asection *)0x0) {
        print_dot = paVar20->vma;
        sVar11 = strlen((s->output_section_statement).name);
        if (0xe < sVar11) {
          print_nl();
          sVar11 = 0;
        }
        do {
          print_space();
          sVar11 = sVar11 + 1;
        } while (sVar11 != 0x10);
        minfo("0x%V %W",paVar20->vma,paVar20->size >> ((byte)opb_shift & 0x1f));
        bVar19 = paVar20->lma;
        if (paVar20->vma != bVar19) {
          pcVar12 = (char *)dcgettext(0," load address 0x%V",5);
          minfo(pcVar12,bVar19);
        }
        if ((s->output_section_statement).update_dot_tree != (etree_type *)0x0) {
          exp_fold_tree((s->output_section_statement).update_dot_tree,
                        (asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&print_dot);
        }
      }
      print_nl();
    }
    for (plVar6 = (s->output_section_statement).children.head;
        plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {
      print_statement(plVar6,&s->output_section_statement);
    }
    break;
  case lang_assignment_statement_enum:
    iVar15 = 0x10;
    do {
      print_space();
      iVar15 = iVar15 + -1;
    } while (iVar15 != 0);
    paVar8 = (s->input_section).section;
    tree = (etree_type *)paVar8->prev;
    paVar20 = os->bfd_section;
    if (paVar8->next == (bfd_section *)0x8) {
      bVar7 = false;
      if (paVar20 == (asection *)0x0) {
        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);
      }
LAB_0001fe56:
      exp_fold_tree(tree,paVar20,&print_dot);
      bVar19 = expld.result.value;
      paVar8 = (s->input_section).section;
      if (expld.result.valid_p == 0) goto LAB_0001f610;
      if (paVar8->next == (bfd_section *)0x8) {
        if (expld.result.section != (asection *)0x0) {
LAB_0001fea7:
          bVar19 = expld.result.value + (expld.result.section)->vma;
        }
        minfo("0x%V",bVar19);
        if (bVar7) {
LAB_0001fec9:
          print_dot = bVar19;
        }
      }
      else {
        if (bVar7) {
          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;
          minfo("0x%V",expld.result.value);
          goto LAB_0001fec9;
        }
        if (expld.assign_name == (char *)0x0) {
          iVar15 = bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1);
          if (iVar15 == 0) {
            minfo("[unresolved]");
          }
          else {
            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +
                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));
          }
        }
        else {
          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;
          minfo("0x%V",expld.result.value);
        }
      }
    }
    else {
      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {
        bVar7 = true;
      }
      else {
        bVar7 = false;
        expld.assign_name = (char *)tree;
      }
      tree = (etree_type *)paVar8->flags;
      if (paVar20 == (asection *)0x0) {
        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);
      }
      if (paVar8->next != (bfd_section *)0x5) goto LAB_0001fe56;
      expld.result.valid_p = 0;
LAB_0001f610:
      if (paVar8->next == (bfd_section *)0x5) {
        minfo("[!provide]");
      }
      else {
        minfo("*undef*   ");
      }
    }
    expld.assign_name = (char *)0x0;
    minfo("                ");
    exp_print_tree((etree_type *)(s->output_section_statement).children.head);
    print_nl();
    break;
  case lang_input_statement_enum:
    pcVar9 = (s->wild_statement).filename;
    if (pcVar9 == (char *)0x0) {
      return;
    }
    if (((s->reloc_statement).section != (asection *)0x0) &&
       ((((s->reloc_statement).section)->rawsize & 0x20000) != 0)) {
      return;
    }
    pcVar12 = "LOAD %s\n";
    goto LAB_0001f93c;
  case lang_address_statement_enum:
    pcVar12 = (s->wild_statement).filename;
    pcVar9 = (char *)dcgettext(0,"Address of section %s set to ",5);
    minfo(pcVar9,pcVar12);
    exp_print_tree((s->data_statement).exp);
    print_nl();
    break;
  case lang_wild_statement_enum:
    print_space();
    if ((s->wild_statement).exclude_name_list != (name_list *)0x0) {
      pcVar12 = ((s->wild_statement).exclude_name_list)->name;
      minfo("EXCLUDE_FILE(%s",pcVar12);
      for (pnVar2 = ((s->wild_statement).exclude_name_list)->next; pnVar2 != (name_list *)0x0;
          pnVar2 = pnVar2->next) {
        pcVar12 = pnVar2->name;
        minfo(" %s",pcVar12);
      }
      minfo(") ",pcVar12);
    }
    if ((s->wild_statement).filenames_sorted != 0) {
      minfo("SORT_BY_NAME(");
    }
    if ((s->wild_statement).filename == (char *)0x0) {
      minfo("*");
    }
    else {
      minfo("%s",(s->wild_statement).filename);
    }
    if ((s->wild_statement).filenames_sorted != 0) {
      minfo(")");
    }
    minfo("(");
    for (pwVar3 = (s->wild_statement).section_list; pwVar3 != (wildcard_list *)0x0;
        pwVar3 = pwVar3->next) {
      switch((pwVar3->spec).sorted) {
      default:
        iVar15 = 0;
        break;
      case by_name:
        iVar15 = 1;
        minfo("SORT_BY_NAME(");
        break;
      case by_alignment:
        iVar15 = 1;
        minfo("SORT_BY_ALIGNMENT(");
        break;
      case by_name_alignment:
        iVar15 = 2;
        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");
        break;
      case by_alignment_name:
        iVar15 = 2;
        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");
        break;
      case by_none:
        iVar15 = 1;
        minfo("SORT_NONE(");
        break;
      case by_init_priority:
        iVar15 = 1;
        minfo("SORT_BY_INIT_PRIORITY(");
      }
      pnVar2 = (pwVar3->spec).exclude_name_list;
      if (pnVar2 != (name_list *)0x0) {
        pcVar12 = pnVar2->name;
        minfo("EXCLUDE_FILE(%s",pcVar12);
        for (pnVar2 = ((pwVar3->spec).exclude_name_list)->next; pnVar2 != (name_list *)0x0;
            pnVar2 = pnVar2->next) {
          pcVar12 = pnVar2->name;
          minfo(" %s",pcVar12);
        }
        minfo(") ",pcVar12);
      }
      pcVar12 = (pwVar3->spec).name;
      if (pcVar12 == (char *)0x0) {
        minfo("*");
      }
      else {
        minfo("%s",pcVar12);
      }
      if ((iVar15 != 0) && (minfo(")"), iVar15 != 1)) {
        minfo(")");
      }
      if (pwVar3->next == (wildcard_list *)0x0) break;
      minfo(" ");
    }
    minfo(")");
    print_nl();
    for (plVar6 = (s->wild_statement).children.head; plVar6 != (lang_statement_union_type *)0x0;
        plVar6 = (plVar6->header).next) {
      print_statement(plVar6,os);
    }
    break;
  case lang_input_section_enum:
    print_input_section((s->input_section).section,0);
    return;
  case lang_object_symbols_statement_enum:
    minfo(" CREATE_OBJECT_SYMBOLS\n");
    break;
  case lang_fill_statement_enum:
    fwrite(" FILL mask 0x",1,0xd,(FILE *)config.map_file);
    pfVar4 = (s->fill_statement).fill;
    sVar5 = pfVar4->size;
    puVar14 = pfVar4->data;
    if (sVar5 != 0) {
      do {
        bVar1 = *puVar14;
        puVar14 = puVar14 + 1;
        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);
      } while (puVar14 != pfVar4->data + sVar5);
    }
    fputc(10,(FILE *)config.map_file);
    break;
  case lang_data_statement_enum:
    init_opb();
    iVar15 = 0x10;
    do {
      print_space();
      iVar15 = iVar15 + -1;
    } while (iVar15 != 0);
    plVar17 = (s->wild_statement).children.head;
    if ((s->output_section_statement).prev != (lang_output_section_statement_struct *)0x0) {
      plVar17 = (lang_statement_union *)
                ((int)&((s->output_section_statement).prev)->bfd_section->name + (int)plVar17);
    }
    switch((s->data_statement).type) {
    case 0x11a:
      pcVar12 = "QUAD";
      break;
    case 0x11b:
      pcVar12 = "SQUAD";
      break;
    case 0x11c:
      pcVar12 = "LONG";
      sVar16 = lang_wild_statement_enum;
      break;
    case 0x11d:
      pcVar12 = "SHORT";
      sVar16 = lang_input_statement_enum;
      break;
    case 0x11e:
      pcVar12 = "BYTE";
      sVar16 = lang_assignment_statement_enum;
      break;
    default:
                    /* WARNING: Subroutine does not return */
      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");
    }
    sVar13 = 1 << ((byte)opb_shift & 0x1f);
    if (sVar16 <= sVar13) {
      sVar16 = sVar13;
    }
    minfo("0x%V %W %s 0x%v",plVar17,sVar16 >> ((byte)opb_shift & 0x1f),pcVar12,
          (s->wild_statement).section_list);
    if (((s->reloc_statement).howto)->bitsize != 7) {
      print_space();
      exp_print_tree((s->data_statement).exp);
    }
    print_nl();
    print_dot = (int)plVar17 + (sVar16 >> ((byte)opb_shift & 0x1f));
    break;
  case lang_reloc_statement_enum:
    init_opb();
    iVar15 = 0x10;
    do {
      print_space();
      iVar15 = iVar15 + -1;
    } while (iVar15 != 0);
    p_Var18 = (s->wild_statement).walk_wild_section_handler;
    if ((s->reloc_statement).output_section != (asection *)0x0) {
      p_Var18 = p_Var18 + ((s->reloc_statement).output_section)->vma;
    }
    uVar10 = bfd_get_reloc_size((s->wild_statement).filenames_sorted);
    minfo("0x%V %W RELOC %s ",p_Var18,uVar10 >> ((byte)opb_shift & 0x1f),
          ((s->reloc_statement).howto)->name);
    if ((s->wild_statement).keep_sections == 0) {
      minfo("%s+",((s->wild_statement).section_list)->next);
    }
    else {
      minfo("%s+",(s->wild_statement).keep_sections);
    }
    exp_print_tree((etree_type *)(s->wild_statement).children.head);
    print_nl();
    print_dot = (bfd_vma)(p_Var18 + (uVar10 >> ((byte)opb_shift & 0x1f)));
    break;
  case lang_target_statement_enum:
    pcVar9 = (s->wild_statement).filename;
    pcVar12 = "TARGET(%s)\n";
LAB_0001f93c:
    fprintf((FILE *)config.map_file,pcVar12,pcVar9);
    break;
  case lang_output_statement_enum:
    pcVar12 = (s->wild_statement).filename;
    minfo("OUTPUT(%s",pcVar12);
    if (output_target != (char *)0x0) {
      pcVar12 = output_target;
      minfo(" %s",output_target);
    }
    minfo(")\n",pcVar12);
    break;
  case lang_padding_statement_enum:
    init_opb();
    minfo(" *fill*");
    iVar15 = 9;
    do {
      print_space();
      iVar15 = iVar15 + -1;
    } while (iVar15 != 0);
    local_2c = (s->wild_statement).filename;
    if ((s->output_section_statement).next != (lang_output_section_statement_struct *)0x0) {
      local_2c = local_2c + (int)((s->output_section_statement).next)->bfd_section;
    }
    minfo("0x%V %W ",local_2c,(s->padding_statement).size >> ((byte)opb_shift & 0x1f));
    pfVar4 = (s->padding_statement).fill;
    sVar5 = pfVar4->size;
    if (sVar5 != 0) {
      puVar14 = pfVar4->data;
      do {
        bVar1 = *puVar14;
        puVar14 = puVar14 + 1;
        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);
      } while (puVar14 != pfVar4->data + sVar5);
    }
    print_nl();
    print_dot = (bfd_vma)(local_2c + ((s->padding_statement).size >> ((byte)opb_shift & 0x1f)));
    break;
  case lang_group_statement_enum:
    fwrite("START GROUP\n",1,0xc,(FILE *)config.map_file);
    for (plVar6 = (s->output_section_statement).children.head;
        plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {
      print_statement(plVar6,os);
    }
    fwrite("END GROUP\n",1,10,(FILE *)config.map_file);
    break;
  case lang_insert_statement_enum:
    pcVar12 = "BEFORE";
    if ((s->wild_statement).filenames_sorted == 0) {
      pcVar12 = "AFTER";
    }
    minfo("INSERT %s %s\n",pcVar12,(s->wild_statement).filename);
    break;
  case lang_constructors_statement_enum:
    if (constructor_list.head != (lang_statement_union *)0x0) {
      if (constructors_sorted == 0) {
        minfo(" CONSTRUCTORS\n");
        plVar6 = constructor_list.head;
      }
      else {
        minfo(" SORT (CONSTRUCTORS)\n");
        plVar6 = constructor_list.head;
      }
      for (; plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {
        print_statement(plVar6,os);
      }
    }
    break;
  default:
    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);
    fprintf((FILE *)config.map_file,pcVar12,sVar16);
    info_assert("../../ld/ldlang.c",0x11bc);
  }
  return;
}



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

void __regparm3 FUN_0001f580(int param_1,int param_2)

{
  byte bVar1;
  undefined4 *puVar2;
  int *piVar3;
  undefined4 *puVar4;
  int iVar5;
  bool bVar6;
  undefined4 *puVar7;
  undefined4 *__base;
  undefined4 *puVar8;
  size_t sVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  undefined4 uVar13;
  char *pcVar14;
  uint uVar15;
  byte *pbVar16;
  undefined4 *puVar17;
  int iVar18;
  undefined *puVar19;
  uint local_30;
  int iStack_2c;
  size_t sStack_24;
  
  uVar12 = *(uint *)(param_1 + 4);
  switch(uVar12) {
  case 0:
    if (param_1 != DAT_000bbdac) {
      iVar18 = *(int *)(param_1 + 0x1c);
      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));
      if (iVar18 != 0) {
        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);
        sVar9 = strlen(*(char **)(param_1 + 0x18));
        if (0xe < sVar9) {
          FUN_00030810();
          sVar9 = 0;
        }
        do {
          FUN_000307e0();
          sVar9 = sVar9 + 1;
        } while (sVar9 != 0x10);
        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),
                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));
        iVar5 = *(int *)(iVar18 + 0x20);
        if (*(int *)(iVar18 + 0x1c) != iVar5) {
          uVar13 = dcgettext(0," load address 0x%V",5);
          FUN_000317c0(uVar13,iVar5);
        }
        if (*(int *)(param_1 + 0x34) != 0) {
          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)
          ;
        }
      }
      FUN_00030810();
    }
    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;
        puVar4 = (undefined4 *)*puVar4) {
      FUN_0001f580();
    }
    break;
  case 1:
    iVar18 = 0x10;
    do {
      FUN_000307e0();
      iVar18 = iVar18 + -1;
    } while (iVar18 != 0);
    iVar18 = *(int *)(param_1 + 8);
    pcVar14 = *(char **)(iVar18 + 0x10);
    puVar19 = *(undefined **)(param_2 + 0x1c);
    if (*(int *)(iVar18 + 0xc) == 8) {
      bVar6 = false;
      if (puVar19 == (undefined *)0x0) {
        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;
      }
code_r0x0001fe56:
      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);
      uVar12 = DAT_000bbf94;
      iVar18 = *(int *)(param_1 + 8);
      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;
      if (*(int *)(iVar18 + 0xc) == 8) {
        if (DAT_000bbf9c != 0) {
code_r0x0001fea7:
          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);
        }
        FUN_000317c0("0x%V",uVar12);
        if (bVar6) {
code_r0x0001fec9:
          DAT_000bb998 = uVar12;
        }
      }
      else {
        if (bVar6) {
          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;
          FUN_000317c0("0x%V",DAT_000bbf94);
          goto code_r0x0001fec9;
        }
        if (pcRam000bbf8c == (char *)0x0) {
          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);
          if (iVar18 == 0) {
            FUN_000317c0("[unresolved]");
          }
          else {
            FUN_000317c0(&UNK_0004ef5c,
                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +
                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));
          }
        }
        else {
          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;
          FUN_000317c0("0x%V",DAT_000bbf94);
        }
      }
    }
    else {
      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {
        bVar6 = true;
      }
      else {
        bVar6 = false;
        pcRam000bbf8c = pcVar14;
      }
      pcVar14 = *(char **)(iVar18 + 0x14);
      if (puVar19 == (undefined *)0x0) {
        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;
      }
      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;
      DAT_000bbfa0 = 0;
code_r0x0001f610:
      if (*(int *)(iVar18 + 0xc) == 5) {
        FUN_000317c0("[!provide]");
      }
      else {
        FUN_000317c0(&UNK_0004ef7b);
      }
    }
    pcRam000bbf8c = (char *)0x0;
    FUN_000317c0(&UNK_0004ef86);
    FUN_0002f810(*(undefined4 *)(param_1 + 8));
    FUN_00030810();
    break;
  case 2:
    iVar18 = *(int *)(param_1 + 8);
    if (iVar18 == 0) {
      return;
    }
    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))
    {
      return;
    }
    pcVar14 = "LOAD %s\n";
    goto code_r0x0001f93c;
  case 3:
    uVar13 = *(undefined4 *)(param_1 + 8);
    uVar11 = dcgettext(0,"Address of section %s set to ",5);
    FUN_000317c0(uVar11,uVar13);
    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));
    FUN_00030810();
    break;
  case 4:
    FUN_000307e0();
    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {
      uVar13 = **(undefined4 **)(param_1 + 0x20);
      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);
      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;
          puVar4 = (undefined4 *)puVar4[1]) {
        uVar13 = *puVar4;
        FUN_000317c0(&DAT_0004d69b,uVar13);
      }
      FUN_000317c0(&UNK_0004ee77,uVar13);
    }
    if (*(int *)(param_1 + 0xc) != 0) {
      FUN_000317c0("SORT_BY_NAME(");
    }
    if (*(int *)(param_1 + 8) == 0) {
      FUN_000317c0(&DAT_0004f0a0);
    }
    else {
      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));
    }
    if (*(int *)(param_1 + 0xc) != 0) {
      FUN_000317c0(")");
    }
    FUN_000317c0("(");
    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {
      switch(piVar3[3]) {
      default:
        iVar18 = 0;
        break;
      case 1:
        iVar18 = 1;
        FUN_000317c0("SORT_BY_NAME(");
        break;
      case 2:
        iVar18 = 1;
        FUN_000317c0("SORT_BY_ALIGNMENT(");
        break;
      case 3:
        iVar18 = 2;
        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");
        break;
      case 4:
        iVar18 = 2;
        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");
        break;
      case 5:
        iVar18 = 1;
        FUN_000317c0("SORT_NONE(");
        break;
      case 6:
        iVar18 = 1;
        FUN_000317c0("SORT_BY_INIT_PRIORITY(");
      }
      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {
        uVar13 = *(undefined4 *)piVar3[2];
        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);
        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;
            puVar4 = (undefined4 *)puVar4[1]) {
          uVar13 = *puVar4;
          FUN_000317c0(&DAT_0004d69b,uVar13);
        }
        FUN_000317c0(&UNK_0004ee77,uVar13);
      }
      if (piVar3[1] == 0) {
        FUN_000317c0(&DAT_0004f0a0);
      }
      else {
        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);
      }
      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {
        FUN_000317c0(")");
      }
      if (*piVar3 == 0) break;
      FUN_000317c0(" ");
    }
    FUN_000317c0(")");
    FUN_00030810();
    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;
        puVar4 = (undefined4 *)*puVar4) {
      FUN_0001f580();
    }
    break;
  case 5:
    puVar4 = *(undefined4 **)(param_1 + 8);
    uVar12 = puVar4[9];
    FUN_0001f1d0();
    FUN_000307e0();
    FUN_000317c0(&DAT_0004ef3e,*puVar4);
    sVar9 = strlen((char *)*puVar4);
    uVar10 = sVar9 + 1;
    if (0xe < uVar10) {
      FUN_00030810();
      uVar10 = 0;
    }
    do {
      FUN_000307e0();
      uVar10 = uVar10 + 1;
    } while (uVar10 != 0x10);
    iVar18 = puVar4[0xf];
    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {
      local_30 = DAT_000bb998;
      uVar12 = 0;
    }
    else {
      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);
    }
    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);
    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {
      iVar18 = 0x1b;
      do {
        FUN_000307e0();
        iVar18 = iVar18 + -1;
      } while (iVar18 != 0);
      uVar13 = puVar4[10];
      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);
      FUN_000317c0(uVar11,uVar13);
    }
    puVar17 = DAT_000bb9d0;
    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {
      if ((DAT_000bbe04 & 0x10) == 0) {
        puVar2 = (undefined4 *)puVar4[0x1a];
        if (puVar2 != (undefined4 *)0x0) {
          *(undefined4 *)puVar2[1] = 0;
          sVar9 = puVar2[2];
          uVar10 = sVar9 * 4;
          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;
          sStack_24 = sVar9;
          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {
            _obstack_newchunk(&DAT_000bb9c0,uVar10);
            sStack_24 = puVar2[2];
            puVar17 = DAT_000bb9d0;
          }
          __base = DAT_000bb9c8;
          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {
            DAT_000bb9e8 = DAT_000bb9e8 | 2;
          }
          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);
          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <
              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {
            DAT_000bb9cc = puVar17;
          }
          puVar17 = (undefined4 *)*puVar2;
          puVar8 = DAT_000bb9cc;
          puVar7 = DAT_000bb9c8;
          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {
            uVar13 = *puVar17;
            puVar17 = (undefined4 *)puVar17[1];
            *puVar7 = uVar13;
            puVar8 = DAT_000bb9c8;
            puVar7 = puVar7 + 1;
          }
          qsort(__base,sStack_24,4,FUN_0001de00);
          if (puVar2[2] != 0) {
            uVar10 = 0;
            do {
              puVar17 = __base + uVar10;
              uVar10 = uVar10 + 1;
              FUN_0001f140(*puVar17,puVar4);
            } while (uVar10 < (uint)puVar2[2]);
          }
          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {
            DAT_000bb9cc = __base;
            DAT_000bb9c8 = __base;
          }
          else {
            _obstack_free(&DAT_000bb9c0,__base);
          }
        }
      }
      else {
        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);
      }
      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;
      if (DAT_000bb998 < local_30) {
        DAT_000bb998 = local_30;
        return;
      }
    }
    return;
  case 6:
    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");
    break;
  case 7:
    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);
    piVar3 = *(int **)(param_1 + 8);
    iVar18 = *piVar3;
    pbVar16 = (byte *)(piVar3 + 1);
    if (iVar18 != 0) {
      do {
        bVar1 = *pbVar16;
        pbVar16 = pbVar16 + 1;
        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);
      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));
    }
    fputc(10,DAT_000bbf50);
    break;
  case 8:
    FUN_0001f1d0();
    iVar18 = 0x10;
    do {
      FUN_000307e0();
      iVar18 = iVar18 + -1;
    } while (iVar18 != 0);
    iVar18 = *(int *)(param_1 + 0x18);
    if (*(int *)(param_1 + 0x14) != 0) {
      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);
    }
    switch(*(undefined4 *)(param_1 + 8)) {
    case 0x11a:
      pcVar14 = "QUAD";
      break;
    case 0x11b:
      pcVar14 = "SQUAD";
      break;
    case 0x11c:
      pcVar14 = "LONG";
      uVar12 = 4;
      break;
    case 0x11d:
      pcVar14 = "SHORT";
      uVar12 = 2;
      break;
    case 0x11e:
      pcVar14 = "BYTE";
      uVar12 = 1;
      break;
    default:
                    /* WARNING: Subroutine does not return */
      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);
    }
    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);
    if (uVar12 <= uVar10) {
      uVar12 = uVar10;
    }
    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,
                 *(undefined4 *)(param_1 + 0x10));
    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {
      FUN_000307e0();
      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));
    }
    FUN_00030810();
    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));
    break;
  case 9:
    FUN_0001f1d0();
    iVar18 = 0x10;
    do {
      FUN_000307e0();
      iVar18 = iVar18 + -1;
    } while (iVar18 != 0);
    iVar18 = *(int *)(param_1 + 0x24);
    if (*(int *)(param_1 + 0x20) != 0) {
      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);
    }
    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));
    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),
                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));
    if (*(int *)(param_1 + 0x14) == 0) {
      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));
    }
    else {
      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));
    }
    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));
    FUN_00030810();
    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));
    break;
  case 10:
    iVar18 = *(int *)(param_1 + 8);
    pcVar14 = "TARGET(%s)\n";
code_r0x0001f93c:
    fprintf(DAT_000bbf50,pcVar14,iVar18);
    break;
  case 0xb:
    iVar18 = *(int *)(param_1 + 8);
    FUN_000317c0("OUTPUT(%s",iVar18);
    if (DAT_000bbdbc != 0) {
      iVar18 = DAT_000bbdbc;
      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);
    }
    FUN_000317c0(")\n",iVar18);
    break;
  case 0xc:
    FUN_0001f1d0();
    FUN_000317c0(&UNK_0004ef2c);
    iVar18 = 9;
    do {
      FUN_000307e0();
      iVar18 = iVar18 + -1;
    } while (iVar18 != 0);
    iStack_2c = *(int *)(param_1 + 8);
    if (*(int *)(param_1 + 0x10) != 0) {
      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);
    }
    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));
    piVar3 = *(int **)(param_1 + 0x14);
    iVar18 = *piVar3;
    if (iVar18 != 0) {
      pbVar16 = (byte *)(piVar3 + 1);
      do {
        bVar1 = *pbVar16;
        pbVar16 = pbVar16 + 1;
        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);
      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));
    }
    FUN_00030810();
    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));
    break;
  case 0xd:
    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);
    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;
        puVar4 = (undefined4 *)*puVar4) {
      FUN_0001f580();
    }
    fwrite("END GROUP\n",1,10,DAT_000bbf50);
    break;
  case 0xe:
    pcVar14 = "BEFORE";
    if (*(int *)(param_1 + 0xc) == 0) {
      pcVar14 = "AFTER";
    }
    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));
    break;
  case 0xf:
    if (DAT_000bbdcc != (undefined4 *)0x0) {
      if (DAT_000bbdd4 == 0) {
        FUN_000317c0(" CONSTRUCTORS\n");
        puVar4 = DAT_000bbdcc;
      }
      else {
        FUN_000317c0(" SORT (CONSTRUCTORS)\n");
        puVar4 = DAT_000bbdcc;
      }
      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {
        FUN_0001f580();
      }
    }
    break;
  default:
    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);
    fprintf(DAT_000bbf50,pcVar14,uVar12);
    FUN_00031780("../../ld/ldlang.c",0x11bc);
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00015a10
ADD EBX,0x9ba77
SUB ESP,0x2c
MOV ESI,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0xc],EDX
CMP ESI,0xf
JA 0x0001fc68
MOV EBP,EAX
MOV EAX,dword ptr [EBX + ESI*0x4 + 0xfff939f4]
ADD EAX,EBX
JMP EAX
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfff93e34]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
ADD ESP,0xc
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xf00]
PUSH dword ptr [EAX + 0x50]
CALL 0x00014730
POP EAX
LEA EAX,[EBX + 0xfff93db6]
POP EDX
PUSH 0x11bc
PUSH EAX
CALL 0x00031780
ADD ESP,0x10
JMP 0x0001f6b0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_0001f580(int param_1,int param_2)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  bool bVar6;\n  undefined4 *puVar7;\n  undefined4 *__base;\n  undefined4 *puVar8;\n  size_t sVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  undefined4 uVar13;\n  char *pcVar14;\n  uint uVar15;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  undefined *puVar19;\n  uint local_30;\n  int iStack_2c;\n  size_t sStack_24;\n  \n  uVar12 = *(uint *)(param_1 + 4);\n  switch(uVar12) {\n  case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;\n  case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;\n  case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;\n  case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;\n  case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;\n  case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;\n  case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;\n  case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;\n  default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_0001f580(int param_1,int param_2)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  bool bVar6;\n  undefined4 *puVar7;\n  undefined4 *__base;\n  undefined4 *puVar8;\n  size_t sVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  undefined4 uVar13;\n  char *pcVar14;\n  uint uVar15;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  undefined *puVar19;\n  uint local_30;\n  int iStack_2c;\n  size_t sStack_24;\n  \n  uVar12 = *(uint *)(param_1 + 4);\n  switch(uVar12) {\n  case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;\n  case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;\n  case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;\n  case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;\n  case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;\n  case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;\n  case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;\n  case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;\n  default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0001f580(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  bool bVar6;\n  undefined4 *puVar7;\n  undefined4 *__base;\n  undefined4 *puVar8;\n  size_t sVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  undefined4 uVar13;\n  char *pcVar14;\n  uint uVar15;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  undefined *puVar19;\n  uint local_30;\n  int iStack_2c;\n  size_t sStack_24;\n  \n  uVar12 = *(uint *)(param_1 + 4);\n  switch(uVar12) {\n  case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;\n  case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;\n  case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;\n  case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;\n  case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;\n  case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;\n  case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;\n  case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;\n  default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *__base;" type_identifier (pointer_declarator "*__base" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "int iStack_2c;" primitive_type identifier ;) (declaration "size_t sStack_24;" primitive_type identifier ;) (expression_statement "uVar12 = *(uint *)(param_1 + 4);" (assignment_expression "uVar12 = *(uint *)(param_1 + 4)" identifier = (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (switch_statement "switch(uVar12) {\n  case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;\n  case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;\n  case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;\n  case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;\n  case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;\n  case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;\n  case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;\n  case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;\n  default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);\n  }" switch (parenthesized_expression "(uVar12)" ( identifier )) (compound_statement "{\n  case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;\n  case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;\n  case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;\n  case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;\n  case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;\n  case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;\n  case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;\n  case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;\n  default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);\n  }" { (case_statement "case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;" case number_literal : (if_statement "if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }" if (parenthesized_expression "(param_1 != DAT_000bbdac)" ( (binary_expression "param_1 != DAT_000bbdac" identifier != identifier) )) (compound_statement "{\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }" { (expression_statement "iVar18 = *(int *)(param_1 + 0x1c);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x1c)" identifier = (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));" (call_expression "FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18))" identifier (argument_list "(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18))" ( (pointer_expression "&UNK_0004ef3d" & identifier) , (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) ))) ;) (if_statement "if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }" { (expression_statement "DAT_000bb998 = *(uint *)(iVar18 + 0x1c);" (assignment_expression "DAT_000bb998 = *(uint *)(iVar18 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x1c)" * (cast_expression "(uint *)(iVar18 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "sVar9 = strlen(*(char **)(param_1 + 0x18));" (assignment_expression "sVar9 = strlen(*(char **)(param_1 + 0x18))" identifier = (call_expression "strlen(*(char **)(param_1 + 0x18))" identifier (argument_list "(*(char **)(param_1 + 0x18))" ( (pointer_expression "*(char **)(param_1 + 0x18)" * (cast_expression "(char **)(param_1 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) )))) ;) (if_statement "if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }" if (parenthesized_expression "(0xe < sVar9)" ( (binary_expression "0xe < sVar9" number_literal < identifier) )) (compound_statement "{\n          FUN_00030810();\n          sVar9 = 0;\n        }" { (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar9 = 0;" (assignment_expression "sVar9 = 0" identifier = number_literal) ;) })) (do_statement "do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);" do (compound_statement "{\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        }" { (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar9 = sVar9 + 1;" (assignment_expression "sVar9 = sVar9 + 1" identifier = (binary_expression "sVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar9 != 0x10)" ( (binary_expression "sVar9 != 0x10" identifier != number_literal) )) ;) (expression_statement "FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));" (call_expression "FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f))" identifier (argument_list "(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f))" ( (pointer_expression "&UNK_0004ef41" & identifier) , (pointer_expression "*(undefined4 *)(iVar18 + 0x1c)" * (cast_expression "(undefined4 *)(iVar18 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" identifier + number_literal) )))) , (binary_expression "*(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(iVar18 + 0x24)" * (cast_expression "(uint *)(iVar18 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x24)" ( (binary_expression "iVar18 + 0x24" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) ;) (expression_statement "iVar5 = *(int *)(iVar18 + 0x20);" (assignment_expression "iVar5 = *(int *)(iVar18 + 0x20)" identifier = (pointer_expression "*(int *)(iVar18 + 0x20)" * (cast_expression "(int *)(iVar18 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }" if (parenthesized_expression "(*(int *)(iVar18 + 0x1c) != iVar5)" ( (binary_expression "*(int *)(iVar18 + 0x1c) != iVar5" (pointer_expression "*(int *)(iVar18 + 0x1c)" * (cast_expression "(int *)(iVar18 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }" { (expression_statement "uVar13 = dcgettext(0," load address 0x%V",5);" (assignment_expression "uVar13 = dcgettext(0," load address 0x%V",5)" identifier = (call_expression "dcgettext(0," load address 0x%V",5)" identifier (argument_list "(0," load address 0x%V",5)" ( number_literal , (string_literal "" load address 0x%V"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_000317c0(uVar13,iVar5);" (call_expression "FUN_000317c0(uVar13,iVar5)" identifier (argument_list "(uVar13,iVar5)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x34) != 0)" ( (binary_expression "*(int *)(param_1 + 0x34) != 0" (pointer_expression "*(int *)(param_1 + 0x34)" * (cast_expression "(int *)(param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }" { (expression_statement "FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;" (call_expression "FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)" identifier (argument_list "(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)" ( (pointer_expression "*(int *)(param_1 + 0x34)" * (cast_expression "(int *)(param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) , (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal) , (pointer_expression "&DAT_000bb998" & identifier) ))) ;) })) })) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) })) (for_statement "for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }" for ( (assignment_expression "puVar4 = *(undefined4 **)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 8)" * (cast_expression "(undefined4 **)(param_1 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ; (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar4 = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ) (compound_statement "{\n      FUN_0001f580();\n    }" { (expression_statement "FUN_0001f580();" (call_expression "FUN_0001f580()" identifier (argument_list "()" ( ))) ;) })) (break_statement "break;" break ;)) (case_statement "case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;" case number_literal : (expression_statement "iVar18 = 0x10;" (assignment_expression "iVar18 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);" do (compound_statement "{\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    }" { (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) ;) (expression_statement "iVar18 = *(int *)(param_1 + 8);" (assignment_expression "iVar18 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar14 = *(char **)(iVar18 + 0x10);" (assignment_expression "pcVar14 = *(char **)(iVar18 + 0x10)" identifier = (pointer_expression "*(char **)(iVar18 + 0x10)" * (cast_expression "(char **)(iVar18 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "puVar19 = *(undefined **)(param_2 + 0x1c);" (assignment_expression "puVar19 = *(undefined **)(param_2 + 0x1c)" identifier = (pointer_expression "*(undefined **)(param_2 + 0x1c)" * (cast_expression "(undefined **)(param_2 + 0x1c)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }" if (parenthesized_expression "(*(int *)(iVar18 + 0xc) == 8)" ( (binary_expression "*(int *)(iVar18 + 0xc) == 8" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }" { (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (if_statement "if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }" if (parenthesized_expression "(puVar19 == (undefined *)0x0)" ( (binary_expression "puVar19 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }" { (expression_statement "puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;" (assignment_expression "puVar19 = PTR__bfd_std_section_000bafc4 + 0x150" identifier = (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal)) ;) })) (labeled_statement "code_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);" statement_identifier : (expression_statement "FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);" (call_expression "FUN_0002f480(pcVar14,puVar19,&DAT_000bb998)" identifier (argument_list "(pcVar14,puVar19,&DAT_000bb998)" ( identifier , identifier , (pointer_expression "&DAT_000bb998" & identifier) ))) ;)) (expression_statement "uVar12 = DAT_000bbf94;" (assignment_expression "uVar12 = DAT_000bbf94" identifier = identifier) ;) (expression_statement "iVar18 = *(int *)(param_1 + 8);" (assignment_expression "iVar18 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (DAT_000bbfa0 == 0) goto code_r0x0001f610;" if (parenthesized_expression "(DAT_000bbfa0 == 0)" ( (binary_expression "DAT_000bbfa0 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x0001f610;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar18 + 0xc) == 8)" ( (binary_expression "*(int *)(iVar18 + 0xc) == 8" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }" { (if_statement "if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }" if (parenthesized_expression "(DAT_000bbf9c != 0)" ( (binary_expression "DAT_000bbf9c != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }" { (labeled_statement "code_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);" statement_identifier : (expression_statement "uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);" (assignment_expression "uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c)" identifier = (binary_expression "DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c)" identifier + (pointer_expression "*(int *)(DAT_000bbf9c + 0x1c)" * (cast_expression "(int *)(DAT_000bbf9c + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000bbf9c + 0x1c)" ( (binary_expression "DAT_000bbf9c + 0x1c" identifier + number_literal) )))))) ;)) })) (expression_statement "FUN_000317c0("0x%V",uVar12);" (call_expression "FUN_000317c0("0x%V",uVar12)" identifier (argument_list "("0x%V",uVar12)" ( (string_literal ""0x%V"" " string_content ") , identifier ))) ;) (if_statement "if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }" if (parenthesized_expression "(bVar6)" ( identifier )) (compound_statement "{\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }" { (labeled_statement "code_r0x0001fec9:\n          DAT_000bb998 = uVar12;" statement_identifier : (expression_statement "DAT_000bb998 = uVar12;" (assignment_expression "DAT_000bb998 = uVar12" identifier = identifier) ;)) })) }) (else_clause "else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }" else (compound_statement "{\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }" { (if_statement "if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }" if (parenthesized_expression "(bVar6)" ( identifier )) (compound_statement "{\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }" { (if_statement "if (DAT_000bbf9c != 0) goto code_r0x0001fea7;" if (parenthesized_expression "(DAT_000bbf9c != 0)" ( (binary_expression "DAT_000bbf9c != 0" identifier != number_literal) )) (goto_statement "goto code_r0x0001fea7;" goto statement_identifier ;)) (expression_statement "FUN_000317c0("0x%V",DAT_000bbf94);" (call_expression "FUN_000317c0("0x%V",DAT_000bbf94)" identifier (argument_list "("0x%V",DAT_000bbf94)" ( (string_literal ""0x%V"" " string_content ") , identifier ))) ;) (goto_statement "goto code_r0x0001fec9;" goto statement_identifier ;) })) (if_statement "if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }" if (parenthesized_expression "(pcRam000bbf8c == (char *)0x0)" ( (binary_expression "pcRam000bbf8c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }" { (expression_statement "iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);" (assignment_expression "iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1)" identifier (argument_list "(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1)" ( identifier , (pointer_expression "*(undefined4 *)(iVar18 + 0x10)" * (cast_expression "(undefined4 *)(iVar18 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) )))) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_000317c0("[unresolved]");\n          }" { (expression_statement "FUN_000317c0("[unresolved]");" (call_expression "FUN_000317c0("[unresolved]")" identifier (argument_list "("[unresolved]")" ( (string_literal ""[unresolved]"" " string_content ") ))) ;) }) (else_clause "else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }" else (compound_statement "{\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }" { (expression_statement "FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));" (call_expression "FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c))" identifier (argument_list "(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c))" ( (pointer_expression "&UNK_0004ef5c" & identifier) , (binary_expression "*(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c)" (binary_expression "*(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18)" (pointer_expression "*(int *)(*(int *)(iVar18 + 0x14) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar18 + 0x14) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x14) + 0x38)" ( (binary_expression "*(int *)(iVar18 + 0x14) + 0x38" (pointer_expression "*(int *)(iVar18 + 0x14)" * (cast_expression "(int *)(iVar18 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x14)" ( (binary_expression "iVar18 + 0x14" identifier + number_literal) )))) + number_literal) )))) + (pointer_expression "*(int *)(iVar18 + 0x18)" * (cast_expression "(int *)(iVar18 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) ))))) + (pointer_expression "*(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c)" * (cast_expression "(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c)" ( (binary_expression "*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c" (pointer_expression "*(int *)(*(int *)(iVar18 + 0x14) + 0x3c)" * (cast_expression "(int *)(*(int *)(iVar18 + 0x14) + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x14) + 0x3c)" ( (binary_expression "*(int *)(iVar18 + 0x14) + 0x3c" (pointer_expression "*(int *)(iVar18 + 0x14)" * (cast_expression "(int *)(iVar18 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x14)" ( (binary_expression "iVar18 + 0x14" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ))) ;) }))) }) (else_clause "else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }" else (compound_statement "{\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }" { (if_statement "if (DAT_000bbf9c != 0) goto code_r0x0001fea7;" if (parenthesized_expression "(DAT_000bbf9c != 0)" ( (binary_expression "DAT_000bbf9c != 0" identifier != number_literal) )) (goto_statement "goto code_r0x0001fea7;" goto statement_identifier ;)) (expression_statement "FUN_000317c0("0x%V",DAT_000bbf94);" (call_expression "FUN_000317c0("0x%V",DAT_000bbf94)" identifier (argument_list "("0x%V",DAT_000bbf94)" ( (string_literal ""0x%V"" " string_content ") , identifier ))) ;) }))) }))) }) (else_clause "else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }" else (compound_statement "{\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }" { (if_statement "if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }" if (parenthesized_expression "((*pcVar14 == '.') && (pcVar14[1] == '\0'))" ( (binary_expression "(*pcVar14 == '.') && (pcVar14[1] == '\0')" (parenthesized_expression "(*pcVar14 == '.')" ( (binary_expression "*pcVar14 == '.'" (pointer_expression "*pcVar14" * identifier) == (char_literal "'.'" ' character ')) )) && (parenthesized_expression "(pcVar14[1] == '\0')" ( (binary_expression "pcVar14[1] == '\0'" (subscript_expression "pcVar14[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        bVar6 = true;\n      }" { (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" identifier = true) ;) }) (else_clause "else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }" else (compound_statement "{\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }" { (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (expression_statement "pcRam000bbf8c = pcVar14;" (assignment_expression "pcRam000bbf8c = pcVar14" identifier = identifier) ;) }))) (expression_statement "pcVar14 = *(char **)(iVar18 + 0x14);" (assignment_expression "pcVar14 = *(char **)(iVar18 + 0x14)" identifier = (pointer_expression "*(char **)(iVar18 + 0x14)" * (cast_expression "(char **)(iVar18 + 0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 0x14)" ( (binary_expression "iVar18 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }" if (parenthesized_expression "(puVar19 == (undefined *)0x0)" ( (binary_expression "puVar19 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }" { (expression_statement "puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;" (assignment_expression "puVar19 = PTR__bfd_std_section_000bafc4 + 0x150" identifier = (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal)) ;) })) (if_statement "if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;" if (parenthesized_expression "(*(int *)(iVar18 + 0xc) != 5)" ( (binary_expression "*(int *)(iVar18 + 0xc) != 5" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto code_r0x0001fe56;" goto statement_identifier ;)) (expression_statement "DAT_000bbfa0 = 0;" (assignment_expression "DAT_000bbfa0 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }" statement_identifier : (if_statement "if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }" if (parenthesized_expression "(*(int *)(iVar18 + 0xc) == 5)" ( (binary_expression "*(int *)(iVar18 + 0xc) == 5" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        FUN_000317c0("[!provide]");\n      }" { (expression_statement "FUN_000317c0("[!provide]");" (call_expression "FUN_000317c0("[!provide]")" identifier (argument_list "("[!provide]")" ( (string_literal ""[!provide]"" " string_content ") ))) ;) }) (else_clause "else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }" else (compound_statement "{\n        FUN_000317c0(&UNK_0004ef7b);\n      }" { (expression_statement "FUN_000317c0(&UNK_0004ef7b);" (call_expression "FUN_000317c0(&UNK_0004ef7b)" identifier (argument_list "(&UNK_0004ef7b)" ( (pointer_expression "&UNK_0004ef7b" & identifier) ))) ;) })))) }))) (expression_statement "pcRam000bbf8c = (char *)0x0;" (assignment_expression "pcRam000bbf8c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_000317c0(&UNK_0004ef86);" (call_expression "FUN_000317c0(&UNK_0004ef86)" identifier (argument_list "(&UNK_0004ef86)" ( (pointer_expression "&UNK_0004ef86" & identifier) ))) ;) (expression_statement "FUN_0002f810(*(undefined4 *)(param_1 + 8));" (call_expression "FUN_0002f810(*(undefined4 *)(param_1 + 8))" identifier (argument_list "(*(undefined4 *)(param_1 + 8))" ( (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;" case number_literal : (expression_statement "iVar18 = *(int *)(param_1 + 8);" (assignment_expression "iVar18 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar18 == 0) {\n      return;\n    }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }" if (parenthesized_expression "((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))" ( (binary_expression "(*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0)" (parenthesized_expression "(*(int *)(param_1 + 0x10) != 0)" ( (binary_expression "*(int *)(param_1 + 0x10) != 0" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0)" ( (binary_expression "(*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0" (parenthesized_expression "(*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2)" ( (binary_expression "*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2" (pointer_expression "*(byte *)(*(int *)(param_1 + 0x10) + 0x2a)" * (cast_expression "(byte *)(*(int *)(param_1 + 0x10) + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + 0x2a)" ( (binary_expression "*(int *)(param_1 + 0x10) + 0x2a" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "pcVar14 = "LOAD %s\n";" (assignment_expression "pcVar14 = "LOAD %s\n"" identifier = (string_literal ""LOAD %s\n"" " string_content escape_sequence ")) ;) (goto_statement "goto code_r0x0001f93c;" goto statement_identifier ;)) (case_statement "case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;" case number_literal : (expression_statement "uVar13 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar13 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = dcgettext(0,"Address of section %s set to ",5);" (assignment_expression "uVar11 = dcgettext(0,"Address of section %s set to ",5)" identifier = (call_expression "dcgettext(0,"Address of section %s set to ",5)" identifier (argument_list "(0,"Address of section %s set to ",5)" ( number_literal , (string_literal ""Address of section %s set to "" " string_content ") , number_literal )))) ;) (expression_statement "FUN_000317c0(uVar11,uVar13);" (call_expression "FUN_000317c0(uVar11,uVar13)" identifier (argument_list "(uVar11,uVar13)" ( identifier , identifier ))) ;) (expression_statement "FUN_0002f810(*(undefined4 *)(param_1 + 0xc));" (call_expression "FUN_0002f810(*(undefined4 *)(param_1 + 0xc))" identifier (argument_list "(*(undefined4 *)(param_1 + 0xc))" ( (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;" case number_literal : (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }" if (parenthesized_expression "(*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0)" ( (binary_expression "*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0" (pointer_expression "*(undefined4 **)(param_1 + 0x20)" * (cast_expression "(undefined4 **)(param_1 + 0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }" { (expression_statement "uVar13 = **(undefined4 **)(param_1 + 0x20);" (assignment_expression "uVar13 = **(undefined4 **)(param_1 + 0x20)" identifier = (pointer_expression "**(undefined4 **)(param_1 + 0x20)" * (pointer_expression "*(undefined4 **)(param_1 + 0x20)" * (cast_expression "(undefined4 **)(param_1 + 0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))))) ;) (expression_statement "FUN_000317c0("EXCLUDE_FILE(%s",uVar13);" (call_expression "FUN_000317c0("EXCLUDE_FILE(%s",uVar13)" identifier (argument_list "("EXCLUDE_FILE(%s",uVar13)" ( (string_literal ""EXCLUDE_FILE(%s"" " string_content ") , identifier ))) ;) (for_statement "for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }" for ( (assignment_expression "puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(param_1 + 0x20) + 4)" * (cast_expression "(undefined4 **)(*(int *)(param_1 + 0x20) + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0x20) + 4)" ( (binary_expression "*(int *)(param_1 + 0x20) + 4" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) + number_literal) ))))) ; (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar4 = (undefined4 *)puVar4[1]" identifier = (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ) (compound_statement "{\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }" { (expression_statement "uVar13 = *puVar4;" (assignment_expression "uVar13 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "FUN_000317c0(&DAT_0004d69b,uVar13);" (call_expression "FUN_000317c0(&DAT_0004d69b,uVar13)" identifier (argument_list "(&DAT_0004d69b,uVar13)" ( (pointer_expression "&DAT_0004d69b" & identifier) , identifier ))) ;) })) (expression_statement "FUN_000317c0(&UNK_0004ee77,uVar13);" (call_expression "FUN_000317c0(&UNK_0004ee77,uVar13)" identifier (argument_list "(&UNK_0004ee77,uVar13)" ( (pointer_expression "&UNK_0004ee77" & identifier) , identifier ))) ;) })) (if_statement "if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" ( (binary_expression "*(int *)(param_1 + 0xc) != 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_000317c0("SORT_BY_NAME(");\n    }" { (expression_statement "FUN_000317c0("SORT_BY_NAME(");" (call_expression "FUN_000317c0("SORT_BY_NAME(")" identifier (argument_list "("SORT_BY_NAME(")" ( (string_literal ""SORT_BY_NAME("" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }" if (parenthesized_expression "(*(int *)(param_1 + 8) == 0)" ( (binary_expression "*(int *)(param_1 + 8) == 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      FUN_000317c0(&DAT_0004f0a0);\n    }" { (expression_statement "FUN_000317c0(&DAT_0004f0a0);" (call_expression "FUN_000317c0(&DAT_0004f0a0)" identifier (argument_list "(&DAT_0004f0a0)" ( (pointer_expression "&DAT_0004f0a0" & identifier) ))) ;) }) (else_clause "else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }" else (compound_statement "{\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }" { (expression_statement "FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));" (call_expression "FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8))" identifier (argument_list "(&DAT_0004ef3e,*(int *)(param_1 + 8))" ( (pointer_expression "&DAT_0004ef3e" & identifier) , (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) ))) ;) }))) (if_statement "if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" ( (binary_expression "*(int *)(param_1 + 0xc) != 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_000317c0(")");\n    }" { (expression_statement "FUN_000317c0(")");" (call_expression "FUN_000317c0(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) ;) })) (expression_statement "FUN_000317c0("(");" (call_expression "FUN_000317c0("(")" identifier (argument_list "("(")" ( (string_literal ""("" " string_content ") ))) ;) (for_statement "for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }" for ( (assignment_expression "piVar3 = *(int **)(param_1 + 0x10)" identifier = (pointer_expression "*(int **)(param_1 + 0x10)" * (cast_expression "(int **)(param_1 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ; (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar3 = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ) (compound_statement "{\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }" { (switch_statement "switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }" switch (parenthesized_expression "(piVar3[3])" ( (subscript_expression "piVar3[3]" identifier [ number_literal ]) )) (compound_statement "{\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }" { (case_statement "default:\n        iVar18 = 0;\n        break;" default : (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;" case number_literal : (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (expression_statement "FUN_000317c0("SORT_BY_NAME(");" (call_expression "FUN_000317c0("SORT_BY_NAME(")" identifier (argument_list "("SORT_BY_NAME(")" ( (string_literal ""SORT_BY_NAME("" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;" case number_literal : (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (expression_statement "FUN_000317c0("SORT_BY_ALIGNMENT(");" (call_expression "FUN_000317c0("SORT_BY_ALIGNMENT(")" identifier (argument_list "("SORT_BY_ALIGNMENT(")" ( (string_literal ""SORT_BY_ALIGNMENT("" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;" case number_literal : (expression_statement "iVar18 = 2;" (assignment_expression "iVar18 = 2" identifier = number_literal) ;) (expression_statement "FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");" (call_expression "FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(")" identifier (argument_list "("SORT_BY_NAME(SORT_BY_ALIGNMENT(")" ( (string_literal ""SORT_BY_NAME(SORT_BY_ALIGNMENT("" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;" case number_literal : (expression_statement "iVar18 = 2;" (assignment_expression "iVar18 = 2" identifier = number_literal) ;) (expression_statement "FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");" (call_expression "FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(")" identifier (argument_list "("SORT_BY_ALIGNMENT(SORT_BY_NAME(")" ( (string_literal ""SORT_BY_ALIGNMENT(SORT_BY_NAME("" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;" case number_literal : (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (expression_statement "FUN_000317c0("SORT_NONE(");" (call_expression "FUN_000317c0("SORT_NONE(")" identifier (argument_list "("SORT_NONE(")" ( (string_literal ""SORT_NONE("" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");" case number_literal : (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (expression_statement "FUN_000317c0("SORT_BY_INIT_PRIORITY(");" (call_expression "FUN_000317c0("SORT_BY_INIT_PRIORITY(")" identifier (argument_list "("SORT_BY_INIT_PRIORITY(")" ( (string_literal ""SORT_BY_INIT_PRIORITY("" " string_content ") ))) ;)) })) (if_statement "if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }" if (parenthesized_expression "((undefined4 *)piVar3[2] != (undefined4 *)0x0)" ( (binary_expression "(undefined4 *)piVar3[2] != (undefined4 *)0x0" (cast_expression "(undefined4 *)piVar3[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[2]" identifier [ number_literal ])) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }" { (expression_statement "uVar13 = *(undefined4 *)piVar3[2];" (assignment_expression "uVar13 = *(undefined4 *)piVar3[2]" identifier = (pointer_expression "*(undefined4 *)piVar3[2]" * (cast_expression "(undefined4 *)piVar3[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[2]" identifier [ number_literal ])))) ;) (expression_statement "FUN_000317c0("EXCLUDE_FILE(%s",uVar13);" (call_expression "FUN_000317c0("EXCLUDE_FILE(%s",uVar13)" identifier (argument_list "("EXCLUDE_FILE(%s",uVar13)" ( (string_literal ""EXCLUDE_FILE(%s"" " string_content ") , identifier ))) ;) (for_statement "for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }" for ( (assignment_expression "puVar4 = *(undefined4 **)(piVar3[2] + 4)" identifier = (pointer_expression "*(undefined4 **)(piVar3[2] + 4)" * (cast_expression "(undefined4 **)(piVar3[2] + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar3[2] + 4)" ( (binary_expression "piVar3[2] + 4" (subscript_expression "piVar3[2]" identifier [ number_literal ]) + number_literal) ))))) ; (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar4 = (undefined4 *)puVar4[1]" identifier = (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ) (compound_statement "{\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }" { (expression_statement "uVar13 = *puVar4;" (assignment_expression "uVar13 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "FUN_000317c0(&DAT_0004d69b,uVar13);" (call_expression "FUN_000317c0(&DAT_0004d69b,uVar13)" identifier (argument_list "(&DAT_0004d69b,uVar13)" ( (pointer_expression "&DAT_0004d69b" & identifier) , identifier ))) ;) })) (expression_statement "FUN_000317c0(&UNK_0004ee77,uVar13);" (call_expression "FUN_000317c0(&UNK_0004ee77,uVar13)" identifier (argument_list "(&UNK_0004ee77,uVar13)" ( (pointer_expression "&UNK_0004ee77" & identifier) , identifier ))) ;) })) (if_statement "if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }" if (parenthesized_expression "(piVar3[1] == 0)" ( (binary_expression "piVar3[1] == 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        FUN_000317c0(&DAT_0004f0a0);\n      }" { (expression_statement "FUN_000317c0(&DAT_0004f0a0);" (call_expression "FUN_000317c0(&DAT_0004f0a0)" identifier (argument_list "(&DAT_0004f0a0)" ( (pointer_expression "&DAT_0004f0a0" & identifier) ))) ;) }) (else_clause "else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }" else (compound_statement "{\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }" { (expression_statement "FUN_000317c0(&DAT_0004ef3e,piVar3[1]);" (call_expression "FUN_000317c0(&DAT_0004ef3e,piVar3[1])" identifier (argument_list "(&DAT_0004ef3e,piVar3[1])" ( (pointer_expression "&DAT_0004ef3e" & identifier) , (subscript_expression "piVar3[1]" identifier [ number_literal ]) ))) ;) }))) (if_statement "if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }" if (parenthesized_expression "((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1))" ( (binary_expression "(iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)" (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) && (parenthesized_expression "(FUN_000317c0(")"), iVar18 != 1)" ( (comma_expression "FUN_000317c0(")"), iVar18 != 1" (call_expression "FUN_000317c0(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) , (binary_expression "iVar18 != 1" identifier != number_literal)) ))) )) (compound_statement "{\n        FUN_000317c0(")");\n      }" { (expression_statement "FUN_000317c0(")");" (call_expression "FUN_000317c0(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) ;) })) (if_statement "if (*piVar3 == 0) break;" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "FUN_000317c0(" ");" (call_expression "FUN_000317c0(" ")" identifier (argument_list "(" ")" ( (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "FUN_000317c0(")");" (call_expression "FUN_000317c0(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) ;) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (for_statement "for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }" for ( (assignment_expression "puVar4 = *(undefined4 **)(param_1 + 0x18)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x18)" * (cast_expression "(undefined4 **)(param_1 + 0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ; (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar4 = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ) (compound_statement "{\n      FUN_0001f580();\n    }" { (expression_statement "FUN_0001f580();" (call_expression "FUN_0001f580()" identifier (argument_list "()" ( ))) ;) })) (break_statement "break;" break ;)) (case_statement "case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;" case number_literal : (expression_statement "puVar4 = *(undefined4 **)(param_1 + 8);" (assignment_expression "puVar4 = *(undefined4 **)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 8)" * (cast_expression "(undefined4 **)(param_1 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = puVar4[9];" (assignment_expression "uVar12 = puVar4[9]" identifier = (subscript_expression "puVar4[9]" identifier [ number_literal ])) ;) (expression_statement "FUN_0001f1d0();" (call_expression "FUN_0001f1d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000317c0(&DAT_0004ef3e,*puVar4);" (call_expression "FUN_000317c0(&DAT_0004ef3e,*puVar4)" identifier (argument_list "(&DAT_0004ef3e,*puVar4)" ( (pointer_expression "&DAT_0004ef3e" & identifier) , (pointer_expression "*puVar4" * identifier) ))) ;) (expression_statement "sVar9 = strlen((char *)*puVar4);" (assignment_expression "sVar9 = strlen((char *)*puVar4)" identifier = (call_expression "strlen((char *)*puVar4)" identifier (argument_list "((char *)*puVar4)" ( (cast_expression "(char *)*puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier)) )))) ;) (expression_statement "uVar10 = sVar9 + 1;" (assignment_expression "uVar10 = sVar9 + 1" identifier = (binary_expression "sVar9 + 1" identifier + number_literal)) ;) (if_statement "if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }" if (parenthesized_expression "(0xe < uVar10)" ( (binary_expression "0xe < uVar10" number_literal < identifier) )) (compound_statement "{\n      FUN_00030810();\n      uVar10 = 0;\n    }" { (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (do_statement "do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);" do (compound_statement "{\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    }" { (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 != 0x10)" ( (binary_expression "uVar10 != 0x10" identifier != number_literal) )) ;) (expression_statement "iVar18 = puVar4[0xf];" (assignment_expression "iVar18 = puVar4[0xf]" identifier = (subscript_expression "puVar4[0xf]" identifier [ number_literal ])) ;) (if_statement "if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }" if (parenthesized_expression "((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30))" ( (binary_expression "(iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)" (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(iVar18 + 0x94) != DAT_000bbe30)" ( (binary_expression "*(int *)(iVar18 + 0x94) != DAT_000bbe30" (pointer_expression "*(int *)(iVar18 + 0x94)" * (cast_expression "(int *)(iVar18 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x94)" ( (binary_expression "iVar18 + 0x94" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }" { (expression_statement "local_30 = DAT_000bb998;" (assignment_expression "local_30 = DAT_000bb998" identifier = identifier) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }" else (compound_statement "{\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }" { (expression_statement "local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);" (assignment_expression "local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c)" identifier = (binary_expression "puVar4[0xe] + *(int *)(iVar18 + 0x1c)" (subscript_expression "puVar4[0xe]" identifier [ number_literal ]) + (pointer_expression "*(int *)(iVar18 + 0x1c)" * (cast_expression "(int *)(iVar18 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" identifier + number_literal) )))))) ;) }))) (expression_statement "FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);" (call_expression "FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25])" identifier (argument_list "(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25])" ( (pointer_expression "&DAT_0004ee0c" & identifier) , identifier , identifier , (subscript_expression "puVar4[0x25]" identifier [ number_literal ]) ))) ;) (if_statement "if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }" if (parenthesized_expression "((puVar4[10] != uVar12) && (puVar4[10] != 0))" ( (binary_expression "(puVar4[10] != uVar12) && (puVar4[10] != 0)" (parenthesized_expression "(puVar4[10] != uVar12)" ( (binary_expression "puVar4[10] != uVar12" (subscript_expression "puVar4[10]" identifier [ number_literal ]) != identifier) )) && (parenthesized_expression "(puVar4[10] != 0)" ( (binary_expression "puVar4[10] != 0" (subscript_expression "puVar4[10]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }" { (expression_statement "iVar18 = 0x1b;" (assignment_expression "iVar18 = 0x1b" identifier = number_literal) ;) (do_statement "do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);" do (compound_statement "{\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      }" { (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) ;) (expression_statement "uVar13 = puVar4[10];" (assignment_expression "uVar13 = puVar4[10]" identifier = (subscript_expression "puVar4[10]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);" (assignment_expression "uVar11 = dcgettext(0,"%W (size before relaxing)\n",5)" identifier = (call_expression "dcgettext(0,"%W (size before relaxing)\n",5)" identifier (argument_list "(0,"%W (size before relaxing)\n",5)" ( number_literal , (string_literal ""%W (size before relaxing)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_000317c0(uVar11,uVar13);" (call_expression "FUN_000317c0(uVar11,uVar13)" identifier (argument_list "(uVar11,uVar13)" ( identifier , identifier ))) ;) })) (expression_statement "puVar17 = DAT_000bb9d0;" (assignment_expression "puVar17 = DAT_000bb9d0" identifier = identifier) ;) (if_statement "if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }" if (parenthesized_expression "((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30))" ( (binary_expression "(puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)" (parenthesized_expression "(puVar4[0xf] != 0)" ( (binary_expression "puVar4[0xf] != 0" (subscript_expression "puVar4[0xf]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)" ( (binary_expression "*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30" (pointer_expression "*(int *)(puVar4[0xf] + 0x94)" * (cast_expression "(int *)(puVar4[0xf] + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4[0xf] + 0x94)" ( (binary_expression "puVar4[0xf] + 0x94" (subscript_expression "puVar4[0xf]" identifier [ number_literal ]) + number_literal) )))) == identifier) ))) )) (compound_statement "{\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }" { (if_statement "if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }" if (parenthesized_expression "((DAT_000bbe04 & 0x10) == 0)" ( (binary_expression "(DAT_000bbe04 & 0x10) == 0" (parenthesized_expression "(DAT_000bbe04 & 0x10)" ( (binary_expression "DAT_000bbe04 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }" { (expression_statement "puVar2 = (undefined4 *)puVar4[0x1a];" (assignment_expression "puVar2 = (undefined4 *)puVar4[0x1a]" identifier = (cast_expression "(undefined4 *)puVar4[0x1a]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[0x1a]" identifier [ number_literal ]))) ;) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }" if (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }" { (expression_statement "*(undefined4 *)puVar2[1] = 0;" (assignment_expression "*(undefined4 *)puVar2[1] = 0" (pointer_expression "*(undefined4 *)puVar2[1]" * (cast_expression "(undefined4 *)puVar2[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[1]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "sVar9 = puVar2[2];" (assignment_expression "sVar9 = puVar2[2]" identifier = (subscript_expression "puVar2[2]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = sVar9 * 4;" (assignment_expression "uVar10 = sVar9 * 4" identifier = (binary_expression "sVar9 * 4" identifier * number_literal)) ;) (expression_statement "uVar15 = (int)puVar17 - (int)DAT_000bb9cc;" (assignment_expression "uVar15 = (int)puVar17 - (int)DAT_000bb9cc" identifier = (binary_expression "(int)puVar17 - (int)DAT_000bb9cc" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)DAT_000bb9cc" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "sStack_24 = sVar9;" (assignment_expression "sStack_24 = sVar9" identifier = identifier) ;) (if_statement "if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }" if (parenthesized_expression "(uVar15 <= uVar10 && uVar10 - uVar15 != 0)" ( (binary_expression "uVar15 <= uVar10 && uVar10 - uVar15 != 0" (binary_expression "uVar15 <= uVar10" identifier <= identifier) && (binary_expression "uVar10 - uVar15 != 0" (binary_expression "uVar10 - uVar15" identifier - identifier) != number_literal)) )) (compound_statement "{\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }" { (expression_statement "_obstack_newchunk(&DAT_000bb9c0,uVar10);" (call_expression "_obstack_newchunk(&DAT_000bb9c0,uVar10)" identifier (argument_list "(&DAT_000bb9c0,uVar10)" ( (pointer_expression "&DAT_000bb9c0" & identifier) , identifier ))) ;) (expression_statement "sStack_24 = puVar2[2];" (assignment_expression "sStack_24 = puVar2[2]" identifier = (subscript_expression "puVar2[2]" identifier [ number_literal ])) ;) (expression_statement "puVar17 = DAT_000bb9d0;" (assignment_expression "puVar17 = DAT_000bb9d0" identifier = identifier) ;) })) (expression_statement "__base = DAT_000bb9c8;" (assignment_expression "__base = DAT_000bb9c8" identifier = identifier) ;) (if_statement "if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }" if (parenthesized_expression "(DAT_000bb9cc + sVar9 == DAT_000bb9c8)" ( (binary_expression "DAT_000bb9cc + sVar9 == DAT_000bb9c8" (binary_expression "DAT_000bb9cc + sVar9" identifier + identifier) == identifier) )) (compound_statement "{\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }" { (expression_statement "DAT_000bb9e8 = DAT_000bb9e8 | 2;" (assignment_expression "DAT_000bb9e8 = DAT_000bb9e8 | 2" identifier = (binary_expression "DAT_000bb9e8 | 2" identifier | number_literal)) ;) })) (expression_statement "DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);" (assignment_expression "DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8)" identifier = (cast_expression "(undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8)" ( (binary_expression "(int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8" (binary_expression "(int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8" (cast_expression "(int)(DAT_000bb9cc + sVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(DAT_000bb9cc + sVar9)" ( (binary_expression "DAT_000bb9cc + sVar9" identifier + identifier) ))) + identifier) & (unary_expression "~DAT_000bb9d8" ~ identifier)) )))) ;) (if_statement "if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }" if (parenthesized_expression "((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4))" ( (binary_expression "(uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)" (call_expression "(uint)((int)puVar17 - (int)DAT_000bb9c4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar17 - (int)DAT_000bb9c4)" ( (binary_expression "(int)puVar17 - (int)DAT_000bb9c4" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)DAT_000bb9c4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)DAT_000bb9cc - (int)DAT_000bb9c4)" ( (binary_expression "(int)DAT_000bb9cc - (int)DAT_000bb9c4" (cast_expression "(int)DAT_000bb9cc" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)DAT_000bb9c4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n            DAT_000bb9cc = puVar17;\n          }" { (expression_statement "DAT_000bb9cc = puVar17;" (assignment_expression "DAT_000bb9cc = puVar17" identifier = identifier) ;) })) (expression_statement "puVar17 = (undefined4 *)*puVar2;" (assignment_expression "puVar17 = (undefined4 *)*puVar2" identifier = (cast_expression "(undefined4 *)*puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (expression_statement "puVar8 = DAT_000bb9cc;" (assignment_expression "puVar8 = DAT_000bb9cc" identifier = identifier) ;) (expression_statement "puVar7 = DAT_000bb9c8;" (assignment_expression "puVar7 = DAT_000bb9c8" identifier = identifier) ;) (while_statement "while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }" while (parenthesized_expression "(DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0)" ( (comma_expression "DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0" (assignment_expression "DAT_000bb9c8 = puVar8" identifier = identifier) , (binary_expression "puVar17 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }" { (expression_statement "uVar13 = *puVar17;" (assignment_expression "uVar13 = *puVar17" identifier = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar17 = (undefined4 *)puVar17[1];" (assignment_expression "puVar17 = (undefined4 *)puVar17[1]" identifier = (cast_expression "(undefined4 *)puVar17[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar17[1]" identifier [ number_literal ]))) ;) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar8 = DAT_000bb9c8;" (assignment_expression "puVar8 = DAT_000bb9c8" identifier = identifier) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) })) (expression_statement "qsort(__base,sStack_24,4,FUN_0001de00);" (call_expression "qsort(__base,sStack_24,4,FUN_0001de00)" identifier (argument_list "(__base,sStack_24,4,FUN_0001de00)" ( identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }" if (parenthesized_expression "(puVar2[2] != 0)" ( (binary_expression "puVar2[2] != 0" (subscript_expression "puVar2[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);" do (compound_statement "{\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            }" { (expression_statement "puVar17 = __base + uVar10;" (assignment_expression "puVar17 = __base + uVar10" identifier = (binary_expression "__base + uVar10" identifier + identifier)) ;) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0001f140(*puVar17,puVar4);" (call_expression "FUN_0001f140(*puVar17,puVar4)" identifier (argument_list "(*puVar17,puVar4)" ( (pointer_expression "*puVar17" * identifier) , identifier ))) ;) }) while (parenthesized_expression "(uVar10 < (uint)puVar2[2])" ( (binary_expression "uVar10 < (uint)puVar2[2]" identifier < (cast_expression "(uint)puVar2[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar2[2]" identifier [ number_literal ]))) )) ;) })) (if_statement "if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }" if (parenthesized_expression "((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0))" ( (binary_expression "(DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)" (parenthesized_expression "(DAT_000bb9c4 < __base)" ( (binary_expression "DAT_000bb9c4 < __base" identifier < identifier) )) && (parenthesized_expression "(__base < DAT_000bb9d0)" ( (binary_expression "__base < DAT_000bb9d0" identifier < identifier) ))) )) (compound_statement "{\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }" { (expression_statement "DAT_000bb9cc = __base;" (assignment_expression "DAT_000bb9cc = __base" identifier = identifier) ;) (expression_statement "DAT_000bb9c8 = __base;" (assignment_expression "DAT_000bb9c8 = __base" identifier = identifier) ;) }) (else_clause "else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }" else (compound_statement "{\n            _obstack_free(&DAT_000bb9c0,__base);\n          }" { (expression_statement "_obstack_free(&DAT_000bb9c0,__base);" (call_expression "_obstack_free(&DAT_000bb9c0,__base)" identifier (argument_list "(&DAT_000bb9c0,__base)" ( (pointer_expression "&DAT_000bb9c0" & identifier) , identifier ))) ;) }))) })) }) (else_clause "else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }" else (compound_statement "{\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }" { (expression_statement "bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);" (call_expression "bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4)" identifier (argument_list "(DAT_000bbe1c,FUN_0001f140,puVar4)" ( identifier , identifier , identifier ))) ;) }))) (expression_statement "local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;" (assignment_expression "local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30" identifier = (binary_expression "(uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30" (parenthesized_expression "(uVar12 >> ((byte)DAT_000bb94c & 0x1f))" ( (binary_expression "uVar12 >> ((byte)DAT_000bb94c & 0x1f)" identifier >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )) + identifier)) ;) (if_statement "if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }" if (parenthesized_expression "(DAT_000bb998 < local_30)" ( (binary_expression "DAT_000bb998 < local_30" identifier < identifier) )) (compound_statement "{\n        DAT_000bb998 = local_30;\n        return;\n      }" { (expression_statement "DAT_000bb998 = local_30;" (assignment_expression "DAT_000bb998 = local_30" identifier = identifier) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;)) (case_statement "case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;" case number_literal : (expression_statement "FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");" (call_expression "FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n")" identifier (argument_list "(" CREATE_OBJECT_SYMBOLS\n")" ( (string_literal "" CREATE_OBJECT_SYMBOLS\n"" " string_content escape_sequence ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;" case number_literal : (expression_statement "fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);" (call_expression "fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50)" identifier (argument_list "(" FILL mask 0x",1,0xd,DAT_000bbf50)" ( (string_literal "" FILL mask 0x"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "piVar3 = *(int **)(param_1 + 8);" (assignment_expression "piVar3 = *(int **)(param_1 + 8)" identifier = (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *piVar3;" (assignment_expression "iVar18 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "pbVar16 = (byte *)(piVar3 + 1);" (assignment_expression "pbVar16 = (byte *)(piVar3 + 1)" identifier = (cast_expression "(byte *)(piVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 1)" ( (binary_expression "piVar3 + 1" identifier + number_literal) )))) ;) (if_statement "if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }" { (do_statement "do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));" do (compound_statement "{\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      }" { (expression_statement "bVar1 = *pbVar16;" (assignment_expression "bVar1 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) ;) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "fprintf(DAT_000bbf50,"%02x",(uint)bVar1);" (call_expression "fprintf(DAT_000bbf50,"%02x",(uint)bVar1)" identifier (argument_list "(DAT_000bbf50,"%02x",(uint)bVar1)" ( identifier , (string_literal ""%02x"" " string_content ") , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }) while (parenthesized_expression "(pbVar16 != (byte *)((int)piVar3 + iVar18 + 4))" ( (binary_expression "pbVar16 != (byte *)((int)piVar3 + iVar18 + 4)" identifier != (cast_expression "(byte *)((int)piVar3 + iVar18 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + iVar18 + 4)" ( (binary_expression "(int)piVar3 + iVar18 + 4" (binary_expression "(int)piVar3 + iVar18" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )) ;) })) (expression_statement "fputc(10,DAT_000bbf50);" (call_expression "fputc(10,DAT_000bbf50)" identifier (argument_list "(10,DAT_000bbf50)" ( number_literal , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;" case number_literal : (expression_statement "FUN_0001f1d0();" (call_expression "FUN_0001f1d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar18 = 0x10;" (assignment_expression "iVar18 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);" do (compound_statement "{\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    }" { (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x14) != 0)" ( (binary_expression "*(int *)(param_1 + 0x14) != 0" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }" { (expression_statement "iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);" (assignment_expression "iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c)" identifier = (binary_expression "iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c)" identifier + (pointer_expression "*(int *)(*(int *)(param_1 + 0x14) + 0x1c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x14) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x14) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 0x14) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) + number_literal) )))))) ;) })) (switch_statement "switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }" switch (parenthesized_expression "(*(undefined4 *)(param_1 + 8))" ( (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )) (compound_statement "{\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }" { (case_statement "case 0x11a:\n      pcVar14 = "QUAD";\n      break;" case number_literal : (expression_statement "pcVar14 = "QUAD";" (assignment_expression "pcVar14 = "QUAD"" identifier = (string_literal ""QUAD"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0x11b:\n      pcVar14 = "SQUAD";\n      break;" case number_literal : (expression_statement "pcVar14 = "SQUAD";" (assignment_expression "pcVar14 = "SQUAD"" identifier = (string_literal ""SQUAD"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;" case number_literal : (expression_statement "pcVar14 = "LONG";" (assignment_expression "pcVar14 = "LONG"" identifier = (string_literal ""LONG"" " string_content ")) ;) (expression_statement "uVar12 = 4;" (assignment_expression "uVar12 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;" case number_literal : (expression_statement "pcVar14 = "SHORT";" (assignment_expression "pcVar14 = "SHORT"" identifier = (string_literal ""SHORT"" " string_content ")) ;) (expression_statement "uVar12 = 2;" (assignment_expression "uVar12 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;" case number_literal : (expression_statement "pcVar14 = "BYTE";" (assignment_expression "pcVar14 = "BYTE"" identifier = (string_literal ""BYTE"" " string_content ")) ;) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);" default : comment (expression_statement "FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);" (call_expression "FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12)" identifier (argument_list "("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal , (string_literal ""print_data_statement"" " string_content ") , identifier ))) ;)) })) (expression_statement "uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);" (assignment_expression "uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f)" identifier = (binary_expression "1 << ((byte)DAT_000bb94c & 0x1f)" number_literal << (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }" if (parenthesized_expression "(uVar12 <= uVar10)" ( (binary_expression "uVar12 <= uVar10" identifier <= identifier) )) (compound_statement "{\n      uVar12 = uVar10;\n    }" { (expression_statement "uVar12 = uVar10;" (assignment_expression "uVar12 = uVar10" identifier = identifier) ;) })) (expression_statement "FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));" (call_expression "FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10))" identifier (argument_list "("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10))" ( (string_literal ""0x%V %W %s 0x%v"" " string_content ") , identifier , (binary_expression "uVar12 >> ((byte)DAT_000bb94c & 0x1f)" identifier >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) , identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) ))) ;) (if_statement "if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7" (pointer_expression "*(int *)(*(int *)(param_1 + 0xc) + 0xc)" * (cast_expression "(int *)(*(int *)(param_1 + 0xc) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xc) + 0xc)" ( (binary_expression "*(int *)(param_1 + 0xc) + 0xc" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }" { (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0002f810(*(undefined4 *)(param_1 + 0xc));" (call_expression "FUN_0002f810(*(undefined4 *)(param_1 + 0xc))" identifier (argument_list "(*(undefined4 *)(param_1 + 0xc))" ( (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) ))) ;) })) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));" (assignment_expression "DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f))" identifier = (binary_expression "iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f))" identifier + (parenthesized_expression "(uVar12 >> ((byte)DAT_000bb94c & 0x1f))" ( (binary_expression "uVar12 >> ((byte)DAT_000bb94c & 0x1f)" identifier >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;" case number_literal : (expression_statement "FUN_0001f1d0();" (call_expression "FUN_0001f1d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar18 = 0x10;" (assignment_expression "iVar18 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);" do (compound_statement "{\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    }" { (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x20) != 0)" ( (binary_expression "*(int *)(param_1 + 0x20) != 0" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }" { (expression_statement "iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);" (assignment_expression "iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c)" identifier = (binary_expression "iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c)" identifier + (pointer_expression "*(int *)(*(int *)(param_1 + 0x20) + 0x1c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x20) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x20) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 0x20) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));" (assignment_expression "uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc))" identifier = (call_expression "bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc))" identifier (argument_list "(*(undefined4 *)(param_1 + 0xc))" ( (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));" (call_expression "FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20))" identifier (argument_list "("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20))" ( (string_literal ""0x%V %W RELOC %s "" " string_content ") , identifier , (binary_expression "uVar12 >> ((byte)DAT_000bb94c & 0x1f)" identifier >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) , (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xc) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0xc) + 0x20" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal) )))) ))) ;) (if_statement "if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x14) == 0)" ( (binary_expression "*(int *)(param_1 + 0x14) == 0" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }" { (expression_statement "FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));" (call_expression "FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10))" identifier (argument_list "(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10))" ( (pointer_expression "&UNK_0004ef28" & identifier) , (pointer_expression "**(undefined4 **)(param_1 + 0x10)" * (pointer_expression "*(undefined4 **)(param_1 + 0x10)" * (cast_expression "(undefined4 **)(param_1 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ))) ;) }) (else_clause "else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }" else (compound_statement "{\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }" { (expression_statement "FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));" (call_expression "FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14))" identifier (argument_list "(&UNK_0004ef28,*(int *)(param_1 + 0x14))" ( (pointer_expression "&UNK_0004ef28" & identifier) , (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) ))) ;) }))) (expression_statement "FUN_0002f810(*(undefined4 *)(param_1 + 0x18));" (call_expression "FUN_0002f810(*(undefined4 *)(param_1 + 0x18))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x18))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));" (assignment_expression "DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f))" identifier = (binary_expression "iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f))" identifier + (parenthesized_expression "(uVar12 >> ((byte)DAT_000bb94c & 0x1f))" ( (binary_expression "uVar12 >> ((byte)DAT_000bb94c & 0x1f)" identifier >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;" case number_literal : (expression_statement "iVar18 = *(int *)(param_1 + 8);" (assignment_expression "iVar18 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar14 = "TARGET(%s)\n";" (assignment_expression "pcVar14 = "TARGET(%s)\n"" identifier = (string_literal ""TARGET(%s)\n"" " string_content escape_sequence ")) ;) (labeled_statement "code_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);" statement_identifier : (expression_statement "fprintf(DAT_000bbf50,pcVar14,iVar18);" (call_expression "fprintf(DAT_000bbf50,pcVar14,iVar18)" identifier (argument_list "(DAT_000bbf50,pcVar14,iVar18)" ( identifier , identifier , identifier ))) ;)) (break_statement "break;" break ;)) (case_statement "case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;" case number_literal : (expression_statement "iVar18 = *(int *)(param_1 + 8);" (assignment_expression "iVar18 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "FUN_000317c0("OUTPUT(%s",iVar18);" (call_expression "FUN_000317c0("OUTPUT(%s",iVar18)" identifier (argument_list "("OUTPUT(%s",iVar18)" ( (string_literal ""OUTPUT(%s"" " string_content ") , identifier ))) ;) (if_statement "if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }" if (parenthesized_expression "(DAT_000bbdbc != 0)" ( (binary_expression "DAT_000bbdbc != 0" identifier != number_literal) )) (compound_statement "{\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }" { (expression_statement "iVar18 = DAT_000bbdbc;" (assignment_expression "iVar18 = DAT_000bbdbc" identifier = identifier) ;) (expression_statement "FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);" (call_expression "FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc)" identifier (argument_list "(&DAT_0004d69b,DAT_000bbdbc)" ( (pointer_expression "&DAT_0004d69b" & identifier) , identifier ))) ;) })) (expression_statement "FUN_000317c0(")\n",iVar18);" (call_expression "FUN_000317c0(")\n",iVar18)" identifier (argument_list "(")\n",iVar18)" ( (string_literal "")\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;" case number_literal : (expression_statement "FUN_0001f1d0();" (call_expression "FUN_0001f1d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000317c0(&UNK_0004ef2c);" (call_expression "FUN_000317c0(&UNK_0004ef2c)" identifier (argument_list "(&UNK_0004ef2c)" ( (pointer_expression "&UNK_0004ef2c" & identifier) ))) ;) (expression_statement "iVar18 = 9;" (assignment_expression "iVar18 = 9" identifier = number_literal) ;) (do_statement "do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);" do (compound_statement "{\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    }" { (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) ;) (expression_statement "iStack_2c = *(int *)(param_1 + 8);" (assignment_expression "iStack_2c = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x10) != 0)" ( (binary_expression "*(int *)(param_1 + 0x10) != 0" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }" { (expression_statement "iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);" (assignment_expression "iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c)" identifier = (binary_expression "iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c)" identifier + (pointer_expression "*(int *)(*(int *)(param_1 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 0x10) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));" (call_expression "FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f))" identifier (argument_list "(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f))" ( (pointer_expression "&UNK_0004ef34" & identifier) , identifier , (binary_expression "*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) ;) (expression_statement "piVar3 = *(int **)(param_1 + 0x14);" (assignment_expression "piVar3 = *(int **)(param_1 + 0x14)" identifier = (pointer_expression "*(int **)(param_1 + 0x14)" * (cast_expression "(int **)(param_1 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *piVar3;" (assignment_expression "iVar18 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }" { (expression_statement "pbVar16 = (byte *)(piVar3 + 1);" (assignment_expression "pbVar16 = (byte *)(piVar3 + 1)" identifier = (cast_expression "(byte *)(piVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 1)" ( (binary_expression "piVar3 + 1" identifier + number_literal) )))) ;) (do_statement "do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));" do (compound_statement "{\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      }" { (expression_statement "bVar1 = *pbVar16;" (assignment_expression "bVar1 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) ;) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "fprintf(DAT_000bbf50,"%02x",(uint)bVar1);" (call_expression "fprintf(DAT_000bbf50,"%02x",(uint)bVar1)" identifier (argument_list "(DAT_000bbf50,"%02x",(uint)bVar1)" ( identifier , (string_literal ""%02x"" " string_content ") , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }) while (parenthesized_expression "(pbVar16 != (byte *)((int)piVar3 + iVar18 + 4))" ( (binary_expression "pbVar16 != (byte *)((int)piVar3 + iVar18 + 4)" identifier != (cast_expression "(byte *)((int)piVar3 + iVar18 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + iVar18 + 4)" ( (binary_expression "(int)piVar3 + iVar18 + 4" (binary_expression "(int)piVar3 + iVar18" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )) ;) })) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));" (assignment_expression "DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f))" identifier = (binary_expression "iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f))" identifier + (parenthesized_expression "(*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f))" ( (binary_expression "*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;" case number_literal : (expression_statement "fwrite("START GROUP\n",1,0xc,DAT_000bbf50);" (call_expression "fwrite("START GROUP\n",1,0xc,DAT_000bbf50)" identifier (argument_list "("START GROUP\n",1,0xc,DAT_000bbf50)" ( (string_literal ""START GROUP\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) (for_statement "for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }" for ( (assignment_expression "puVar4 = *(undefined4 **)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 8)" * (cast_expression "(undefined4 **)(param_1 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ; (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar4 = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ) (compound_statement "{\n      FUN_0001f580();\n    }" { (expression_statement "FUN_0001f580();" (call_expression "FUN_0001f580()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "fwrite("END GROUP\n",1,10,DAT_000bbf50);" (call_expression "fwrite("END GROUP\n",1,10,DAT_000bbf50)" identifier (argument_list "("END GROUP\n",1,10,DAT_000bbf50)" ( (string_literal ""END GROUP\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;" case number_literal : (expression_statement "pcVar14 = "BEFORE";" (assignment_expression "pcVar14 = "BEFORE"" identifier = (string_literal ""BEFORE"" " string_content ")) ;) (if_statement "if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) == 0)" ( (binary_expression "*(int *)(param_1 + 0xc) == 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      pcVar14 = "AFTER";\n    }" { (expression_statement "pcVar14 = "AFTER";" (assignment_expression "pcVar14 = "AFTER"" identifier = (string_literal ""AFTER"" " string_content ")) ;) })) (expression_statement "FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));" (call_expression "FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8))" identifier (argument_list "("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8))" ( (string_literal ""INSERT %s %s\n"" " string_content escape_sequence ") , identifier , (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;" case number_literal : (if_statement "if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }" if (parenthesized_expression "(DAT_000bbdcc != (undefined4 *)0x0)" ( (binary_expression "DAT_000bbdcc != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }" { (if_statement "if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }" if (parenthesized_expression "(DAT_000bbdd4 == 0)" ( (binary_expression "DAT_000bbdd4 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }" { (expression_statement "FUN_000317c0(" CONSTRUCTORS\n");" (call_expression "FUN_000317c0(" CONSTRUCTORS\n")" identifier (argument_list "(" CONSTRUCTORS\n")" ( (string_literal "" CONSTRUCTORS\n"" " string_content escape_sequence ") ))) ;) (expression_statement "puVar4 = DAT_000bbdcc;" (assignment_expression "puVar4 = DAT_000bbdcc" identifier = identifier) ;) }) (else_clause "else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }" else (compound_statement "{\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }" { (expression_statement "FUN_000317c0(" SORT (CONSTRUCTORS)\n");" (call_expression "FUN_000317c0(" SORT (CONSTRUCTORS)\n")" identifier (argument_list "(" SORT (CONSTRUCTORS)\n")" ( (string_literal "" SORT (CONSTRUCTORS)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "puVar4 = DAT_000bbdcc;" (assignment_expression "puVar4 = DAT_000bbdcc" identifier = identifier) ;) }))) (for_statement "for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }" for ( ; (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar4 = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ) (compound_statement "{\n        FUN_0001f580();\n      }" { (expression_statement "FUN_0001f580();" (call_expression "FUN_0001f580()" identifier (argument_list "()" ( ))) ;) })) })) (break_statement "break;" break ;)) (case_statement "default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);" default : (expression_statement "pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);" (assignment_expression "pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Fail with %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Fail with %d\n",5)" identifier (argument_list "(0,"Fail with %d\n",5)" ( number_literal , (string_literal ""Fail with %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(DAT_000bbf50,pcVar14,uVar12);" (call_expression "fprintf(DAT_000bbf50,pcVar14,uVar12)" identifier (argument_list "(DAT_000bbf50,pcVar14,uVar12)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00031780("../../ld/ldlang.c",0x11bc);" (call_expression "FUN_00031780("../../ld/ldlang.c",0x11bc)" identifier (argument_list "("../../ld/ldlang.c",0x11bc)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;)) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 print_statement(lang_statement_union_type *s,lang_output_section_statement_type *os)\n\n{\n  byte bVar1;\n  name_list *pnVar2;\n  wildcard_list *pwVar3;\n  fill_type *pfVar4;\n  size_t sVar5;\n  lang_statement_union_type *plVar6;\n  bool bVar7;\n  asection *paVar8;\n  char *pcVar9;\n  uint uVar10;\n  size_t sVar11;\n  char *pcVar12;\n  statement_enum sVar13;\n  etree_type *tree;\n  uchar *puVar14;\n  int iVar15;\n  statement_enum sVar16;\n  lang_statement_union *plVar17;\n  walk_wild_section_handler_t p_Var18;\n  bfd_vma bVar19;\n  asection *paVar20;\n  char *local_2c;\n  \n  sVar16 = (s->header).type;\n  switch(sVar16) {\n  case lang_output_section_statement_enum:\n    if (s != (lang_statement_union_type *)abs_output_section) {\n      paVar20 = (s->output_section_statement).bfd_section;\n      minfo("\n%s",(s->wild_statement).children.head);\n      if (paVar20 != (asection *)0x0) {\n        print_dot = paVar20->vma;\n        sVar11 = strlen((s->output_section_statement).name);\n        if (0xe < sVar11) {\n          print_nl();\n          sVar11 = 0;\n        }\n        do {\n          print_space();\n          sVar11 = sVar11 + 1;\n        } while (sVar11 != 0x10);\n        minfo("0x%V %W",paVar20->vma,paVar20->size >> ((byte)opb_shift & 0x1f));\n        bVar19 = paVar20->lma;\n        if (paVar20->vma != bVar19) {\n          pcVar12 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar12,bVar19);\n        }\n        if ((s->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n          exp_fold_tree((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&print_dot);\n        }\n      }\n      print_nl();\n    }\n    for (plVar6 = (s->output_section_statement).children.head;\n        plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,&s->output_section_statement);\n    }\n    break;\n  case lang_assignment_statement_enum:\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    paVar8 = (s->input_section).section;\n    tree = (etree_type *)paVar8->prev;\n    paVar20 = os->bfd_section;\n    if (paVar8->next == (bfd_section *)0x8) {\n      bVar7 = false;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\nLAB_0001fe56:\n      exp_fold_tree(tree,paVar20,&print_dot);\n      bVar19 = expld.result.value;\n      paVar8 = (s->input_section).section;\n      if (expld.result.valid_p == 0) goto LAB_0001f610;\n      if (paVar8->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_0001fea7:\n          bVar19 = expld.result.value + (expld.result.section)->vma;\n        }\n        minfo("0x%V",bVar19);\n        if (bVar7) {\nLAB_0001fec9:\n          print_dot = bVar19;\n        }\n      }\n      else {\n        if (bVar7) {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n          goto LAB_0001fec9;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar15 = bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1);\n          if (iVar15 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n        }\n      }\n    }\n    else {\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar8->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\n      if (paVar8->next != (bfd_section *)0x5) goto LAB_0001fe56;\n      expld.result.valid_p = 0;\nLAB_0001f610:\n      if (paVar8->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n    }\n    expld.assign_name = (char *)0x0;\n    minfo("                ");\n    exp_print_tree((etree_type *)(s->output_section_statement).children.head);\n    print_nl();\n    break;\n  case lang_input_statement_enum:\n    pcVar9 = (s->wild_statement).filename;\n    if (pcVar9 == (char *)0x0) {\n      return;\n    }\n    if (((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->rawsize & 0x20000) != 0)) {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto LAB_0001f93c;\n  case lang_address_statement_enum:\n    pcVar12 = (s->wild_statement).filename;\n    pcVar9 = (char *)dcgettext(0,"Address of section %s set to ",5);\n    minfo(pcVar9,pcVar12);\n    exp_print_tree((s->data_statement).exp);\n    print_nl();\n    break;\n  case lang_wild_statement_enum:\n    print_space();\n    if ((s->wild_statement).exclude_name_list != (name_list *)0x0) {\n      pcVar12 = ((s->wild_statement).exclude_name_list)->name;\n      minfo("EXCLUDE_FILE(%s",pcVar12);\n      for (pnVar2 = ((s->wild_statement).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n          pnVar2 = pnVar2->next) {\n        pcVar12 = pnVar2->name;\n        minfo(" %s",pcVar12);\n      }\n      minfo(") ",pcVar12);\n    }\n    if ((s->wild_statement).filenames_sorted != 0) {\n      minfo("SORT_BY_NAME(");\n    }\n    if ((s->wild_statement).filename == (char *)0x0) {\n      minfo("*");\n    }\n    else {\n      minfo("%s",(s->wild_statement).filename);\n    }\n    if ((s->wild_statement).filenames_sorted != 0) {\n      minfo(")");\n    }\n    minfo("(");\n    for (pwVar3 = (s->wild_statement).section_list; pwVar3 != (wildcard_list *)0x0;\n        pwVar3 = pwVar3->next) {\n      switch((pwVar3->spec).sorted) {\n      default:\n        iVar15 = 0;\n        break;\n      case by_name:\n        iVar15 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar15 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar15 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar15 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        iVar15 = 1;\n        minfo("SORT_NONE(");\n        break;\n      case by_init_priority:\n        iVar15 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }\n      pnVar2 = (pwVar3->spec).exclude_name_list;\n      if (pnVar2 != (name_list *)0x0) {\n        pcVar12 = pnVar2->name;\n        minfo("EXCLUDE_FILE(%s",pcVar12);\n        for (pnVar2 = ((pwVar3->spec).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n            pnVar2 = pnVar2->next) {\n          pcVar12 = pnVar2->name;\n          minfo(" %s",pcVar12);\n        }\n        minfo(") ",pcVar12);\n      }\n      pcVar12 = (pwVar3->spec).name;\n      if (pcVar12 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar12);\n      }\n      if ((iVar15 != 0) && (minfo(")"), iVar15 != 1)) {\n        minfo(")");\n      }\n      if (pwVar3->next == (wildcard_list *)0x0) break;\n      minfo(" ");\n    }\n    minfo(")");\n    print_nl();\n    for (plVar6 = (s->wild_statement).children.head; plVar6 != (lang_statement_union_type *)0x0;\n        plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,os);\n    }\n    break;\n  case lang_input_section_enum:\n    print_input_section((s->input_section).section,0);\n    return;\n  case lang_object_symbols_statement_enum:\n    minfo(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case lang_fill_statement_enum:\n    fwrite(" FILL mask 0x",1,0xd,(FILE *)config.map_file);\n    pfVar4 = (s->fill_statement).fill;\n    sVar5 = pfVar4->size;\n    puVar14 = pfVar4->data;\n    if (sVar5 != 0) {\n      do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);\n    }\n    fputc(10,(FILE *)config.map_file);\n    break;\n  case lang_data_statement_enum:\n    init_opb();\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    plVar17 = (s->wild_statement).children.head;\n    if ((s->output_section_statement).prev != (lang_output_section_statement_struct *)0x0) {\n      plVar17 = (lang_statement_union *)\n                ((int)&((s->output_section_statement).prev)->bfd_section->name + (int)plVar17);\n    }\n    switch((s->data_statement).type) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      sVar16 = lang_wild_statement_enum;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      sVar16 = lang_input_statement_enum;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      sVar16 = lang_assignment_statement_enum;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");\n    }\n    sVar13 = 1 << ((byte)opb_shift & 0x1f);\n    if (sVar16 <= sVar13) {\n      sVar16 = sVar13;\n    }\n    minfo("0x%V %W %s 0x%v",plVar17,sVar16 >> ((byte)opb_shift & 0x1f),pcVar12,\n          (s->wild_statement).section_list);\n    if (((s->reloc_statement).howto)->bitsize != 7) {\n      print_space();\n      exp_print_tree((s->data_statement).exp);\n    }\n    print_nl();\n    print_dot = (int)plVar17 + (sVar16 >> ((byte)opb_shift & 0x1f));\n    break;\n  case lang_reloc_statement_enum:\n    init_opb();\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    p_Var18 = (s->wild_statement).walk_wild_section_handler;\n    if ((s->reloc_statement).output_section != (asection *)0x0) {\n      p_Var18 = p_Var18 + ((s->reloc_statement).output_section)->vma;\n    }\n    uVar10 = bfd_get_reloc_size((s->wild_statement).filenames_sorted);\n    minfo("0x%V %W RELOC %s ",p_Var18,uVar10 >> ((byte)opb_shift & 0x1f),\n          ((s->reloc_statement).howto)->name);\n    if ((s->wild_statement).keep_sections == 0) {\n      minfo("%s+",((s->wild_statement).section_list)->next);\n    }\n    else {\n      minfo("%s+",(s->wild_statement).keep_sections);\n    }\n    exp_print_tree((etree_type *)(s->wild_statement).children.head);\n    print_nl();\n    print_dot = (bfd_vma)(p_Var18 + (uVar10 >> ((byte)opb_shift & 0x1f)));\n    break;\n  case lang_target_statement_enum:\n    pcVar9 = (s->wild_statement).filename;\n    pcVar12 = "TARGET(%s)\n";\nLAB_0001f93c:\n    fprintf((FILE *)config.map_file,pcVar12,pcVar9);\n    break;\n  case lang_output_statement_enum:\n    pcVar12 = (s->wild_statement).filename;\n    minfo("OUTPUT(%s",pcVar12);\n    if (output_target != (char *)0x0) {\n      pcVar12 = output_target;\n      minfo(" %s",output_target);\n    }\n    minfo(")\n",pcVar12);\n    break;\n  case lang_padding_statement_enum:\n    init_opb();\n    minfo(" *fill*");\n    iVar15 = 9;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    local_2c = (s->wild_statement).filename;\n    if ((s->output_section_statement).next != (lang_output_section_statement_struct *)0x0) {\n      local_2c = local_2c + (int)((s->output_section_statement).next)->bfd_section;\n    }\n    minfo("0x%V %W ",local_2c,(s->padding_statement).size >> ((byte)opb_shift & 0x1f));\n    pfVar4 = (s->padding_statement).fill;\n    sVar5 = pfVar4->size;\n    if (sVar5 != 0) {\n      puVar14 = pfVar4->data;\n      do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);\n    }\n    print_nl();\n    print_dot = (bfd_vma)(local_2c + ((s->padding_statement).size >> ((byte)opb_shift & 0x1f)));\n    break;\n  case lang_group_statement_enum:\n    fwrite("START GROUP\n",1,0xc,(FILE *)config.map_file);\n    for (plVar6 = (s->output_section_statement).children.head;\n        plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,os);\n    }\n    fwrite("END GROUP\n",1,10,(FILE *)config.map_file);\n    break;\n  case lang_insert_statement_enum:\n    pcVar12 = "BEFORE";\n    if ((s->wild_statement).filenames_sorted == 0) {\n      pcVar12 = "AFTER";\n    }\n    minfo("INSERT %s %s\n",pcVar12,(s->wild_statement).filename);\n    break;\n  case lang_constructors_statement_enum:\n    if (constructor_list.head != (lang_statement_union *)0x0) {\n      if (constructors_sorted == 0) {\n        minfo(" CONSTRUCTORS\n");\n        plVar6 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar6 = constructor_list.head;\n      }\n      for (; plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n        print_statement(plVar6,os);\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf((FILE *)config.map_file,pcVar12,sVar16);\n    info_assert("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 print_statement(lang_statement_union_type *s,lang_output_section_statement_type *os)\n\n{\n  byte bVar1;\n  name_list *pnVar2;\n  wildcard_list *pwVar3;\n  fill_type *pfVar4;\n  size_t sVar5;\n  lang_statement_union_type *plVar6;\n  bool bVar7;\n  asection *paVar8;\n  char *pcVar9;\n  uint uVar10;\n  size_t sVar11;\n  char *pcVar12;\n  statement_enum sVar13;\n  etree_type *tree;\n  uchar *puVar14;\n  int iVar15;\n  statement_enum sVar16;\n  lang_statement_union *plVar17;\n  walk_wild_section_handler_t p_Var18;\n  bfd_vma bVar19;\n  asection *paVar20;\n  char *local_2c;\n  \n  sVar16 = (s->header).type;\n  switch(sVar16) {\n  case lang_output_section_statement_enum:\n    if (s != (lang_statement_union_type *)abs_output_section) {\n      paVar20 = (s->output_section_statement).bfd_section;\n      minfo("\n%s",(s->wild_statement).children.head);\n      if (paVar20 != (asection *)0x0) {\n        print_dot = paVar20->vma;\n        sVar11 = strlen((s->output_section_statement).name);\n        if (0xe < sVar11) {\n          print_nl();\n          sVar11 = 0;\n        }\n        do {\n          print_space();\n          sVar11 = sVar11 + 1;\n        } while (sVar11 != 0x10);\n        minfo("0x%V %W",paVar20->vma,paVar20->size >> ((byte)opb_shift & 0x1f));\n        bVar19 = paVar20->lma;\n        if (paVar20->vma != bVar19) {\n          pcVar12 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar12,bVar19);\n        }\n        if ((s->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n          exp_fold_tree((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&print_dot);\n        }\n      }\n      print_nl();\n    }\n    for (plVar6 = (s->output_section_statement).children.head;\n        plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,&s->output_section_statement);\n    }\n    break;\n  case lang_assignment_statement_enum:\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    paVar8 = (s->input_section).section;\n    tree = (etree_type *)paVar8->prev;\n    paVar20 = os->bfd_section;\n    if (paVar8->next == (bfd_section *)0x8) {\n      bVar7 = false;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\nLAB_0001fe56:\n      exp_fold_tree(tree,paVar20,&print_dot);\n      bVar19 = expld.result.value;\n      paVar8 = (s->input_section).section;\n      if (expld.result.valid_p == 0) goto LAB_0001f610;\n      if (paVar8->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_0001fea7:\n          bVar19 = expld.result.value + (expld.result.section)->vma;\n        }\n        minfo("0x%V",bVar19);\n        if (bVar7) {\nLAB_0001fec9:\n          print_dot = bVar19;\n        }\n      }\n      else {\n        if (bVar7) {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n          goto LAB_0001fec9;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar15 = bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1);\n          if (iVar15 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n        }\n      }\n    }\n    else {\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar8->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\n      if (paVar8->next != (bfd_section *)0x5) goto LAB_0001fe56;\n      expld.result.valid_p = 0;\nLAB_0001f610:\n      if (paVar8->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n    }\n    expld.assign_name = (char *)0x0;\n    minfo("                ");\n    exp_print_tree((etree_type *)(s->output_section_statement).children.head);\n    print_nl();\n    break;\n  case lang_input_statement_enum:\n    pcVar9 = (s->wild_statement).filename;\n    if (pcVar9 == (char *)0x0) {\n      return;\n    }\n    if (((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->rawsize & 0x20000) != 0)) {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto LAB_0001f93c;\n  case lang_address_statement_enum:\n    pcVar12 = (s->wild_statement).filename;\n    pcVar9 = (char *)dcgettext(0,"Address of section %s set to ",5);\n    minfo(pcVar9,pcVar12);\n    exp_print_tree((s->data_statement).exp);\n    print_nl();\n    break;\n  case lang_wild_statement_enum:\n    print_space();\n    if ((s->wild_statement).exclude_name_list != (name_list *)0x0) {\n      pcVar12 = ((s->wild_statement).exclude_name_list)->name;\n      minfo("EXCLUDE_FILE(%s",pcVar12);\n      for (pnVar2 = ((s->wild_statement).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n          pnVar2 = pnVar2->next) {\n        pcVar12 = pnVar2->name;\n        minfo(" %s",pcVar12);\n      }\n      minfo(") ",pcVar12);\n    }\n    if ((s->wild_statement).filenames_sorted != 0) {\n      minfo("SORT_BY_NAME(");\n    }\n    if ((s->wild_statement).filename == (char *)0x0) {\n      minfo("*");\n    }\n    else {\n      minfo("%s",(s->wild_statement).filename);\n    }\n    if ((s->wild_statement).filenames_sorted != 0) {\n      minfo(")");\n    }\n    minfo("(");\n    for (pwVar3 = (s->wild_statement).section_list; pwVar3 != (wildcard_list *)0x0;\n        pwVar3 = pwVar3->next) {\n      switch((pwVar3->spec).sorted) {\n      default:\n        iVar15 = 0;\n        break;\n      case by_name:\n        iVar15 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar15 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar15 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar15 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        iVar15 = 1;\n        minfo("SORT_NONE(");\n        break;\n      case by_init_priority:\n        iVar15 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }\n      pnVar2 = (pwVar3->spec).exclude_name_list;\n      if (pnVar2 != (name_list *)0x0) {\n        pcVar12 = pnVar2->name;\n        minfo("EXCLUDE_FILE(%s",pcVar12);\n        for (pnVar2 = ((pwVar3->spec).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n            pnVar2 = pnVar2->next) {\n          pcVar12 = pnVar2->name;\n          minfo(" %s",pcVar12);\n        }\n        minfo(") ",pcVar12);\n      }\n      pcVar12 = (pwVar3->spec).name;\n      if (pcVar12 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar12);\n      }\n      if ((iVar15 != 0) && (minfo(")"), iVar15 != 1)) {\n        minfo(")");\n      }\n      if (pwVar3->next == (wildcard_list *)0x0) break;\n      minfo(" ");\n    }\n    minfo(")");\n    print_nl();\n    for (plVar6 = (s->wild_statement).children.head; plVar6 != (lang_statement_union_type *)0x0;\n        plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,os);\n    }\n    break;\n  case lang_input_section_enum:\n    print_input_section((s->input_section).section,0);\n    return;\n  case lang_object_symbols_statement_enum:\n    minfo(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case lang_fill_statement_enum:\n    fwrite(" FILL mask 0x",1,0xd,(FILE *)config.map_file);\n    pfVar4 = (s->fill_statement).fill;\n    sVar5 = pfVar4->size;\n    puVar14 = pfVar4->data;\n    if (sVar5 != 0) {\n      do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);\n    }\n    fputc(10,(FILE *)config.map_file);\n    break;\n  case lang_data_statement_enum:\n    init_opb();\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    plVar17 = (s->wild_statement).children.head;\n    if ((s->output_section_statement).prev != (lang_output_section_statement_struct *)0x0) {\n      plVar17 = (lang_statement_union *)\n                ((int)&((s->output_section_statement).prev)->bfd_section->name + (int)plVar17);\n    }\n    switch((s->data_statement).type) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      sVar16 = lang_wild_statement_enum;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      sVar16 = lang_input_statement_enum;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      sVar16 = lang_assignment_statement_enum;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");\n    }\n    sVar13 = 1 << ((byte)opb_shift & 0x1f);\n    if (sVar16 <= sVar13) {\n      sVar16 = sVar13;\n    }\n    minfo("0x%V %W %s 0x%v",plVar17,sVar16 >> ((byte)opb_shift & 0x1f),pcVar12,\n          (s->wild_statement).section_list);\n    if (((s->reloc_statement).howto)->bitsize != 7) {\n      print_space();\n      exp_print_tree((s->data_statement).exp);\n    }\n    print_nl();\n    print_dot = (int)plVar17 + (sVar16 >> ((byte)opb_shift & 0x1f));\n    break;\n  case lang_reloc_statement_enum:\n    init_opb();\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    p_Var18 = (s->wild_statement).walk_wild_section_handler;\n    if ((s->reloc_statement).output_section != (asection *)0x0) {\n      p_Var18 = p_Var18 + ((s->reloc_statement).output_section)->vma;\n    }\n    uVar10 = bfd_get_reloc_size((s->wild_statement).filenames_sorted);\n    minfo("0x%V %W RELOC %s ",p_Var18,uVar10 >> ((byte)opb_shift & 0x1f),\n          ((s->reloc_statement).howto)->name);\n    if ((s->wild_statement).keep_sections == 0) {\n      minfo("%s+",((s->wild_statement).section_list)->next);\n    }\n    else {\n      minfo("%s+",(s->wild_statement).keep_sections);\n    }\n    exp_print_tree((etree_type *)(s->wild_statement).children.head);\n    print_nl();\n    print_dot = (bfd_vma)(p_Var18 + (uVar10 >> ((byte)opb_shift & 0x1f)));\n    break;\n  case lang_target_statement_enum:\n    pcVar9 = (s->wild_statement).filename;\n    pcVar12 = "TARGET(%s)\n";\nLAB_0001f93c:\n    fprintf((FILE *)config.map_file,pcVar12,pcVar9);\n    break;\n  case lang_output_statement_enum:\n    pcVar12 = (s->wild_statement).filename;\n    minfo("OUTPUT(%s",pcVar12);\n    if (output_target != (char *)0x0) {\n      pcVar12 = output_target;\n      minfo(" %s",output_target);\n    }\n    minfo(")\n",pcVar12);\n    break;\n  case lang_padding_statement_enum:\n    init_opb();\n    minfo(" *fill*");\n    iVar15 = 9;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    local_2c = (s->wild_statement).filename;\n    if ((s->output_section_statement).next != (lang_output_section_statement_struct *)0x0) {\n      local_2c = local_2c + (int)((s->output_section_statement).next)->bfd_section;\n    }\n    minfo("0x%V %W ",local_2c,(s->padding_statement).size >> ((byte)opb_shift & 0x1f));\n    pfVar4 = (s->padding_statement).fill;\n    sVar5 = pfVar4->size;\n    if (sVar5 != 0) {\n      puVar14 = pfVar4->data;\n      do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);\n    }\n    print_nl();\n    print_dot = (bfd_vma)(local_2c + ((s->padding_statement).size >> ((byte)opb_shift & 0x1f)));\n    break;\n  case lang_group_statement_enum:\n    fwrite("START GROUP\n",1,0xc,(FILE *)config.map_file);\n    for (plVar6 = (s->output_section_statement).children.head;\n        plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,os);\n    }\n    fwrite("END GROUP\n",1,10,(FILE *)config.map_file);\n    break;\n  case lang_insert_statement_enum:\n    pcVar12 = "BEFORE";\n    if ((s->wild_statement).filenames_sorted == 0) {\n      pcVar12 = "AFTER";\n    }\n    minfo("INSERT %s %s\n",pcVar12,(s->wild_statement).filename);\n    break;\n  case lang_constructors_statement_enum:\n    if (constructor_list.head != (lang_statement_union *)0x0) {\n      if (constructors_sorted == 0) {\n        minfo(" CONSTRUCTORS\n");\n        plVar6 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar6 = constructor_list.head;\n      }\n      for (; plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n        print_statement(plVar6,os);\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf((FILE *)config.map_file,pcVar12,sVar16);\n    info_assert("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "print_statement(lang_statement_union_type *s,lang_output_section_statement_type *os)" identifier (parameter_list "(lang_statement_union_type *s,lang_output_section_statement_type *os)" ( (parameter_declaration "lang_statement_union_type *s" type_identifier (pointer_declarator "*s" * identifier)) , (parameter_declaration "lang_output_section_statement_type *os" type_identifier (pointer_declarator "*os" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  name_list *pnVar2;\n  wildcard_list *pwVar3;\n  fill_type *pfVar4;\n  size_t sVar5;\n  lang_statement_union_type *plVar6;\n  bool bVar7;\n  asection *paVar8;\n  char *pcVar9;\n  uint uVar10;\n  size_t sVar11;\n  char *pcVar12;\n  statement_enum sVar13;\n  etree_type *tree;\n  uchar *puVar14;\n  int iVar15;\n  statement_enum sVar16;\n  lang_statement_union *plVar17;\n  walk_wild_section_handler_t p_Var18;\n  bfd_vma bVar19;\n  asection *paVar20;\n  char *local_2c;\n  \n  sVar16 = (s->header).type;\n  switch(sVar16) {\n  case lang_output_section_statement_enum:\n    if (s != (lang_statement_union_type *)abs_output_section) {\n      paVar20 = (s->output_section_statement).bfd_section;\n      minfo("\n%s",(s->wild_statement).children.head);\n      if (paVar20 != (asection *)0x0) {\n        print_dot = paVar20->vma;\n        sVar11 = strlen((s->output_section_statement).name);\n        if (0xe < sVar11) {\n          print_nl();\n          sVar11 = 0;\n        }\n        do {\n          print_space();\n          sVar11 = sVar11 + 1;\n        } while (sVar11 != 0x10);\n        minfo("0x%V %W",paVar20->vma,paVar20->size >> ((byte)opb_shift & 0x1f));\n        bVar19 = paVar20->lma;\n        if (paVar20->vma != bVar19) {\n          pcVar12 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar12,bVar19);\n        }\n        if ((s->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n          exp_fold_tree((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&print_dot);\n        }\n      }\n      print_nl();\n    }\n    for (plVar6 = (s->output_section_statement).children.head;\n        plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,&s->output_section_statement);\n    }\n    break;\n  case lang_assignment_statement_enum:\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    paVar8 = (s->input_section).section;\n    tree = (etree_type *)paVar8->prev;\n    paVar20 = os->bfd_section;\n    if (paVar8->next == (bfd_section *)0x8) {\n      bVar7 = false;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\nLAB_0001fe56:\n      exp_fold_tree(tree,paVar20,&print_dot);\n      bVar19 = expld.result.value;\n      paVar8 = (s->input_section).section;\n      if (expld.result.valid_p == 0) goto LAB_0001f610;\n      if (paVar8->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_0001fea7:\n          bVar19 = expld.result.value + (expld.result.section)->vma;\n        }\n        minfo("0x%V",bVar19);\n        if (bVar7) {\nLAB_0001fec9:\n          print_dot = bVar19;\n        }\n      }\n      else {\n        if (bVar7) {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n          goto LAB_0001fec9;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar15 = bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1);\n          if (iVar15 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n        }\n      }\n    }\n    else {\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar8->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\n      if (paVar8->next != (bfd_section *)0x5) goto LAB_0001fe56;\n      expld.result.valid_p = 0;\nLAB_0001f610:\n      if (paVar8->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n    }\n    expld.assign_name = (char *)0x0;\n    minfo("                ");\n    exp_print_tree((etree_type *)(s->output_section_statement).children.head);\n    print_nl();\n    break;\n  case lang_input_statement_enum:\n    pcVar9 = (s->wild_statement).filename;\n    if (pcVar9 == (char *)0x0) {\n      return;\n    }\n    if (((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->rawsize & 0x20000) != 0)) {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto LAB_0001f93c;\n  case lang_address_statement_enum:\n    pcVar12 = (s->wild_statement).filename;\n    pcVar9 = (char *)dcgettext(0,"Address of section %s set to ",5);\n    minfo(pcVar9,pcVar12);\n    exp_print_tree((s->data_statement).exp);\n    print_nl();\n    break;\n  case lang_wild_statement_enum:\n    print_space();\n    if ((s->wild_statement).exclude_name_list != (name_list *)0x0) {\n      pcVar12 = ((s->wild_statement).exclude_name_list)->name;\n      minfo("EXCLUDE_FILE(%s",pcVar12);\n      for (pnVar2 = ((s->wild_statement).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n          pnVar2 = pnVar2->next) {\n        pcVar12 = pnVar2->name;\n        minfo(" %s",pcVar12);\n      }\n      minfo(") ",pcVar12);\n    }\n    if ((s->wild_statement).filenames_sorted != 0) {\n      minfo("SORT_BY_NAME(");\n    }\n    if ((s->wild_statement).filename == (char *)0x0) {\n      minfo("*");\n    }\n    else {\n      minfo("%s",(s->wild_statement).filename);\n    }\n    if ((s->wild_statement).filenames_sorted != 0) {\n      minfo(")");\n    }\n    minfo("(");\n    for (pwVar3 = (s->wild_statement).section_list; pwVar3 != (wildcard_list *)0x0;\n        pwVar3 = pwVar3->next) {\n      switch((pwVar3->spec).sorted) {\n      default:\n        iVar15 = 0;\n        break;\n      case by_name:\n        iVar15 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar15 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar15 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar15 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        iVar15 = 1;\n        minfo("SORT_NONE(");\n        break;\n      case by_init_priority:\n        iVar15 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }\n      pnVar2 = (pwVar3->spec).exclude_name_list;\n      if (pnVar2 != (name_list *)0x0) {\n        pcVar12 = pnVar2->name;\n        minfo("EXCLUDE_FILE(%s",pcVar12);\n        for (pnVar2 = ((pwVar3->spec).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n            pnVar2 = pnVar2->next) {\n          pcVar12 = pnVar2->name;\n          minfo(" %s",pcVar12);\n        }\n        minfo(") ",pcVar12);\n      }\n      pcVar12 = (pwVar3->spec).name;\n      if (pcVar12 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar12);\n      }\n      if ((iVar15 != 0) && (minfo(")"), iVar15 != 1)) {\n        minfo(")");\n      }\n      if (pwVar3->next == (wildcard_list *)0x0) break;\n      minfo(" ");\n    }\n    minfo(")");\n    print_nl();\n    for (plVar6 = (s->wild_statement).children.head; plVar6 != (lang_statement_union_type *)0x0;\n        plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,os);\n    }\n    break;\n  case lang_input_section_enum:\n    print_input_section((s->input_section).section,0);\n    return;\n  case lang_object_symbols_statement_enum:\n    minfo(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case lang_fill_statement_enum:\n    fwrite(" FILL mask 0x",1,0xd,(FILE *)config.map_file);\n    pfVar4 = (s->fill_statement).fill;\n    sVar5 = pfVar4->size;\n    puVar14 = pfVar4->data;\n    if (sVar5 != 0) {\n      do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);\n    }\n    fputc(10,(FILE *)config.map_file);\n    break;\n  case lang_data_statement_enum:\n    init_opb();\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    plVar17 = (s->wild_statement).children.head;\n    if ((s->output_section_statement).prev != (lang_output_section_statement_struct *)0x0) {\n      plVar17 = (lang_statement_union *)\n                ((int)&((s->output_section_statement).prev)->bfd_section->name + (int)plVar17);\n    }\n    switch((s->data_statement).type) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      sVar16 = lang_wild_statement_enum;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      sVar16 = lang_input_statement_enum;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      sVar16 = lang_assignment_statement_enum;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");\n    }\n    sVar13 = 1 << ((byte)opb_shift & 0x1f);\n    if (sVar16 <= sVar13) {\n      sVar16 = sVar13;\n    }\n    minfo("0x%V %W %s 0x%v",plVar17,sVar16 >> ((byte)opb_shift & 0x1f),pcVar12,\n          (s->wild_statement).section_list);\n    if (((s->reloc_statement).howto)->bitsize != 7) {\n      print_space();\n      exp_print_tree((s->data_statement).exp);\n    }\n    print_nl();\n    print_dot = (int)plVar17 + (sVar16 >> ((byte)opb_shift & 0x1f));\n    break;\n  case lang_reloc_statement_enum:\n    init_opb();\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    p_Var18 = (s->wild_statement).walk_wild_section_handler;\n    if ((s->reloc_statement).output_section != (asection *)0x0) {\n      p_Var18 = p_Var18 + ((s->reloc_statement).output_section)->vma;\n    }\n    uVar10 = bfd_get_reloc_size((s->wild_statement).filenames_sorted);\n    minfo("0x%V %W RELOC %s ",p_Var18,uVar10 >> ((byte)opb_shift & 0x1f),\n          ((s->reloc_statement).howto)->name);\n    if ((s->wild_statement).keep_sections == 0) {\n      minfo("%s+",((s->wild_statement).section_list)->next);\n    }\n    else {\n      minfo("%s+",(s->wild_statement).keep_sections);\n    }\n    exp_print_tree((etree_type *)(s->wild_statement).children.head);\n    print_nl();\n    print_dot = (bfd_vma)(p_Var18 + (uVar10 >> ((byte)opb_shift & 0x1f)));\n    break;\n  case lang_target_statement_enum:\n    pcVar9 = (s->wild_statement).filename;\n    pcVar12 = "TARGET(%s)\n";\nLAB_0001f93c:\n    fprintf((FILE *)config.map_file,pcVar12,pcVar9);\n    break;\n  case lang_output_statement_enum:\n    pcVar12 = (s->wild_statement).filename;\n    minfo("OUTPUT(%s",pcVar12);\n    if (output_target != (char *)0x0) {\n      pcVar12 = output_target;\n      minfo(" %s",output_target);\n    }\n    minfo(")\n",pcVar12);\n    break;\n  case lang_padding_statement_enum:\n    init_opb();\n    minfo(" *fill*");\n    iVar15 = 9;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    local_2c = (s->wild_statement).filename;\n    if ((s->output_section_statement).next != (lang_output_section_statement_struct *)0x0) {\n      local_2c = local_2c + (int)((s->output_section_statement).next)->bfd_section;\n    }\n    minfo("0x%V %W ",local_2c,(s->padding_statement).size >> ((byte)opb_shift & 0x1f));\n    pfVar4 = (s->padding_statement).fill;\n    sVar5 = pfVar4->size;\n    if (sVar5 != 0) {\n      puVar14 = pfVar4->data;\n      do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);\n    }\n    print_nl();\n    print_dot = (bfd_vma)(local_2c + ((s->padding_statement).size >> ((byte)opb_shift & 0x1f)));\n    break;\n  case lang_group_statement_enum:\n    fwrite("START GROUP\n",1,0xc,(FILE *)config.map_file);\n    for (plVar6 = (s->output_section_statement).children.head;\n        plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,os);\n    }\n    fwrite("END GROUP\n",1,10,(FILE *)config.map_file);\n    break;\n  case lang_insert_statement_enum:\n    pcVar12 = "BEFORE";\n    if ((s->wild_statement).filenames_sorted == 0) {\n      pcVar12 = "AFTER";\n    }\n    minfo("INSERT %s %s\n",pcVar12,(s->wild_statement).filename);\n    break;\n  case lang_constructors_statement_enum:\n    if (constructor_list.head != (lang_statement_union *)0x0) {\n      if (constructors_sorted == 0) {\n        minfo(" CONSTRUCTORS\n");\n        plVar6 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar6 = constructor_list.head;\n      }\n      for (; plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n        print_statement(plVar6,os);\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf((FILE *)config.map_file,pcVar12,sVar16);\n    info_assert("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "name_list *pnVar2;" type_identifier (pointer_declarator "*pnVar2" * identifier) ;) (declaration "wildcard_list *pwVar3;" type_identifier (pointer_declarator "*pwVar3" * identifier) ;) (declaration "fill_type *pfVar4;" type_identifier (pointer_declarator "*pfVar4" * identifier) ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "lang_statement_union_type *plVar6;" type_identifier (pointer_declarator "*plVar6" * identifier) ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "asection *paVar8;" type_identifier (pointer_declarator "*paVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "statement_enum sVar13;" type_identifier identifier ;) (declaration "etree_type *tree;" type_identifier (pointer_declarator "*tree" * identifier) ;) (declaration "uchar *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "statement_enum sVar16;" type_identifier identifier ;) (declaration "lang_statement_union *plVar17;" type_identifier (pointer_declarator "*plVar17" * identifier) ;) (declaration "walk_wild_section_handler_t p_Var18;" type_identifier identifier ;) (declaration "bfd_vma bVar19;" type_identifier identifier ;) (declaration "asection *paVar20;" type_identifier (pointer_declarator "*paVar20" * identifier) ;) (declaration "char *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "sVar16 = (s->header).type;" (assignment_expression "sVar16 = (s->header).type" identifier = (field_expression "(s->header).type" (parenthesized_expression "(s->header)" ( (field_expression "s->header" identifier -> field_identifier) )) . field_identifier)) ;) (switch_statement "switch(sVar16) {\n  case lang_output_section_statement_enum:\n    if (s != (lang_statement_union_type *)abs_output_section) {\n      paVar20 = (s->output_section_statement).bfd_section;\n      minfo("\n%s",(s->wild_statement).children.head);\n      if (paVar20 != (asection *)0x0) {\n        print_dot = paVar20->vma;\n        sVar11 = strlen((s->output_section_statement).name);\n        if (0xe < sVar11) {\n          print_nl();\n          sVar11 = 0;\n        }\n        do {\n          print_space();\n          sVar11 = sVar11 + 1;\n        } while (sVar11 != 0x10);\n        minfo("0x%V %W",paVar20->vma,paVar20->size >> ((byte)opb_shift & 0x1f));\n        bVar19 = paVar20->lma;\n        if (paVar20->vma != bVar19) {\n          pcVar12 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar12,bVar19);\n        }\n        if ((s->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n          exp_fold_tree((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&print_dot);\n        }\n      }\n      print_nl();\n    }\n    for (plVar6 = (s->output_section_statement).children.head;\n        plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,&s->output_section_statement);\n    }\n    break;\n  case lang_assignment_statement_enum:\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    paVar8 = (s->input_section).section;\n    tree = (etree_type *)paVar8->prev;\n    paVar20 = os->bfd_section;\n    if (paVar8->next == (bfd_section *)0x8) {\n      bVar7 = false;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\nLAB_0001fe56:\n      exp_fold_tree(tree,paVar20,&print_dot);\n      bVar19 = expld.result.value;\n      paVar8 = (s->input_section).section;\n      if (expld.result.valid_p == 0) goto LAB_0001f610;\n      if (paVar8->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_0001fea7:\n          bVar19 = expld.result.value + (expld.result.section)->vma;\n        }\n        minfo("0x%V",bVar19);\n        if (bVar7) {\nLAB_0001fec9:\n          print_dot = bVar19;\n        }\n      }\n      else {\n        if (bVar7) {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n          goto LAB_0001fec9;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar15 = bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1);\n          if (iVar15 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n        }\n      }\n    }\n    else {\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar8->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\n      if (paVar8->next != (bfd_section *)0x5) goto LAB_0001fe56;\n      expld.result.valid_p = 0;\nLAB_0001f610:\n      if (paVar8->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n    }\n    expld.assign_name = (char *)0x0;\n    minfo("                ");\n    exp_print_tree((etree_type *)(s->output_section_statement).children.head);\n    print_nl();\n    break;\n  case lang_input_statement_enum:\n    pcVar9 = (s->wild_statement).filename;\n    if (pcVar9 == (char *)0x0) {\n      return;\n    }\n    if (((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->rawsize & 0x20000) != 0)) {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto LAB_0001f93c;\n  case lang_address_statement_enum:\n    pcVar12 = (s->wild_statement).filename;\n    pcVar9 = (char *)dcgettext(0,"Address of section %s set to ",5);\n    minfo(pcVar9,pcVar12);\n    exp_print_tree((s->data_statement).exp);\n    print_nl();\n    break;\n  case lang_wild_statement_enum:\n    print_space();\n    if ((s->wild_statement).exclude_name_list != (name_list *)0x0) {\n      pcVar12 = ((s->wild_statement).exclude_name_list)->name;\n      minfo("EXCLUDE_FILE(%s",pcVar12);\n      for (pnVar2 = ((s->wild_statement).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n          pnVar2 = pnVar2->next) {\n        pcVar12 = pnVar2->name;\n        minfo(" %s",pcVar12);\n      }\n      minfo(") ",pcVar12);\n    }\n    if ((s->wild_statement).filenames_sorted != 0) {\n      minfo("SORT_BY_NAME(");\n    }\n    if ((s->wild_statement).filename == (char *)0x0) {\n      minfo("*");\n    }\n    else {\n      minfo("%s",(s->wild_statement).filename);\n    }\n    if ((s->wild_statement).filenames_sorted != 0) {\n      minfo(")");\n    }\n    minfo("(");\n    for (pwVar3 = (s->wild_statement).section_list; pwVar3 != (wildcard_list *)0x0;\n        pwVar3 = pwVar3->next) {\n      switch((pwVar3->spec).sorted) {\n      default:\n        iVar15 = 0;\n        break;\n      case by_name:\n        iVar15 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar15 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar15 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar15 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        iVar15 = 1;\n        minfo("SORT_NONE(");\n        break;\n      case by_init_priority:\n        iVar15 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }\n      pnVar2 = (pwVar3->spec).exclude_name_list;\n      if (pnVar2 != (name_list *)0x0) {\n        pcVar12 = pnVar2->name;\n        minfo("EXCLUDE_FILE(%s",pcVar12);\n        for (pnVar2 = ((pwVar3->spec).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n            pnVar2 = pnVar2->next) {\n          pcVar12 = pnVar2->name;\n          minfo(" %s",pcVar12);\n        }\n        minfo(") ",pcVar12);\n      }\n      pcVar12 = (pwVar3->spec).name;\n      if (pcVar12 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar12);\n      }\n      if ((iVar15 != 0) && (minfo(")"), iVar15 != 1)) {\n        minfo(")");\n      }\n      if (pwVar3->next == (wildcard_list *)0x0) break;\n      minfo(" ");\n    }\n    minfo(")");\n    print_nl();\n    for (plVar6 = (s->wild_statement).children.head; plVar6 != (lang_statement_union_type *)0x0;\n        plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,os);\n    }\n    break;\n  case lang_input_section_enum:\n    print_input_section((s->input_section).section,0);\n    return;\n  case lang_object_symbols_statement_enum:\n    minfo(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case lang_fill_statement_enum:\n    fwrite(" FILL mask 0x",1,0xd,(FILE *)config.map_file);\n    pfVar4 = (s->fill_statement).fill;\n    sVar5 = pfVar4->size;\n    puVar14 = pfVar4->data;\n    if (sVar5 != 0) {\n      do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);\n    }\n    fputc(10,(FILE *)config.map_file);\n    break;\n  case lang_data_statement_enum:\n    init_opb();\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    plVar17 = (s->wild_statement).children.head;\n    if ((s->output_section_statement).prev != (lang_output_section_statement_struct *)0x0) {\n      plVar17 = (lang_statement_union *)\n                ((int)&((s->output_section_statement).prev)->bfd_section->name + (int)plVar17);\n    }\n    switch((s->data_statement).type) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      sVar16 = lang_wild_statement_enum;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      sVar16 = lang_input_statement_enum;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      sVar16 = lang_assignment_statement_enum;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");\n    }\n    sVar13 = 1 << ((byte)opb_shift & 0x1f);\n    if (sVar16 <= sVar13) {\n      sVar16 = sVar13;\n    }\n    minfo("0x%V %W %s 0x%v",plVar17,sVar16 >> ((byte)opb_shift & 0x1f),pcVar12,\n          (s->wild_statement).section_list);\n    if (((s->reloc_statement).howto)->bitsize != 7) {\n      print_space();\n      exp_print_tree((s->data_statement).exp);\n    }\n    print_nl();\n    print_dot = (int)plVar17 + (sVar16 >> ((byte)opb_shift & 0x1f));\n    break;\n  case lang_reloc_statement_enum:\n    init_opb();\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    p_Var18 = (s->wild_statement).walk_wild_section_handler;\n    if ((s->reloc_statement).output_section != (asection *)0x0) {\n      p_Var18 = p_Var18 + ((s->reloc_statement).output_section)->vma;\n    }\n    uVar10 = bfd_get_reloc_size((s->wild_statement).filenames_sorted);\n    minfo("0x%V %W RELOC %s ",p_Var18,uVar10 >> ((byte)opb_shift & 0x1f),\n          ((s->reloc_statement).howto)->name);\n    if ((s->wild_statement).keep_sections == 0) {\n      minfo("%s+",((s->wild_statement).section_list)->next);\n    }\n    else {\n      minfo("%s+",(s->wild_statement).keep_sections);\n    }\n    exp_print_tree((etree_type *)(s->wild_statement).children.head);\n    print_nl();\n    print_dot = (bfd_vma)(p_Var18 + (uVar10 >> ((byte)opb_shift & 0x1f)));\n    break;\n  case lang_target_statement_enum:\n    pcVar9 = (s->wild_statement).filename;\n    pcVar12 = "TARGET(%s)\n";\nLAB_0001f93c:\n    fprintf((FILE *)config.map_file,pcVar12,pcVar9);\n    break;\n  case lang_output_statement_enum:\n    pcVar12 = (s->wild_statement).filename;\n    minfo("OUTPUT(%s",pcVar12);\n    if (output_target != (char *)0x0) {\n      pcVar12 = output_target;\n      minfo(" %s",output_target);\n    }\n    minfo(")\n",pcVar12);\n    break;\n  case lang_padding_statement_enum:\n    init_opb();\n    minfo(" *fill*");\n    iVar15 = 9;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    local_2c = (s->wild_statement).filename;\n    if ((s->output_section_statement).next != (lang_output_section_statement_struct *)0x0) {\n      local_2c = local_2c + (int)((s->output_section_statement).next)->bfd_section;\n    }\n    minfo("0x%V %W ",local_2c,(s->padding_statement).size >> ((byte)opb_shift & 0x1f));\n    pfVar4 = (s->padding_statement).fill;\n    sVar5 = pfVar4->size;\n    if (sVar5 != 0) {\n      puVar14 = pfVar4->data;\n      do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);\n    }\n    print_nl();\n    print_dot = (bfd_vma)(local_2c + ((s->padding_statement).size >> ((byte)opb_shift & 0x1f)));\n    break;\n  case lang_group_statement_enum:\n    fwrite("START GROUP\n",1,0xc,(FILE *)config.map_file);\n    for (plVar6 = (s->output_section_statement).children.head;\n        plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,os);\n    }\n    fwrite("END GROUP\n",1,10,(FILE *)config.map_file);\n    break;\n  case lang_insert_statement_enum:\n    pcVar12 = "BEFORE";\n    if ((s->wild_statement).filenames_sorted == 0) {\n      pcVar12 = "AFTER";\n    }\n    minfo("INSERT %s %s\n",pcVar12,(s->wild_statement).filename);\n    break;\n  case lang_constructors_statement_enum:\n    if (constructor_list.head != (lang_statement_union *)0x0) {\n      if (constructors_sorted == 0) {\n        minfo(" CONSTRUCTORS\n");\n        plVar6 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar6 = constructor_list.head;\n      }\n      for (; plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n        print_statement(plVar6,os);\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf((FILE *)config.map_file,pcVar12,sVar16);\n    info_assert("../../ld/ldlang.c",0x11bc);\n  }" switch (parenthesized_expression "(sVar16)" ( identifier )) (compound_statement "{\n  case lang_output_section_statement_enum:\n    if (s != (lang_statement_union_type *)abs_output_section) {\n      paVar20 = (s->output_section_statement).bfd_section;\n      minfo("\n%s",(s->wild_statement).children.head);\n      if (paVar20 != (asection *)0x0) {\n        print_dot = paVar20->vma;\n        sVar11 = strlen((s->output_section_statement).name);\n        if (0xe < sVar11) {\n          print_nl();\n          sVar11 = 0;\n        }\n        do {\n          print_space();\n          sVar11 = sVar11 + 1;\n        } while (sVar11 != 0x10);\n        minfo("0x%V %W",paVar20->vma,paVar20->size >> ((byte)opb_shift & 0x1f));\n        bVar19 = paVar20->lma;\n        if (paVar20->vma != bVar19) {\n          pcVar12 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar12,bVar19);\n        }\n        if ((s->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n          exp_fold_tree((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&print_dot);\n        }\n      }\n      print_nl();\n    }\n    for (plVar6 = (s->output_section_statement).children.head;\n        plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,&s->output_section_statement);\n    }\n    break;\n  case lang_assignment_statement_enum:\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    paVar8 = (s->input_section).section;\n    tree = (etree_type *)paVar8->prev;\n    paVar20 = os->bfd_section;\n    if (paVar8->next == (bfd_section *)0x8) {\n      bVar7 = false;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\nLAB_0001fe56:\n      exp_fold_tree(tree,paVar20,&print_dot);\n      bVar19 = expld.result.value;\n      paVar8 = (s->input_section).section;\n      if (expld.result.valid_p == 0) goto LAB_0001f610;\n      if (paVar8->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_0001fea7:\n          bVar19 = expld.result.value + (expld.result.section)->vma;\n        }\n        minfo("0x%V",bVar19);\n        if (bVar7) {\nLAB_0001fec9:\n          print_dot = bVar19;\n        }\n      }\n      else {\n        if (bVar7) {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n          goto LAB_0001fec9;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar15 = bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1);\n          if (iVar15 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n        }\n      }\n    }\n    else {\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar8->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\n      if (paVar8->next != (bfd_section *)0x5) goto LAB_0001fe56;\n      expld.result.valid_p = 0;\nLAB_0001f610:\n      if (paVar8->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n    }\n    expld.assign_name = (char *)0x0;\n    minfo("                ");\n    exp_print_tree((etree_type *)(s->output_section_statement).children.head);\n    print_nl();\n    break;\n  case lang_input_statement_enum:\n    pcVar9 = (s->wild_statement).filename;\n    if (pcVar9 == (char *)0x0) {\n      return;\n    }\n    if (((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->rawsize & 0x20000) != 0)) {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto LAB_0001f93c;\n  case lang_address_statement_enum:\n    pcVar12 = (s->wild_statement).filename;\n    pcVar9 = (char *)dcgettext(0,"Address of section %s set to ",5);\n    minfo(pcVar9,pcVar12);\n    exp_print_tree((s->data_statement).exp);\n    print_nl();\n    break;\n  case lang_wild_statement_enum:\n    print_space();\n    if ((s->wild_statement).exclude_name_list != (name_list *)0x0) {\n      pcVar12 = ((s->wild_statement).exclude_name_list)->name;\n      minfo("EXCLUDE_FILE(%s",pcVar12);\n      for (pnVar2 = ((s->wild_statement).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n          pnVar2 = pnVar2->next) {\n        pcVar12 = pnVar2->name;\n        minfo(" %s",pcVar12);\n      }\n      minfo(") ",pcVar12);\n    }\n    if ((s->wild_statement).filenames_sorted != 0) {\n      minfo("SORT_BY_NAME(");\n    }\n    if ((s->wild_statement).filename == (char *)0x0) {\n      minfo("*");\n    }\n    else {\n      minfo("%s",(s->wild_statement).filename);\n    }\n    if ((s->wild_statement).filenames_sorted != 0) {\n      minfo(")");\n    }\n    minfo("(");\n    for (pwVar3 = (s->wild_statement).section_list; pwVar3 != (wildcard_list *)0x0;\n        pwVar3 = pwVar3->next) {\n      switch((pwVar3->spec).sorted) {\n      default:\n        iVar15 = 0;\n        break;\n      case by_name:\n        iVar15 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar15 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar15 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar15 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        iVar15 = 1;\n        minfo("SORT_NONE(");\n        break;\n      case by_init_priority:\n        iVar15 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }\n      pnVar2 = (pwVar3->spec).exclude_name_list;\n      if (pnVar2 != (name_list *)0x0) {\n        pcVar12 = pnVar2->name;\n        minfo("EXCLUDE_FILE(%s",pcVar12);\n        for (pnVar2 = ((pwVar3->spec).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n            pnVar2 = pnVar2->next) {\n          pcVar12 = pnVar2->name;\n          minfo(" %s",pcVar12);\n        }\n        minfo(") ",pcVar12);\n      }\n      pcVar12 = (pwVar3->spec).name;\n      if (pcVar12 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar12);\n      }\n      if ((iVar15 != 0) && (minfo(")"), iVar15 != 1)) {\n        minfo(")");\n      }\n      if (pwVar3->next == (wildcard_list *)0x0) break;\n      minfo(" ");\n    }\n    minfo(")");\n    print_nl();\n    for (plVar6 = (s->wild_statement).children.head; plVar6 != (lang_statement_union_type *)0x0;\n        plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,os);\n    }\n    break;\n  case lang_input_section_enum:\n    print_input_section((s->input_section).section,0);\n    return;\n  case lang_object_symbols_statement_enum:\n    minfo(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case lang_fill_statement_enum:\n    fwrite(" FILL mask 0x",1,0xd,(FILE *)config.map_file);\n    pfVar4 = (s->fill_statement).fill;\n    sVar5 = pfVar4->size;\n    puVar14 = pfVar4->data;\n    if (sVar5 != 0) {\n      do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);\n    }\n    fputc(10,(FILE *)config.map_file);\n    break;\n  case lang_data_statement_enum:\n    init_opb();\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    plVar17 = (s->wild_statement).children.head;\n    if ((s->output_section_statement).prev != (lang_output_section_statement_struct *)0x0) {\n      plVar17 = (lang_statement_union *)\n                ((int)&((s->output_section_statement).prev)->bfd_section->name + (int)plVar17);\n    }\n    switch((s->data_statement).type) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      sVar16 = lang_wild_statement_enum;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      sVar16 = lang_input_statement_enum;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      sVar16 = lang_assignment_statement_enum;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");\n    }\n    sVar13 = 1 << ((byte)opb_shift & 0x1f);\n    if (sVar16 <= sVar13) {\n      sVar16 = sVar13;\n    }\n    minfo("0x%V %W %s 0x%v",plVar17,sVar16 >> ((byte)opb_shift & 0x1f),pcVar12,\n          (s->wild_statement).section_list);\n    if (((s->reloc_statement).howto)->bitsize != 7) {\n      print_space();\n      exp_print_tree((s->data_statement).exp);\n    }\n    print_nl();\n    print_dot = (int)plVar17 + (sVar16 >> ((byte)opb_shift & 0x1f));\n    break;\n  case lang_reloc_statement_enum:\n    init_opb();\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    p_Var18 = (s->wild_statement).walk_wild_section_handler;\n    if ((s->reloc_statement).output_section != (asection *)0x0) {\n      p_Var18 = p_Var18 + ((s->reloc_statement).output_section)->vma;\n    }\n    uVar10 = bfd_get_reloc_size((s->wild_statement).filenames_sorted);\n    minfo("0x%V %W RELOC %s ",p_Var18,uVar10 >> ((byte)opb_shift & 0x1f),\n          ((s->reloc_statement).howto)->name);\n    if ((s->wild_statement).keep_sections == 0) {\n      minfo("%s+",((s->wild_statement).section_list)->next);\n    }\n    else {\n      minfo("%s+",(s->wild_statement).keep_sections);\n    }\n    exp_print_tree((etree_type *)(s->wild_statement).children.head);\n    print_nl();\n    print_dot = (bfd_vma)(p_Var18 + (uVar10 >> ((byte)opb_shift & 0x1f)));\n    break;\n  case lang_target_statement_enum:\n    pcVar9 = (s->wild_statement).filename;\n    pcVar12 = "TARGET(%s)\n";\nLAB_0001f93c:\n    fprintf((FILE *)config.map_file,pcVar12,pcVar9);\n    break;\n  case lang_output_statement_enum:\n    pcVar12 = (s->wild_statement).filename;\n    minfo("OUTPUT(%s",pcVar12);\n    if (output_target != (char *)0x0) {\n      pcVar12 = output_target;\n      minfo(" %s",output_target);\n    }\n    minfo(")\n",pcVar12);\n    break;\n  case lang_padding_statement_enum:\n    init_opb();\n    minfo(" *fill*");\n    iVar15 = 9;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    local_2c = (s->wild_statement).filename;\n    if ((s->output_section_statement).next != (lang_output_section_statement_struct *)0x0) {\n      local_2c = local_2c + (int)((s->output_section_statement).next)->bfd_section;\n    }\n    minfo("0x%V %W ",local_2c,(s->padding_statement).size >> ((byte)opb_shift & 0x1f));\n    pfVar4 = (s->padding_statement).fill;\n    sVar5 = pfVar4->size;\n    if (sVar5 != 0) {\n      puVar14 = pfVar4->data;\n      do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);\n    }\n    print_nl();\n    print_dot = (bfd_vma)(local_2c + ((s->padding_statement).size >> ((byte)opb_shift & 0x1f)));\n    break;\n  case lang_group_statement_enum:\n    fwrite("START GROUP\n",1,0xc,(FILE *)config.map_file);\n    for (plVar6 = (s->output_section_statement).children.head;\n        plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,os);\n    }\n    fwrite("END GROUP\n",1,10,(FILE *)config.map_file);\n    break;\n  case lang_insert_statement_enum:\n    pcVar12 = "BEFORE";\n    if ((s->wild_statement).filenames_sorted == 0) {\n      pcVar12 = "AFTER";\n    }\n    minfo("INSERT %s %s\n",pcVar12,(s->wild_statement).filename);\n    break;\n  case lang_constructors_statement_enum:\n    if (constructor_list.head != (lang_statement_union *)0x0) {\n      if (constructors_sorted == 0) {\n        minfo(" CONSTRUCTORS\n");\n        plVar6 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar6 = constructor_list.head;\n      }\n      for (; plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n        print_statement(plVar6,os);\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf((FILE *)config.map_file,pcVar12,sVar16);\n    info_assert("../../ld/ldlang.c",0x11bc);\n  }" { (case_statement "case lang_output_section_statement_enum:\n    if (s != (lang_statement_union_type *)abs_output_section) {\n      paVar20 = (s->output_section_statement).bfd_section;\n      minfo("\n%s",(s->wild_statement).children.head);\n      if (paVar20 != (asection *)0x0) {\n        print_dot = paVar20->vma;\n        sVar11 = strlen((s->output_section_statement).name);\n        if (0xe < sVar11) {\n          print_nl();\n          sVar11 = 0;\n        }\n        do {\n          print_space();\n          sVar11 = sVar11 + 1;\n        } while (sVar11 != 0x10);\n        minfo("0x%V %W",paVar20->vma,paVar20->size >> ((byte)opb_shift & 0x1f));\n        bVar19 = paVar20->lma;\n        if (paVar20->vma != bVar19) {\n          pcVar12 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar12,bVar19);\n        }\n        if ((s->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n          exp_fold_tree((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&print_dot);\n        }\n      }\n      print_nl();\n    }\n    for (plVar6 = (s->output_section_statement).children.head;\n        plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,&s->output_section_statement);\n    }\n    break;" case identifier : (if_statement "if (s != (lang_statement_union_type *)abs_output_section) {\n      paVar20 = (s->output_section_statement).bfd_section;\n      minfo("\n%s",(s->wild_statement).children.head);\n      if (paVar20 != (asection *)0x0) {\n        print_dot = paVar20->vma;\n        sVar11 = strlen((s->output_section_statement).name);\n        if (0xe < sVar11) {\n          print_nl();\n          sVar11 = 0;\n        }\n        do {\n          print_space();\n          sVar11 = sVar11 + 1;\n        } while (sVar11 != 0x10);\n        minfo("0x%V %W",paVar20->vma,paVar20->size >> ((byte)opb_shift & 0x1f));\n        bVar19 = paVar20->lma;\n        if (paVar20->vma != bVar19) {\n          pcVar12 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar12,bVar19);\n        }\n        if ((s->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n          exp_fold_tree((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&print_dot);\n        }\n      }\n      print_nl();\n    }" if (parenthesized_expression "(s != (lang_statement_union_type *)abs_output_section)" ( (binary_expression "s != (lang_statement_union_type *)abs_output_section" identifier != (cast_expression "(lang_statement_union_type *)abs_output_section" ( (type_descriptor "lang_statement_union_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      paVar20 = (s->output_section_statement).bfd_section;\n      minfo("\n%s",(s->wild_statement).children.head);\n      if (paVar20 != (asection *)0x0) {\n        print_dot = paVar20->vma;\n        sVar11 = strlen((s->output_section_statement).name);\n        if (0xe < sVar11) {\n          print_nl();\n          sVar11 = 0;\n        }\n        do {\n          print_space();\n          sVar11 = sVar11 + 1;\n        } while (sVar11 != 0x10);\n        minfo("0x%V %W",paVar20->vma,paVar20->size >> ((byte)opb_shift & 0x1f));\n        bVar19 = paVar20->lma;\n        if (paVar20->vma != bVar19) {\n          pcVar12 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar12,bVar19);\n        }\n        if ((s->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n          exp_fold_tree((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&print_dot);\n        }\n      }\n      print_nl();\n    }" { (expression_statement "paVar20 = (s->output_section_statement).bfd_section;" (assignment_expression "paVar20 = (s->output_section_statement).bfd_section" identifier = (field_expression "(s->output_section_statement).bfd_section" (parenthesized_expression "(s->output_section_statement)" ( (field_expression "s->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "minfo("\n%s",(s->wild_statement).children.head);" (call_expression "minfo("\n%s",(s->wild_statement).children.head)" identifier (argument_list "("\n%s",(s->wild_statement).children.head)" ( (string_literal ""\n%s"" " escape_sequence string_content ") , (field_expression "(s->wild_statement).children.head" (field_expression "(s->wild_statement).children" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) ;) (if_statement "if (paVar20 != (asection *)0x0) {\n        print_dot = paVar20->vma;\n        sVar11 = strlen((s->output_section_statement).name);\n        if (0xe < sVar11) {\n          print_nl();\n          sVar11 = 0;\n        }\n        do {\n          print_space();\n          sVar11 = sVar11 + 1;\n        } while (sVar11 != 0x10);\n        minfo("0x%V %W",paVar20->vma,paVar20->size >> ((byte)opb_shift & 0x1f));\n        bVar19 = paVar20->lma;\n        if (paVar20->vma != bVar19) {\n          pcVar12 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar12,bVar19);\n        }\n        if ((s->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n          exp_fold_tree((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&print_dot);\n        }\n      }" if (parenthesized_expression "(paVar20 != (asection *)0x0)" ( (binary_expression "paVar20 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        print_dot = paVar20->vma;\n        sVar11 = strlen((s->output_section_statement).name);\n        if (0xe < sVar11) {\n          print_nl();\n          sVar11 = 0;\n        }\n        do {\n          print_space();\n          sVar11 = sVar11 + 1;\n        } while (sVar11 != 0x10);\n        minfo("0x%V %W",paVar20->vma,paVar20->size >> ((byte)opb_shift & 0x1f));\n        bVar19 = paVar20->lma;\n        if (paVar20->vma != bVar19) {\n          pcVar12 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar12,bVar19);\n        }\n        if ((s->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n          exp_fold_tree((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&print_dot);\n        }\n      }" { (expression_statement "print_dot = paVar20->vma;" (assignment_expression "print_dot = paVar20->vma" identifier = (field_expression "paVar20->vma" identifier -> field_identifier)) ;) (expression_statement "sVar11 = strlen((s->output_section_statement).name);" (assignment_expression "sVar11 = strlen((s->output_section_statement).name)" identifier = (call_expression "strlen((s->output_section_statement).name)" identifier (argument_list "((s->output_section_statement).name)" ( (field_expression "(s->output_section_statement).name" (parenthesized_expression "(s->output_section_statement)" ( (field_expression "s->output_section_statement" identifier -> field_identifier) )) . field_identifier) )))) ;) (if_statement "if (0xe < sVar11) {\n          print_nl();\n          sVar11 = 0;\n        }" if (parenthesized_expression "(0xe < sVar11)" ( (binary_expression "0xe < sVar11" number_literal < identifier) )) (compound_statement "{\n          print_nl();\n          sVar11 = 0;\n        }" { (expression_statement "print_nl();" (call_expression "print_nl()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar11 = 0;" (assignment_expression "sVar11 = 0" identifier = number_literal) ;) })) (do_statement "do {\n          print_space();\n          sVar11 = sVar11 + 1;\n        } while (sVar11 != 0x10);" do (compound_statement "{\n          print_space();\n          sVar11 = sVar11 + 1;\n        }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar11 = sVar11 + 1;" (assignment_expression "sVar11 = sVar11 + 1" identifier = (binary_expression "sVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar11 != 0x10)" ( (binary_expression "sVar11 != 0x10" identifier != number_literal) )) ;) (expression_statement "minfo("0x%V %W",paVar20->vma,paVar20->size >> ((byte)opb_shift & 0x1f));" (call_expression "minfo("0x%V %W",paVar20->vma,paVar20->size >> ((byte)opb_shift & 0x1f))" identifier (argument_list "("0x%V %W",paVar20->vma,paVar20->size >> ((byte)opb_shift & 0x1f))" ( (string_literal ""0x%V %W"" " string_content ") , (field_expression "paVar20->vma" identifier -> field_identifier) , (binary_expression "paVar20->size >> ((byte)opb_shift & 0x1f)" (field_expression "paVar20->size" identifier -> field_identifier) >> (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) ;) (expression_statement "bVar19 = paVar20->lma;" (assignment_expression "bVar19 = paVar20->lma" identifier = (field_expression "paVar20->lma" identifier -> field_identifier)) ;) (if_statement "if (paVar20->vma != bVar19) {\n          pcVar12 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar12,bVar19);\n        }" if (parenthesized_expression "(paVar20->vma != bVar19)" ( (binary_expression "paVar20->vma != bVar19" (field_expression "paVar20->vma" identifier -> field_identifier) != identifier) )) (compound_statement "{\n          pcVar12 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar12,bVar19);\n        }" { (expression_statement "pcVar12 = (char *)dcgettext(0," load address 0x%V",5);" (assignment_expression "pcVar12 = (char *)dcgettext(0," load address 0x%V",5)" identifier = (cast_expression "(char *)dcgettext(0," load address 0x%V",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0," load address 0x%V",5)" identifier (argument_list "(0," load address 0x%V",5)" ( number_literal , (string_literal "" load address 0x%V"" " string_content ") , number_literal ))))) ;) (expression_statement "minfo(pcVar12,bVar19);" (call_expression "minfo(pcVar12,bVar19)" identifier (argument_list "(pcVar12,bVar19)" ( identifier , identifier ))) ;) })) (if_statement "if ((s->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n          exp_fold_tree((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&print_dot);\n        }" if (parenthesized_expression "((s->output_section_statement).update_dot_tree != (etree_type *)0x0)" ( (binary_expression "(s->output_section_statement).update_dot_tree != (etree_type *)0x0" (field_expression "(s->output_section_statement).update_dot_tree" (parenthesized_expression "(s->output_section_statement)" ( (field_expression "s->output_section_statement" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(etree_type *)0x0" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          exp_fold_tree((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&print_dot);\n        }" { (expression_statement "exp_fold_tree((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&print_dot);" (call_expression "exp_fold_tree((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&print_dot)" identifier (argument_list "((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&print_dot)" ( (field_expression "(s->output_section_statement).update_dot_tree" (parenthesized_expression "(s->output_section_statement)" ( (field_expression "s->output_section_statement" identifier -> field_identifier) )) . field_identifier) , (cast_expression "(asection *)(PTR__bfd_std_section_000bafc4 + 0x150)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x150)" ( (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal) ))) , (pointer_expression "&print_dot" & identifier) ))) ;) })) })) (expression_statement "print_nl();" (call_expression "print_nl()" identifier (argument_list "()" ( ))) ;) })) (for_statement "for (plVar6 = (s->output_section_statement).children.head;\n        plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,&s->output_section_statement);\n    }" for ( (assignment_expression "plVar6 = (s->output_section_statement).children.head" identifier = (field_expression "(s->output_section_statement).children.head" (field_expression "(s->output_section_statement).children" (parenthesized_expression "(s->output_section_statement)" ( (field_expression "s->output_section_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ; (binary_expression "plVar6 != (lang_statement_union_type *)0x0" identifier != (cast_expression "(lang_statement_union_type *)0x0" ( (type_descriptor "lang_statement_union_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar6 = (plVar6->header).next" identifier = (field_expression "(plVar6->header).next" (parenthesized_expression "(plVar6->header)" ( (field_expression "plVar6->header" identifier -> field_identifier) )) . field_identifier)) ) (compound_statement "{\n      print_statement(plVar6,&s->output_section_statement);\n    }" { (expression_statement "print_statement(plVar6,&s->output_section_statement);" (call_expression "print_statement(plVar6,&s->output_section_statement)" identifier (argument_list "(plVar6,&s->output_section_statement)" ( identifier , (pointer_expression "&s->output_section_statement" & (field_expression "s->output_section_statement" identifier -> field_identifier)) ))) ;) })) (break_statement "break;" break ;)) (case_statement "case lang_assignment_statement_enum:\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    paVar8 = (s->input_section).section;\n    tree = (etree_type *)paVar8->prev;\n    paVar20 = os->bfd_section;\n    if (paVar8->next == (bfd_section *)0x8) {\n      bVar7 = false;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\nLAB_0001fe56:\n      exp_fold_tree(tree,paVar20,&print_dot);\n      bVar19 = expld.result.value;\n      paVar8 = (s->input_section).section;\n      if (expld.result.valid_p == 0) goto LAB_0001f610;\n      if (paVar8->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_0001fea7:\n          bVar19 = expld.result.value + (expld.result.section)->vma;\n        }\n        minfo("0x%V",bVar19);\n        if (bVar7) {\nLAB_0001fec9:\n          print_dot = bVar19;\n        }\n      }\n      else {\n        if (bVar7) {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n          goto LAB_0001fec9;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar15 = bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1);\n          if (iVar15 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n        }\n      }\n    }\n    else {\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar8->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\n      if (paVar8->next != (bfd_section *)0x5) goto LAB_0001fe56;\n      expld.result.valid_p = 0;\nLAB_0001f610:\n      if (paVar8->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n    }\n    expld.assign_name = (char *)0x0;\n    minfo("                ");\n    exp_print_tree((etree_type *)(s->output_section_statement).children.head);\n    print_nl();\n    break;" case identifier : (expression_statement "iVar15 = 0x10;" (assignment_expression "iVar15 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);" do (compound_statement "{\n      print_space();\n      iVar15 = iVar15 + -1;\n    }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) ;) (expression_statement "paVar8 = (s->input_section).section;" (assignment_expression "paVar8 = (s->input_section).section" identifier = (field_expression "(s->input_section).section" (parenthesized_expression "(s->input_section)" ( (field_expression "s->input_section" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "tree = (etree_type *)paVar8->prev;" (assignment_expression "tree = (etree_type *)paVar8->prev" identifier = (cast_expression "(etree_type *)paVar8->prev" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar8->prev" identifier -> field_identifier))) ;) (expression_statement "paVar20 = os->bfd_section;" (assignment_expression "paVar20 = os->bfd_section" identifier = (field_expression "os->bfd_section" identifier -> field_identifier)) ;) (if_statement "if (paVar8->next == (bfd_section *)0x8) {\n      bVar7 = false;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\nLAB_0001fe56:\n      exp_fold_tree(tree,paVar20,&print_dot);\n      bVar19 = expld.result.value;\n      paVar8 = (s->input_section).section;\n      if (expld.result.valid_p == 0) goto LAB_0001f610;\n      if (paVar8->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_0001fea7:\n          bVar19 = expld.result.value + (expld.result.section)->vma;\n        }\n        minfo("0x%V",bVar19);\n        if (bVar7) {\nLAB_0001fec9:\n          print_dot = bVar19;\n        }\n      }\n      else {\n        if (bVar7) {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n          goto LAB_0001fec9;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar15 = bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1);\n          if (iVar15 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n        }\n      }\n    }\n    else {\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar8->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\n      if (paVar8->next != (bfd_section *)0x5) goto LAB_0001fe56;\n      expld.result.valid_p = 0;\nLAB_0001f610:\n      if (paVar8->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n    }" if (parenthesized_expression "(paVar8->next == (bfd_section *)0x8)" ( (binary_expression "paVar8->next == (bfd_section *)0x8" (field_expression "paVar8->next" identifier -> field_identifier) == (cast_expression "(bfd_section *)0x8" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      bVar7 = false;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\nLAB_0001fe56:\n      exp_fold_tree(tree,paVar20,&print_dot);\n      bVar19 = expld.result.value;\n      paVar8 = (s->input_section).section;\n      if (expld.result.valid_p == 0) goto LAB_0001f610;\n      if (paVar8->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_0001fea7:\n          bVar19 = expld.result.value + (expld.result.section)->vma;\n        }\n        minfo("0x%V",bVar19);\n        if (bVar7) {\nLAB_0001fec9:\n          print_dot = bVar19;\n        }\n      }\n      else {\n        if (bVar7) {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n          goto LAB_0001fec9;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar15 = bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1);\n          if (iVar15 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n        }\n      }\n    }" { (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (if_statement "if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }" if (parenthesized_expression "(paVar20 == (asection *)0x0)" ( (binary_expression "paVar20 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }" { (expression_statement "paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);" (assignment_expression "paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)" identifier = (cast_expression "(asection *)(PTR__bfd_std_section_000bafc4 + 0x150)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x150)" ( (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal) )))) ;) })) (labeled_statement "LAB_0001fe56:\n      exp_fold_tree(tree,paVar20,&print_dot);" statement_identifier : (expression_statement "exp_fold_tree(tree,paVar20,&print_dot);" (call_expression "exp_fold_tree(tree,paVar20,&print_dot)" identifier (argument_list "(tree,paVar20,&print_dot)" ( identifier , identifier , (pointer_expression "&print_dot" & identifier) ))) ;)) (expression_statement "bVar19 = expld.result.value;" (assignment_expression "bVar19 = expld.result.value" identifier = (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier)) ;) (expression_statement "paVar8 = (s->input_section).section;" (assignment_expression "paVar8 = (s->input_section).section" identifier = (field_expression "(s->input_section).section" (parenthesized_expression "(s->input_section)" ( (field_expression "s->input_section" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (expld.result.valid_p == 0) goto LAB_0001f610;" if (parenthesized_expression "(expld.result.valid_p == 0)" ( (binary_expression "expld.result.valid_p == 0" (field_expression "expld.result.valid_p" (field_expression "expld.result" identifier . field_identifier) . field_identifier) == number_literal) )) (goto_statement "goto LAB_0001f610;" goto statement_identifier ;)) (if_statement "if (paVar8->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_0001fea7:\n          bVar19 = expld.result.value + (expld.result.section)->vma;\n        }\n        minfo("0x%V",bVar19);\n        if (bVar7) {\nLAB_0001fec9:\n          print_dot = bVar19;\n        }\n      }\n      else {\n        if (bVar7) {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n          goto LAB_0001fec9;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar15 = bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1);\n          if (iVar15 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n        }\n      }" if (parenthesized_expression "(paVar8->next == (bfd_section *)0x8)" ( (binary_expression "paVar8->next == (bfd_section *)0x8" (field_expression "paVar8->next" identifier -> field_identifier) == (cast_expression "(bfd_section *)0x8" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (expld.result.section != (asection *)0x0) {\nLAB_0001fea7:\n          bVar19 = expld.result.value + (expld.result.section)->vma;\n        }\n        minfo("0x%V",bVar19);\n        if (bVar7) {\nLAB_0001fec9:\n          print_dot = bVar19;\n        }\n      }" { (if_statement "if (expld.result.section != (asection *)0x0) {\nLAB_0001fea7:\n          bVar19 = expld.result.value + (expld.result.section)->vma;\n        }" if (parenthesized_expression "(expld.result.section != (asection *)0x0)" ( (binary_expression "expld.result.section != (asection *)0x0" (field_expression "expld.result.section" (field_expression "expld.result" identifier . field_identifier) . field_identifier) != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001fea7:\n          bVar19 = expld.result.value + (expld.result.section)->vma;\n        }" { (labeled_statement "LAB_0001fea7:\n          bVar19 = expld.result.value + (expld.result.section)->vma;" statement_identifier : (expression_statement "bVar19 = expld.result.value + (expld.result.section)->vma;" (assignment_expression "bVar19 = expld.result.value + (expld.result.section)->vma" identifier = (binary_expression "expld.result.value + (expld.result.section)->vma" (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier) + (field_expression "(expld.result.section)->vma" (parenthesized_expression "(expld.result.section)" ( (field_expression "expld.result.section" (field_expression "expld.result" identifier . field_identifier) . field_identifier) )) -> field_identifier))) ;)) })) (expression_statement "minfo("0x%V",bVar19);" (call_expression "minfo("0x%V",bVar19)" identifier (argument_list "("0x%V",bVar19)" ( (string_literal ""0x%V"" " string_content ") , identifier ))) ;) (if_statement "if (bVar7) {\nLAB_0001fec9:\n          print_dot = bVar19;\n        }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\nLAB_0001fec9:\n          print_dot = bVar19;\n        }" { (labeled_statement "LAB_0001fec9:\n          print_dot = bVar19;" statement_identifier : (expression_statement "print_dot = bVar19;" (assignment_expression "print_dot = bVar19" identifier = identifier) ;)) })) }) (else_clause "else {\n        if (bVar7) {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n          goto LAB_0001fec9;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar15 = bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1);\n          if (iVar15 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n        }\n      }" else (compound_statement "{\n        if (bVar7) {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n          goto LAB_0001fec9;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar15 = bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1);\n          if (iVar15 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n        }\n      }" { (if_statement "if (bVar7) {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n          goto LAB_0001fec9;\n        }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n          goto LAB_0001fec9;\n        }" { (if_statement "if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;" if (parenthesized_expression "(expld.result.section != (asection *)0x0)" ( (binary_expression "expld.result.section != (asection *)0x0" (field_expression "expld.result.section" (field_expression "expld.result" identifier . field_identifier) . field_identifier) != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001fea7;" goto statement_identifier ;)) (expression_statement "minfo("0x%V",expld.result.value);" (call_expression "minfo("0x%V",expld.result.value)" identifier (argument_list "("0x%V",expld.result.value)" ( (string_literal ""0x%V"" " string_content ") , (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier) ))) ;) (goto_statement "goto LAB_0001fec9;" goto statement_identifier ;) })) (if_statement "if (expld.assign_name == (char *)0x0) {\n          iVar15 = bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1);\n          if (iVar15 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n        }" if (parenthesized_expression "(expld.assign_name == (char *)0x0)" ( (binary_expression "expld.assign_name == (char *)0x0" (field_expression "expld.assign_name" identifier . field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar15 = bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1);\n          if (iVar15 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));\n          }\n        }" { (expression_statement "iVar15 = bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1);" (assignment_expression "iVar15 = bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(link_info.hash,paVar8->prev,0,0,1)" identifier (argument_list "(link_info.hash,paVar8->prev,0,0,1)" ( (field_expression "link_info.hash" identifier . field_identifier) , (field_expression "paVar8->prev" identifier -> field_identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar15 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));\n          }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n            minfo("[unresolved]");\n          }" { (expression_statement "minfo("[unresolved]");" (call_expression "minfo("[unresolved]")" identifier (argument_list "("[unresolved]")" ( (string_literal ""[unresolved]"" " string_content ") ))) ;) }) (else_clause "else {\n            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));\n          }" else (compound_statement "{\n            minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));\n          }" { (expression_statement "minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c));" (call_expression "minfo("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c))" identifier (argument_list "("[0x%V]",*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c))" ( (string_literal ""[0x%V]"" " string_content ") , (binary_expression "*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18) +\n                           *(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c)" (binary_expression "*(int *)(*(int *)(iVar15 + 0x14) + 0x38) + *(int *)(iVar15 + 0x18)" (pointer_expression "*(int *)(*(int *)(iVar15 + 0x14) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0x14) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0x14) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0x14) + 0x38" (pointer_expression "*(int *)(iVar15 + 0x14)" * (cast_expression "(int *)(iVar15 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x14)" ( (binary_expression "iVar15 + 0x14" identifier + number_literal) )))) + number_literal) )))) + (pointer_expression "*(int *)(iVar15 + 0x18)" * (cast_expression "(int *)(iVar15 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) ))))) + (pointer_expression "*(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c)" * (cast_expression "(int *)(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0x14) + 0x3c) + 0x1c" (pointer_expression "*(int *)(*(int *)(iVar15 + 0x14) + 0x3c)" * (cast_expression "(int *)(*(int *)(iVar15 + 0x14) + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0x14) + 0x3c)" ( (binary_expression "*(int *)(iVar15 + 0x14) + 0x3c" (pointer_expression "*(int *)(iVar15 + 0x14)" * (cast_expression "(int *)(iVar15 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x14)" ( (binary_expression "iVar15 + 0x14" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ))) ;) }))) }) (else_clause "else {\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n        }" else (compound_statement "{\n          if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;\n          minfo("0x%V",expld.result.value);\n        }" { (if_statement "if (expld.result.section != (asection *)0x0) goto LAB_0001fea7;" if (parenthesized_expression "(expld.result.section != (asection *)0x0)" ( (binary_expression "expld.result.section != (asection *)0x0" (field_expression "expld.result.section" (field_expression "expld.result" identifier . field_identifier) . field_identifier) != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001fea7;" goto statement_identifier ;)) (expression_statement "minfo("0x%V",expld.result.value);" (call_expression "minfo("0x%V",expld.result.value)" identifier (argument_list "("0x%V",expld.result.value)" ( (string_literal ""0x%V"" " string_content ") , (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier) ))) ;) }))) }))) }) (else_clause "else {\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar8->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\n      if (paVar8->next != (bfd_section *)0x5) goto LAB_0001fe56;\n      expld.result.valid_p = 0;\nLAB_0001f610:\n      if (paVar8->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n    }" else (compound_statement "{\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar8->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }\n      if (paVar8->next != (bfd_section *)0x5) goto LAB_0001fe56;\n      expld.result.valid_p = 0;\nLAB_0001f610:\n      if (paVar8->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n    }" { (if_statement "if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        expld.assign_name = (char *)tree;\n      }" if (parenthesized_expression "((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0'))" ( (binary_expression "(*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')" (parenthesized_expression "(*(char *)tree == '.')" ( (binary_expression "*(char *)tree == '.'" (pointer_expression "*(char *)tree" * (cast_expression "(char *)tree" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (char_literal "'.'" ' character ')) )) && (parenthesized_expression "(*(char *)((int)&(tree->type).node_code + 1) == '\0')" ( (binary_expression "*(char *)((int)&(tree->type).node_code + 1) == '\0'" (pointer_expression "*(char *)((int)&(tree->type).node_code + 1)" * (cast_expression "(char *)((int)&(tree->type).node_code + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(tree->type).node_code + 1)" ( (binary_expression "(int)&(tree->type).node_code + 1" (cast_expression "(int)&(tree->type).node_code" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(tree->type).node_code" & (field_expression "(tree->type).node_code" (parenthesized_expression "(tree->type)" ( (field_expression "tree->type" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        bVar7 = true;\n      }" { (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) }) (else_clause "else {\n        bVar7 = false;\n        expld.assign_name = (char *)tree;\n      }" else (compound_statement "{\n        bVar7 = false;\n        expld.assign_name = (char *)tree;\n      }" { (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (expression_statement "expld.assign_name = (char *)tree;" (assignment_expression "expld.assign_name = (char *)tree" (field_expression "expld.assign_name" identifier . field_identifier) = (cast_expression "(char *)tree" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (expression_statement "tree = (etree_type *)paVar8->flags;" (assignment_expression "tree = (etree_type *)paVar8->flags" identifier = (cast_expression "(etree_type *)paVar8->flags" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar8->flags" identifier -> field_identifier))) ;) (if_statement "if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }" if (parenthesized_expression "(paVar20 == (asection *)0x0)" ( (binary_expression "paVar20 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n      }" { (expression_statement "paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);" (assignment_expression "paVar20 = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)" identifier = (cast_expression "(asection *)(PTR__bfd_std_section_000bafc4 + 0x150)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x150)" ( (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal) )))) ;) })) (if_statement "if (paVar8->next != (bfd_section *)0x5) goto LAB_0001fe56;" if (parenthesized_expression "(paVar8->next != (bfd_section *)0x5)" ( (binary_expression "paVar8->next != (bfd_section *)0x5" (field_expression "paVar8->next" identifier -> field_identifier) != (cast_expression "(bfd_section *)0x5" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001fe56;" goto statement_identifier ;)) (expression_statement "expld.result.valid_p = 0;" (assignment_expression "expld.result.valid_p = 0" (field_expression "expld.result.valid_p" (field_expression "expld.result" identifier . field_identifier) . field_identifier) = number_literal) ;) (labeled_statement "LAB_0001f610:\n      if (paVar8->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }" statement_identifier : (if_statement "if (paVar8->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }" if (parenthesized_expression "(paVar8->next == (bfd_section *)0x5)" ( (binary_expression "paVar8->next == (bfd_section *)0x5" (field_expression "paVar8->next" identifier -> field_identifier) == (cast_expression "(bfd_section *)0x5" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        minfo("[!provide]");\n      }" { (expression_statement "minfo("[!provide]");" (call_expression "minfo("[!provide]")" identifier (argument_list "("[!provide]")" ( (string_literal ""[!provide]"" " string_content ") ))) ;) }) (else_clause "else {\n        minfo("*undef*   ");\n      }" else (compound_statement "{\n        minfo("*undef*   ");\n      }" { (expression_statement "minfo("*undef*   ");" (call_expression "minfo("*undef*   ")" identifier (argument_list "("*undef*   ")" ( (string_literal ""*undef*   "" " string_content ") ))) ;) })))) }))) (expression_statement "expld.assign_name = (char *)0x0;" (assignment_expression "expld.assign_name = (char *)0x0" (field_expression "expld.assign_name" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "minfo("                ");" (call_expression "minfo("                ")" identifier (argument_list "("                ")" ( (string_literal ""                "" " string_content ") ))) ;) (expression_statement "exp_print_tree((etree_type *)(s->output_section_statement).children.head);" (call_expression "exp_print_tree((etree_type *)(s->output_section_statement).children.head)" identifier (argument_list "((etree_type *)(s->output_section_statement).children.head)" ( (cast_expression "(etree_type *)(s->output_section_statement).children.head" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(s->output_section_statement).children.head" (field_expression "(s->output_section_statement).children" (parenthesized_expression "(s->output_section_statement)" ( (field_expression "s->output_section_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ))) ;) (expression_statement "print_nl();" (call_expression "print_nl()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case lang_input_statement_enum:\n    pcVar9 = (s->wild_statement).filename;\n    if (pcVar9 == (char *)0x0) {\n      return;\n    }\n    if (((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->rawsize & 0x20000) != 0)) {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto LAB_0001f93c;" case identifier : (expression_statement "pcVar9 = (s->wild_statement).filename;" (assignment_expression "pcVar9 = (s->wild_statement).filename" identifier = (field_expression "(s->wild_statement).filename" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pcVar9 == (char *)0x0) {\n      return;\n    }" if (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if (((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->rawsize & 0x20000) != 0)) {\n      return;\n    }" if (parenthesized_expression "(((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->rawsize & 0x20000) != 0))" ( (binary_expression "((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->rawsize & 0x20000) != 0)" (parenthesized_expression "((s->reloc_statement).section != (asection *)0x0)" ( (binary_expression "(s->reloc_statement).section != (asection *)0x0" (field_expression "(s->reloc_statement).section" (parenthesized_expression "(s->reloc_statement)" ( (field_expression "s->reloc_statement" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((((s->reloc_statement).section)->rawsize & 0x20000) != 0)" ( (binary_expression "(((s->reloc_statement).section)->rawsize & 0x20000) != 0" (parenthesized_expression "(((s->reloc_statement).section)->rawsize & 0x20000)" ( (binary_expression "((s->reloc_statement).section)->rawsize & 0x20000" (field_expression "((s->reloc_statement).section)->rawsize" (parenthesized_expression "((s->reloc_statement).section)" ( (field_expression "(s->reloc_statement).section" (parenthesized_expression "(s->reloc_statement)" ( (field_expression "s->reloc_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "pcVar12 = "LOAD %s\n";" (assignment_expression "pcVar12 = "LOAD %s\n"" identifier = (string_literal ""LOAD %s\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0001f93c;" goto statement_identifier ;)) (case_statement "case lang_address_statement_enum:\n    pcVar12 = (s->wild_statement).filename;\n    pcVar9 = (char *)dcgettext(0,"Address of section %s set to ",5);\n    minfo(pcVar9,pcVar12);\n    exp_print_tree((s->data_statement).exp);\n    print_nl();\n    break;" case identifier : (expression_statement "pcVar12 = (s->wild_statement).filename;" (assignment_expression "pcVar12 = (s->wild_statement).filename" identifier = (field_expression "(s->wild_statement).filename" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar9 = (char *)dcgettext(0,"Address of section %s set to ",5);" (assignment_expression "pcVar9 = (char *)dcgettext(0,"Address of section %s set to ",5)" identifier = (cast_expression "(char *)dcgettext(0,"Address of section %s set to ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Address of section %s set to ",5)" identifier (argument_list "(0,"Address of section %s set to ",5)" ( number_literal , (string_literal ""Address of section %s set to "" " string_content ") , number_literal ))))) ;) (expression_statement "minfo(pcVar9,pcVar12);" (call_expression "minfo(pcVar9,pcVar12)" identifier (argument_list "(pcVar9,pcVar12)" ( identifier , identifier ))) ;) (expression_statement "exp_print_tree((s->data_statement).exp);" (call_expression "exp_print_tree((s->data_statement).exp)" identifier (argument_list "((s->data_statement).exp)" ( (field_expression "(s->data_statement).exp" (parenthesized_expression "(s->data_statement)" ( (field_expression "s->data_statement" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "print_nl();" (call_expression "print_nl()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case lang_wild_statement_enum:\n    print_space();\n    if ((s->wild_statement).exclude_name_list != (name_list *)0x0) {\n      pcVar12 = ((s->wild_statement).exclude_name_list)->name;\n      minfo("EXCLUDE_FILE(%s",pcVar12);\n      for (pnVar2 = ((s->wild_statement).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n          pnVar2 = pnVar2->next) {\n        pcVar12 = pnVar2->name;\n        minfo(" %s",pcVar12);\n      }\n      minfo(") ",pcVar12);\n    }\n    if ((s->wild_statement).filenames_sorted != 0) {\n      minfo("SORT_BY_NAME(");\n    }\n    if ((s->wild_statement).filename == (char *)0x0) {\n      minfo("*");\n    }\n    else {\n      minfo("%s",(s->wild_statement).filename);\n    }\n    if ((s->wild_statement).filenames_sorted != 0) {\n      minfo(")");\n    }\n    minfo("(");\n    for (pwVar3 = (s->wild_statement).section_list; pwVar3 != (wildcard_list *)0x0;\n        pwVar3 = pwVar3->next) {\n      switch((pwVar3->spec).sorted) {\n      default:\n        iVar15 = 0;\n        break;\n      case by_name:\n        iVar15 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar15 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar15 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar15 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        iVar15 = 1;\n        minfo("SORT_NONE(");\n        break;\n      case by_init_priority:\n        iVar15 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }\n      pnVar2 = (pwVar3->spec).exclude_name_list;\n      if (pnVar2 != (name_list *)0x0) {\n        pcVar12 = pnVar2->name;\n        minfo("EXCLUDE_FILE(%s",pcVar12);\n        for (pnVar2 = ((pwVar3->spec).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n            pnVar2 = pnVar2->next) {\n          pcVar12 = pnVar2->name;\n          minfo(" %s",pcVar12);\n        }\n        minfo(") ",pcVar12);\n      }\n      pcVar12 = (pwVar3->spec).name;\n      if (pcVar12 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar12);\n      }\n      if ((iVar15 != 0) && (minfo(")"), iVar15 != 1)) {\n        minfo(")");\n      }\n      if (pwVar3->next == (wildcard_list *)0x0) break;\n      minfo(" ");\n    }\n    minfo(")");\n    print_nl();\n    for (plVar6 = (s->wild_statement).children.head; plVar6 != (lang_statement_union_type *)0x0;\n        plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,os);\n    }\n    break;" case identifier : (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((s->wild_statement).exclude_name_list != (name_list *)0x0) {\n      pcVar12 = ((s->wild_statement).exclude_name_list)->name;\n      minfo("EXCLUDE_FILE(%s",pcVar12);\n      for (pnVar2 = ((s->wild_statement).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n          pnVar2 = pnVar2->next) {\n        pcVar12 = pnVar2->name;\n        minfo(" %s",pcVar12);\n      }\n      minfo(") ",pcVar12);\n    }" if (parenthesized_expression "((s->wild_statement).exclude_name_list != (name_list *)0x0)" ( (binary_expression "(s->wild_statement).exclude_name_list != (name_list *)0x0" (field_expression "(s->wild_statement).exclude_name_list" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(name_list *)0x0" ( (type_descriptor "name_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar12 = ((s->wild_statement).exclude_name_list)->name;\n      minfo("EXCLUDE_FILE(%s",pcVar12);\n      for (pnVar2 = ((s->wild_statement).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n          pnVar2 = pnVar2->next) {\n        pcVar12 = pnVar2->name;\n        minfo(" %s",pcVar12);\n      }\n      minfo(") ",pcVar12);\n    }" { (expression_statement "pcVar12 = ((s->wild_statement).exclude_name_list)->name;" (assignment_expression "pcVar12 = ((s->wild_statement).exclude_name_list)->name" identifier = (field_expression "((s->wild_statement).exclude_name_list)->name" (parenthesized_expression "((s->wild_statement).exclude_name_list)" ( (field_expression "(s->wild_statement).exclude_name_list" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (expression_statement "minfo("EXCLUDE_FILE(%s",pcVar12);" (call_expression "minfo("EXCLUDE_FILE(%s",pcVar12)" identifier (argument_list "("EXCLUDE_FILE(%s",pcVar12)" ( (string_literal ""EXCLUDE_FILE(%s"" " string_content ") , identifier ))) ;) (for_statement "for (pnVar2 = ((s->wild_statement).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n          pnVar2 = pnVar2->next) {\n        pcVar12 = pnVar2->name;\n        minfo(" %s",pcVar12);\n      }" for ( (assignment_expression "pnVar2 = ((s->wild_statement).exclude_name_list)->next" identifier = (field_expression "((s->wild_statement).exclude_name_list)->next" (parenthesized_expression "((s->wild_statement).exclude_name_list)" ( (field_expression "(s->wild_statement).exclude_name_list" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ; (binary_expression "pnVar2 != (name_list *)0x0" identifier != (cast_expression "(name_list *)0x0" ( (type_descriptor "name_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pnVar2 = pnVar2->next" identifier = (field_expression "pnVar2->next" identifier -> field_identifier)) ) (compound_statement "{\n        pcVar12 = pnVar2->name;\n        minfo(" %s",pcVar12);\n      }" { (expression_statement "pcVar12 = pnVar2->name;" (assignment_expression "pcVar12 = pnVar2->name" identifier = (field_expression "pnVar2->name" identifier -> field_identifier)) ;) (expression_statement "minfo(" %s",pcVar12);" (call_expression "minfo(" %s",pcVar12)" identifier (argument_list "(" %s",pcVar12)" ( (string_literal "" %s"" " string_content ") , identifier ))) ;) })) (expression_statement "minfo(") ",pcVar12);" (call_expression "minfo(") ",pcVar12)" identifier (argument_list "(") ",pcVar12)" ( (string_literal "") "" " string_content ") , identifier ))) ;) })) (if_statement "if ((s->wild_statement).filenames_sorted != 0) {\n      minfo("SORT_BY_NAME(");\n    }" if (parenthesized_expression "((s->wild_statement).filenames_sorted != 0)" ( (binary_expression "(s->wild_statement).filenames_sorted != 0" (field_expression "(s->wild_statement).filenames_sorted" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n      minfo("SORT_BY_NAME(");\n    }" { (expression_statement "minfo("SORT_BY_NAME(");" (call_expression "minfo("SORT_BY_NAME(")" identifier (argument_list "("SORT_BY_NAME(")" ( (string_literal ""SORT_BY_NAME("" " string_content ") ))) ;) })) (if_statement "if ((s->wild_statement).filename == (char *)0x0) {\n      minfo("*");\n    }\n    else {\n      minfo("%s",(s->wild_statement).filename);\n    }" if (parenthesized_expression "((s->wild_statement).filename == (char *)0x0)" ( (binary_expression "(s->wild_statement).filename == (char *)0x0" (field_expression "(s->wild_statement).filename" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      minfo("*");\n    }" { (expression_statement "minfo("*");" (call_expression "minfo("*")" identifier (argument_list "("*")" ( (string_literal ""*"" " string_content ") ))) ;) }) (else_clause "else {\n      minfo("%s",(s->wild_statement).filename);\n    }" else (compound_statement "{\n      minfo("%s",(s->wild_statement).filename);\n    }" { (expression_statement "minfo("%s",(s->wild_statement).filename);" (call_expression "minfo("%s",(s->wild_statement).filename)" identifier (argument_list "("%s",(s->wild_statement).filename)" ( (string_literal ""%s"" " string_content ") , (field_expression "(s->wild_statement).filename" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) ))) ;) }))) (if_statement "if ((s->wild_statement).filenames_sorted != 0) {\n      minfo(")");\n    }" if (parenthesized_expression "((s->wild_statement).filenames_sorted != 0)" ( (binary_expression "(s->wild_statement).filenames_sorted != 0" (field_expression "(s->wild_statement).filenames_sorted" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n      minfo(")");\n    }" { (expression_statement "minfo(")");" (call_expression "minfo(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) ;) })) (expression_statement "minfo("(");" (call_expression "minfo("(")" identifier (argument_list "("(")" ( (string_literal ""("" " string_content ") ))) ;) (for_statement "for (pwVar3 = (s->wild_statement).section_list; pwVar3 != (wildcard_list *)0x0;\n        pwVar3 = pwVar3->next) {\n      switch((pwVar3->spec).sorted) {\n      default:\n        iVar15 = 0;\n        break;\n      case by_name:\n        iVar15 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar15 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar15 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar15 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        iVar15 = 1;\n        minfo("SORT_NONE(");\n        break;\n      case by_init_priority:\n        iVar15 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }\n      pnVar2 = (pwVar3->spec).exclude_name_list;\n      if (pnVar2 != (name_list *)0x0) {\n        pcVar12 = pnVar2->name;\n        minfo("EXCLUDE_FILE(%s",pcVar12);\n        for (pnVar2 = ((pwVar3->spec).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n            pnVar2 = pnVar2->next) {\n          pcVar12 = pnVar2->name;\n          minfo(" %s",pcVar12);\n        }\n        minfo(") ",pcVar12);\n      }\n      pcVar12 = (pwVar3->spec).name;\n      if (pcVar12 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar12);\n      }\n      if ((iVar15 != 0) && (minfo(")"), iVar15 != 1)) {\n        minfo(")");\n      }\n      if (pwVar3->next == (wildcard_list *)0x0) break;\n      minfo(" ");\n    }" for ( (assignment_expression "pwVar3 = (s->wild_statement).section_list" identifier = (field_expression "(s->wild_statement).section_list" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier)) ; (binary_expression "pwVar3 != (wildcard_list *)0x0" identifier != (cast_expression "(wildcard_list *)0x0" ( (type_descriptor "wildcard_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pwVar3 = pwVar3->next" identifier = (field_expression "pwVar3->next" identifier -> field_identifier)) ) (compound_statement "{\n      switch((pwVar3->spec).sorted) {\n      default:\n        iVar15 = 0;\n        break;\n      case by_name:\n        iVar15 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar15 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar15 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar15 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        iVar15 = 1;\n        minfo("SORT_NONE(");\n        break;\n      case by_init_priority:\n        iVar15 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }\n      pnVar2 = (pwVar3->spec).exclude_name_list;\n      if (pnVar2 != (name_list *)0x0) {\n        pcVar12 = pnVar2->name;\n        minfo("EXCLUDE_FILE(%s",pcVar12);\n        for (pnVar2 = ((pwVar3->spec).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n            pnVar2 = pnVar2->next) {\n          pcVar12 = pnVar2->name;\n          minfo(" %s",pcVar12);\n        }\n        minfo(") ",pcVar12);\n      }\n      pcVar12 = (pwVar3->spec).name;\n      if (pcVar12 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar12);\n      }\n      if ((iVar15 != 0) && (minfo(")"), iVar15 != 1)) {\n        minfo(")");\n      }\n      if (pwVar3->next == (wildcard_list *)0x0) break;\n      minfo(" ");\n    }" { (switch_statement "switch((pwVar3->spec).sorted) {\n      default:\n        iVar15 = 0;\n        break;\n      case by_name:\n        iVar15 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar15 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar15 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar15 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        iVar15 = 1;\n        minfo("SORT_NONE(");\n        break;\n      case by_init_priority:\n        iVar15 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }" switch (parenthesized_expression "((pwVar3->spec).sorted)" ( (field_expression "(pwVar3->spec).sorted" (parenthesized_expression "(pwVar3->spec)" ( (field_expression "pwVar3->spec" identifier -> field_identifier) )) . field_identifier) )) (compound_statement "{\n      default:\n        iVar15 = 0;\n        break;\n      case by_name:\n        iVar15 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar15 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar15 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar15 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        iVar15 = 1;\n        minfo("SORT_NONE(");\n        break;\n      case by_init_priority:\n        iVar15 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }" { (case_statement "default:\n        iVar15 = 0;\n        break;" default : (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case by_name:\n        iVar15 = 1;\n        minfo("SORT_BY_NAME(");\n        break;" case identifier : (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) (expression_statement "minfo("SORT_BY_NAME(");" (call_expression "minfo("SORT_BY_NAME(")" identifier (argument_list "("SORT_BY_NAME(")" ( (string_literal ""SORT_BY_NAME("" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case by_alignment:\n        iVar15 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;" case identifier : (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) (expression_statement "minfo("SORT_BY_ALIGNMENT(");" (call_expression "minfo("SORT_BY_ALIGNMENT(")" identifier (argument_list "("SORT_BY_ALIGNMENT(")" ( (string_literal ""SORT_BY_ALIGNMENT("" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case by_name_alignment:\n        iVar15 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;" case identifier : (expression_statement "iVar15 = 2;" (assignment_expression "iVar15 = 2" identifier = number_literal) ;) (expression_statement "minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");" (call_expression "minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(")" identifier (argument_list "("SORT_BY_NAME(SORT_BY_ALIGNMENT(")" ( (string_literal ""SORT_BY_NAME(SORT_BY_ALIGNMENT("" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case by_alignment_name:\n        iVar15 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;" case identifier : (expression_statement "iVar15 = 2;" (assignment_expression "iVar15 = 2" identifier = number_literal) ;) (expression_statement "minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");" (call_expression "minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(")" identifier (argument_list "("SORT_BY_ALIGNMENT(SORT_BY_NAME(")" ( (string_literal ""SORT_BY_ALIGNMENT(SORT_BY_NAME("" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case by_none:\n        iVar15 = 1;\n        minfo("SORT_NONE(");\n        break;" case identifier : (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) (expression_statement "minfo("SORT_NONE(");" (call_expression "minfo("SORT_NONE(")" identifier (argument_list "("SORT_NONE(")" ( (string_literal ""SORT_NONE("" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case by_init_priority:\n        iVar15 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");" case identifier : (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) (expression_statement "minfo("SORT_BY_INIT_PRIORITY(");" (call_expression "minfo("SORT_BY_INIT_PRIORITY(")" identifier (argument_list "("SORT_BY_INIT_PRIORITY(")" ( (string_literal ""SORT_BY_INIT_PRIORITY("" " string_content ") ))) ;)) })) (expression_statement "pnVar2 = (pwVar3->spec).exclude_name_list;" (assignment_expression "pnVar2 = (pwVar3->spec).exclude_name_list" identifier = (field_expression "(pwVar3->spec).exclude_name_list" (parenthesized_expression "(pwVar3->spec)" ( (field_expression "pwVar3->spec" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pnVar2 != (name_list *)0x0) {\n        pcVar12 = pnVar2->name;\n        minfo("EXCLUDE_FILE(%s",pcVar12);\n        for (pnVar2 = ((pwVar3->spec).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n            pnVar2 = pnVar2->next) {\n          pcVar12 = pnVar2->name;\n          minfo(" %s",pcVar12);\n        }\n        minfo(") ",pcVar12);\n      }" if (parenthesized_expression "(pnVar2 != (name_list *)0x0)" ( (binary_expression "pnVar2 != (name_list *)0x0" identifier != (cast_expression "(name_list *)0x0" ( (type_descriptor "name_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar12 = pnVar2->name;\n        minfo("EXCLUDE_FILE(%s",pcVar12);\n        for (pnVar2 = ((pwVar3->spec).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n            pnVar2 = pnVar2->next) {\n          pcVar12 = pnVar2->name;\n          minfo(" %s",pcVar12);\n        }\n        minfo(") ",pcVar12);\n      }" { (expression_statement "pcVar12 = pnVar2->name;" (assignment_expression "pcVar12 = pnVar2->name" identifier = (field_expression "pnVar2->name" identifier -> field_identifier)) ;) (expression_statement "minfo("EXCLUDE_FILE(%s",pcVar12);" (call_expression "minfo("EXCLUDE_FILE(%s",pcVar12)" identifier (argument_list "("EXCLUDE_FILE(%s",pcVar12)" ( (string_literal ""EXCLUDE_FILE(%s"" " string_content ") , identifier ))) ;) (for_statement "for (pnVar2 = ((pwVar3->spec).exclude_name_list)->next; pnVar2 != (name_list *)0x0;\n            pnVar2 = pnVar2->next) {\n          pcVar12 = pnVar2->name;\n          minfo(" %s",pcVar12);\n        }" for ( (assignment_expression "pnVar2 = ((pwVar3->spec).exclude_name_list)->next" identifier = (field_expression "((pwVar3->spec).exclude_name_list)->next" (parenthesized_expression "((pwVar3->spec).exclude_name_list)" ( (field_expression "(pwVar3->spec).exclude_name_list" (parenthesized_expression "(pwVar3->spec)" ( (field_expression "pwVar3->spec" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ; (binary_expression "pnVar2 != (name_list *)0x0" identifier != (cast_expression "(name_list *)0x0" ( (type_descriptor "name_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pnVar2 = pnVar2->next" identifier = (field_expression "pnVar2->next" identifier -> field_identifier)) ) (compound_statement "{\n          pcVar12 = pnVar2->name;\n          minfo(" %s",pcVar12);\n        }" { (expression_statement "pcVar12 = pnVar2->name;" (assignment_expression "pcVar12 = pnVar2->name" identifier = (field_expression "pnVar2->name" identifier -> field_identifier)) ;) (expression_statement "minfo(" %s",pcVar12);" (call_expression "minfo(" %s",pcVar12)" identifier (argument_list "(" %s",pcVar12)" ( (string_literal "" %s"" " string_content ") , identifier ))) ;) })) (expression_statement "minfo(") ",pcVar12);" (call_expression "minfo(") ",pcVar12)" identifier (argument_list "(") ",pcVar12)" ( (string_literal "") "" " string_content ") , identifier ))) ;) })) (expression_statement "pcVar12 = (pwVar3->spec).name;" (assignment_expression "pcVar12 = (pwVar3->spec).name" identifier = (field_expression "(pwVar3->spec).name" (parenthesized_expression "(pwVar3->spec)" ( (field_expression "pwVar3->spec" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar12);\n      }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        minfo("*");\n      }" { (expression_statement "minfo("*");" (call_expression "minfo("*")" identifier (argument_list "("*")" ( (string_literal ""*"" " string_content ") ))) ;) }) (else_clause "else {\n        minfo("%s",pcVar12);\n      }" else (compound_statement "{\n        minfo("%s",pcVar12);\n      }" { (expression_statement "minfo("%s",pcVar12);" (call_expression "minfo("%s",pcVar12)" identifier (argument_list "("%s",pcVar12)" ( (string_literal ""%s"" " string_content ") , identifier ))) ;) }))) (if_statement "if ((iVar15 != 0) && (minfo(")"), iVar15 != 1)) {\n        minfo(")");\n      }" if (parenthesized_expression "((iVar15 != 0) && (minfo(")"), iVar15 != 1))" ( (binary_expression "(iVar15 != 0) && (minfo(")"), iVar15 != 1)" (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) && (parenthesized_expression "(minfo(")"), iVar15 != 1)" ( (comma_expression "minfo(")"), iVar15 != 1" (call_expression "minfo(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) , (binary_expression "iVar15 != 1" identifier != number_literal)) ))) )) (compound_statement "{\n        minfo(")");\n      }" { (expression_statement "minfo(")");" (call_expression "minfo(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) ;) })) (if_statement "if (pwVar3->next == (wildcard_list *)0x0) break;" if (parenthesized_expression "(pwVar3->next == (wildcard_list *)0x0)" ( (binary_expression "pwVar3->next == (wildcard_list *)0x0" (field_expression "pwVar3->next" identifier -> field_identifier) == (cast_expression "(wildcard_list *)0x0" ( (type_descriptor "wildcard_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "minfo(" ");" (call_expression "minfo(" ")" identifier (argument_list "(" ")" ( (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "minfo(")");" (call_expression "minfo(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) ;) (expression_statement "print_nl();" (call_expression "print_nl()" identifier (argument_list "()" ( ))) ;) (for_statement "for (plVar6 = (s->wild_statement).children.head; plVar6 != (lang_statement_union_type *)0x0;\n        plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,os);\n    }" for ( (assignment_expression "plVar6 = (s->wild_statement).children.head" identifier = (field_expression "(s->wild_statement).children.head" (field_expression "(s->wild_statement).children" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ; (binary_expression "plVar6 != (lang_statement_union_type *)0x0" identifier != (cast_expression "(lang_statement_union_type *)0x0" ( (type_descriptor "lang_statement_union_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar6 = (plVar6->header).next" identifier = (field_expression "(plVar6->header).next" (parenthesized_expression "(plVar6->header)" ( (field_expression "plVar6->header" identifier -> field_identifier) )) . field_identifier)) ) (compound_statement "{\n      print_statement(plVar6,os);\n    }" { (expression_statement "print_statement(plVar6,os);" (call_expression "print_statement(plVar6,os)" identifier (argument_list "(plVar6,os)" ( identifier , identifier ))) ;) })) (break_statement "break;" break ;)) (case_statement "case lang_input_section_enum:\n    print_input_section((s->input_section).section,0);\n    return;" case identifier : (expression_statement "print_input_section((s->input_section).section,0);" (call_expression "print_input_section((s->input_section).section,0)" identifier (argument_list "((s->input_section).section,0)" ( (field_expression "(s->input_section).section" (parenthesized_expression "(s->input_section)" ( (field_expression "s->input_section" identifier -> field_identifier) )) . field_identifier) , number_literal ))) ;) (return_statement "return;" return ;)) (case_statement "case lang_object_symbols_statement_enum:\n    minfo(" CREATE_OBJECT_SYMBOLS\n");\n    break;" case identifier : (expression_statement "minfo(" CREATE_OBJECT_SYMBOLS\n");" (call_expression "minfo(" CREATE_OBJECT_SYMBOLS\n")" identifier (argument_list "(" CREATE_OBJECT_SYMBOLS\n")" ( (string_literal "" CREATE_OBJECT_SYMBOLS\n"" " string_content escape_sequence ") ))) ;) (break_statement "break;" break ;)) (case_statement "case lang_fill_statement_enum:\n    fwrite(" FILL mask 0x",1,0xd,(FILE *)config.map_file);\n    pfVar4 = (s->fill_statement).fill;\n    sVar5 = pfVar4->size;\n    puVar14 = pfVar4->data;\n    if (sVar5 != 0) {\n      do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);\n    }\n    fputc(10,(FILE *)config.map_file);\n    break;" case identifier : (expression_statement "fwrite(" FILL mask 0x",1,0xd,(FILE *)config.map_file);" (call_expression "fwrite(" FILL mask 0x",1,0xd,(FILE *)config.map_file)" identifier (argument_list "(" FILL mask 0x",1,0xd,(FILE *)config.map_file)" ( (string_literal "" FILL mask 0x"" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;) (expression_statement "pfVar4 = (s->fill_statement).fill;" (assignment_expression "pfVar4 = (s->fill_statement).fill" identifier = (field_expression "(s->fill_statement).fill" (parenthesized_expression "(s->fill_statement)" ( (field_expression "s->fill_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "sVar5 = pfVar4->size;" (assignment_expression "sVar5 = pfVar4->size" identifier = (field_expression "pfVar4->size" identifier -> field_identifier)) ;) (expression_statement "puVar14 = pfVar4->data;" (assignment_expression "puVar14 = pfVar4->data" identifier = (field_expression "pfVar4->data" identifier -> field_identifier)) ;) (if_statement "if (sVar5 != 0) {\n      do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);\n    }" if (parenthesized_expression "(sVar5 != 0)" ( (binary_expression "sVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);\n    }" { (do_statement "do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);" do (compound_statement "{\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      }" { (expression_statement "bVar1 = *puVar14;" (assignment_expression "bVar1 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar14 = puVar14 + 1;" (assignment_expression "puVar14 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) (expression_statement "fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);" (call_expression "fprintf((FILE *)config.map_file,"%02x",(uint)bVar1)" identifier (argument_list "((FILE *)config.map_file,"%02x",(uint)bVar1)" ( (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) , (string_literal ""%02x"" " string_content ") , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }) while (parenthesized_expression "(puVar14 != pfVar4->data + sVar5)" ( (binary_expression "puVar14 != pfVar4->data + sVar5" identifier != (binary_expression "pfVar4->data + sVar5" (field_expression "pfVar4->data" identifier -> field_identifier) + identifier)) )) ;) })) (expression_statement "fputc(10,(FILE *)config.map_file);" (call_expression "fputc(10,(FILE *)config.map_file)" identifier (argument_list "(10,(FILE *)config.map_file)" ( number_literal , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;) (break_statement "break;" break ;)) (case_statement "case lang_data_statement_enum:\n    init_opb();\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    plVar17 = (s->wild_statement).children.head;\n    if ((s->output_section_statement).prev != (lang_output_section_statement_struct *)0x0) {\n      plVar17 = (lang_statement_union *)\n                ((int)&((s->output_section_statement).prev)->bfd_section->name + (int)plVar17);\n    }\n    switch((s->data_statement).type) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      sVar16 = lang_wild_statement_enum;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      sVar16 = lang_input_statement_enum;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      sVar16 = lang_assignment_statement_enum;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");\n    }\n    sVar13 = 1 << ((byte)opb_shift & 0x1f);\n    if (sVar16 <= sVar13) {\n      sVar16 = sVar13;\n    }\n    minfo("0x%V %W %s 0x%v",plVar17,sVar16 >> ((byte)opb_shift & 0x1f),pcVar12,\n          (s->wild_statement).section_list);\n    if (((s->reloc_statement).howto)->bitsize != 7) {\n      print_space();\n      exp_print_tree((s->data_statement).exp);\n    }\n    print_nl();\n    print_dot = (int)plVar17 + (sVar16 >> ((byte)opb_shift & 0x1f));\n    break;" case identifier : (expression_statement "init_opb();" (call_expression "init_opb()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar15 = 0x10;" (assignment_expression "iVar15 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);" do (compound_statement "{\n      print_space();\n      iVar15 = iVar15 + -1;\n    }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) ;) (expression_statement "plVar17 = (s->wild_statement).children.head;" (assignment_expression "plVar17 = (s->wild_statement).children.head" identifier = (field_expression "(s->wild_statement).children.head" (field_expression "(s->wild_statement).children" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((s->output_section_statement).prev != (lang_output_section_statement_struct *)0x0) {\n      plVar17 = (lang_statement_union *)\n                ((int)&((s->output_section_statement).prev)->bfd_section->name + (int)plVar17);\n    }" if (parenthesized_expression "((s->output_section_statement).prev != (lang_output_section_statement_struct *)0x0)" ( (binary_expression "(s->output_section_statement).prev != (lang_output_section_statement_struct *)0x0" (field_expression "(s->output_section_statement).prev" (parenthesized_expression "(s->output_section_statement)" ( (field_expression "s->output_section_statement" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(lang_output_section_statement_struct *)0x0" ( (type_descriptor "lang_output_section_statement_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      plVar17 = (lang_statement_union *)\n                ((int)&((s->output_section_statement).prev)->bfd_section->name + (int)plVar17);\n    }" { (expression_statement "plVar17 = (lang_statement_union *)\n                ((int)&((s->output_section_statement).prev)->bfd_section->name + (int)plVar17);" (assignment_expression "plVar17 = (lang_statement_union *)\n                ((int)&((s->output_section_statement).prev)->bfd_section->name + (int)plVar17)" identifier = (cast_expression "(lang_statement_union *)\n                ((int)&((s->output_section_statement).prev)->bfd_section->name + (int)plVar17)" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((s->output_section_statement).prev)->bfd_section->name + (int)plVar17)" ( (binary_expression "(int)&((s->output_section_statement).prev)->bfd_section->name + (int)plVar17" (cast_expression "(int)&((s->output_section_statement).prev)->bfd_section->name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((s->output_section_statement).prev)->bfd_section->name" & (field_expression "((s->output_section_statement).prev)->bfd_section->name" (field_expression "((s->output_section_statement).prev)->bfd_section" (parenthesized_expression "((s->output_section_statement).prev)" ( (field_expression "(s->output_section_statement).prev" (parenthesized_expression "(s->output_section_statement)" ( (field_expression "s->output_section_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) -> field_identifier))) + (cast_expression "(int)plVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (switch_statement "switch((s->data_statement).type) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      sVar16 = lang_wild_statement_enum;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      sVar16 = lang_input_statement_enum;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      sVar16 = lang_assignment_statement_enum;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");\n    }" switch (parenthesized_expression "((s->data_statement).type)" ( (field_expression "(s->data_statement).type" (parenthesized_expression "(s->data_statement)" ( (field_expression "s->data_statement" identifier -> field_identifier) )) . field_identifier) )) (compound_statement "{\n    case 0x11a:\n      pcVar12 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      sVar16 = lang_wild_statement_enum;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      sVar16 = lang_input_statement_enum;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      sVar16 = lang_assignment_statement_enum;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");\n    }" { (case_statement "case 0x11a:\n      pcVar12 = "QUAD";\n      break;" case number_literal : (expression_statement "pcVar12 = "QUAD";" (assignment_expression "pcVar12 = "QUAD"" identifier = (string_literal ""QUAD"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0x11b:\n      pcVar12 = "SQUAD";\n      break;" case number_literal : (expression_statement "pcVar12 = "SQUAD";" (assignment_expression "pcVar12 = "SQUAD"" identifier = (string_literal ""SQUAD"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0x11c:\n      pcVar12 = "LONG";\n      sVar16 = lang_wild_statement_enum;\n      break;" case number_literal : (expression_statement "pcVar12 = "LONG";" (assignment_expression "pcVar12 = "LONG"" identifier = (string_literal ""LONG"" " string_content ")) ;) (expression_statement "sVar16 = lang_wild_statement_enum;" (assignment_expression "sVar16 = lang_wild_statement_enum" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x11d:\n      pcVar12 = "SHORT";\n      sVar16 = lang_input_statement_enum;\n      break;" case number_literal : (expression_statement "pcVar12 = "SHORT";" (assignment_expression "pcVar12 = "SHORT"" identifier = (string_literal ""SHORT"" " string_content ")) ;) (expression_statement "sVar16 = lang_input_statement_enum;" (assignment_expression "sVar16 = lang_input_statement_enum" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x11e:\n      pcVar12 = "BYTE";\n      sVar16 = lang_assignment_statement_enum;\n      break;" case number_literal : (expression_statement "pcVar12 = "BYTE";" (assignment_expression "pcVar12 = "BYTE"" identifier = (string_literal ""BYTE"" " string_content ")) ;) (expression_statement "sVar16 = lang_assignment_statement_enum;" (assignment_expression "sVar16 = lang_assignment_statement_enum" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");" default : comment (expression_statement "ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");" (call_expression "ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement")" identifier (argument_list "("../../ld/ldlang.c",0x10c9,"print_data_statement")" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal , (string_literal ""print_data_statement"" " string_content ") ))) ;)) })) (expression_statement "sVar13 = 1 << ((byte)opb_shift & 0x1f);" (assignment_expression "sVar13 = 1 << ((byte)opb_shift & 0x1f)" identifier = (binary_expression "1 << ((byte)opb_shift & 0x1f)" number_literal << (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if (sVar16 <= sVar13) {\n      sVar16 = sVar13;\n    }" if (parenthesized_expression "(sVar16 <= sVar13)" ( (binary_expression "sVar16 <= sVar13" identifier <= identifier) )) (compound_statement "{\n      sVar16 = sVar13;\n    }" { (expression_statement "sVar16 = sVar13;" (assignment_expression "sVar16 = sVar13" identifier = identifier) ;) })) (expression_statement "minfo("0x%V %W %s 0x%v",plVar17,sVar16 >> ((byte)opb_shift & 0x1f),pcVar12,\n          (s->wild_statement).section_list);" (call_expression "minfo("0x%V %W %s 0x%v",plVar17,sVar16 >> ((byte)opb_shift & 0x1f),pcVar12,\n          (s->wild_statement).section_list)" identifier (argument_list "("0x%V %W %s 0x%v",plVar17,sVar16 >> ((byte)opb_shift & 0x1f),pcVar12,\n          (s->wild_statement).section_list)" ( (string_literal ""0x%V %W %s 0x%v"" " string_content ") , identifier , (binary_expression "sVar16 >> ((byte)opb_shift & 0x1f)" identifier >> (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) , identifier , (field_expression "(s->wild_statement).section_list" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) ))) ;) (if_statement "if (((s->reloc_statement).howto)->bitsize != 7) {\n      print_space();\n      exp_print_tree((s->data_statement).exp);\n    }" if (parenthesized_expression "(((s->reloc_statement).howto)->bitsize != 7)" ( (binary_expression "((s->reloc_statement).howto)->bitsize != 7" (field_expression "((s->reloc_statement).howto)->bitsize" (parenthesized_expression "((s->reloc_statement).howto)" ( (field_expression "(s->reloc_statement).howto" (parenthesized_expression "(s->reloc_statement)" ( (field_expression "s->reloc_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) != number_literal) )) (compound_statement "{\n      print_space();\n      exp_print_tree((s->data_statement).exp);\n    }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "exp_print_tree((s->data_statement).exp);" (call_expression "exp_print_tree((s->data_statement).exp)" identifier (argument_list "((s->data_statement).exp)" ( (field_expression "(s->data_statement).exp" (parenthesized_expression "(s->data_statement)" ( (field_expression "s->data_statement" identifier -> field_identifier) )) . field_identifier) ))) ;) })) (expression_statement "print_nl();" (call_expression "print_nl()" identifier (argument_list "()" ( ))) ;) (expression_statement "print_dot = (int)plVar17 + (sVar16 >> ((byte)opb_shift & 0x1f));" (assignment_expression "print_dot = (int)plVar17 + (sVar16 >> ((byte)opb_shift & 0x1f))" identifier = (binary_expression "(int)plVar17 + (sVar16 >> ((byte)opb_shift & 0x1f))" (cast_expression "(int)plVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(sVar16 >> ((byte)opb_shift & 0x1f))" ( (binary_expression "sVar16 >> ((byte)opb_shift & 0x1f)" identifier >> (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (break_statement "break;" break ;)) (case_statement "case lang_reloc_statement_enum:\n    init_opb();\n    iVar15 = 0x10;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    p_Var18 = (s->wild_statement).walk_wild_section_handler;\n    if ((s->reloc_statement).output_section != (asection *)0x0) {\n      p_Var18 = p_Var18 + ((s->reloc_statement).output_section)->vma;\n    }\n    uVar10 = bfd_get_reloc_size((s->wild_statement).filenames_sorted);\n    minfo("0x%V %W RELOC %s ",p_Var18,uVar10 >> ((byte)opb_shift & 0x1f),\n          ((s->reloc_statement).howto)->name);\n    if ((s->wild_statement).keep_sections == 0) {\n      minfo("%s+",((s->wild_statement).section_list)->next);\n    }\n    else {\n      minfo("%s+",(s->wild_statement).keep_sections);\n    }\n    exp_print_tree((etree_type *)(s->wild_statement).children.head);\n    print_nl();\n    print_dot = (bfd_vma)(p_Var18 + (uVar10 >> ((byte)opb_shift & 0x1f)));\n    break;" case identifier : (expression_statement "init_opb();" (call_expression "init_opb()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar15 = 0x10;" (assignment_expression "iVar15 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);" do (compound_statement "{\n      print_space();\n      iVar15 = iVar15 + -1;\n    }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) ;) (expression_statement "p_Var18 = (s->wild_statement).walk_wild_section_handler;" (assignment_expression "p_Var18 = (s->wild_statement).walk_wild_section_handler" identifier = (field_expression "(s->wild_statement).walk_wild_section_handler" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((s->reloc_statement).output_section != (asection *)0x0) {\n      p_Var18 = p_Var18 + ((s->reloc_statement).output_section)->vma;\n    }" if (parenthesized_expression "((s->reloc_statement).output_section != (asection *)0x0)" ( (binary_expression "(s->reloc_statement).output_section != (asection *)0x0" (field_expression "(s->reloc_statement).output_section" (parenthesized_expression "(s->reloc_statement)" ( (field_expression "s->reloc_statement" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      p_Var18 = p_Var18 + ((s->reloc_statement).output_section)->vma;\n    }" { (expression_statement "p_Var18 = p_Var18 + ((s->reloc_statement).output_section)->vma;" (assignment_expression "p_Var18 = p_Var18 + ((s->reloc_statement).output_section)->vma" identifier = (binary_expression "p_Var18 + ((s->reloc_statement).output_section)->vma" identifier + (field_expression "((s->reloc_statement).output_section)->vma" (parenthesized_expression "((s->reloc_statement).output_section)" ( (field_expression "(s->reloc_statement).output_section" (parenthesized_expression "(s->reloc_statement)" ( (field_expression "s->reloc_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier))) ;) })) (expression_statement "uVar10 = bfd_get_reloc_size((s->wild_statement).filenames_sorted);" (assignment_expression "uVar10 = bfd_get_reloc_size((s->wild_statement).filenames_sorted)" identifier = (call_expression "bfd_get_reloc_size((s->wild_statement).filenames_sorted)" identifier (argument_list "((s->wild_statement).filenames_sorted)" ( (field_expression "(s->wild_statement).filenames_sorted" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) )))) ;) (expression_statement "minfo("0x%V %W RELOC %s ",p_Var18,uVar10 >> ((byte)opb_shift & 0x1f),\n          ((s->reloc_statement).howto)->name);" (call_expression "minfo("0x%V %W RELOC %s ",p_Var18,uVar10 >> ((byte)opb_shift & 0x1f),\n          ((s->reloc_statement).howto)->name)" identifier (argument_list "("0x%V %W RELOC %s ",p_Var18,uVar10 >> ((byte)opb_shift & 0x1f),\n          ((s->reloc_statement).howto)->name)" ( (string_literal ""0x%V %W RELOC %s "" " string_content ") , identifier , (binary_expression "uVar10 >> ((byte)opb_shift & 0x1f)" identifier >> (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) , (field_expression "((s->reloc_statement).howto)->name" (parenthesized_expression "((s->reloc_statement).howto)" ( (field_expression "(s->reloc_statement).howto" (parenthesized_expression "(s->reloc_statement)" ( (field_expression "s->reloc_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) ))) ;) (if_statement "if ((s->wild_statement).keep_sections == 0) {\n      minfo("%s+",((s->wild_statement).section_list)->next);\n    }\n    else {\n      minfo("%s+",(s->wild_statement).keep_sections);\n    }" if (parenthesized_expression "((s->wild_statement).keep_sections == 0)" ( (binary_expression "(s->wild_statement).keep_sections == 0" (field_expression "(s->wild_statement).keep_sections" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n      minfo("%s+",((s->wild_statement).section_list)->next);\n    }" { (expression_statement "minfo("%s+",((s->wild_statement).section_list)->next);" (call_expression "minfo("%s+",((s->wild_statement).section_list)->next)" identifier (argument_list "("%s+",((s->wild_statement).section_list)->next)" ( (string_literal ""%s+"" " string_content ") , (field_expression "((s->wild_statement).section_list)->next" (parenthesized_expression "((s->wild_statement).section_list)" ( (field_expression "(s->wild_statement).section_list" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) ))) ;) }) (else_clause "else {\n      minfo("%s+",(s->wild_statement).keep_sections);\n    }" else (compound_statement "{\n      minfo("%s+",(s->wild_statement).keep_sections);\n    }" { (expression_statement "minfo("%s+",(s->wild_statement).keep_sections);" (call_expression "minfo("%s+",(s->wild_statement).keep_sections)" identifier (argument_list "("%s+",(s->wild_statement).keep_sections)" ( (string_literal ""%s+"" " string_content ") , (field_expression "(s->wild_statement).keep_sections" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) ))) ;) }))) (expression_statement "exp_print_tree((etree_type *)(s->wild_statement).children.head);" (call_expression "exp_print_tree((etree_type *)(s->wild_statement).children.head)" identifier (argument_list "((etree_type *)(s->wild_statement).children.head)" ( (cast_expression "(etree_type *)(s->wild_statement).children.head" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(s->wild_statement).children.head" (field_expression "(s->wild_statement).children" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ))) ;) (expression_statement "print_nl();" (call_expression "print_nl()" identifier (argument_list "()" ( ))) ;) (expression_statement "print_dot = (bfd_vma)(p_Var18 + (uVar10 >> ((byte)opb_shift & 0x1f)));" (assignment_expression "print_dot = (bfd_vma)(p_Var18 + (uVar10 >> ((byte)opb_shift & 0x1f)))" identifier = (call_expression "(bfd_vma)(p_Var18 + (uVar10 >> ((byte)opb_shift & 0x1f)))" (parenthesized_expression "(bfd_vma)" ( identifier )) (argument_list "(p_Var18 + (uVar10 >> ((byte)opb_shift & 0x1f)))" ( (binary_expression "p_Var18 + (uVar10 >> ((byte)opb_shift & 0x1f))" identifier + (parenthesized_expression "(uVar10 >> ((byte)opb_shift & 0x1f))" ( (binary_expression "uVar10 >> ((byte)opb_shift & 0x1f)" identifier >> (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) )))) ;) (break_statement "break;" break ;)) (case_statement "case lang_target_statement_enum:\n    pcVar9 = (s->wild_statement).filename;\n    pcVar12 = "TARGET(%s)\n";\nLAB_0001f93c:\n    fprintf((FILE *)config.map_file,pcVar12,pcVar9);\n    break;" case identifier : (expression_statement "pcVar9 = (s->wild_statement).filename;" (assignment_expression "pcVar9 = (s->wild_statement).filename" identifier = (field_expression "(s->wild_statement).filename" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar12 = "TARGET(%s)\n";" (assignment_expression "pcVar12 = "TARGET(%s)\n"" identifier = (string_literal ""TARGET(%s)\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_0001f93c:\n    fprintf((FILE *)config.map_file,pcVar12,pcVar9);" statement_identifier : (expression_statement "fprintf((FILE *)config.map_file,pcVar12,pcVar9);" (call_expression "fprintf((FILE *)config.map_file,pcVar12,pcVar9)" identifier (argument_list "((FILE *)config.map_file,pcVar12,pcVar9)" ( (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) , identifier , identifier ))) ;)) (break_statement "break;" break ;)) (case_statement "case lang_output_statement_enum:\n    pcVar12 = (s->wild_statement).filename;\n    minfo("OUTPUT(%s",pcVar12);\n    if (output_target != (char *)0x0) {\n      pcVar12 = output_target;\n      minfo(" %s",output_target);\n    }\n    minfo(")\n",pcVar12);\n    break;" case identifier : (expression_statement "pcVar12 = (s->wild_statement).filename;" (assignment_expression "pcVar12 = (s->wild_statement).filename" identifier = (field_expression "(s->wild_statement).filename" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "minfo("OUTPUT(%s",pcVar12);" (call_expression "minfo("OUTPUT(%s",pcVar12)" identifier (argument_list "("OUTPUT(%s",pcVar12)" ( (string_literal ""OUTPUT(%s"" " string_content ") , identifier ))) ;) (if_statement "if (output_target != (char *)0x0) {\n      pcVar12 = output_target;\n      minfo(" %s",output_target);\n    }" if (parenthesized_expression "(output_target != (char *)0x0)" ( (binary_expression "output_target != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar12 = output_target;\n      minfo(" %s",output_target);\n    }" { (expression_statement "pcVar12 = output_target;" (assignment_expression "pcVar12 = output_target" identifier = identifier) ;) (expression_statement "minfo(" %s",output_target);" (call_expression "minfo(" %s",output_target)" identifier (argument_list "(" %s",output_target)" ( (string_literal "" %s"" " string_content ") , identifier ))) ;) })) (expression_statement "minfo(")\n",pcVar12);" (call_expression "minfo(")\n",pcVar12)" identifier (argument_list "(")\n",pcVar12)" ( (string_literal "")\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case lang_padding_statement_enum:\n    init_opb();\n    minfo(" *fill*");\n    iVar15 = 9;\n    do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);\n    local_2c = (s->wild_statement).filename;\n    if ((s->output_section_statement).next != (lang_output_section_statement_struct *)0x0) {\n      local_2c = local_2c + (int)((s->output_section_statement).next)->bfd_section;\n    }\n    minfo("0x%V %W ",local_2c,(s->padding_statement).size >> ((byte)opb_shift & 0x1f));\n    pfVar4 = (s->padding_statement).fill;\n    sVar5 = pfVar4->size;\n    if (sVar5 != 0) {\n      puVar14 = pfVar4->data;\n      do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);\n    }\n    print_nl();\n    print_dot = (bfd_vma)(local_2c + ((s->padding_statement).size >> ((byte)opb_shift & 0x1f)));\n    break;" case identifier : (expression_statement "init_opb();" (call_expression "init_opb()" identifier (argument_list "()" ( ))) ;) (expression_statement "minfo(" *fill*");" (call_expression "minfo(" *fill*")" identifier (argument_list "(" *fill*")" ( (string_literal "" *fill*"" " string_content ") ))) ;) (expression_statement "iVar15 = 9;" (assignment_expression "iVar15 = 9" identifier = number_literal) ;) (do_statement "do {\n      print_space();\n      iVar15 = iVar15 + -1;\n    } while (iVar15 != 0);" do (compound_statement "{\n      print_space();\n      iVar15 = iVar15 + -1;\n    }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) ;) (expression_statement "local_2c = (s->wild_statement).filename;" (assignment_expression "local_2c = (s->wild_statement).filename" identifier = (field_expression "(s->wild_statement).filename" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((s->output_section_statement).next != (lang_output_section_statement_struct *)0x0) {\n      local_2c = local_2c + (int)((s->output_section_statement).next)->bfd_section;\n    }" if (parenthesized_expression "((s->output_section_statement).next != (lang_output_section_statement_struct *)0x0)" ( (binary_expression "(s->output_section_statement).next != (lang_output_section_statement_struct *)0x0" (field_expression "(s->output_section_statement).next" (parenthesized_expression "(s->output_section_statement)" ( (field_expression "s->output_section_statement" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(lang_output_section_statement_struct *)0x0" ( (type_descriptor "lang_output_section_statement_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_2c = local_2c + (int)((s->output_section_statement).next)->bfd_section;\n    }" { (expression_statement "local_2c = local_2c + (int)((s->output_section_statement).next)->bfd_section;" (assignment_expression "local_2c = local_2c + (int)((s->output_section_statement).next)->bfd_section" identifier = (binary_expression "local_2c + (int)((s->output_section_statement).next)->bfd_section" identifier + (cast_expression "(int)((s->output_section_statement).next)->bfd_section" ( (type_descriptor "int" primitive_type) ) (field_expression "((s->output_section_statement).next)->bfd_section" (parenthesized_expression "((s->output_section_statement).next)" ( (field_expression "(s->output_section_statement).next" (parenthesized_expression "(s->output_section_statement)" ( (field_expression "s->output_section_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)))) ;) })) (expression_statement "minfo("0x%V %W ",local_2c,(s->padding_statement).size >> ((byte)opb_shift & 0x1f));" (call_expression "minfo("0x%V %W ",local_2c,(s->padding_statement).size >> ((byte)opb_shift & 0x1f))" identifier (argument_list "("0x%V %W ",local_2c,(s->padding_statement).size >> ((byte)opb_shift & 0x1f))" ( (string_literal ""0x%V %W "" " string_content ") , identifier , (binary_expression "(s->padding_statement).size >> ((byte)opb_shift & 0x1f)" (field_expression "(s->padding_statement).size" (parenthesized_expression "(s->padding_statement)" ( (field_expression "s->padding_statement" identifier -> field_identifier) )) . field_identifier) >> (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) ;) (expression_statement "pfVar4 = (s->padding_statement).fill;" (assignment_expression "pfVar4 = (s->padding_statement).fill" identifier = (field_expression "(s->padding_statement).fill" (parenthesized_expression "(s->padding_statement)" ( (field_expression "s->padding_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "sVar5 = pfVar4->size;" (assignment_expression "sVar5 = pfVar4->size" identifier = (field_expression "pfVar4->size" identifier -> field_identifier)) ;) (if_statement "if (sVar5 != 0) {\n      puVar14 = pfVar4->data;\n      do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);\n    }" if (parenthesized_expression "(sVar5 != 0)" ( (binary_expression "sVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar14 = pfVar4->data;\n      do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);\n    }" { (expression_statement "puVar14 = pfVar4->data;" (assignment_expression "puVar14 = pfVar4->data" identifier = (field_expression "pfVar4->data" identifier -> field_identifier)) ;) (do_statement "do {\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      } while (puVar14 != pfVar4->data + sVar5);" do (compound_statement "{\n        bVar1 = *puVar14;\n        puVar14 = puVar14 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);\n      }" { (expression_statement "bVar1 = *puVar14;" (assignment_expression "bVar1 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar14 = puVar14 + 1;" (assignment_expression "puVar14 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) (expression_statement "fprintf((FILE *)config.map_file,"%02x",(uint)bVar1);" (call_expression "fprintf((FILE *)config.map_file,"%02x",(uint)bVar1)" identifier (argument_list "((FILE *)config.map_file,"%02x",(uint)bVar1)" ( (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) , (string_literal ""%02x"" " string_content ") , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }) while (parenthesized_expression "(puVar14 != pfVar4->data + sVar5)" ( (binary_expression "puVar14 != pfVar4->data + sVar5" identifier != (binary_expression "pfVar4->data + sVar5" (field_expression "pfVar4->data" identifier -> field_identifier) + identifier)) )) ;) })) (expression_statement "print_nl();" (call_expression "print_nl()" identifier (argument_list "()" ( ))) ;) (expression_statement "print_dot = (bfd_vma)(local_2c + ((s->padding_statement).size >> ((byte)opb_shift & 0x1f)));" (assignment_expression "print_dot = (bfd_vma)(local_2c + ((s->padding_statement).size >> ((byte)opb_shift & 0x1f)))" identifier = (call_expression "(bfd_vma)(local_2c + ((s->padding_statement).size >> ((byte)opb_shift & 0x1f)))" (parenthesized_expression "(bfd_vma)" ( identifier )) (argument_list "(local_2c + ((s->padding_statement).size >> ((byte)opb_shift & 0x1f)))" ( (binary_expression "local_2c + ((s->padding_statement).size >> ((byte)opb_shift & 0x1f))" identifier + (parenthesized_expression "((s->padding_statement).size >> ((byte)opb_shift & 0x1f))" ( (binary_expression "(s->padding_statement).size >> ((byte)opb_shift & 0x1f)" (field_expression "(s->padding_statement).size" (parenthesized_expression "(s->padding_statement)" ( (field_expression "s->padding_statement" identifier -> field_identifier) )) . field_identifier) >> (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) )))) ;) (break_statement "break;" break ;)) (case_statement "case lang_group_statement_enum:\n    fwrite("START GROUP\n",1,0xc,(FILE *)config.map_file);\n    for (plVar6 = (s->output_section_statement).children.head;\n        plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,os);\n    }\n    fwrite("END GROUP\n",1,10,(FILE *)config.map_file);\n    break;" case identifier : (expression_statement "fwrite("START GROUP\n",1,0xc,(FILE *)config.map_file);" (call_expression "fwrite("START GROUP\n",1,0xc,(FILE *)config.map_file)" identifier (argument_list "("START GROUP\n",1,0xc,(FILE *)config.map_file)" ( (string_literal ""START GROUP\n"" " string_content escape_sequence ") , number_literal , number_literal , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;) (for_statement "for (plVar6 = (s->output_section_statement).children.head;\n        plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n      print_statement(plVar6,os);\n    }" for ( (assignment_expression "plVar6 = (s->output_section_statement).children.head" identifier = (field_expression "(s->output_section_statement).children.head" (field_expression "(s->output_section_statement).children" (parenthesized_expression "(s->output_section_statement)" ( (field_expression "s->output_section_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ; (binary_expression "plVar6 != (lang_statement_union_type *)0x0" identifier != (cast_expression "(lang_statement_union_type *)0x0" ( (type_descriptor "lang_statement_union_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar6 = (plVar6->header).next" identifier = (field_expression "(plVar6->header).next" (parenthesized_expression "(plVar6->header)" ( (field_expression "plVar6->header" identifier -> field_identifier) )) . field_identifier)) ) (compound_statement "{\n      print_statement(plVar6,os);\n    }" { (expression_statement "print_statement(plVar6,os);" (call_expression "print_statement(plVar6,os)" identifier (argument_list "(plVar6,os)" ( identifier , identifier ))) ;) })) (expression_statement "fwrite("END GROUP\n",1,10,(FILE *)config.map_file);" (call_expression "fwrite("END GROUP\n",1,10,(FILE *)config.map_file)" identifier (argument_list "("END GROUP\n",1,10,(FILE *)config.map_file)" ( (string_literal ""END GROUP\n"" " string_content escape_sequence ") , number_literal , number_literal , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;) (break_statement "break;" break ;)) (case_statement "case lang_insert_statement_enum:\n    pcVar12 = "BEFORE";\n    if ((s->wild_statement).filenames_sorted == 0) {\n      pcVar12 = "AFTER";\n    }\n    minfo("INSERT %s %s\n",pcVar12,(s->wild_statement).filename);\n    break;" case identifier : (expression_statement "pcVar12 = "BEFORE";" (assignment_expression "pcVar12 = "BEFORE"" identifier = (string_literal ""BEFORE"" " string_content ")) ;) (if_statement "if ((s->wild_statement).filenames_sorted == 0) {\n      pcVar12 = "AFTER";\n    }" if (parenthesized_expression "((s->wild_statement).filenames_sorted == 0)" ( (binary_expression "(s->wild_statement).filenames_sorted == 0" (field_expression "(s->wild_statement).filenames_sorted" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n      pcVar12 = "AFTER";\n    }" { (expression_statement "pcVar12 = "AFTER";" (assignment_expression "pcVar12 = "AFTER"" identifier = (string_literal ""AFTER"" " string_content ")) ;) })) (expression_statement "minfo("INSERT %s %s\n",pcVar12,(s->wild_statement).filename);" (call_expression "minfo("INSERT %s %s\n",pcVar12,(s->wild_statement).filename)" identifier (argument_list "("INSERT %s %s\n",pcVar12,(s->wild_statement).filename)" ( (string_literal ""INSERT %s %s\n"" " string_content escape_sequence ") , identifier , (field_expression "(s->wild_statement).filename" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case lang_constructors_statement_enum:\n    if (constructor_list.head != (lang_statement_union *)0x0) {\n      if (constructors_sorted == 0) {\n        minfo(" CONSTRUCTORS\n");\n        plVar6 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar6 = constructor_list.head;\n      }\n      for (; plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n        print_statement(plVar6,os);\n      }\n    }\n    break;" case identifier : (if_statement "if (constructor_list.head != (lang_statement_union *)0x0) {\n      if (constructors_sorted == 0) {\n        minfo(" CONSTRUCTORS\n");\n        plVar6 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar6 = constructor_list.head;\n      }\n      for (; plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n        print_statement(plVar6,os);\n      }\n    }" if (parenthesized_expression "(constructor_list.head != (lang_statement_union *)0x0)" ( (binary_expression "constructor_list.head != (lang_statement_union *)0x0" (field_expression "constructor_list.head" identifier . field_identifier) != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (constructors_sorted == 0) {\n        minfo(" CONSTRUCTORS\n");\n        plVar6 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar6 = constructor_list.head;\n      }\n      for (; plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n        print_statement(plVar6,os);\n      }\n    }" { (if_statement "if (constructors_sorted == 0) {\n        minfo(" CONSTRUCTORS\n");\n        plVar6 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar6 = constructor_list.head;\n      }" if (parenthesized_expression "(constructors_sorted == 0)" ( (binary_expression "constructors_sorted == 0" identifier == number_literal) )) (compound_statement "{\n        minfo(" CONSTRUCTORS\n");\n        plVar6 = constructor_list.head;\n      }" { (expression_statement "minfo(" CONSTRUCTORS\n");" (call_expression "minfo(" CONSTRUCTORS\n")" identifier (argument_list "(" CONSTRUCTORS\n")" ( (string_literal "" CONSTRUCTORS\n"" " string_content escape_sequence ") ))) ;) (expression_statement "plVar6 = constructor_list.head;" (assignment_expression "plVar6 = constructor_list.head" identifier = (field_expression "constructor_list.head" identifier . field_identifier)) ;) }) (else_clause "else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar6 = constructor_list.head;\n      }" else (compound_statement "{\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar6 = constructor_list.head;\n      }" { (expression_statement "minfo(" SORT (CONSTRUCTORS)\n");" (call_expression "minfo(" SORT (CONSTRUCTORS)\n")" identifier (argument_list "(" SORT (CONSTRUCTORS)\n")" ( (string_literal "" SORT (CONSTRUCTORS)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "plVar6 = constructor_list.head;" (assignment_expression "plVar6 = constructor_list.head" identifier = (field_expression "constructor_list.head" identifier . field_identifier)) ;) }))) (for_statement "for (; plVar6 != (lang_statement_union_type *)0x0; plVar6 = (plVar6->header).next) {\n        print_statement(plVar6,os);\n      }" for ( ; (binary_expression "plVar6 != (lang_statement_union_type *)0x0" identifier != (cast_expression "(lang_statement_union_type *)0x0" ( (type_descriptor "lang_statement_union_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar6 = (plVar6->header).next" identifier = (field_expression "(plVar6->header).next" (parenthesized_expression "(plVar6->header)" ( (field_expression "plVar6->header" identifier -> field_identifier) )) . field_identifier)) ) (compound_statement "{\n        print_statement(plVar6,os);\n      }" { (expression_statement "print_statement(plVar6,os);" (call_expression "print_statement(plVar6,os)" identifier (argument_list "(plVar6,os)" ( identifier , identifier ))) ;) })) })) (break_statement "break;" break ;)) (case_statement "default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf((FILE *)config.map_file,pcVar12,sVar16);\n    info_assert("../../ld/ldlang.c",0x11bc);" default : (expression_statement "pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);" (assignment_expression "pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Fail with %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Fail with %d\n",5)" identifier (argument_list "(0,"Fail with %d\n",5)" ( number_literal , (string_literal ""Fail with %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf((FILE *)config.map_file,pcVar12,sVar16);" (call_expression "fprintf((FILE *)config.map_file,pcVar12,sVar16)" identifier (argument_list "((FILE *)config.map_file,pcVar12,sVar16)" ( (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) , identifier , identifier ))) ;) (expression_statement "info_assert("../../ld/ldlang.c",0x11bc);" (call_expression "info_assert("../../ld/ldlang.c",0x11bc)" identifier (argument_list "("../../ld/ldlang.c",0x11bc)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;)) })) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_0001f580(int param_1,int param_2)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  bool bVar6;\n  undefined4 *puVar7;\n  undefined4 *__base;\n  undefined4 *puVar8;\n  size_t sVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  undefined4 uVar13;\n  char *pcVar14;\n  uint uVar15;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  undefined *puVar19;\n  uint local_30;\n  int iStack_2c;\n  size_t sStack_24;\n  \n  uVar12 = *(uint *)(param_1 + 4);\n  switch(uVar12) {\n  case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;\n  case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;\n  case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;\n  case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;\n  case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;\n  case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;\n  case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;\n  case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;\n  default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_0001f580(int param_1,int param_2)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  bool bVar6;\n  undefined4 *puVar7;\n  undefined4 *__base;\n  undefined4 *puVar8;\n  size_t sVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  undefined4 uVar13;\n  char *pcVar14;\n  uint uVar15;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  undefined *puVar19;\n  uint local_30;\n  int iStack_2c;\n  size_t sStack_24;\n  \n  uVar12 = *(uint *)(param_1 + 4);\n  switch(uVar12) {\n  case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;\n  case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;\n  case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;\n  case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;\n  case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;\n  case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;\n  case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;\n  case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;\n  default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0001f580(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  bool bVar6;\n  undefined4 *puVar7;\n  undefined4 *__base;\n  undefined4 *puVar8;\n  size_t sVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  undefined4 uVar13;\n  char *pcVar14;\n  uint uVar15;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  undefined *puVar19;\n  uint local_30;\n  int iStack_2c;\n  size_t sStack_24;\n  \n  uVar12 = *(uint *)(param_1 + 4);\n  switch(uVar12) {\n  case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;\n  case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;\n  case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;\n  case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;\n  case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;\n  case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;\n  case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;\n  case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;\n  default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *__base;" type_identifier (pointer_declarator "*__base" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "int iStack_2c;" primitive_type identifier ;) (declaration "size_t sStack_24;" primitive_type identifier ;) (expression_statement "uVar12 = *(uint *)(param_1 + 4);" (assignment_expression "uVar12 = *(uint *)(param_1 + 4)" identifier = (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (switch_statement "switch(uVar12) {\n  case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;\n  case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;\n  case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;\n  case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;\n  case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;\n  case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;\n  case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;\n  case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;\n  default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);\n  }" switch (parenthesized_expression "(uVar12)" ( identifier )) (compound_statement "{\n  case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;\n  case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;\n  case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;\n  case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;\n  case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;\n  case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;\n  case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;\n  case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;\n  default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);\n  }" { (case_statement "case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;" case number_literal : (if_statement "if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }" if (parenthesized_expression "(param_1 != DAT_000bbdac)" ( (binary_expression "param_1 != DAT_000bbdac" identifier != identifier) )) (compound_statement "{\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }" { (expression_statement "iVar18 = *(int *)(param_1 + 0x1c);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x1c)" identifier = (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));" (call_expression "FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18))" identifier (argument_list "(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18))" ( (pointer_expression "&UNK_0004ef3d" & identifier) , (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) ))) ;) (if_statement "if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }" { (expression_statement "DAT_000bb998 = *(uint *)(iVar18 + 0x1c);" (assignment_expression "DAT_000bb998 = *(uint *)(iVar18 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x1c)" * (cast_expression "(uint *)(iVar18 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "sVar9 = strlen(*(char **)(param_1 + 0x18));" (assignment_expression "sVar9 = strlen(*(char **)(param_1 + 0x18))" identifier = (call_expression "strlen(*(char **)(param_1 + 0x18))" identifier (argument_list "(*(char **)(param_1 + 0x18))" ( (pointer_expression "*(char **)(param_1 + 0x18)" * (cast_expression "(char **)(param_1 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) )))) ;) (if_statement "if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }" if (parenthesized_expression "(0xe < sVar9)" ( (binary_expression "0xe < sVar9" number_literal < identifier) )) (compound_statement "{\n          FUN_00030810();\n          sVar9 = 0;\n        }" { (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar9 = 0;" (assignment_expression "sVar9 = 0" identifier = number_literal) ;) })) (do_statement "do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);" do (compound_statement "{\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        }" { (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar9 = sVar9 + 1;" (assignment_expression "sVar9 = sVar9 + 1" identifier = (binary_expression "sVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar9 != 0x10)" ( (binary_expression "sVar9 != 0x10" identifier != number_literal) )) ;) (expression_statement "FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));" (call_expression "FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f))" identifier (argument_list "(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f))" ( (pointer_expression "&UNK_0004ef41" & identifier) , (pointer_expression "*(undefined4 *)(iVar18 + 0x1c)" * (cast_expression "(undefined4 *)(iVar18 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" identifier + number_literal) )))) , (binary_expression "*(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(iVar18 + 0x24)" * (cast_expression "(uint *)(iVar18 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x24)" ( (binary_expression "iVar18 + 0x24" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) ;) (expression_statement "iVar5 = *(int *)(iVar18 + 0x20);" (assignment_expression "iVar5 = *(int *)(iVar18 + 0x20)" identifier = (pointer_expression "*(int *)(iVar18 + 0x20)" * (cast_expression "(int *)(iVar18 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }" if (parenthesized_expression "(*(int *)(iVar18 + 0x1c) != iVar5)" ( (binary_expression "*(int *)(iVar18 + 0x1c) != iVar5" (pointer_expression "*(int *)(iVar18 + 0x1c)" * (cast_expression "(int *)(iVar18 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }" { (expression_statement "uVar13 = dcgettext(0," load address 0x%V",5);" (assignment_expression "uVar13 = dcgettext(0," load address 0x%V",5)" identifier = (call_expression "dcgettext(0," load address 0x%V",5)" identifier (argument_list "(0," load address 0x%V",5)" ( number_literal , (string_literal "" load address 0x%V"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_000317c0(uVar13,iVar5);" (call_expression "FUN_000317c0(uVar13,iVar5)" identifier (argument_list "(uVar13,iVar5)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x34) != 0)" ( (binary_expression "*(int *)(param_1 + 0x34) != 0" (pointer_expression "*(int *)(param_1 + 0x34)" * (cast_expression "(int *)(param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }" { (expression_statement "FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;" (call_expression "FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)" identifier (argument_list "(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)" ( (pointer_expression "*(int *)(param_1 + 0x34)" * (cast_expression "(int *)(param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) , (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal) , (pointer_expression "&DAT_000bb998" & identifier) ))) ;) })) })) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) })) (for_statement "for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }" for ( (assignment_expression "puVar4 = *(undefined4 **)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 8)" * (cast_expression "(undefined4 **)(param_1 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ; (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar4 = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ) (compound_statement "{\n      FUN_0001f580();\n    }" { (expression_statement "FUN_0001f580();" (call_expression "FUN_0001f580()" identifier (argument_list "()" ( ))) ;) })) (break_statement "break;" break ;)) (case_statement "case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;" case number_literal : (expression_statement "iVar18 = 0x10;" (assignment_expression "iVar18 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);" do (compound_statement "{\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    }" { (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) ;) (expression_statement "iVar18 = *(int *)(param_1 + 8);" (assignment_expression "iVar18 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar14 = *(char **)(iVar18 + 0x10);" (assignment_expression "pcVar14 = *(char **)(iVar18 + 0x10)" identifier = (pointer_expression "*(char **)(iVar18 + 0x10)" * (cast_expression "(char **)(iVar18 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "puVar19 = *(undefined **)(param_2 + 0x1c);" (assignment_expression "puVar19 = *(undefined **)(param_2 + 0x1c)" identifier = (pointer_expression "*(undefined **)(param_2 + 0x1c)" * (cast_expression "(undefined **)(param_2 + 0x1c)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }" if (parenthesized_expression "(*(int *)(iVar18 + 0xc) == 8)" ( (binary_expression "*(int *)(iVar18 + 0xc) == 8" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }" { (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (if_statement "if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }" if (parenthesized_expression "(puVar19 == (undefined *)0x0)" ( (binary_expression "puVar19 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }" { (expression_statement "puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;" (assignment_expression "puVar19 = PTR__bfd_std_section_000bafc4 + 0x150" identifier = (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal)) ;) })) (labeled_statement "code_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);" statement_identifier : (expression_statement "FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);" (call_expression "FUN_0002f480(pcVar14,puVar19,&DAT_000bb998)" identifier (argument_list "(pcVar14,puVar19,&DAT_000bb998)" ( identifier , identifier , (pointer_expression "&DAT_000bb998" & identifier) ))) ;)) (expression_statement "uVar12 = DAT_000bbf94;" (assignment_expression "uVar12 = DAT_000bbf94" identifier = identifier) ;) (expression_statement "iVar18 = *(int *)(param_1 + 8);" (assignment_expression "iVar18 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (DAT_000bbfa0 == 0) goto code_r0x0001f610;" if (parenthesized_expression "(DAT_000bbfa0 == 0)" ( (binary_expression "DAT_000bbfa0 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x0001f610;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar18 + 0xc) == 8)" ( (binary_expression "*(int *)(iVar18 + 0xc) == 8" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }" { (if_statement "if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }" if (parenthesized_expression "(DAT_000bbf9c != 0)" ( (binary_expression "DAT_000bbf9c != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }" { (labeled_statement "code_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);" statement_identifier : (expression_statement "uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);" (assignment_expression "uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c)" identifier = (binary_expression "DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c)" identifier + (pointer_expression "*(int *)(DAT_000bbf9c + 0x1c)" * (cast_expression "(int *)(DAT_000bbf9c + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000bbf9c + 0x1c)" ( (binary_expression "DAT_000bbf9c + 0x1c" identifier + number_literal) )))))) ;)) })) (expression_statement "FUN_000317c0("0x%V",uVar12);" (call_expression "FUN_000317c0("0x%V",uVar12)" identifier (argument_list "("0x%V",uVar12)" ( (string_literal ""0x%V"" " string_content ") , identifier ))) ;) (if_statement "if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }" if (parenthesized_expression "(bVar6)" ( identifier )) (compound_statement "{\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }" { (labeled_statement "code_r0x0001fec9:\n          DAT_000bb998 = uVar12;" statement_identifier : (expression_statement "DAT_000bb998 = uVar12;" (assignment_expression "DAT_000bb998 = uVar12" identifier = identifier) ;)) })) }) (else_clause "else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }" else (compound_statement "{\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }" { (if_statement "if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }" if (parenthesized_expression "(bVar6)" ( identifier )) (compound_statement "{\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }" { (if_statement "if (DAT_000bbf9c != 0) goto code_r0x0001fea7;" if (parenthesized_expression "(DAT_000bbf9c != 0)" ( (binary_expression "DAT_000bbf9c != 0" identifier != number_literal) )) (goto_statement "goto code_r0x0001fea7;" goto statement_identifier ;)) (expression_statement "FUN_000317c0("0x%V",DAT_000bbf94);" (call_expression "FUN_000317c0("0x%V",DAT_000bbf94)" identifier (argument_list "("0x%V",DAT_000bbf94)" ( (string_literal ""0x%V"" " string_content ") , identifier ))) ;) (goto_statement "goto code_r0x0001fec9;" goto statement_identifier ;) })) (if_statement "if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }" if (parenthesized_expression "(pcRam000bbf8c == (char *)0x0)" ( (binary_expression "pcRam000bbf8c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }" { (expression_statement "iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);" (assignment_expression "iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1)" identifier (argument_list "(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1)" ( identifier , (pointer_expression "*(undefined4 *)(iVar18 + 0x10)" * (cast_expression "(undefined4 *)(iVar18 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) )))) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_000317c0("[unresolved]");\n          }" { (expression_statement "FUN_000317c0("[unresolved]");" (call_expression "FUN_000317c0("[unresolved]")" identifier (argument_list "("[unresolved]")" ( (string_literal ""[unresolved]"" " string_content ") ))) ;) }) (else_clause "else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }" else (compound_statement "{\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }" { (expression_statement "FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));" (call_expression "FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c))" identifier (argument_list "(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c))" ( (pointer_expression "&UNK_0004ef5c" & identifier) , (binary_expression "*(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c)" (binary_expression "*(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18)" (pointer_expression "*(int *)(*(int *)(iVar18 + 0x14) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar18 + 0x14) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x14) + 0x38)" ( (binary_expression "*(int *)(iVar18 + 0x14) + 0x38" (pointer_expression "*(int *)(iVar18 + 0x14)" * (cast_expression "(int *)(iVar18 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x14)" ( (binary_expression "iVar18 + 0x14" identifier + number_literal) )))) + number_literal) )))) + (pointer_expression "*(int *)(iVar18 + 0x18)" * (cast_expression "(int *)(iVar18 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) ))))) + (pointer_expression "*(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c)" * (cast_expression "(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c)" ( (binary_expression "*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c" (pointer_expression "*(int *)(*(int *)(iVar18 + 0x14) + 0x3c)" * (cast_expression "(int *)(*(int *)(iVar18 + 0x14) + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x14) + 0x3c)" ( (binary_expression "*(int *)(iVar18 + 0x14) + 0x3c" (pointer_expression "*(int *)(iVar18 + 0x14)" * (cast_expression "(int *)(iVar18 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x14)" ( (binary_expression "iVar18 + 0x14" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ))) ;) }))) }) (else_clause "else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }" else (compound_statement "{\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }" { (if_statement "if (DAT_000bbf9c != 0) goto code_r0x0001fea7;" if (parenthesized_expression "(DAT_000bbf9c != 0)" ( (binary_expression "DAT_000bbf9c != 0" identifier != number_literal) )) (goto_statement "goto code_r0x0001fea7;" goto statement_identifier ;)) (expression_statement "FUN_000317c0("0x%V",DAT_000bbf94);" (call_expression "FUN_000317c0("0x%V",DAT_000bbf94)" identifier (argument_list "("0x%V",DAT_000bbf94)" ( (string_literal ""0x%V"" " string_content ") , identifier ))) ;) }))) }))) }) (else_clause "else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }" else (compound_statement "{\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }" { (if_statement "if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }" if (parenthesized_expression "((*pcVar14 == '.') && (pcVar14[1] == '\0'))" ( (binary_expression "(*pcVar14 == '.') && (pcVar14[1] == '\0')" (parenthesized_expression "(*pcVar14 == '.')" ( (binary_expression "*pcVar14 == '.'" (pointer_expression "*pcVar14" * identifier) == (char_literal "'.'" ' character ')) )) && (parenthesized_expression "(pcVar14[1] == '\0')" ( (binary_expression "pcVar14[1] == '\0'" (subscript_expression "pcVar14[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        bVar6 = true;\n      }" { (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" identifier = true) ;) }) (else_clause "else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }" else (compound_statement "{\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }" { (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (expression_statement "pcRam000bbf8c = pcVar14;" (assignment_expression "pcRam000bbf8c = pcVar14" identifier = identifier) ;) }))) (expression_statement "pcVar14 = *(char **)(iVar18 + 0x14);" (assignment_expression "pcVar14 = *(char **)(iVar18 + 0x14)" identifier = (pointer_expression "*(char **)(iVar18 + 0x14)" * (cast_expression "(char **)(iVar18 + 0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 0x14)" ( (binary_expression "iVar18 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }" if (parenthesized_expression "(puVar19 == (undefined *)0x0)" ( (binary_expression "puVar19 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }" { (expression_statement "puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;" (assignment_expression "puVar19 = PTR__bfd_std_section_000bafc4 + 0x150" identifier = (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal)) ;) })) (if_statement "if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;" if (parenthesized_expression "(*(int *)(iVar18 + 0xc) != 5)" ( (binary_expression "*(int *)(iVar18 + 0xc) != 5" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto code_r0x0001fe56;" goto statement_identifier ;)) (expression_statement "DAT_000bbfa0 = 0;" (assignment_expression "DAT_000bbfa0 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }" statement_identifier : (if_statement "if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }" if (parenthesized_expression "(*(int *)(iVar18 + 0xc) == 5)" ( (binary_expression "*(int *)(iVar18 + 0xc) == 5" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        FUN_000317c0("[!provide]");\n      }" { (expression_statement "FUN_000317c0("[!provide]");" (call_expression "FUN_000317c0("[!provide]")" identifier (argument_list "("[!provide]")" ( (string_literal ""[!provide]"" " string_content ") ))) ;) }) (else_clause "else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }" else (compound_statement "{\n        FUN_000317c0(&UNK_0004ef7b);\n      }" { (expression_statement "FUN_000317c0(&UNK_0004ef7b);" (call_expression "FUN_000317c0(&UNK_0004ef7b)" identifier (argument_list "(&UNK_0004ef7b)" ( (pointer_expression "&UNK_0004ef7b" & identifier) ))) ;) })))) }))) (expression_statement "pcRam000bbf8c = (char *)0x0;" (assignment_expression "pcRam000bbf8c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_000317c0(&UNK_0004ef86);" (call_expression "FUN_000317c0(&UNK_0004ef86)" identifier (argument_list "(&UNK_0004ef86)" ( (pointer_expression "&UNK_0004ef86" & identifier) ))) ;) (expression_statement "FUN_0002f810(*(undefined4 *)(param_1 + 8));" (call_expression "FUN_0002f810(*(undefined4 *)(param_1 + 8))" identifier (argument_list "(*(undefined4 *)(param_1 + 8))" ( (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;" case number_literal : (expression_statement "iVar18 = *(int *)(param_1 + 8);" (assignment_expression "iVar18 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar18 == 0) {\n      return;\n    }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }" if (parenthesized_expression "((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))" ( (binary_expression "(*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0)" (parenthesized_expression "(*(int *)(param_1 + 0x10) != 0)" ( (binary_expression "*(int *)(param_1 + 0x10) != 0" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0)" ( (binary_expression "(*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0" (parenthesized_expression "(*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2)" ( (binary_expression "*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2" (pointer_expression "*(byte *)(*(int *)(param_1 + 0x10) + 0x2a)" * (cast_expression "(byte *)(*(int *)(param_1 + 0x10) + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + 0x2a)" ( (binary_expression "*(int *)(param_1 + 0x10) + 0x2a" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "pcVar14 = "LOAD %s\n";" (assignment_expression "pcVar14 = "LOAD %s\n"" identifier = (string_literal ""LOAD %s\n"" " string_content escape_sequence ")) ;) (goto_statement "goto code_r0x0001f93c;" goto statement_identifier ;)) (case_statement "case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;" case number_literal : (expression_statement "uVar13 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar13 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = dcgettext(0,"Address of section %s set to ",5);" (assignment_expression "uVar11 = dcgettext(0,"Address of section %s set to ",5)" identifier = (call_expression "dcgettext(0,"Address of section %s set to ",5)" identifier (argument_list "(0,"Address of section %s set to ",5)" ( number_literal , (string_literal ""Address of section %s set to "" " string_content ") , number_literal )))) ;) (expression_statement "FUN_000317c0(uVar11,uVar13);" (call_expression "FUN_000317c0(uVar11,uVar13)" identifier (argument_list "(uVar11,uVar13)" ( identifier , identifier ))) ;) (expression_statement "FUN_0002f810(*(undefined4 *)(param_1 + 0xc));" (call_expression "FUN_0002f810(*(undefined4 *)(param_1 + 0xc))" identifier (argument_list "(*(undefined4 *)(param_1 + 0xc))" ( (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;" case number_literal : (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }" if (parenthesized_expression "(*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0)" ( (binary_expression "*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0" (pointer_expression "*(undefined4 **)(param_1 + 0x20)" * (cast_expression "(undefined4 **)(param_1 + 0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }" { (expression_statement "uVar13 = **(undefined4 **)(param_1 + 0x20);" (assignment_expression "uVar13 = **(undefined4 **)(param_1 + 0x20)" identifier = (pointer_expression "**(undefined4 **)(param_1 + 0x20)" * (pointer_expression "*(undefined4 **)(param_1 + 0x20)" * (cast_expression "(undefined4 **)(param_1 + 0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))))) ;) (expression_statement "FUN_000317c0("EXCLUDE_FILE(%s",uVar13);" (call_expression "FUN_000317c0("EXCLUDE_FILE(%s",uVar13)" identifier (argument_list "("EXCLUDE_FILE(%s",uVar13)" ( (string_literal ""EXCLUDE_FILE(%s"" " string_content ") , identifier ))) ;) (for_statement "for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }" for ( (assignment_expression "puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(param_1 + 0x20) + 4)" * (cast_expression "(undefined4 **)(*(int *)(param_1 + 0x20) + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0x20) + 4)" ( (binary_expression "*(int *)(param_1 + 0x20) + 4" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) + number_literal) ))))) ; (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar4 = (undefined4 *)puVar4[1]" identifier = (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ) (compound_statement "{\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }" { (expression_statement "uVar13 = *puVar4;" (assignment_expression "uVar13 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "FUN_000317c0(&DAT_0004d69b,uVar13);" (call_expression "FUN_000317c0(&DAT_0004d69b,uVar13)" identifier (argument_list "(&DAT_0004d69b,uVar13)" ( (pointer_expression "&DAT_0004d69b" & identifier) , identifier ))) ;) })) (expression_statement "FUN_000317c0(&UNK_0004ee77,uVar13);" (call_expression "FUN_000317c0(&UNK_0004ee77,uVar13)" identifier (argument_list "(&UNK_0004ee77,uVar13)" ( (pointer_expression "&UNK_0004ee77" & identifier) , identifier ))) ;) })) (if_statement "if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" ( (binary_expression "*(int *)(param_1 + 0xc) != 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_000317c0("SORT_BY_NAME(");\n    }" { (expression_statement "FUN_000317c0("SORT_BY_NAME(");" (call_expression "FUN_000317c0("SORT_BY_NAME(")" identifier (argument_list "("SORT_BY_NAME(")" ( (string_literal ""SORT_BY_NAME("" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }" if (parenthesized_expression "(*(int *)(param_1 + 8) == 0)" ( (binary_expression "*(int *)(param_1 + 8) == 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      FUN_000317c0(&DAT_0004f0a0);\n    }" { (expression_statement "FUN_000317c0(&DAT_0004f0a0);" (call_expression "FUN_000317c0(&DAT_0004f0a0)" identifier (argument_list "(&DAT_0004f0a0)" ( (pointer_expression "&DAT_0004f0a0" & identifier) ))) ;) }) (else_clause "else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }" else (compound_statement "{\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }" { (expression_statement "FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));" (call_expression "FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8))" identifier (argument_list "(&DAT_0004ef3e,*(int *)(param_1 + 8))" ( (pointer_expression "&DAT_0004ef3e" & identifier) , (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) ))) ;) }))) (if_statement "if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" ( (binary_expression "*(int *)(param_1 + 0xc) != 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_000317c0(")");\n    }" { (expression_statement "FUN_000317c0(")");" (call_expression "FUN_000317c0(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) ;) })) (expression_statement "FUN_000317c0("(");" (call_expression "FUN_000317c0("(")" identifier (argument_list "("(")" ( (string_literal ""("" " string_content ") ))) ;) (for_statement "for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }" for ( (assignment_expression "piVar3 = *(int **)(param_1 + 0x10)" identifier = (pointer_expression "*(int **)(param_1 + 0x10)" * (cast_expression "(int **)(param_1 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ; (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar3 = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ) (compound_statement "{\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }" { (switch_statement "switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }" switch (parenthesized_expression "(piVar3[3])" ( (subscript_expression "piVar3[3]" identifier [ number_literal ]) )) (compound_statement "{\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }" { (case_statement "default:\n        iVar18 = 0;\n        break;" default : (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;" case number_literal : (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (expression_statement "FUN_000317c0("SORT_BY_NAME(");" (call_expression "FUN_000317c0("SORT_BY_NAME(")" identifier (argument_list "("SORT_BY_NAME(")" ( (string_literal ""SORT_BY_NAME("" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;" case number_literal : (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (expression_statement "FUN_000317c0("SORT_BY_ALIGNMENT(");" (call_expression "FUN_000317c0("SORT_BY_ALIGNMENT(")" identifier (argument_list "("SORT_BY_ALIGNMENT(")" ( (string_literal ""SORT_BY_ALIGNMENT("" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;" case number_literal : (expression_statement "iVar18 = 2;" (assignment_expression "iVar18 = 2" identifier = number_literal) ;) (expression_statement "FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");" (call_expression "FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(")" identifier (argument_list "("SORT_BY_NAME(SORT_BY_ALIGNMENT(")" ( (string_literal ""SORT_BY_NAME(SORT_BY_ALIGNMENT("" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;" case number_literal : (expression_statement "iVar18 = 2;" (assignment_expression "iVar18 = 2" identifier = number_literal) ;) (expression_statement "FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");" (call_expression "FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(")" identifier (argument_list "("SORT_BY_ALIGNMENT(SORT_BY_NAME(")" ( (string_literal ""SORT_BY_ALIGNMENT(SORT_BY_NAME("" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;" case number_literal : (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (expression_statement "FUN_000317c0("SORT_NONE(");" (call_expression "FUN_000317c0("SORT_NONE(")" identifier (argument_list "("SORT_NONE(")" ( (string_literal ""SORT_NONE("" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");" case number_literal : (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (expression_statement "FUN_000317c0("SORT_BY_INIT_PRIORITY(");" (call_expression "FUN_000317c0("SORT_BY_INIT_PRIORITY(")" identifier (argument_list "("SORT_BY_INIT_PRIORITY(")" ( (string_literal ""SORT_BY_INIT_PRIORITY("" " string_content ") ))) ;)) })) (if_statement "if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }" if (parenthesized_expression "((undefined4 *)piVar3[2] != (undefined4 *)0x0)" ( (binary_expression "(undefined4 *)piVar3[2] != (undefined4 *)0x0" (cast_expression "(undefined4 *)piVar3[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[2]" identifier [ number_literal ])) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }" { (expression_statement "uVar13 = *(undefined4 *)piVar3[2];" (assignment_expression "uVar13 = *(undefined4 *)piVar3[2]" identifier = (pointer_expression "*(undefined4 *)piVar3[2]" * (cast_expression "(undefined4 *)piVar3[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[2]" identifier [ number_literal ])))) ;) (expression_statement "FUN_000317c0("EXCLUDE_FILE(%s",uVar13);" (call_expression "FUN_000317c0("EXCLUDE_FILE(%s",uVar13)" identifier (argument_list "("EXCLUDE_FILE(%s",uVar13)" ( (string_literal ""EXCLUDE_FILE(%s"" " string_content ") , identifier ))) ;) (for_statement "for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }" for ( (assignment_expression "puVar4 = *(undefined4 **)(piVar3[2] + 4)" identifier = (pointer_expression "*(undefined4 **)(piVar3[2] + 4)" * (cast_expression "(undefined4 **)(piVar3[2] + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar3[2] + 4)" ( (binary_expression "piVar3[2] + 4" (subscript_expression "piVar3[2]" identifier [ number_literal ]) + number_literal) ))))) ; (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar4 = (undefined4 *)puVar4[1]" identifier = (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ) (compound_statement "{\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }" { (expression_statement "uVar13 = *puVar4;" (assignment_expression "uVar13 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "FUN_000317c0(&DAT_0004d69b,uVar13);" (call_expression "FUN_000317c0(&DAT_0004d69b,uVar13)" identifier (argument_list "(&DAT_0004d69b,uVar13)" ( (pointer_expression "&DAT_0004d69b" & identifier) , identifier ))) ;) })) (expression_statement "FUN_000317c0(&UNK_0004ee77,uVar13);" (call_expression "FUN_000317c0(&UNK_0004ee77,uVar13)" identifier (argument_list "(&UNK_0004ee77,uVar13)" ( (pointer_expression "&UNK_0004ee77" & identifier) , identifier ))) ;) })) (if_statement "if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }" if (parenthesized_expression "(piVar3[1] == 0)" ( (binary_expression "piVar3[1] == 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        FUN_000317c0(&DAT_0004f0a0);\n      }" { (expression_statement "FUN_000317c0(&DAT_0004f0a0);" (call_expression "FUN_000317c0(&DAT_0004f0a0)" identifier (argument_list "(&DAT_0004f0a0)" ( (pointer_expression "&DAT_0004f0a0" & identifier) ))) ;) }) (else_clause "else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }" else (compound_statement "{\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }" { (expression_statement "FUN_000317c0(&DAT_0004ef3e,piVar3[1]);" (call_expression "FUN_000317c0(&DAT_0004ef3e,piVar3[1])" identifier (argument_list "(&DAT_0004ef3e,piVar3[1])" ( (pointer_expression "&DAT_0004ef3e" & identifier) , (subscript_expression "piVar3[1]" identifier [ number_literal ]) ))) ;) }))) (if_statement "if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }" if (parenthesized_expression "((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1))" ( (binary_expression "(iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)" (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) && (parenthesized_expression "(FUN_000317c0(")"), iVar18 != 1)" ( (comma_expression "FUN_000317c0(")"), iVar18 != 1" (call_expression "FUN_000317c0(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) , (binary_expression "iVar18 != 1" identifier != number_literal)) ))) )) (compound_statement "{\n        FUN_000317c0(")");\n      }" { (expression_statement "FUN_000317c0(")");" (call_expression "FUN_000317c0(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) ;) })) (if_statement "if (*piVar3 == 0) break;" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "FUN_000317c0(" ");" (call_expression "FUN_000317c0(" ")" identifier (argument_list "(" ")" ( (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "FUN_000317c0(")");" (call_expression "FUN_000317c0(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) ;) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (for_statement "for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }" for ( (assignment_expression "puVar4 = *(undefined4 **)(param_1 + 0x18)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x18)" * (cast_expression "(undefined4 **)(param_1 + 0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ; (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar4 = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ) (compound_statement "{\n      FUN_0001f580();\n    }" { (expression_statement "FUN_0001f580();" (call_expression "FUN_0001f580()" identifier (argument_list "()" ( ))) ;) })) (break_statement "break;" break ;)) (case_statement "case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;" case number_literal : (expression_statement "puVar4 = *(undefined4 **)(param_1 + 8);" (assignment_expression "puVar4 = *(undefined4 **)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 8)" * (cast_expression "(undefined4 **)(param_1 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = puVar4[9];" (assignment_expression "uVar12 = puVar4[9]" identifier = (subscript_expression "puVar4[9]" identifier [ number_literal ])) ;) (expression_statement "FUN_0001f1d0();" (call_expression "FUN_0001f1d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000317c0(&DAT_0004ef3e,*puVar4);" (call_expression "FUN_000317c0(&DAT_0004ef3e,*puVar4)" identifier (argument_list "(&DAT_0004ef3e,*puVar4)" ( (pointer_expression "&DAT_0004ef3e" & identifier) , (pointer_expression "*puVar4" * identifier) ))) ;) (expression_statement "sVar9 = strlen((char *)*puVar4);" (assignment_expression "sVar9 = strlen((char *)*puVar4)" identifier = (call_expression "strlen((char *)*puVar4)" identifier (argument_list "((char *)*puVar4)" ( (cast_expression "(char *)*puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier)) )))) ;) (expression_statement "uVar10 = sVar9 + 1;" (assignment_expression "uVar10 = sVar9 + 1" identifier = (binary_expression "sVar9 + 1" identifier + number_literal)) ;) (if_statement "if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }" if (parenthesized_expression "(0xe < uVar10)" ( (binary_expression "0xe < uVar10" number_literal < identifier) )) (compound_statement "{\n      FUN_00030810();\n      uVar10 = 0;\n    }" { (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (do_statement "do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);" do (compound_statement "{\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    }" { (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 != 0x10)" ( (binary_expression "uVar10 != 0x10" identifier != number_literal) )) ;) (expression_statement "iVar18 = puVar4[0xf];" (assignment_expression "iVar18 = puVar4[0xf]" identifier = (subscript_expression "puVar4[0xf]" identifier [ number_literal ])) ;) (if_statement "if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }" if (parenthesized_expression "((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30))" ( (binary_expression "(iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)" (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(iVar18 + 0x94) != DAT_000bbe30)" ( (binary_expression "*(int *)(iVar18 + 0x94) != DAT_000bbe30" (pointer_expression "*(int *)(iVar18 + 0x94)" * (cast_expression "(int *)(iVar18 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x94)" ( (binary_expression "iVar18 + 0x94" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }" { (expression_statement "local_30 = DAT_000bb998;" (assignment_expression "local_30 = DAT_000bb998" identifier = identifier) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }" else (compound_statement "{\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }" { (expression_statement "local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);" (assignment_expression "local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c)" identifier = (binary_expression "puVar4[0xe] + *(int *)(iVar18 + 0x1c)" (subscript_expression "puVar4[0xe]" identifier [ number_literal ]) + (pointer_expression "*(int *)(iVar18 + 0x1c)" * (cast_expression "(int *)(iVar18 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" identifier + number_literal) )))))) ;) }))) (expression_statement "FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);" (call_expression "FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25])" identifier (argument_list "(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25])" ( (pointer_expression "&DAT_0004ee0c" & identifier) , identifier , identifier , (subscript_expression "puVar4[0x25]" identifier [ number_literal ]) ))) ;) (if_statement "if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }" if (parenthesized_expression "((puVar4[10] != uVar12) && (puVar4[10] != 0))" ( (binary_expression "(puVar4[10] != uVar12) && (puVar4[10] != 0)" (parenthesized_expression "(puVar4[10] != uVar12)" ( (binary_expression "puVar4[10] != uVar12" (subscript_expression "puVar4[10]" identifier [ number_literal ]) != identifier) )) && (parenthesized_expression "(puVar4[10] != 0)" ( (binary_expression "puVar4[10] != 0" (subscript_expression "puVar4[10]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }" { (expression_statement "iVar18 = 0x1b;" (assignment_expression "iVar18 = 0x1b" identifier = number_literal) ;) (do_statement "do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);" do (compound_statement "{\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      }" { (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) ;) (expression_statement "uVar13 = puVar4[10];" (assignment_expression "uVar13 = puVar4[10]" identifier = (subscript_expression "puVar4[10]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);" (assignment_expression "uVar11 = dcgettext(0,"%W (size before relaxing)\n",5)" identifier = (call_expression "dcgettext(0,"%W (size before relaxing)\n",5)" identifier (argument_list "(0,"%W (size before relaxing)\n",5)" ( number_literal , (string_literal ""%W (size before relaxing)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_000317c0(uVar11,uVar13);" (call_expression "FUN_000317c0(uVar11,uVar13)" identifier (argument_list "(uVar11,uVar13)" ( identifier , identifier ))) ;) })) (expression_statement "puVar17 = DAT_000bb9d0;" (assignment_expression "puVar17 = DAT_000bb9d0" identifier = identifier) ;) (if_statement "if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }" if (parenthesized_expression "((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30))" ( (binary_expression "(puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)" (parenthesized_expression "(puVar4[0xf] != 0)" ( (binary_expression "puVar4[0xf] != 0" (subscript_expression "puVar4[0xf]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)" ( (binary_expression "*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30" (pointer_expression "*(int *)(puVar4[0xf] + 0x94)" * (cast_expression "(int *)(puVar4[0xf] + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4[0xf] + 0x94)" ( (binary_expression "puVar4[0xf] + 0x94" (subscript_expression "puVar4[0xf]" identifier [ number_literal ]) + number_literal) )))) == identifier) ))) )) (compound_statement "{\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }" { (if_statement "if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }" if (parenthesized_expression "((DAT_000bbe04 & 0x10) == 0)" ( (binary_expression "(DAT_000bbe04 & 0x10) == 0" (parenthesized_expression "(DAT_000bbe04 & 0x10)" ( (binary_expression "DAT_000bbe04 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }" { (expression_statement "puVar2 = (undefined4 *)puVar4[0x1a];" (assignment_expression "puVar2 = (undefined4 *)puVar4[0x1a]" identifier = (cast_expression "(undefined4 *)puVar4[0x1a]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[0x1a]" identifier [ number_literal ]))) ;) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }" if (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }" { (expression_statement "*(undefined4 *)puVar2[1] = 0;" (assignment_expression "*(undefined4 *)puVar2[1] = 0" (pointer_expression "*(undefined4 *)puVar2[1]" * (cast_expression "(undefined4 *)puVar2[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[1]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "sVar9 = puVar2[2];" (assignment_expression "sVar9 = puVar2[2]" identifier = (subscript_expression "puVar2[2]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = sVar9 * 4;" (assignment_expression "uVar10 = sVar9 * 4" identifier = (binary_expression "sVar9 * 4" identifier * number_literal)) ;) (expression_statement "uVar15 = (int)puVar17 - (int)DAT_000bb9cc;" (assignment_expression "uVar15 = (int)puVar17 - (int)DAT_000bb9cc" identifier = (binary_expression "(int)puVar17 - (int)DAT_000bb9cc" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)DAT_000bb9cc" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "sStack_24 = sVar9;" (assignment_expression "sStack_24 = sVar9" identifier = identifier) ;) (if_statement "if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }" if (parenthesized_expression "(uVar15 <= uVar10 && uVar10 - uVar15 != 0)" ( (binary_expression "uVar15 <= uVar10 && uVar10 - uVar15 != 0" (binary_expression "uVar15 <= uVar10" identifier <= identifier) && (binary_expression "uVar10 - uVar15 != 0" (binary_expression "uVar10 - uVar15" identifier - identifier) != number_literal)) )) (compound_statement "{\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }" { (expression_statement "_obstack_newchunk(&DAT_000bb9c0,uVar10);" (call_expression "_obstack_newchunk(&DAT_000bb9c0,uVar10)" identifier (argument_list "(&DAT_000bb9c0,uVar10)" ( (pointer_expression "&DAT_000bb9c0" & identifier) , identifier ))) ;) (expression_statement "sStack_24 = puVar2[2];" (assignment_expression "sStack_24 = puVar2[2]" identifier = (subscript_expression "puVar2[2]" identifier [ number_literal ])) ;) (expression_statement "puVar17 = DAT_000bb9d0;" (assignment_expression "puVar17 = DAT_000bb9d0" identifier = identifier) ;) })) (expression_statement "__base = DAT_000bb9c8;" (assignment_expression "__base = DAT_000bb9c8" identifier = identifier) ;) (if_statement "if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }" if (parenthesized_expression "(DAT_000bb9cc + sVar9 == DAT_000bb9c8)" ( (binary_expression "DAT_000bb9cc + sVar9 == DAT_000bb9c8" (binary_expression "DAT_000bb9cc + sVar9" identifier + identifier) == identifier) )) (compound_statement "{\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }" { (expression_statement "DAT_000bb9e8 = DAT_000bb9e8 | 2;" (assignment_expression "DAT_000bb9e8 = DAT_000bb9e8 | 2" identifier = (binary_expression "DAT_000bb9e8 | 2" identifier | number_literal)) ;) })) (expression_statement "DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);" (assignment_expression "DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8)" identifier = (cast_expression "(undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8)" ( (binary_expression "(int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8" (binary_expression "(int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8" (cast_expression "(int)(DAT_000bb9cc + sVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(DAT_000bb9cc + sVar9)" ( (binary_expression "DAT_000bb9cc + sVar9" identifier + identifier) ))) + identifier) & (unary_expression "~DAT_000bb9d8" ~ identifier)) )))) ;) (if_statement "if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }" if (parenthesized_expression "((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4))" ( (binary_expression "(uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)" (call_expression "(uint)((int)puVar17 - (int)DAT_000bb9c4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar17 - (int)DAT_000bb9c4)" ( (binary_expression "(int)puVar17 - (int)DAT_000bb9c4" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)DAT_000bb9c4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)DAT_000bb9cc - (int)DAT_000bb9c4)" ( (binary_expression "(int)DAT_000bb9cc - (int)DAT_000bb9c4" (cast_expression "(int)DAT_000bb9cc" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)DAT_000bb9c4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n            DAT_000bb9cc = puVar17;\n          }" { (expression_statement "DAT_000bb9cc = puVar17;" (assignment_expression "DAT_000bb9cc = puVar17" identifier = identifier) ;) })) (expression_statement "puVar17 = (undefined4 *)*puVar2;" (assignment_expression "puVar17 = (undefined4 *)*puVar2" identifier = (cast_expression "(undefined4 *)*puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (expression_statement "puVar8 = DAT_000bb9cc;" (assignment_expression "puVar8 = DAT_000bb9cc" identifier = identifier) ;) (expression_statement "puVar7 = DAT_000bb9c8;" (assignment_expression "puVar7 = DAT_000bb9c8" identifier = identifier) ;) (while_statement "while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }" while (parenthesized_expression "(DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0)" ( (comma_expression "DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0" (assignment_expression "DAT_000bb9c8 = puVar8" identifier = identifier) , (binary_expression "puVar17 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }" { (expression_statement "uVar13 = *puVar17;" (assignment_expression "uVar13 = *puVar17" identifier = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar17 = (undefined4 *)puVar17[1];" (assignment_expression "puVar17 = (undefined4 *)puVar17[1]" identifier = (cast_expression "(undefined4 *)puVar17[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar17[1]" identifier [ number_literal ]))) ;) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar8 = DAT_000bb9c8;" (assignment_expression "puVar8 = DAT_000bb9c8" identifier = identifier) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) })) (expression_statement "qsort(__base,sStack_24,4,FUN_0001de00);" (call_expression "qsort(__base,sStack_24,4,FUN_0001de00)" identifier (argument_list "(__base,sStack_24,4,FUN_0001de00)" ( identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }" if (parenthesized_expression "(puVar2[2] != 0)" ( (binary_expression "puVar2[2] != 0" (subscript_expression "puVar2[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);" do (compound_statement "{\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            }" { (expression_statement "puVar17 = __base + uVar10;" (assignment_expression "puVar17 = __base + uVar10" identifier = (binary_expression "__base + uVar10" identifier + identifier)) ;) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0001f140(*puVar17,puVar4);" (call_expression "FUN_0001f140(*puVar17,puVar4)" identifier (argument_list "(*puVar17,puVar4)" ( (pointer_expression "*puVar17" * identifier) , identifier ))) ;) }) while (parenthesized_expression "(uVar10 < (uint)puVar2[2])" ( (binary_expression "uVar10 < (uint)puVar2[2]" identifier < (cast_expression "(uint)puVar2[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar2[2]" identifier [ number_literal ]))) )) ;) })) (if_statement "if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }" if (parenthesized_expression "((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0))" ( (binary_expression "(DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)" (parenthesized_expression "(DAT_000bb9c4 < __base)" ( (binary_expression "DAT_000bb9c4 < __base" identifier < identifier) )) && (parenthesized_expression "(__base < DAT_000bb9d0)" ( (binary_expression "__base < DAT_000bb9d0" identifier < identifier) ))) )) (compound_statement "{\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }" { (expression_statement "DAT_000bb9cc = __base;" (assignment_expression "DAT_000bb9cc = __base" identifier = identifier) ;) (expression_statement "DAT_000bb9c8 = __base;" (assignment_expression "DAT_000bb9c8 = __base" identifier = identifier) ;) }) (else_clause "else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }" else (compound_statement "{\n            _obstack_free(&DAT_000bb9c0,__base);\n          }" { (expression_statement "_obstack_free(&DAT_000bb9c0,__base);" (call_expression "_obstack_free(&DAT_000bb9c0,__base)" identifier (argument_list "(&DAT_000bb9c0,__base)" ( (pointer_expression "&DAT_000bb9c0" & identifier) , identifier ))) ;) }))) })) }) (else_clause "else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }" else (compound_statement "{\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }" { (expression_statement "bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);" (call_expression "bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4)" identifier (argument_list "(DAT_000bbe1c,FUN_0001f140,puVar4)" ( identifier , identifier , identifier ))) ;) }))) (expression_statement "local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;" (assignment_expression "local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30" identifier = (binary_expression "(uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30" (parenthesized_expression "(uVar12 >> ((byte)DAT_000bb94c & 0x1f))" ( (binary_expression "uVar12 >> ((byte)DAT_000bb94c & 0x1f)" identifier >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )) + identifier)) ;) (if_statement "if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }" if (parenthesized_expression "(DAT_000bb998 < local_30)" ( (binary_expression "DAT_000bb998 < local_30" identifier < identifier) )) (compound_statement "{\n        DAT_000bb998 = local_30;\n        return;\n      }" { (expression_statement "DAT_000bb998 = local_30;" (assignment_expression "DAT_000bb998 = local_30" identifier = identifier) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;)) (case_statement "case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;" case number_literal : (expression_statement "FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");" (call_expression "FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n")" identifier (argument_list "(" CREATE_OBJECT_SYMBOLS\n")" ( (string_literal "" CREATE_OBJECT_SYMBOLS\n"" " string_content escape_sequence ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;" case number_literal : (expression_statement "fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);" (call_expression "fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50)" identifier (argument_list "(" FILL mask 0x",1,0xd,DAT_000bbf50)" ( (string_literal "" FILL mask 0x"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "piVar3 = *(int **)(param_1 + 8);" (assignment_expression "piVar3 = *(int **)(param_1 + 8)" identifier = (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *piVar3;" (assignment_expression "iVar18 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "pbVar16 = (byte *)(piVar3 + 1);" (assignment_expression "pbVar16 = (byte *)(piVar3 + 1)" identifier = (cast_expression "(byte *)(piVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 1)" ( (binary_expression "piVar3 + 1" identifier + number_literal) )))) ;) (if_statement "if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }" { (do_statement "do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));" do (compound_statement "{\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      }" { (expression_statement "bVar1 = *pbVar16;" (assignment_expression "bVar1 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) ;) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "fprintf(DAT_000bbf50,"%02x",(uint)bVar1);" (call_expression "fprintf(DAT_000bbf50,"%02x",(uint)bVar1)" identifier (argument_list "(DAT_000bbf50,"%02x",(uint)bVar1)" ( identifier , (string_literal ""%02x"" " string_content ") , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }) while (parenthesized_expression "(pbVar16 != (byte *)((int)piVar3 + iVar18 + 4))" ( (binary_expression "pbVar16 != (byte *)((int)piVar3 + iVar18 + 4)" identifier != (cast_expression "(byte *)((int)piVar3 + iVar18 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + iVar18 + 4)" ( (binary_expression "(int)piVar3 + iVar18 + 4" (binary_expression "(int)piVar3 + iVar18" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )) ;) })) (expression_statement "fputc(10,DAT_000bbf50);" (call_expression "fputc(10,DAT_000bbf50)" identifier (argument_list "(10,DAT_000bbf50)" ( number_literal , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;" case number_literal : (expression_statement "FUN_0001f1d0();" (call_expression "FUN_0001f1d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar18 = 0x10;" (assignment_expression "iVar18 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);" do (compound_statement "{\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    }" { (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x14) != 0)" ( (binary_expression "*(int *)(param_1 + 0x14) != 0" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }" { (expression_statement "iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);" (assignment_expression "iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c)" identifier = (binary_expression "iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c)" identifier + (pointer_expression "*(int *)(*(int *)(param_1 + 0x14) + 0x1c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x14) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x14) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 0x14) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) + number_literal) )))))) ;) })) (switch_statement "switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }" switch (parenthesized_expression "(*(undefined4 *)(param_1 + 8))" ( (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )) (compound_statement "{\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }" { (case_statement "case 0x11a:\n      pcVar14 = "QUAD";\n      break;" case number_literal : (expression_statement "pcVar14 = "QUAD";" (assignment_expression "pcVar14 = "QUAD"" identifier = (string_literal ""QUAD"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0x11b:\n      pcVar14 = "SQUAD";\n      break;" case number_literal : (expression_statement "pcVar14 = "SQUAD";" (assignment_expression "pcVar14 = "SQUAD"" identifier = (string_literal ""SQUAD"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;" case number_literal : (expression_statement "pcVar14 = "LONG";" (assignment_expression "pcVar14 = "LONG"" identifier = (string_literal ""LONG"" " string_content ")) ;) (expression_statement "uVar12 = 4;" (assignment_expression "uVar12 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;" case number_literal : (expression_statement "pcVar14 = "SHORT";" (assignment_expression "pcVar14 = "SHORT"" identifier = (string_literal ""SHORT"" " string_content ")) ;) (expression_statement "uVar12 = 2;" (assignment_expression "uVar12 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;" case number_literal : (expression_statement "pcVar14 = "BYTE";" (assignment_expression "pcVar14 = "BYTE"" identifier = (string_literal ""BYTE"" " string_content ")) ;) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);" default : (expression_statement "FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);" (call_expression "FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12)" identifier (argument_list "("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal , (string_literal ""print_data_statement"" " string_content ") , identifier ))) ;)) })) (expression_statement "uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);" (assignment_expression "uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f)" identifier = (binary_expression "1 << ((byte)DAT_000bb94c & 0x1f)" number_literal << (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }" if (parenthesized_expression "(uVar12 <= uVar10)" ( (binary_expression "uVar12 <= uVar10" identifier <= identifier) )) (compound_statement "{\n      uVar12 = uVar10;\n    }" { (expression_statement "uVar12 = uVar10;" (assignment_expression "uVar12 = uVar10" identifier = identifier) ;) })) (expression_statement "FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));" (call_expression "FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10))" identifier (argument_list "("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10))" ( (string_literal ""0x%V %W %s 0x%v"" " string_content ") , identifier , (binary_expression "uVar12 >> ((byte)DAT_000bb94c & 0x1f)" identifier >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) , identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) ))) ;) (if_statement "if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7" (pointer_expression "*(int *)(*(int *)(param_1 + 0xc) + 0xc)" * (cast_expression "(int *)(*(int *)(param_1 + 0xc) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xc) + 0xc)" ( (binary_expression "*(int *)(param_1 + 0xc) + 0xc" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }" { (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0002f810(*(undefined4 *)(param_1 + 0xc));" (call_expression "FUN_0002f810(*(undefined4 *)(param_1 + 0xc))" identifier (argument_list "(*(undefined4 *)(param_1 + 0xc))" ( (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) ))) ;) })) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));" (assignment_expression "DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f))" identifier = (binary_expression "iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f))" identifier + (parenthesized_expression "(uVar12 >> ((byte)DAT_000bb94c & 0x1f))" ( (binary_expression "uVar12 >> ((byte)DAT_000bb94c & 0x1f)" identifier >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;" case number_literal : (expression_statement "FUN_0001f1d0();" (call_expression "FUN_0001f1d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar18 = 0x10;" (assignment_expression "iVar18 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);" do (compound_statement "{\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    }" { (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x20) != 0)" ( (binary_expression "*(int *)(param_1 + 0x20) != 0" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }" { (expression_statement "iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);" (assignment_expression "iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c)" identifier = (binary_expression "iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c)" identifier + (pointer_expression "*(int *)(*(int *)(param_1 + 0x20) + 0x1c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x20) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x20) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 0x20) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));" (assignment_expression "uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc))" identifier = (call_expression "bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc))" identifier (argument_list "(*(undefined4 *)(param_1 + 0xc))" ( (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));" (call_expression "FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20))" identifier (argument_list "("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20))" ( (string_literal ""0x%V %W RELOC %s "" " string_content ") , identifier , (binary_expression "uVar12 >> ((byte)DAT_000bb94c & 0x1f)" identifier >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) , (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xc) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0xc) + 0x20" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal) )))) ))) ;) (if_statement "if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x14) == 0)" ( (binary_expression "*(int *)(param_1 + 0x14) == 0" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }" { (expression_statement "FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));" (call_expression "FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10))" identifier (argument_list "(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10))" ( (pointer_expression "&UNK_0004ef28" & identifier) , (pointer_expression "**(undefined4 **)(param_1 + 0x10)" * (pointer_expression "*(undefined4 **)(param_1 + 0x10)" * (cast_expression "(undefined4 **)(param_1 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ))) ;) }) (else_clause "else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }" else (compound_statement "{\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }" { (expression_statement "FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));" (call_expression "FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14))" identifier (argument_list "(&UNK_0004ef28,*(int *)(param_1 + 0x14))" ( (pointer_expression "&UNK_0004ef28" & identifier) , (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) ))) ;) }))) (expression_statement "FUN_0002f810(*(undefined4 *)(param_1 + 0x18));" (call_expression "FUN_0002f810(*(undefined4 *)(param_1 + 0x18))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x18))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));" (assignment_expression "DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f))" identifier = (binary_expression "iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f))" identifier + (parenthesized_expression "(uVar12 >> ((byte)DAT_000bb94c & 0x1f))" ( (binary_expression "uVar12 >> ((byte)DAT_000bb94c & 0x1f)" identifier >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;" case number_literal : (expression_statement "iVar18 = *(int *)(param_1 + 8);" (assignment_expression "iVar18 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar14 = "TARGET(%s)\n";" (assignment_expression "pcVar14 = "TARGET(%s)\n"" identifier = (string_literal ""TARGET(%s)\n"" " string_content escape_sequence ")) ;) (labeled_statement "code_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);" statement_identifier : (expression_statement "fprintf(DAT_000bbf50,pcVar14,iVar18);" (call_expression "fprintf(DAT_000bbf50,pcVar14,iVar18)" identifier (argument_list "(DAT_000bbf50,pcVar14,iVar18)" ( identifier , identifier , identifier ))) ;)) (break_statement "break;" break ;)) (case_statement "case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;" case number_literal : (expression_statement "iVar18 = *(int *)(param_1 + 8);" (assignment_expression "iVar18 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "FUN_000317c0("OUTPUT(%s",iVar18);" (call_expression "FUN_000317c0("OUTPUT(%s",iVar18)" identifier (argument_list "("OUTPUT(%s",iVar18)" ( (string_literal ""OUTPUT(%s"" " string_content ") , identifier ))) ;) (if_statement "if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }" if (parenthesized_expression "(DAT_000bbdbc != 0)" ( (binary_expression "DAT_000bbdbc != 0" identifier != number_literal) )) (compound_statement "{\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }" { (expression_statement "iVar18 = DAT_000bbdbc;" (assignment_expression "iVar18 = DAT_000bbdbc" identifier = identifier) ;) (expression_statement "FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);" (call_expression "FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc)" identifier (argument_list "(&DAT_0004d69b,DAT_000bbdbc)" ( (pointer_expression "&DAT_0004d69b" & identifier) , identifier ))) ;) })) (expression_statement "FUN_000317c0(")\n",iVar18);" (call_expression "FUN_000317c0(")\n",iVar18)" identifier (argument_list "(")\n",iVar18)" ( (string_literal "")\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;" case number_literal : (expression_statement "FUN_0001f1d0();" (call_expression "FUN_0001f1d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000317c0(&UNK_0004ef2c);" (call_expression "FUN_000317c0(&UNK_0004ef2c)" identifier (argument_list "(&UNK_0004ef2c)" ( (pointer_expression "&UNK_0004ef2c" & identifier) ))) ;) (expression_statement "iVar18 = 9;" (assignment_expression "iVar18 = 9" identifier = number_literal) ;) (do_statement "do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);" do (compound_statement "{\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    }" { (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) ;) (expression_statement "iStack_2c = *(int *)(param_1 + 8);" (assignment_expression "iStack_2c = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x10) != 0)" ( (binary_expression "*(int *)(param_1 + 0x10) != 0" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }" { (expression_statement "iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);" (assignment_expression "iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c)" identifier = (binary_expression "iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c)" identifier + (pointer_expression "*(int *)(*(int *)(param_1 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 0x10) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));" (call_expression "FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f))" identifier (argument_list "(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f))" ( (pointer_expression "&UNK_0004ef34" & identifier) , identifier , (binary_expression "*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) ;) (expression_statement "piVar3 = *(int **)(param_1 + 0x14);" (assignment_expression "piVar3 = *(int **)(param_1 + 0x14)" identifier = (pointer_expression "*(int **)(param_1 + 0x14)" * (cast_expression "(int **)(param_1 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *piVar3;" (assignment_expression "iVar18 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }" { (expression_statement "pbVar16 = (byte *)(piVar3 + 1);" (assignment_expression "pbVar16 = (byte *)(piVar3 + 1)" identifier = (cast_expression "(byte *)(piVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 1)" ( (binary_expression "piVar3 + 1" identifier + number_literal) )))) ;) (do_statement "do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));" do (compound_statement "{\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      }" { (expression_statement "bVar1 = *pbVar16;" (assignment_expression "bVar1 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) ;) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "fprintf(DAT_000bbf50,"%02x",(uint)bVar1);" (call_expression "fprintf(DAT_000bbf50,"%02x",(uint)bVar1)" identifier (argument_list "(DAT_000bbf50,"%02x",(uint)bVar1)" ( identifier , (string_literal ""%02x"" " string_content ") , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }) while (parenthesized_expression "(pbVar16 != (byte *)((int)piVar3 + iVar18 + 4))" ( (binary_expression "pbVar16 != (byte *)((int)piVar3 + iVar18 + 4)" identifier != (cast_expression "(byte *)((int)piVar3 + iVar18 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + iVar18 + 4)" ( (binary_expression "(int)piVar3 + iVar18 + 4" (binary_expression "(int)piVar3 + iVar18" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )) ;) })) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));" (assignment_expression "DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f))" identifier = (binary_expression "iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f))" identifier + (parenthesized_expression "(*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f))" ( (binary_expression "*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;" case number_literal : (expression_statement "fwrite("START GROUP\n",1,0xc,DAT_000bbf50);" (call_expression "fwrite("START GROUP\n",1,0xc,DAT_000bbf50)" identifier (argument_list "("START GROUP\n",1,0xc,DAT_000bbf50)" ( (string_literal ""START GROUP\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) (for_statement "for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }" for ( (assignment_expression "puVar4 = *(undefined4 **)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 8)" * (cast_expression "(undefined4 **)(param_1 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ; (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar4 = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ) (compound_statement "{\n      FUN_0001f580();\n    }" { (expression_statement "FUN_0001f580();" (call_expression "FUN_0001f580()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "fwrite("END GROUP\n",1,10,DAT_000bbf50);" (call_expression "fwrite("END GROUP\n",1,10,DAT_000bbf50)" identifier (argument_list "("END GROUP\n",1,10,DAT_000bbf50)" ( (string_literal ""END GROUP\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;" case number_literal : (expression_statement "pcVar14 = "BEFORE";" (assignment_expression "pcVar14 = "BEFORE"" identifier = (string_literal ""BEFORE"" " string_content ")) ;) (if_statement "if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) == 0)" ( (binary_expression "*(int *)(param_1 + 0xc) == 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      pcVar14 = "AFTER";\n    }" { (expression_statement "pcVar14 = "AFTER";" (assignment_expression "pcVar14 = "AFTER"" identifier = (string_literal ""AFTER"" " string_content ")) ;) })) (expression_statement "FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));" (call_expression "FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8))" identifier (argument_list "("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8))" ( (string_literal ""INSERT %s %s\n"" " string_content escape_sequence ") , identifier , (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;" case number_literal : (if_statement "if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }" if (parenthesized_expression "(DAT_000bbdcc != (undefined4 *)0x0)" ( (binary_expression "DAT_000bbdcc != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }" { (if_statement "if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }" if (parenthesized_expression "(DAT_000bbdd4 == 0)" ( (binary_expression "DAT_000bbdd4 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }" { (expression_statement "FUN_000317c0(" CONSTRUCTORS\n");" (call_expression "FUN_000317c0(" CONSTRUCTORS\n")" identifier (argument_list "(" CONSTRUCTORS\n")" ( (string_literal "" CONSTRUCTORS\n"" " string_content escape_sequence ") ))) ;) (expression_statement "puVar4 = DAT_000bbdcc;" (assignment_expression "puVar4 = DAT_000bbdcc" identifier = identifier) ;) }) (else_clause "else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }" else (compound_statement "{\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }" { (expression_statement "FUN_000317c0(" SORT (CONSTRUCTORS)\n");" (call_expression "FUN_000317c0(" SORT (CONSTRUCTORS)\n")" identifier (argument_list "(" SORT (CONSTRUCTORS)\n")" ( (string_literal "" SORT (CONSTRUCTORS)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "puVar4 = DAT_000bbdcc;" (assignment_expression "puVar4 = DAT_000bbdcc" identifier = identifier) ;) }))) (for_statement "for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }" for ( ; (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar4 = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ) (compound_statement "{\n        FUN_0001f580();\n      }" { (expression_statement "FUN_0001f580();" (call_expression "FUN_0001f580()" identifier (argument_list "()" ( ))) ;) })) })) (break_statement "break;" break ;)) (case_statement "default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);" default : (expression_statement "pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);" (assignment_expression "pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Fail with %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Fail with %d\n",5)" identifier (argument_list "(0,"Fail with %d\n",5)" ( number_literal , (string_literal ""Fail with %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(DAT_000bbf50,pcVar14,uVar12);" (call_expression "fprintf(DAT_000bbf50,pcVar14,uVar12)" identifier (argument_list "(DAT_000bbf50,pcVar14,uVar12)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00031780("../../ld/ldlang.c",0x11bc);" (call_expression "FUN_00031780("../../ld/ldlang.c",0x11bc)" identifier (argument_list "("../../ld/ldlang.c",0x11bc)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;)) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;)) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ))) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) }))) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) })))) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (switch_statement switch (parenthesized_expression ( (subscript_expression IDENT [ LIT ]) )) (compound_statement { (case_statement default : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (subscript_expression IDENT [ LIT ]) ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (break_statement break ;)) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (binary_expression IDENT - IDENT) != LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) + IDENT) & (unary_expression ~ IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) }))) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (return_statement return ;) })) })) (return_statement return ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (switch_statement switch (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (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 (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;)) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (for_statement for ( ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;)) })) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_0001f580(int param_1,int param_2)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  bool bVar6;\n  undefined4 *puVar7;\n  undefined4 *__base;\n  undefined4 *puVar8;\n  size_t sVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  undefined4 uVar13;\n  char *pcVar14;\n  uint uVar15;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  undefined *puVar19;\n  uint local_30;\n  int iStack_2c;\n  size_t sStack_24;\n  \n  uVar12 = *(uint *)(param_1 + 4);\n  switch(uVar12) {\n  case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;\n  case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;\n  case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;\n  case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;\n  case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;\n  case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;\n  case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;\n  case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;\n  default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0001f580(int param_1,int param_2)" (identifier "FUN_0001f580") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  byte bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  bool bVar6;\n  undefined4 *puVar7;\n  undefined4 *__base;\n  undefined4 *puVar8;\n  size_t sVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  undefined4 uVar13;\n  char *pcVar14;\n  uint uVar15;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  undefined *puVar19;\n  uint local_30;\n  int iStack_2c;\n  size_t sStack_24;\n  \n  uVar12 = *(uint *)(param_1 + 4);\n  switch(uVar12) {\n  case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;\n  case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;\n  case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;\n  case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;\n  case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;\n  case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;\n  case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;\n  case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;\n  default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "bool bVar6;" (primitive_type "bool") (identifier "bVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 *__base;" (type_identifier "undefined4") (pointer_declarator "*__base" (* "*") (identifier "__base")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "size_t sVar9;" (primitive_type "size_t") (identifier "sVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "char *pcVar14;" (primitive_type "char") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "undefined *puVar19;" (type_identifier "undefined") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (declaration "int iStack_2c;" (primitive_type "int") (identifier "iStack_2c") (; ";")) (declaration "size_t sStack_24;" (primitive_type "size_t") (identifier "sStack_24") (; ";")) (expression_statement "uVar12 = *(uint *)(param_1 + 4);" (assignment_expression "uVar12 = *(uint *)(param_1 + 4)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (switch_statement "switch(uVar12) {\n  case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;\n  case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;\n  case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;\n  case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;\n  case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;\n  case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;\n  case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;\n  case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;\n  default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);\n  }" (switch "switch") (parenthesized_expression "(uVar12)" (( "(") (identifier "uVar12") () ")")) (compound_statement "{\n  case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;\n  case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;\n  case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;\n  case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;\n  case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;\n  case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;\n  case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;\n  case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;\n  default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);\n  }" ({ "{") (case_statement "case 0:\n    if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;" (case "case") (number_literal "0") (: ":") (if_statement "if (param_1 != DAT_000bbdac) {\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }" (if "if") (parenthesized_expression "(param_1 != DAT_000bbdac)" (( "(") (binary_expression "param_1 != DAT_000bbdac" (identifier "param_1") (!= "!=") (identifier "DAT_000bbdac")) () ")")) (compound_statement "{\n      iVar18 = *(int *)(param_1 + 0x1c);\n      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));\n      if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }\n      FUN_00030810();\n    }" ({ "{") (expression_statement "iVar18 = *(int *)(param_1 + 0x1c);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x1c)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));" (call_expression "FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18))" (identifier "FUN_000317c0") (argument_list "(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18))" (( "(") (pointer_expression "&UNK_0004ef3d" (& "&") (identifier "UNK_0004ef3d")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) () ")"))) (; ";")) (if_statement "if (iVar18 != 0) {\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);\n        sVar9 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }\n        do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);\n        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));\n        iVar5 = *(int *)(iVar18 + 0x20);\n        if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }\n      }" ({ "{") (expression_statement "DAT_000bb998 = *(uint *)(iVar18 + 0x1c);" (assignment_expression "DAT_000bb998 = *(uint *)(iVar18 + 0x1c)" (identifier "DAT_000bb998") (= "=") (pointer_expression "*(uint *)(iVar18 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar18 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x1c)" (( "(") (binary_expression "iVar18 + 0x1c" (identifier "iVar18") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "sVar9 = strlen(*(char **)(param_1 + 0x18));" (assignment_expression "sVar9 = strlen(*(char **)(param_1 + 0x18))" (identifier "sVar9") (= "=") (call_expression "strlen(*(char **)(param_1 + 0x18))" (identifier "strlen") (argument_list "(*(char **)(param_1 + 0x18))" (( "(") (pointer_expression "*(char **)(param_1 + 0x18)" (* "*") (cast_expression "(char **)(param_1 + 0x18)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (; ";")) (if_statement "if (0xe < sVar9) {\n          FUN_00030810();\n          sVar9 = 0;\n        }" (if "if") (parenthesized_expression "(0xe < sVar9)" (( "(") (binary_expression "0xe < sVar9" (number_literal "0xe") (< "<") (identifier "sVar9")) () ")")) (compound_statement "{\n          FUN_00030810();\n          sVar9 = 0;\n        }" ({ "{") (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" (identifier "FUN_00030810") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "sVar9 = 0;" (assignment_expression "sVar9 = 0" (identifier "sVar9") (= "=") (number_literal "0")) (; ";")) (} "}"))) (do_statement "do {\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        } while (sVar9 != 0x10);" (do "do") (compound_statement "{\n          FUN_000307e0();\n          sVar9 = sVar9 + 1;\n        }" ({ "{") (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" (identifier "FUN_000307e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "sVar9 = sVar9 + 1;" (assignment_expression "sVar9 = sVar9 + 1" (identifier "sVar9") (= "=") (binary_expression "sVar9 + 1" (identifier "sVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(sVar9 != 0x10)" (( "(") (binary_expression "sVar9 != 0x10" (identifier "sVar9") (!= "!=") (number_literal "0x10")) () ")")) (; ";")) (expression_statement "FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));" (call_expression "FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f))" (identifier "FUN_000317c0") (argument_list "(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),\n                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f))" (( "(") (pointer_expression "&UNK_0004ef41" (& "&") (identifier "UNK_0004ef41")) (, ",") (pointer_expression "*(undefined4 *)(iVar18 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x1c)" (( "(") (binary_expression "iVar18 + 0x1c" (identifier "iVar18") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (binary_expression "*(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(iVar18 + 0x24)" (* "*") (cast_expression "(uint *)(iVar18 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x24)" (( "(") (binary_expression "iVar18 + 0x24" (identifier "iVar18") (+ "+") (number_literal "0x24")) () ")")))) (>> ">>") (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" (( "(") (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)(iVar18 + 0x20);" (assignment_expression "iVar5 = *(int *)(iVar18 + 0x20)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar18 + 0x20)" (* "*") (cast_expression "(int *)(iVar18 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x20)" (( "(") (binary_expression "iVar18 + 0x20" (identifier "iVar18") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar18 + 0x1c) != iVar5) {\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar18 + 0x1c) != iVar5)" (( "(") (binary_expression "*(int *)(iVar18 + 0x1c) != iVar5" (pointer_expression "*(int *)(iVar18 + 0x1c)" (* "*") (cast_expression "(int *)(iVar18 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x1c)" (( "(") (binary_expression "iVar18 + 0x1c" (identifier "iVar18") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (identifier "iVar5")) () ")")) (compound_statement "{\n          uVar13 = dcgettext(0," load address 0x%V",5);\n          FUN_000317c0(uVar13,iVar5);\n        }" ({ "{") (expression_statement "uVar13 = dcgettext(0," load address 0x%V",5);" (assignment_expression "uVar13 = dcgettext(0," load address 0x%V",5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0," load address 0x%V",5)" (identifier "dcgettext") (argument_list "(0," load address 0x%V",5)" (( "(") (number_literal "0") (, ",") (string_literal "" load address 0x%V"" (" """) (string_content " load address 0x%V") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_000317c0(uVar13,iVar5);" (call_expression "FUN_000317c0(uVar13,iVar5)" (identifier "FUN_000317c0") (argument_list "(uVar13,iVar5)" (( "(") (identifier "uVar13") (, ",") (identifier "iVar5") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x34) != 0" (pointer_expression "*(int *)(param_1 + 0x34)" (* "*") (cast_expression "(int *)(param_1 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;\n        }" ({ "{") (expression_statement "FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)\n          ;" (call_expression "FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)" (identifier "FUN_0002f480") (argument_list "(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)" (( "(") (pointer_expression "*(int *)(param_1 + 0x34)" (* "*") (cast_expression "(int *)(param_1 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (, ",") (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" (identifier "PTR__bfd_std_section_000bafc4") (+ "+") (number_literal "0x150")) (, ",") (pointer_expression "&DAT_000bb998" (& "&") (identifier "DAT_000bb998")) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" (identifier "FUN_00030810") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (for_statement "for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }" (for "for") (( "(") (assignment_expression "puVar4 = *(undefined4 **)(param_1 + 8)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 8)" (* "*") (cast_expression "(undefined4 **)(param_1 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar4 = (undefined4 *)*puVar4" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)*puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) () ")") (compound_statement "{\n      FUN_0001f580();\n    }" ({ "{") (expression_statement "FUN_0001f580();" (call_expression "FUN_0001f580()" (identifier "FUN_0001f580") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = *(char **)(iVar18 + 0x10);\n    puVar19 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }\n    pcRam000bbf8c = (char *)0x0;\n    FUN_000317c0(&UNK_0004ef86);\n    FUN_0002f810(*(undefined4 *)(param_1 + 8));\n    FUN_00030810();\n    break;" (case "case") (number_literal "1") (: ":") (expression_statement "iVar18 = 0x10;" (assignment_expression "iVar18 = 0x10" (identifier "iVar18") (= "=") (number_literal "0x10")) (; ";")) (do_statement "do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);" (do "do") (compound_statement "{\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    }" ({ "{") (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" (identifier "FUN_000307e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + -1" (identifier "iVar18") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar18 = *(int *)(param_1 + 8);" (assignment_expression "iVar18 = *(int *)(param_1 + 8)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar14 = *(char **)(iVar18 + 0x10);" (assignment_expression "pcVar14 = *(char **)(iVar18 + 0x10)" (identifier "pcVar14") (= "=") (pointer_expression "*(char **)(iVar18 + 0x10)" (* "*") (cast_expression "(char **)(iVar18 + 0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar18 + 0x10)" (( "(") (binary_expression "iVar18 + 0x10" (identifier "iVar18") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "puVar19 = *(undefined **)(param_2 + 0x1c);" (assignment_expression "puVar19 = *(undefined **)(param_2 + 0x1c)" (identifier "puVar19") (= "=") (pointer_expression "*(undefined **)(param_2 + 0x1c)" (* "*") (cast_expression "(undefined **)(param_2 + 0x1c)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar18 + 0xc) == 8) {\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }\n    else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar18 + 0xc) == 8)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) == 8" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "8")) () ")")) (compound_statement "{\n      bVar6 = false;\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\ncode_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);\n      uVar12 = DAT_000bbf94;\n      iVar18 = *(int *)(param_1 + 8);\n      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;\n      if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }\n    }" ({ "{") (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" (identifier "bVar6") (= "=") (false "false")) (; ";")) (if_statement "if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }" (if "if") (parenthesized_expression "(puVar19 == (undefined *)0x0)" (( "(") (binary_expression "puVar19 == (undefined *)0x0" (identifier "puVar19") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }" ({ "{") (expression_statement "puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;" (assignment_expression "puVar19 = PTR__bfd_std_section_000bafc4 + 0x150" (identifier "puVar19") (= "=") (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" (identifier "PTR__bfd_std_section_000bafc4") (+ "+") (number_literal "0x150"))) (; ";")) (} "}"))) (labeled_statement "code_r0x0001fe56:\n      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);" (statement_identifier "code_r0x0001fe56") (: ":") (expression_statement "FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);" (call_expression "FUN_0002f480(pcVar14,puVar19,&DAT_000bb998)" (identifier "FUN_0002f480") (argument_list "(pcVar14,puVar19,&DAT_000bb998)" (( "(") (identifier "pcVar14") (, ",") (identifier "puVar19") (, ",") (pointer_expression "&DAT_000bb998" (& "&") (identifier "DAT_000bb998")) () ")"))) (; ";"))) (expression_statement "uVar12 = DAT_000bbf94;" (assignment_expression "uVar12 = DAT_000bbf94" (identifier "uVar12") (= "=") (identifier "DAT_000bbf94")) (; ";")) (expression_statement "iVar18 = *(int *)(param_1 + 8);" (assignment_expression "iVar18 = *(int *)(param_1 + 8)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (DAT_000bbfa0 == 0) goto code_r0x0001f610;" (if "if") (parenthesized_expression "(DAT_000bbfa0 == 0)" (( "(") (binary_expression "DAT_000bbfa0 == 0" (identifier "DAT_000bbfa0") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0001f610;" (goto "goto") (statement_identifier "code_r0x0001f610") (; ";"))) (if_statement "if (*(int *)(iVar18 + 0xc) == 8) {\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }\n      else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar18 + 0xc) == 8)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) == 8" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "8")) () ")")) (compound_statement "{\n        if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }\n        FUN_000317c0("0x%V",uVar12);\n        if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }\n      }" ({ "{") (if_statement "if (DAT_000bbf9c != 0) {\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }" (if "if") (parenthesized_expression "(DAT_000bbf9c != 0)" (( "(") (binary_expression "DAT_000bbf9c != 0" (identifier "DAT_000bbf9c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n        }" ({ "{") (labeled_statement "code_r0x0001fea7:\n          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);" (statement_identifier "code_r0x0001fea7") (: ":") (expression_statement "uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);" (assignment_expression "uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c)" (identifier "uVar12") (= "=") (binary_expression "DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c)" (identifier "DAT_000bbf94") (+ "+") (pointer_expression "*(int *)(DAT_000bbf9c + 0x1c)" (* "*") (cast_expression "(int *)(DAT_000bbf9c + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000bbf9c + 0x1c)" (( "(") (binary_expression "DAT_000bbf9c + 0x1c" (identifier "DAT_000bbf9c") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";"))) (} "}"))) (expression_statement "FUN_000317c0("0x%V",uVar12);" (call_expression "FUN_000317c0("0x%V",uVar12)" (identifier "FUN_000317c0") (argument_list "("0x%V",uVar12)" (( "(") (string_literal ""0x%V"" (" """) (string_content "0x%V") (" """)) (, ",") (identifier "uVar12") () ")"))) (; ";")) (if_statement "if (bVar6) {\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }" (if "if") (parenthesized_expression "(bVar6)" (( "(") (identifier "bVar6") () ")")) (compound_statement "{\ncode_r0x0001fec9:\n          DAT_000bb998 = uVar12;\n        }" ({ "{") (labeled_statement "code_r0x0001fec9:\n          DAT_000bb998 = uVar12;" (statement_identifier "code_r0x0001fec9") (: ":") (expression_statement "DAT_000bb998 = uVar12;" (assignment_expression "DAT_000bb998 = uVar12" (identifier "DAT_000bb998") (= "=") (identifier "uVar12")) (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }" (else "else") (compound_statement "{\n        if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }\n        if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }\n      }" ({ "{") (if_statement "if (bVar6) {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }" (if "if") (parenthesized_expression "(bVar6)" (( "(") (identifier "bVar6") () ")")) (compound_statement "{\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n          goto code_r0x0001fec9;\n        }" ({ "{") (if_statement "if (DAT_000bbf9c != 0) goto code_r0x0001fea7;" (if "if") (parenthesized_expression "(DAT_000bbf9c != 0)" (( "(") (binary_expression "DAT_000bbf9c != 0" (identifier "DAT_000bbf9c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0001fea7;" (goto "goto") (statement_identifier "code_r0x0001fea7") (; ";"))) (expression_statement "FUN_000317c0("0x%V",DAT_000bbf94);" (call_expression "FUN_000317c0("0x%V",DAT_000bbf94)" (identifier "FUN_000317c0") (argument_list "("0x%V",DAT_000bbf94)" (( "(") (string_literal ""0x%V"" (" """) (string_content "0x%V") (" """)) (, ",") (identifier "DAT_000bbf94") () ")"))) (; ";")) (goto_statement "goto code_r0x0001fec9;" (goto "goto") (statement_identifier "code_r0x0001fec9") (; ";")) (} "}"))) (if_statement "if (pcRam000bbf8c == (char *)0x0) {\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }\n        else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }" (if "if") (parenthesized_expression "(pcRam000bbf8c == (char *)0x0)" (( "(") (binary_expression "pcRam000bbf8c == (char *)0x0" (identifier "pcRam000bbf8c") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);\n          if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }\n        }" ({ "{") (expression_statement "iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);" (assignment_expression "iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1)" (identifier "iVar18") (= "=") (call_expression "bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1)" (identifier "bfd_link_hash_lookup") (argument_list "(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1)" (( "(") (identifier "DAT_000bbe1c") (, ",") (pointer_expression "*(undefined4 *)(iVar18 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x10)" (( "(") (binary_expression "iVar18 + 0x10" (identifier "iVar18") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar18 == 0) {\n            FUN_000317c0("[unresolved]");\n          }\n          else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_000317c0("[unresolved]");\n          }" ({ "{") (expression_statement "FUN_000317c0("[unresolved]");" (call_expression "FUN_000317c0("[unresolved]")" (identifier "FUN_000317c0") (argument_list "("[unresolved]")" (( "(") (string_literal ""[unresolved]"" (" """) (string_content "[unresolved]") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }" (else "else") (compound_statement "{\n            FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));\n          }" ({ "{") (expression_statement "FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));" (call_expression "FUN_000317c0(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c))" (identifier "FUN_000317c0") (argument_list "(&UNK_0004ef5c,\n                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c))" (( "(") (pointer_expression "&UNK_0004ef5c" (& "&") (identifier "UNK_0004ef5c")) (, ",") (binary_expression "*(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +\n                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c)" (binary_expression "*(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18)" (pointer_expression "*(int *)(*(int *)(iVar18 + 0x14) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar18 + 0x14) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0x14) + 0x38)" (( "(") (binary_expression "*(int *)(iVar18 + 0x14) + 0x38" (pointer_expression "*(int *)(iVar18 + 0x14)" (* "*") (cast_expression "(int *)(iVar18 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x14)" (( "(") (binary_expression "iVar18 + 0x14" (identifier "iVar18") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (pointer_expression "*(int *)(iVar18 + 0x18)" (* "*") (cast_expression "(int *)(iVar18 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x18)" (( "(") (binary_expression "iVar18 + 0x18" (identifier "iVar18") (+ "+") (number_literal "0x18")) () ")"))))) (+ "+") (pointer_expression "*(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c)" (( "(") (binary_expression "*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c" (pointer_expression "*(int *)(*(int *)(iVar18 + 0x14) + 0x3c)" (* "*") (cast_expression "(int *)(*(int *)(iVar18 + 0x14) + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0x14) + 0x3c)" (( "(") (binary_expression "*(int *)(iVar18 + 0x14) + 0x3c" (pointer_expression "*(int *)(iVar18 + 0x14)" (* "*") (cast_expression "(int *)(iVar18 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x14)" (( "(") (binary_expression "iVar18 + 0x14" (identifier "iVar18") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x3c")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }" (else "else") (compound_statement "{\n          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;\n          FUN_000317c0("0x%V",DAT_000bbf94);\n        }" ({ "{") (if_statement "if (DAT_000bbf9c != 0) goto code_r0x0001fea7;" (if "if") (parenthesized_expression "(DAT_000bbf9c != 0)" (( "(") (binary_expression "DAT_000bbf9c != 0" (identifier "DAT_000bbf9c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0001fea7;" (goto "goto") (statement_identifier "code_r0x0001fea7") (; ";"))) (expression_statement "FUN_000317c0("0x%V",DAT_000bbf94);" (call_expression "FUN_000317c0("0x%V",DAT_000bbf94)" (identifier "FUN_000317c0") (argument_list "("0x%V",DAT_000bbf94)" (( "(") (string_literal ""0x%V"" (" """) (string_content "0x%V") (" """)) (, ",") (identifier "DAT_000bbf94") () ")"))) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }" (else "else") (compound_statement "{\n      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }\n      pcVar14 = *(char **)(iVar18 + 0x14);\n      if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }\n      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;\n      DAT_000bbfa0 = 0;\ncode_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }\n    }" ({ "{") (if_statement "if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {\n        bVar6 = true;\n      }\n      else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }" (if "if") (parenthesized_expression "((*pcVar14 == '.') && (pcVar14[1] == '\0'))" (( "(") (binary_expression "(*pcVar14 == '.') && (pcVar14[1] == '\0')" (parenthesized_expression "(*pcVar14 == '.')" (( "(") (binary_expression "*pcVar14 == '.'" (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar14[1] == '\0')" (( "(") (binary_expression "pcVar14[1] == '\0'" (subscript_expression "pcVar14[1]" (identifier "pcVar14") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        bVar6 = true;\n      }" ({ "{") (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" (identifier "bVar6") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }" (else "else") (compound_statement "{\n        bVar6 = false;\n        pcRam000bbf8c = pcVar14;\n      }" ({ "{") (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" (identifier "bVar6") (= "=") (false "false")) (; ";")) (expression_statement "pcRam000bbf8c = pcVar14;" (assignment_expression "pcRam000bbf8c = pcVar14" (identifier "pcRam000bbf8c") (= "=") (identifier "pcVar14")) (; ";")) (} "}")))) (expression_statement "pcVar14 = *(char **)(iVar18 + 0x14);" (assignment_expression "pcVar14 = *(char **)(iVar18 + 0x14)" (identifier "pcVar14") (= "=") (pointer_expression "*(char **)(iVar18 + 0x14)" (* "*") (cast_expression "(char **)(iVar18 + 0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar18 + 0x14)" (( "(") (binary_expression "iVar18 + 0x14" (identifier "iVar18") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (puVar19 == (undefined *)0x0) {\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }" (if "if") (parenthesized_expression "(puVar19 == (undefined *)0x0)" (( "(") (binary_expression "puVar19 == (undefined *)0x0" (identifier "puVar19") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;\n      }" ({ "{") (expression_statement "puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;" (assignment_expression "puVar19 = PTR__bfd_std_section_000bafc4 + 0x150" (identifier "puVar19") (= "=") (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" (identifier "PTR__bfd_std_section_000bafc4") (+ "+") (number_literal "0x150"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;" (if "if") (parenthesized_expression "(*(int *)(iVar18 + 0xc) != 5)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) != 5" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "5")) () ")")) (goto_statement "goto code_r0x0001fe56;" (goto "goto") (statement_identifier "code_r0x0001fe56") (; ";"))) (expression_statement "DAT_000bbfa0 = 0;" (assignment_expression "DAT_000bbfa0 = 0" (identifier "DAT_000bbfa0") (= "=") (number_literal "0")) (; ";")) (labeled_statement "code_r0x0001f610:\n      if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }" (statement_identifier "code_r0x0001f610") (: ":") (if_statement "if (*(int *)(iVar18 + 0xc) == 5) {\n        FUN_000317c0("[!provide]");\n      }\n      else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar18 + 0xc) == 5)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) == 5" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "5")) () ")")) (compound_statement "{\n        FUN_000317c0("[!provide]");\n      }" ({ "{") (expression_statement "FUN_000317c0("[!provide]");" (call_expression "FUN_000317c0("[!provide]")" (identifier "FUN_000317c0") (argument_list "("[!provide]")" (( "(") (string_literal ""[!provide]"" (" """) (string_content "[!provide]") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_000317c0(&UNK_0004ef7b);\n      }" (else "else") (compound_statement "{\n        FUN_000317c0(&UNK_0004ef7b);\n      }" ({ "{") (expression_statement "FUN_000317c0(&UNK_0004ef7b);" (call_expression "FUN_000317c0(&UNK_0004ef7b)" (identifier "FUN_000317c0") (argument_list "(&UNK_0004ef7b)" (( "(") (pointer_expression "&UNK_0004ef7b" (& "&") (identifier "UNK_0004ef7b")) () ")"))) (; ";")) (} "}"))))) (} "}")))) (expression_statement "pcRam000bbf8c = (char *)0x0;" (assignment_expression "pcRam000bbf8c = (char *)0x0" (identifier "pcRam000bbf8c") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_000317c0(&UNK_0004ef86);" (call_expression "FUN_000317c0(&UNK_0004ef86)" (identifier "FUN_000317c0") (argument_list "(&UNK_0004ef86)" (( "(") (pointer_expression "&UNK_0004ef86" (& "&") (identifier "UNK_0004ef86")) () ")"))) (; ";")) (expression_statement "FUN_0002f810(*(undefined4 *)(param_1 + 8));" (call_expression "FUN_0002f810(*(undefined4 *)(param_1 + 8))" (identifier "FUN_0002f810") (argument_list "(*(undefined4 *)(param_1 + 8))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" (identifier "FUN_00030810") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n    iVar18 = *(int *)(param_1 + 8);\n    if (iVar18 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar14 = "LOAD %s\n";\n    goto code_r0x0001f93c;" (case "case") (number_literal "2") (: ":") (expression_statement "iVar18 = *(int *)(param_1 + 8);" (assignment_expression "iVar18 = *(int *)(param_1 + 8)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar18 == 0) {\n      return;\n    }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))" (( "(") (binary_expression "(*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0)" (parenthesized_expression "(*(int *)(param_1 + 0x10) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x10) != 0" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0" (parenthesized_expression "(*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2)" (( "(") (binary_expression "*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2" (pointer_expression "*(byte *)(*(int *)(param_1 + 0x10) + 0x2a)" (* "*") (cast_expression "(byte *)(*(int *)(param_1 + 0x10) + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x10) + 0x2a)" (( "(") (binary_expression "*(int *)(param_1 + 0x10) + 0x2a" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar14 = "LOAD %s\n";" (assignment_expression "pcVar14 = "LOAD %s\n"" (identifier "pcVar14") (= "=") (string_literal ""LOAD %s\n"" (" """) (string_content "LOAD %s") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto code_r0x0001f93c;" (goto "goto") (statement_identifier "code_r0x0001f93c") (; ";"))) (case_statement "case 3:\n    uVar13 = *(undefined4 *)(param_1 + 8);\n    uVar11 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_000317c0(uVar11,uVar13);\n    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    FUN_00030810();\n    break;" (case "case") (number_literal "3") (: ":") (expression_statement "uVar13 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar13 = *(undefined4 *)(param_1 + 8)" (identifier "uVar13") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar11 = dcgettext(0,"Address of section %s set to ",5);" (assignment_expression "uVar11 = dcgettext(0,"Address of section %s set to ",5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,"Address of section %s set to ",5)" (identifier "dcgettext") (argument_list "(0,"Address of section %s set to ",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Address of section %s set to "" (" """) (string_content "Address of section %s set to ") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_000317c0(uVar11,uVar13);" (call_expression "FUN_000317c0(uVar11,uVar13)" (identifier "FUN_000317c0") (argument_list "(uVar11,uVar13)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "FUN_0002f810(*(undefined4 *)(param_1 + 0xc));" (call_expression "FUN_0002f810(*(undefined4 *)(param_1 + 0xc))" (identifier "FUN_0002f810") (argument_list "(*(undefined4 *)(param_1 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" (identifier "FUN_00030810") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n    FUN_000307e0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }\n    FUN_000317c0("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }\n    FUN_000317c0(")");\n    FUN_00030810();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    break;" (case "case") (number_literal "4") (: ":") (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" (identifier "FUN_000307e0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }" (if "if") (parenthesized_expression "(*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0)" (( "(") (binary_expression "*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0" (pointer_expression "*(undefined4 **)(param_1 + 0x20)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar13 = **(undefined4 **)(param_1 + 0x20);\n      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }\n      FUN_000317c0(&UNK_0004ee77,uVar13);\n    }" ({ "{") (expression_statement "uVar13 = **(undefined4 **)(param_1 + 0x20);" (assignment_expression "uVar13 = **(undefined4 **)(param_1 + 0x20)" (identifier "uVar13") (= "=") (pointer_expression "**(undefined4 **)(param_1 + 0x20)" (* "*") (pointer_expression "*(undefined4 **)(param_1 + 0x20)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))))) (; ";")) (expression_statement "FUN_000317c0("EXCLUDE_FILE(%s",uVar13);" (call_expression "FUN_000317c0("EXCLUDE_FILE(%s",uVar13)" (identifier "FUN_000317c0") (argument_list "("EXCLUDE_FILE(%s",uVar13)" (( "(") (string_literal ""EXCLUDE_FILE(%s"" (" """) (string_content "EXCLUDE_FILE(%s") (" """)) (, ",") (identifier "uVar13") () ")"))) (; ";")) (for_statement "for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }" (for "for") (( "(") (assignment_expression "puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(param_1 + 0x20) + 4)" (* "*") (cast_expression "(undefined4 **)(*(int *)(param_1 + 0x20) + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x20) + 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x20) + 4" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar4 = (undefined4 *)puVar4[1]" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)puVar4[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")))) () ")") (compound_statement "{\n        uVar13 = *puVar4;\n        FUN_000317c0(&DAT_0004d69b,uVar13);\n      }" ({ "{") (expression_statement "uVar13 = *puVar4;" (assignment_expression "uVar13 = *puVar4" (identifier "uVar13") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "FUN_000317c0(&DAT_0004d69b,uVar13);" (call_expression "FUN_000317c0(&DAT_0004d69b,uVar13)" (identifier "FUN_000317c0") (argument_list "(&DAT_0004d69b,uVar13)" (( "(") (pointer_expression "&DAT_0004d69b" (& "&") (identifier "DAT_0004d69b")) (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000317c0(&UNK_0004ee77,uVar13);" (call_expression "FUN_000317c0(&UNK_0004ee77,uVar13)" (identifier "FUN_000317c0") (argument_list "(&UNK_0004ee77,uVar13)" (( "(") (pointer_expression "&UNK_0004ee77" (& "&") (identifier "UNK_0004ee77")) (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0("SORT_BY_NAME(");\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) != 0" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_000317c0("SORT_BY_NAME(");\n    }" ({ "{") (expression_statement "FUN_000317c0("SORT_BY_NAME(");" (call_expression "FUN_000317c0("SORT_BY_NAME(")" (identifier "FUN_000317c0") (argument_list "("SORT_BY_NAME(")" (( "(") (string_literal ""SORT_BY_NAME("" (" """) (string_content "SORT_BY_NAME(") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 8) == 0) {\n      FUN_000317c0(&DAT_0004f0a0);\n    }\n    else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 8) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 8) == 0" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_000317c0(&DAT_0004f0a0);\n    }" ({ "{") (expression_statement "FUN_000317c0(&DAT_0004f0a0);" (call_expression "FUN_000317c0(&DAT_0004f0a0)" (identifier "FUN_000317c0") (argument_list "(&DAT_0004f0a0)" (( "(") (pointer_expression "&DAT_0004f0a0" (& "&") (identifier "DAT_0004f0a0")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }" (else "else") (compound_statement "{\n      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));\n    }" ({ "{") (expression_statement "FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));" (call_expression "FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8))" (identifier "FUN_000317c0") (argument_list "(&DAT_0004ef3e,*(int *)(param_1 + 8))" (( "(") (pointer_expression "&DAT_0004ef3e" (& "&") (identifier "DAT_0004ef3e")) (, ",") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (} "}")))) (if_statement "if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_000317c0(")");\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) != 0" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_000317c0(")");\n    }" ({ "{") (expression_statement "FUN_000317c0(")");" (call_expression "FUN_000317c0(")")" (identifier "FUN_000317c0") (argument_list "(")")" (( "(") (string_literal "")"" (" """) (string_content ")") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000317c0("(");" (call_expression "FUN_000317c0("(")" (identifier "FUN_000317c0") (argument_list "("(")" (( "(") (string_literal ""("" (" """) (string_content "(") (" """)) () ")"))) (; ";")) (for_statement "for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }" (for "for") (( "(") (assignment_expression "piVar3 = *(int **)(param_1 + 0x10)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(param_1 + 0x10)" (* "*") (cast_expression "(int **)(param_1 + 0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";") (binary_expression "piVar3 != (int *)0x0" (identifier "piVar3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "piVar3 = (int *)*piVar3" (identifier "piVar3") (= "=") (cast_expression "(int *)*piVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar3" (* "*") (identifier "piVar3")))) () ")") (compound_statement "{\n      switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }\n      if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }\n      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_000317c0(" ");\n    }" ({ "{") (switch_statement "switch(piVar3[3]) {\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }" (switch "switch") (parenthesized_expression "(piVar3[3])" (( "(") (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]")) () ")")) (compound_statement "{\n      default:\n        iVar18 = 0;\n        break;\n      case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;\n      case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");\n      }" ({ "{") (case_statement "default:\n        iVar18 = 0;\n        break;" (default "default") (: ":") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_NAME(");\n        break;" (case "case") (number_literal "1") (: ":") (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" (identifier "iVar18") (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_000317c0("SORT_BY_NAME(");" (call_expression "FUN_000317c0("SORT_BY_NAME(")" (identifier "FUN_000317c0") (argument_list "("SORT_BY_NAME(")" (( "(") (string_literal ""SORT_BY_NAME("" (" """) (string_content "SORT_BY_NAME(") (" """)) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_ALIGNMENT(");\n        break;" (case "case") (number_literal "2") (: ":") (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" (identifier "iVar18") (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_000317c0("SORT_BY_ALIGNMENT(");" (call_expression "FUN_000317c0("SORT_BY_ALIGNMENT(")" (identifier "FUN_000317c0") (argument_list "("SORT_BY_ALIGNMENT(")" (( "(") (string_literal ""SORT_BY_ALIGNMENT("" (" """) (string_content "SORT_BY_ALIGNMENT(") (" """)) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;" (case "case") (number_literal "3") (: ":") (expression_statement "iVar18 = 2;" (assignment_expression "iVar18 = 2" (identifier "iVar18") (= "=") (number_literal "2")) (; ";")) (expression_statement "FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");" (call_expression "FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(")" (identifier "FUN_000317c0") (argument_list "("SORT_BY_NAME(SORT_BY_ALIGNMENT(")" (( "(") (string_literal ""SORT_BY_NAME(SORT_BY_ALIGNMENT("" (" """) (string_content "SORT_BY_NAME(SORT_BY_ALIGNMENT(") (" """)) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n        iVar18 = 2;\n        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;" (case "case") (number_literal "4") (: ":") (expression_statement "iVar18 = 2;" (assignment_expression "iVar18 = 2" (identifier "iVar18") (= "=") (number_literal "2")) (; ";")) (expression_statement "FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");" (call_expression "FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(")" (identifier "FUN_000317c0") (argument_list "("SORT_BY_ALIGNMENT(SORT_BY_NAME(")" (( "(") (string_literal ""SORT_BY_ALIGNMENT(SORT_BY_NAME("" (" """) (string_content "SORT_BY_ALIGNMENT(SORT_BY_NAME(") (" """)) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n        iVar18 = 1;\n        FUN_000317c0("SORT_NONE(");\n        break;" (case "case") (number_literal "5") (: ":") (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" (identifier "iVar18") (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_000317c0("SORT_NONE(");" (call_expression "FUN_000317c0("SORT_NONE(")" (identifier "FUN_000317c0") (argument_list "("SORT_NONE(")" (( "(") (string_literal ""SORT_NONE("" (" """) (string_content "SORT_NONE(") (" """)) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n        iVar18 = 1;\n        FUN_000317c0("SORT_BY_INIT_PRIORITY(");" (case "case") (number_literal "6") (: ":") (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" (identifier "iVar18") (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_000317c0("SORT_BY_INIT_PRIORITY(");" (call_expression "FUN_000317c0("SORT_BY_INIT_PRIORITY(")" (identifier "FUN_000317c0") (argument_list "("SORT_BY_INIT_PRIORITY(")" (( "(") (string_literal ""SORT_BY_INIT_PRIORITY("" (" """) (string_content "SORT_BY_INIT_PRIORITY(") (" """)) () ")"))) (; ";"))) (} "}"))) (if_statement "if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }" (if "if") (parenthesized_expression "((undefined4 *)piVar3[2] != (undefined4 *)0x0)" (( "(") (binary_expression "(undefined4 *)piVar3[2] != (undefined4 *)0x0" (cast_expression "(undefined4 *)piVar3[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar13 = *(undefined4 *)piVar3[2];\n        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }\n        FUN_000317c0(&UNK_0004ee77,uVar13);\n      }" ({ "{") (expression_statement "uVar13 = *(undefined4 *)piVar3[2];" (assignment_expression "uVar13 = *(undefined4 *)piVar3[2]" (identifier "uVar13") (= "=") (pointer_expression "*(undefined4 *)piVar3[2]" (* "*") (cast_expression "(undefined4 *)piVar3[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (expression_statement "FUN_000317c0("EXCLUDE_FILE(%s",uVar13);" (call_expression "FUN_000317c0("EXCLUDE_FILE(%s",uVar13)" (identifier "FUN_000317c0") (argument_list "("EXCLUDE_FILE(%s",uVar13)" (( "(") (string_literal ""EXCLUDE_FILE(%s"" (" """) (string_content "EXCLUDE_FILE(%s") (" """)) (, ",") (identifier "uVar13") () ")"))) (; ";")) (for_statement "for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }" (for "for") (( "(") (assignment_expression "puVar4 = *(undefined4 **)(piVar3[2] + 4)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(piVar3[2] + 4)" (* "*") (cast_expression "(undefined4 **)(piVar3[2] + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar3[2] + 4)" (( "(") (binary_expression "piVar3[2] + 4" (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "4")) () ")"))))) (; ";") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar4 = (undefined4 *)puVar4[1]" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)puVar4[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")))) () ")") (compound_statement "{\n          uVar13 = *puVar4;\n          FUN_000317c0(&DAT_0004d69b,uVar13);\n        }" ({ "{") (expression_statement "uVar13 = *puVar4;" (assignment_expression "uVar13 = *puVar4" (identifier "uVar13") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "FUN_000317c0(&DAT_0004d69b,uVar13);" (call_expression "FUN_000317c0(&DAT_0004d69b,uVar13)" (identifier "FUN_000317c0") (argument_list "(&DAT_0004d69b,uVar13)" (( "(") (pointer_expression "&DAT_0004d69b" (& "&") (identifier "DAT_0004d69b")) (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000317c0(&UNK_0004ee77,uVar13);" (call_expression "FUN_000317c0(&UNK_0004ee77,uVar13)" (identifier "FUN_000317c0") (argument_list "(&UNK_0004ee77,uVar13)" (( "(") (pointer_expression "&UNK_0004ee77" (& "&") (identifier "UNK_0004ee77")) (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}"))) (if_statement "if (piVar3[1] == 0) {\n        FUN_000317c0(&DAT_0004f0a0);\n      }\n      else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }" (if "if") (parenthesized_expression "(piVar3[1] == 0)" (( "(") (binary_expression "piVar3[1] == 0" (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_000317c0(&DAT_0004f0a0);\n      }" ({ "{") (expression_statement "FUN_000317c0(&DAT_0004f0a0);" (call_expression "FUN_000317c0(&DAT_0004f0a0)" (identifier "FUN_000317c0") (argument_list "(&DAT_0004f0a0)" (( "(") (pointer_expression "&DAT_0004f0a0" (& "&") (identifier "DAT_0004f0a0")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }" (else "else") (compound_statement "{\n        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);\n      }" ({ "{") (expression_statement "FUN_000317c0(&DAT_0004ef3e,piVar3[1]);" (call_expression "FUN_000317c0(&DAT_0004ef3e,piVar3[1])" (identifier "FUN_000317c0") (argument_list "(&DAT_0004ef3e,piVar3[1])" (( "(") (pointer_expression "&DAT_0004ef3e" (& "&") (identifier "DAT_0004ef3e")) (, ",") (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (} "}")))) (if_statement "if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {\n        FUN_000317c0(")");\n      }" (if "if") (parenthesized_expression "((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1))" (( "(") (binary_expression "(iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)" (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(FUN_000317c0(")"), iVar18 != 1)" (( "(") (comma_expression "FUN_000317c0(")"), iVar18 != 1" (call_expression "FUN_000317c0(")")" (identifier "FUN_000317c0") (argument_list "(")")" (( "(") (string_literal "")"" (" """) (string_content ")") (" """)) () ")"))) (, ",") (binary_expression "iVar18 != 1" (identifier "iVar18") (!= "!=") (number_literal "1"))) () ")"))) () ")")) (compound_statement "{\n        FUN_000317c0(")");\n      }" ({ "{") (expression_statement "FUN_000317c0(")");" (call_expression "FUN_000317c0(")")" (identifier "FUN_000317c0") (argument_list "(")")" (( "(") (string_literal "")"" (" """) (string_content ")") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*piVar3 == 0) break;" (if "if") (parenthesized_expression "(*piVar3 == 0)" (( "(") (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "FUN_000317c0(" ");" (call_expression "FUN_000317c0(" ")" (identifier "FUN_000317c0") (argument_list "(" ")" (( "(") (string_literal "" "" (" """) (string_content " ") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000317c0(")");" (call_expression "FUN_000317c0(")")" (identifier "FUN_000317c0") (argument_list "(")")" (( "(") (string_literal "")"" (" """) (string_content ")") (" """)) () ")"))) (; ";")) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" (identifier "FUN_00030810") (argument_list "()" (( "(") () ")"))) (; ";")) (for_statement "for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }" (for "for") (( "(") (assignment_expression "puVar4 = *(undefined4 **)(param_1 + 0x18)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 0x18)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x18)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar4 = (undefined4 *)*puVar4" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)*puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) () ")") (compound_statement "{\n      FUN_0001f580();\n    }" ({ "{") (expression_statement "FUN_0001f580();" (call_expression "FUN_0001f580()" (identifier "FUN_0001f580") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uVar12 = puVar4[9];\n    FUN_0001f1d0();\n    FUN_000307e0();\n    FUN_000317c0(&DAT_0004ef3e,*puVar4);\n    sVar9 = strlen((char *)*puVar4);\n    uVar10 = sVar9 + 1;\n    if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }\n    do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);\n    iVar18 = puVar4[0xf];\n    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }\n    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);\n    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }\n    puVar17 = DAT_000bb9d0;\n    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }\n    return;" (case "case") (number_literal "5") (: ":") (expression_statement "puVar4 = *(undefined4 **)(param_1 + 8);" (assignment_expression "puVar4 = *(undefined4 **)(param_1 + 8)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 8)" (* "*") (cast_expression "(undefined4 **)(param_1 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar12 = puVar4[9];" (assignment_expression "uVar12 = puVar4[9]" (identifier "uVar12") (= "=") (subscript_expression "puVar4[9]" (identifier "puVar4") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "FUN_0001f1d0();" (call_expression "FUN_0001f1d0()" (identifier "FUN_0001f1d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" (identifier "FUN_000307e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000317c0(&DAT_0004ef3e,*puVar4);" (call_expression "FUN_000317c0(&DAT_0004ef3e,*puVar4)" (identifier "FUN_000317c0") (argument_list "(&DAT_0004ef3e,*puVar4)" (( "(") (pointer_expression "&DAT_0004ef3e" (& "&") (identifier "DAT_0004ef3e")) (, ",") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) () ")"))) (; ";")) (expression_statement "sVar9 = strlen((char *)*puVar4);" (assignment_expression "sVar9 = strlen((char *)*puVar4)" (identifier "sVar9") (= "=") (call_expression "strlen((char *)*puVar4)" (identifier "strlen") (argument_list "((char *)*puVar4)" (( "(") (cast_expression "(char *)*puVar4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) () ")")))) (; ";")) (expression_statement "uVar10 = sVar9 + 1;" (assignment_expression "uVar10 = sVar9 + 1" (identifier "uVar10") (= "=") (binary_expression "sVar9 + 1" (identifier "sVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (0xe < uVar10) {\n      FUN_00030810();\n      uVar10 = 0;\n    }" (if "if") (parenthesized_expression "(0xe < uVar10)" (( "(") (binary_expression "0xe < uVar10" (number_literal "0xe") (< "<") (identifier "uVar10")) () ")")) (compound_statement "{\n      FUN_00030810();\n      uVar10 = 0;\n    }" ({ "{") (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" (identifier "FUN_00030810") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (} "}"))) (do_statement "do {\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    } while (uVar10 != 0x10);" (do "do") (compound_statement "{\n      FUN_000307e0();\n      uVar10 = uVar10 + 1;\n    }" ({ "{") (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" (identifier "FUN_000307e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar10 != 0x10)" (( "(") (binary_expression "uVar10 != 0x10" (identifier "uVar10") (!= "!=") (number_literal "0x10")) () ")")) (; ";")) (expression_statement "iVar18 = puVar4[0xf];" (assignment_expression "iVar18 = puVar4[0xf]" (identifier "iVar18") (= "=") (subscript_expression "puVar4[0xf]" (identifier "puVar4") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (if_statement "if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }\n    else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }" (if "if") (parenthesized_expression "((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30))" (( "(") (binary_expression "(iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)" (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar18 + 0x94) != DAT_000bbe30)" (( "(") (binary_expression "*(int *)(iVar18 + 0x94) != DAT_000bbe30" (pointer_expression "*(int *)(iVar18 + 0x94)" (* "*") (cast_expression "(int *)(iVar18 + 0x94)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x94)" (( "(") (binary_expression "iVar18 + 0x94" (identifier "iVar18") (+ "+") (number_literal "0x94")) () ")")))) (!= "!=") (identifier "DAT_000bbe30")) () ")"))) () ")")) (compound_statement "{\n      local_30 = DAT_000bb998;\n      uVar12 = 0;\n    }" ({ "{") (expression_statement "local_30 = DAT_000bb998;" (assignment_expression "local_30 = DAT_000bb998" (identifier "local_30") (= "=") (identifier "DAT_000bb998")) (; ";")) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }" (else "else") (compound_statement "{\n      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);\n    }" ({ "{") (expression_statement "local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);" (assignment_expression "local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c)" (identifier "local_30") (= "=") (binary_expression "puVar4[0xe] + *(int *)(iVar18 + 0x1c)" (subscript_expression "puVar4[0xe]" (identifier "puVar4") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (pointer_expression "*(int *)(iVar18 + 0x1c)" (* "*") (cast_expression "(int *)(iVar18 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x1c)" (( "(") (binary_expression "iVar18 + 0x1c" (identifier "iVar18") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (} "}")))) (expression_statement "FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);" (call_expression "FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25])" (identifier "FUN_000317c0") (argument_list "(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25])" (( "(") (pointer_expression "&DAT_0004ee0c" (& "&") (identifier "DAT_0004ee0c")) (, ",") (identifier "local_30") (, ",") (identifier "uVar12") (, ",") (subscript_expression "puVar4[0x25]" (identifier "puVar4") ([ "[") (number_literal "0x25") (] "]")) () ")"))) (; ";")) (if_statement "if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }" (if "if") (parenthesized_expression "((puVar4[10] != uVar12) && (puVar4[10] != 0))" (( "(") (binary_expression "(puVar4[10] != uVar12) && (puVar4[10] != 0)" (parenthesized_expression "(puVar4[10] != uVar12)" (( "(") (binary_expression "puVar4[10] != uVar12" (subscript_expression "puVar4[10]" (identifier "puVar4") ([ "[") (number_literal "10") (] "]")) (!= "!=") (identifier "uVar12")) () ")")) (&& "&&") (parenthesized_expression "(puVar4[10] != 0)" (( "(") (binary_expression "puVar4[10] != 0" (subscript_expression "puVar4[10]" (identifier "puVar4") ([ "[") (number_literal "10") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      iVar18 = 0x1b;\n      do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);\n      uVar13 = puVar4[10];\n      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_000317c0(uVar11,uVar13);\n    }" ({ "{") (expression_statement "iVar18 = 0x1b;" (assignment_expression "iVar18 = 0x1b" (identifier "iVar18") (= "=") (number_literal "0x1b")) (; ";")) (do_statement "do {\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      } while (iVar18 != 0);" (do "do") (compound_statement "{\n        FUN_000307e0();\n        iVar18 = iVar18 + -1;\n      }" ({ "{") (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" (identifier "FUN_000307e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + -1" (identifier "iVar18") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "uVar13 = puVar4[10];" (assignment_expression "uVar13 = puVar4[10]" (identifier "uVar13") (= "=") (subscript_expression "puVar4[10]" (identifier "puVar4") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);" (assignment_expression "uVar11 = dcgettext(0,"%W (size before relaxing)\n",5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,"%W (size before relaxing)\n",5)" (identifier "dcgettext") (argument_list "(0,"%W (size before relaxing)\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%W (size before relaxing)\n"" (" """) (string_content "%W (size before relaxing)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_000317c0(uVar11,uVar13);" (call_expression "FUN_000317c0(uVar11,uVar13)" (identifier "FUN_000317c0") (argument_list "(uVar11,uVar13)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar17 = DAT_000bb9d0;" (assignment_expression "puVar17 = DAT_000bb9d0" (identifier "puVar17") (= "=") (identifier "DAT_000bb9d0")) (; ";")) (if_statement "if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }" (if "if") (parenthesized_expression "((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30))" (( "(") (binary_expression "(puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)" (parenthesized_expression "(puVar4[0xf] != 0)" (( "(") (binary_expression "puVar4[0xf] != 0" (subscript_expression "puVar4[0xf]" (identifier "puVar4") ([ "[") (number_literal "0xf") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)" (( "(") (binary_expression "*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30" (pointer_expression "*(int *)(puVar4[0xf] + 0x94)" (* "*") (cast_expression "(int *)(puVar4[0xf] + 0x94)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4[0xf] + 0x94)" (( "(") (binary_expression "puVar4[0xf] + 0x94" (subscript_expression "puVar4[0xf]" (identifier "puVar4") ([ "[") (number_literal "0xf") (] "]")) (+ "+") (number_literal "0x94")) () ")")))) (== "==") (identifier "DAT_000bbe30")) () ")"))) () ")")) (compound_statement "{\n      if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }\n      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;\n      if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }\n    }" ({ "{") (if_statement "if ((DAT_000bbe04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }" (if "if") (parenthesized_expression "((DAT_000bbe04 & 0x10) == 0)" (( "(") (binary_expression "(DAT_000bbe04 & 0x10) == 0" (parenthesized_expression "(DAT_000bbe04 & 0x10)" (( "(") (binary_expression "DAT_000bbe04 & 0x10" (identifier "DAT_000bbe04") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar2 = (undefined4 *)puVar4[0x1a];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }\n      }" ({ "{") (expression_statement "puVar2 = (undefined4 *)puVar4[0x1a];" (assignment_expression "puVar2 = (undefined4 *)puVar4[0x1a]" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)puVar4[0x1a]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[0x1a]" (identifier "puVar4") ([ "[") (number_literal "0x1a") (] "]")))) (; ";")) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }" (if "if") (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar2 != (undefined4 *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *(undefined4 *)puVar2[1] = 0;\n          sVar9 = puVar2[2];\n          uVar10 = sVar9 * 4;\n          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;\n          sStack_24 = sVar9;\n          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }\n          __base = DAT_000bb9c8;\n          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }\n          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);\n          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }\n          puVar17 = (undefined4 *)*puVar2;\n          puVar8 = DAT_000bb9cc;\n          puVar7 = DAT_000bb9c8;\n          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001de00);\n          if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }\n          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }\n        }" ({ "{") (expression_statement "*(undefined4 *)puVar2[1] = 0;" (assignment_expression "*(undefined4 *)puVar2[1] = 0" (pointer_expression "*(undefined4 *)puVar2[1]" (* "*") (cast_expression "(undefined4 *)puVar2[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar9 = puVar2[2];" (assignment_expression "sVar9 = puVar2[2]" (identifier "sVar9") (= "=") (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar10 = sVar9 * 4;" (assignment_expression "uVar10 = sVar9 * 4" (identifier "uVar10") (= "=") (binary_expression "sVar9 * 4" (identifier "sVar9") (* "*") (number_literal "4"))) (; ";")) (expression_statement "uVar15 = (int)puVar17 - (int)DAT_000bb9cc;" (assignment_expression "uVar15 = (int)puVar17 - (int)DAT_000bb9cc" (identifier "uVar15") (= "=") (binary_expression "(int)puVar17 - (int)DAT_000bb9cc" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (- "-") (cast_expression "(int)DAT_000bb9cc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_000bb9cc")))) (; ";")) (expression_statement "sStack_24 = sVar9;" (assignment_expression "sStack_24 = sVar9" (identifier "sStack_24") (= "=") (identifier "sVar9")) (; ";")) (if_statement "if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }" (if "if") (parenthesized_expression "(uVar15 <= uVar10 && uVar10 - uVar15 != 0)" (( "(") (binary_expression "uVar15 <= uVar10 && uVar10 - uVar15 != 0" (binary_expression "uVar15 <= uVar10" (identifier "uVar15") (<= "<=") (identifier "uVar10")) (&& "&&") (binary_expression "uVar10 - uVar15 != 0" (binary_expression "uVar10 - uVar15" (identifier "uVar10") (- "-") (identifier "uVar15")) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n            _obstack_newchunk(&DAT_000bb9c0,uVar10);\n            sStack_24 = puVar2[2];\n            puVar17 = DAT_000bb9d0;\n          }" ({ "{") (expression_statement "_obstack_newchunk(&DAT_000bb9c0,uVar10);" (call_expression "_obstack_newchunk(&DAT_000bb9c0,uVar10)" (identifier "_obstack_newchunk") (argument_list "(&DAT_000bb9c0,uVar10)" (( "(") (pointer_expression "&DAT_000bb9c0" (& "&") (identifier "DAT_000bb9c0")) (, ",") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "sStack_24 = puVar2[2];" (assignment_expression "sStack_24 = puVar2[2]" (identifier "sStack_24") (= "=") (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar17 = DAT_000bb9d0;" (assignment_expression "puVar17 = DAT_000bb9d0" (identifier "puVar17") (= "=") (identifier "DAT_000bb9d0")) (; ";")) (} "}"))) (expression_statement "__base = DAT_000bb9c8;" (assignment_expression "__base = DAT_000bb9c8" (identifier "__base") (= "=") (identifier "DAT_000bb9c8")) (; ";")) (if_statement "if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }" (if "if") (parenthesized_expression "(DAT_000bb9cc + sVar9 == DAT_000bb9c8)" (( "(") (binary_expression "DAT_000bb9cc + sVar9 == DAT_000bb9c8" (binary_expression "DAT_000bb9cc + sVar9" (identifier "DAT_000bb9cc") (+ "+") (identifier "sVar9")) (== "==") (identifier "DAT_000bb9c8")) () ")")) (compound_statement "{\n            DAT_000bb9e8 = DAT_000bb9e8 | 2;\n          }" ({ "{") (expression_statement "DAT_000bb9e8 = DAT_000bb9e8 | 2;" (assignment_expression "DAT_000bb9e8 = DAT_000bb9e8 | 2" (identifier "DAT_000bb9e8") (= "=") (binary_expression "DAT_000bb9e8 | 2" (identifier "DAT_000bb9e8") (| "|") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);" (assignment_expression "DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8)" (identifier "DAT_000bb9cc") (= "=") (cast_expression "(undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8)" (( "(") (binary_expression "(int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8" (binary_expression "(int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8" (cast_expression "(int)(DAT_000bb9cc + sVar9)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(DAT_000bb9cc + sVar9)" (( "(") (binary_expression "DAT_000bb9cc + sVar9" (identifier "DAT_000bb9cc") (+ "+") (identifier "sVar9")) () ")"))) (+ "+") (identifier "DAT_000bb9d8")) (& "&") (unary_expression "~DAT_000bb9d8" (~ "~") (identifier "DAT_000bb9d8"))) () ")")))) (; ";")) (if_statement "if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {\n            DAT_000bb9cc = puVar17;\n          }" (if "if") (parenthesized_expression "((uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4))" (( "(") (binary_expression "(uint)((int)puVar17 - (int)DAT_000bb9c4) <\n              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)" (call_expression "(uint)((int)puVar17 - (int)DAT_000bb9c4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar17 - (int)DAT_000bb9c4)" (( "(") (binary_expression "(int)puVar17 - (int)DAT_000bb9c4" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (- "-") (cast_expression "(int)DAT_000bb9c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_000bb9c4"))) () ")"))) (< "<") (call_expression "(uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)DAT_000bb9cc - (int)DAT_000bb9c4)" (( "(") (binary_expression "(int)DAT_000bb9cc - (int)DAT_000bb9c4" (cast_expression "(int)DAT_000bb9cc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_000bb9cc")) (- "-") (cast_expression "(int)DAT_000bb9c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_000bb9c4"))) () ")")))) () ")")) (compound_statement "{\n            DAT_000bb9cc = puVar17;\n          }" ({ "{") (expression_statement "DAT_000bb9cc = puVar17;" (assignment_expression "DAT_000bb9cc = puVar17" (identifier "DAT_000bb9cc") (= "=") (identifier "puVar17")) (; ";")) (} "}"))) (expression_statement "puVar17 = (undefined4 *)*puVar2;" (assignment_expression "puVar17 = (undefined4 *)*puVar2" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)*puVar2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")))) (; ";")) (expression_statement "puVar8 = DAT_000bb9cc;" (assignment_expression "puVar8 = DAT_000bb9cc" (identifier "puVar8") (= "=") (identifier "DAT_000bb9cc")) (; ";")) (expression_statement "puVar7 = DAT_000bb9c8;" (assignment_expression "puVar7 = DAT_000bb9c8" (identifier "puVar7") (= "=") (identifier "DAT_000bb9c8")) (; ";")) (while_statement "while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }" (while "while") (parenthesized_expression "(DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0)" (( "(") (comma_expression "DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0" (assignment_expression "DAT_000bb9c8 = puVar8" (identifier "DAT_000bb9c8") (= "=") (identifier "puVar8")) (, ",") (binary_expression "puVar17 != (undefined4 *)0x0" (identifier "puVar17") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n            uVar13 = *puVar17;\n            puVar17 = (undefined4 *)puVar17[1];\n            *puVar7 = uVar13;\n            puVar8 = DAT_000bb9c8;\n            puVar7 = puVar7 + 1;\n          }" ({ "{") (expression_statement "uVar13 = *puVar17;" (assignment_expression "uVar13 = *puVar17" (identifier "uVar13") (= "=") (pointer_expression "*puVar17" (* "*") (identifier "puVar17"))) (; ";")) (expression_statement "puVar17 = (undefined4 *)puVar17[1];" (assignment_expression "puVar17 = (undefined4 *)puVar17[1]" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)puVar17[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar8 = DAT_000bb9c8;" (assignment_expression "puVar8 = DAT_000bb9c8" (identifier "puVar8") (= "=") (identifier "DAT_000bb9c8")) (; ";")) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "qsort(__base,sStack_24,4,FUN_0001de00);" (call_expression "qsort(__base,sStack_24,4,FUN_0001de00)" (identifier "qsort") (argument_list "(__base,sStack_24,4,FUN_0001de00)" (( "(") (identifier "__base") (, ",") (identifier "sStack_24") (, ",") (number_literal "4") (, ",") (identifier "FUN_0001de00") () ")"))) (; ";")) (if_statement "if (puVar2[2] != 0) {\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }" (if "if") (parenthesized_expression "(puVar2[2] != 0)" (( "(") (binary_expression "puVar2[2] != 0" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar10 = 0;\n            do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);\n          }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            } while (uVar10 < (uint)puVar2[2]);" (do "do") (compound_statement "{\n              puVar17 = __base + uVar10;\n              uVar10 = uVar10 + 1;\n              FUN_0001f140(*puVar17,puVar4);\n            }" ({ "{") (expression_statement "puVar17 = __base + uVar10;" (assignment_expression "puVar17 = __base + uVar10" (identifier "puVar17") (= "=") (binary_expression "__base + uVar10" (identifier "__base") (+ "+") (identifier "uVar10"))) (; ";")) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_0001f140(*puVar17,puVar4);" (call_expression "FUN_0001f140(*puVar17,puVar4)" (identifier "FUN_0001f140") (argument_list "(*puVar17,puVar4)" (( "(") (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (, ",") (identifier "puVar4") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar10 < (uint)puVar2[2])" (( "(") (binary_expression "uVar10 < (uint)puVar2[2]" (identifier "uVar10") (< "<") (cast_expression "(uint)puVar2[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")))) () ")")) (; ";")) (} "}"))) (if_statement "if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }\n          else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }" (if "if") (parenthesized_expression "((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0))" (( "(") (binary_expression "(DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)" (parenthesized_expression "(DAT_000bb9c4 < __base)" (( "(") (binary_expression "DAT_000bb9c4 < __base" (identifier "DAT_000bb9c4") (< "<") (identifier "__base")) () ")")) (&& "&&") (parenthesized_expression "(__base < DAT_000bb9d0)" (( "(") (binary_expression "__base < DAT_000bb9d0" (identifier "__base") (< "<") (identifier "DAT_000bb9d0")) () ")"))) () ")")) (compound_statement "{\n            DAT_000bb9cc = __base;\n            DAT_000bb9c8 = __base;\n          }" ({ "{") (expression_statement "DAT_000bb9cc = __base;" (assignment_expression "DAT_000bb9cc = __base" (identifier "DAT_000bb9cc") (= "=") (identifier "__base")) (; ";")) (expression_statement "DAT_000bb9c8 = __base;" (assignment_expression "DAT_000bb9c8 = __base" (identifier "DAT_000bb9c8") (= "=") (identifier "__base")) (; ";")) (} "}")) (else_clause "else {\n            _obstack_free(&DAT_000bb9c0,__base);\n          }" (else "else") (compound_statement "{\n            _obstack_free(&DAT_000bb9c0,__base);\n          }" ({ "{") (expression_statement "_obstack_free(&DAT_000bb9c0,__base);" (call_expression "_obstack_free(&DAT_000bb9c0,__base)" (identifier "_obstack_free") (argument_list "(&DAT_000bb9c0,__base)" (( "(") (pointer_expression "&DAT_000bb9c0" (& "&") (identifier "DAT_000bb9c0")) (, ",") (identifier "__base") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }" (else "else") (compound_statement "{\n        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);\n      }" ({ "{") (expression_statement "bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);" (call_expression "bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4)" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_000bbe1c,FUN_0001f140,puVar4)" (( "(") (identifier "DAT_000bbe1c") (, ",") (identifier "FUN_0001f140") (, ",") (identifier "puVar4") () ")"))) (; ";")) (} "}")))) (expression_statement "local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;" (assignment_expression "local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30" (identifier "local_30") (= "=") (binary_expression "(uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30" (parenthesized_expression "(uVar12 >> ((byte)DAT_000bb94c & 0x1f))" (( "(") (binary_expression "uVar12 >> ((byte)DAT_000bb94c & 0x1f)" (identifier "uVar12") (>> ">>") (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" (( "(") (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c")) (& "&") (number_literal "0x1f")) () ")"))) () ")")) (+ "+") (identifier "local_30"))) (; ";")) (if_statement "if (DAT_000bb998 < local_30) {\n        DAT_000bb998 = local_30;\n        return;\n      }" (if "if") (parenthesized_expression "(DAT_000bb998 < local_30)" (( "(") (binary_expression "DAT_000bb998 < local_30" (identifier "DAT_000bb998") (< "<") (identifier "local_30")) () ")")) (compound_statement "{\n        DAT_000bb998 = local_30;\n        return;\n      }" ({ "{") (expression_statement "DAT_000bb998 = local_30;" (assignment_expression "DAT_000bb998 = local_30" (identifier "DAT_000bb998") (= "=") (identifier "local_30")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";"))) (case_statement "case 6:\n    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");\n    break;" (case "case") (number_literal "6") (: ":") (expression_statement "FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");" (call_expression "FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n")" (identifier "FUN_000317c0") (argument_list "(" CREATE_OBJECT_SYMBOLS\n")" (( "(") (string_literal "" CREATE_OBJECT_SYMBOLS\n"" (" """) (string_content " CREATE_OBJECT_SYMBOLS") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar18 = *piVar3;\n    pbVar16 = (byte *)(piVar3 + 1);\n    if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    fputc(10,DAT_000bbf50);\n    break;" (case "case") (number_literal "7") (: ":") (expression_statement "fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);" (call_expression "fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50)" (identifier "fwrite") (argument_list "(" FILL mask 0x",1,0xd,DAT_000bbf50)" (( "(") (string_literal "" FILL mask 0x"" (" """) (string_content " FILL mask 0x") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0xd") (, ",") (identifier "DAT_000bbf50") () ")"))) (; ";")) (expression_statement "piVar3 = *(int **)(param_1 + 8);" (assignment_expression "piVar3 = *(int **)(param_1 + 8)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar18 = *piVar3;" (assignment_expression "iVar18 = *piVar3" (identifier "iVar18") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (expression_statement "pbVar16 = (byte *)(piVar3 + 1);" (assignment_expression "pbVar16 = (byte *)(piVar3 + 1)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)(piVar3 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 1)" (( "(") (binary_expression "piVar3 + 1" (identifier "piVar3") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (iVar18 != 0) {\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }" ({ "{") (do_statement "do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));" (do "do") (compound_statement "{\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      }" ({ "{") (expression_statement "bVar1 = *pbVar16;" (assignment_expression "bVar1 = *pbVar16" (identifier "bVar1") (= "=") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16"))) (; ";")) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + 1" (identifier "pbVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "fprintf(DAT_000bbf50,"%02x",(uint)bVar1);" (call_expression "fprintf(DAT_000bbf50,"%02x",(uint)bVar1)" (identifier "fprintf") (argument_list "(DAT_000bbf50,"%02x",(uint)bVar1)" (( "(") (identifier "DAT_000bbf50") (, ",") (string_literal ""%02x"" (" """) (string_content "%02x") (" """)) (, ",") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar16 != (byte *)((int)piVar3 + iVar18 + 4))" (( "(") (binary_expression "pbVar16 != (byte *)((int)piVar3 + iVar18 + 4)" (identifier "pbVar16") (!= "!=") (cast_expression "(byte *)((int)piVar3 + iVar18 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + iVar18 + 4)" (( "(") (binary_expression "(int)piVar3 + iVar18 + 4" (binary_expression "(int)piVar3 + iVar18" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (identifier "iVar18")) (+ "+") (number_literal "4")) () ")")))) () ")")) (; ";")) (} "}"))) (expression_statement "fputc(10,DAT_000bbf50);" (call_expression "fputc(10,DAT_000bbf50)" (identifier "fputc") (argument_list "(10,DAT_000bbf50)" (( "(") (number_literal "10") (, ",") (identifier "DAT_000bbf50") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }\n    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);\n    if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }\n    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;" (case "case") (number_literal "8") (: ":") (expression_statement "FUN_0001f1d0();" (call_expression "FUN_0001f1d0()" (identifier "FUN_0001f1d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar18 = 0x10;" (assignment_expression "iVar18 = 0x10" (identifier "iVar18") (= "=") (number_literal "0x10")) (; ";")) (do_statement "do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);" (do "do") (compound_statement "{\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    }" ({ "{") (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" (identifier "FUN_000307e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + -1" (identifier "iVar18") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar18 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x18)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x14) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x14) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x14) != 0" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);\n    }" ({ "{") (expression_statement "iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);" (assignment_expression "iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c)" (identifier "iVar18") (= "=") (binary_expression "iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c)" (identifier "iVar18") (+ "+") (pointer_expression "*(int *)(*(int *)(param_1 + 0x14) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x14) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x14) + 0x1c)" (( "(") (binary_expression "*(int *)(param_1 + 0x14) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (} "}"))) (switch_statement "switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }" (switch "switch") (parenthesized_expression "(*(undefined4 *)(param_1 + 8))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")")) (compound_statement "{\n    case 0x11a:\n      pcVar14 = "QUAD";\n      break;\n    case 0x11b:\n      pcVar14 = "SQUAD";\n      break;\n    case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;\n    case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;\n    case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;\n    default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);\n    }" ({ "{") (case_statement "case 0x11a:\n      pcVar14 = "QUAD";\n      break;" (case "case") (number_literal "0x11a") (: ":") (expression_statement "pcVar14 = "QUAD";" (assignment_expression "pcVar14 = "QUAD"" (identifier "pcVar14") (= "=") (string_literal ""QUAD"" (" """) (string_content "QUAD") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x11b:\n      pcVar14 = "SQUAD";\n      break;" (case "case") (number_literal "0x11b") (: ":") (expression_statement "pcVar14 = "SQUAD";" (assignment_expression "pcVar14 = "SQUAD"" (identifier "pcVar14") (= "=") (string_literal ""SQUAD"" (" """) (string_content "SQUAD") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x11c:\n      pcVar14 = "LONG";\n      uVar12 = 4;\n      break;" (case "case") (number_literal "0x11c") (: ":") (expression_statement "pcVar14 = "LONG";" (assignment_expression "pcVar14 = "LONG"" (identifier "pcVar14") (= "=") (string_literal ""LONG"" (" """) (string_content "LONG") (" """))) (; ";")) (expression_statement "uVar12 = 4;" (assignment_expression "uVar12 = 4" (identifier "uVar12") (= "=") (number_literal "4")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x11d:\n      pcVar14 = "SHORT";\n      uVar12 = 2;\n      break;" (case "case") (number_literal "0x11d") (: ":") (expression_statement "pcVar14 = "SHORT";" (assignment_expression "pcVar14 = "SHORT"" (identifier "pcVar14") (= "=") (string_literal ""SHORT"" (" """) (string_content "SHORT") (" """))) (; ";")) (expression_statement "uVar12 = 2;" (assignment_expression "uVar12 = 2" (identifier "uVar12") (= "=") (number_literal "2")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x11e:\n      pcVar14 = "BYTE";\n      uVar12 = 1;\n      break;" (case "case") (number_literal "0x11e") (: ":") (expression_statement "pcVar14 = "BYTE";" (assignment_expression "pcVar14 = "BYTE"" (identifier "pcVar14") (= "=") (string_literal ""BYTE"" (" """) (string_content "BYTE") (" """))) (; ";")) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" (identifier "uVar12") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                    \n      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);" (default "default") (: ":") (expression_statement "FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);" (call_expression "FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12)" (identifier "FUN_00030840") (argument_list "("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x10c9") (, ",") (string_literal ""print_data_statement"" (" """) (string_content "print_data_statement") (" """)) (, ",") (identifier "uVar12") () ")"))) (; ";"))) (} "}"))) (expression_statement "uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);" (assignment_expression "uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f)" (identifier "uVar10") (= "=") (binary_expression "1 << ((byte)DAT_000bb94c & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" (( "(") (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if (uVar12 <= uVar10) {\n      uVar12 = uVar10;\n    }" (if "if") (parenthesized_expression "(uVar12 <= uVar10)" (( "(") (binary_expression "uVar12 <= uVar10" (identifier "uVar12") (<= "<=") (identifier "uVar10")) () ")")) (compound_statement "{\n      uVar12 = uVar10;\n    }" ({ "{") (expression_statement "uVar12 = uVar10;" (assignment_expression "uVar12 = uVar10" (identifier "uVar12") (= "=") (identifier "uVar10")) (; ";")) (} "}"))) (expression_statement "FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10));" (call_expression "FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10))" (identifier "FUN_000317c0") (argument_list "("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,\n                 *(undefined4 *)(param_1 + 0x10))" (( "(") (string_literal ""0x%V %W %s 0x%v"" (" """) (string_content "0x%V %W %s 0x%v") (" """)) (, ",") (identifier "iVar18") (, ",") (binary_expression "uVar12 >> ((byte)DAT_000bb94c & 0x1f)" (identifier "uVar12") (>> ">>") (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" (( "(") (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c")) (& "&") (number_literal "0x1f")) () ")"))) (, ",") (identifier "pcVar14") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) () ")"))) (; ";")) (if_statement "if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7" (pointer_expression "*(int *)(*(int *)(param_1 + 0xc) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0xc) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0xc) + 0xc)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) + 0xc" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "7")) () ")")) (compound_statement "{\n      FUN_000307e0();\n      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));\n    }" ({ "{") (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" (identifier "FUN_000307e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0002f810(*(undefined4 *)(param_1 + 0xc));" (call_expression "FUN_0002f810(*(undefined4 *)(param_1 + 0xc))" (identifier "FUN_0002f810") (argument_list "(*(undefined4 *)(param_1 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" (identifier "FUN_00030810") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));" (assignment_expression "DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f))" (identifier "DAT_000bb998") (= "=") (binary_expression "iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f))" (identifier "iVar18") (+ "+") (parenthesized_expression "(uVar12 >> ((byte)DAT_000bb94c & 0x1f))" (( "(") (binary_expression "uVar12 >> ((byte)DAT_000bb94c & 0x1f)" (identifier "uVar12") (>> ">>") (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" (( "(") (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 9:\n    FUN_0001f1d0();\n    iVar18 = 0x10;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iVar18 = *(int *)(param_1 + 0x24);\n    if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }\n    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }\n    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));\n    FUN_00030810();\n    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));\n    break;" (case "case") (number_literal "9") (: ":") (expression_statement "FUN_0001f1d0();" (call_expression "FUN_0001f1d0()" (identifier "FUN_0001f1d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar18 = 0x10;" (assignment_expression "iVar18 = 0x10" (identifier "iVar18") (= "=") (number_literal "0x10")) (; ";")) (do_statement "do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);" (do "do") (compound_statement "{\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    }" ({ "{") (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" (identifier "FUN_000307e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + -1" (identifier "iVar18") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar18 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x24)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x20) != 0) {\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x20) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x20) != 0" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);\n    }" ({ "{") (expression_statement "iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);" (assignment_expression "iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c)" (identifier "iVar18") (= "=") (binary_expression "iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c)" (identifier "iVar18") (+ "+") (pointer_expression "*(int *)(*(int *)(param_1 + 0x20) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x20) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x20) + 0x1c)" (( "(") (binary_expression "*(int *)(param_1 + 0x20) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (} "}"))) (expression_statement "uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));" (assignment_expression "uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc))" (identifier "uVar12") (= "=") (call_expression "bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc))" (identifier "bfd_get_reloc_size") (argument_list "(*(undefined4 *)(param_1 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) () ")")))) (; ";")) (expression_statement "FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));" (call_expression "FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20))" (identifier "FUN_000317c0") (argument_list "("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20))" (( "(") (string_literal ""0x%V %W RELOC %s "" (" """) (string_content "0x%V %W RELOC %s ") (" """)) (, ",") (identifier "iVar18") (, ",") (binary_expression "uVar12 >> ((byte)DAT_000bb94c & 0x1f)" (identifier "uVar12") (>> ">>") (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" (( "(") (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c")) (& "&") (number_literal "0x1f")) () ")"))) (, ",") (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0xc) + 0x20)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) + 0x20" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) () ")"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x14) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x14) == 0" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));\n    }" ({ "{") (expression_statement "FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));" (call_expression "FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10))" (identifier "FUN_000317c0") (argument_list "(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10))" (( "(") (pointer_expression "&UNK_0004ef28" (& "&") (identifier "UNK_0004ef28")) (, ",") (pointer_expression "**(undefined4 **)(param_1 + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }" (else "else") (compound_statement "{\n      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));\n    }" ({ "{") (expression_statement "FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));" (call_expression "FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14))" (identifier "FUN_000317c0") (argument_list "(&UNK_0004ef28,*(int *)(param_1 + 0x14))" (( "(") (pointer_expression "&UNK_0004ef28" (& "&") (identifier "UNK_0004ef28")) (, ",") (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_0002f810(*(undefined4 *)(param_1 + 0x18));" (call_expression "FUN_0002f810(*(undefined4 *)(param_1 + 0x18))" (identifier "FUN_0002f810") (argument_list "(*(undefined4 *)(param_1 + 0x18))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" (identifier "FUN_00030810") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));" (assignment_expression "DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f))" (identifier "DAT_000bb998") (= "=") (binary_expression "iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f))" (identifier "iVar18") (+ "+") (parenthesized_expression "(uVar12 >> ((byte)DAT_000bb94c & 0x1f))" (( "(") (binary_expression "uVar12 >> ((byte)DAT_000bb94c & 0x1f)" (identifier "uVar12") (>> ">>") (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" (( "(") (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 10:\n    iVar18 = *(int *)(param_1 + 8);\n    pcVar14 = "TARGET(%s)\n";\ncode_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);\n    break;" (case "case") (number_literal "10") (: ":") (expression_statement "iVar18 = *(int *)(param_1 + 8);" (assignment_expression "iVar18 = *(int *)(param_1 + 8)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar14 = "TARGET(%s)\n";" (assignment_expression "pcVar14 = "TARGET(%s)\n"" (identifier "pcVar14") (= "=") (string_literal ""TARGET(%s)\n"" (" """) (string_content "TARGET(%s)") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "code_r0x0001f93c:\n    fprintf(DAT_000bbf50,pcVar14,iVar18);" (statement_identifier "code_r0x0001f93c") (: ":") (expression_statement "fprintf(DAT_000bbf50,pcVar14,iVar18);" (call_expression "fprintf(DAT_000bbf50,pcVar14,iVar18)" (identifier "fprintf") (argument_list "(DAT_000bbf50,pcVar14,iVar18)" (( "(") (identifier "DAT_000bbf50") (, ",") (identifier "pcVar14") (, ",") (identifier "iVar18") () ")"))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xb:\n    iVar18 = *(int *)(param_1 + 8);\n    FUN_000317c0("OUTPUT(%s",iVar18);\n    if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }\n    FUN_000317c0(")\n",iVar18);\n    break;" (case "case") (number_literal "0xb") (: ":") (expression_statement "iVar18 = *(int *)(param_1 + 8);" (assignment_expression "iVar18 = *(int *)(param_1 + 8)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "FUN_000317c0("OUTPUT(%s",iVar18);" (call_expression "FUN_000317c0("OUTPUT(%s",iVar18)" (identifier "FUN_000317c0") (argument_list "("OUTPUT(%s",iVar18)" (( "(") (string_literal ""OUTPUT(%s"" (" """) (string_content "OUTPUT(%s") (" """)) (, ",") (identifier "iVar18") () ")"))) (; ";")) (if_statement "if (DAT_000bbdbc != 0) {\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }" (if "if") (parenthesized_expression "(DAT_000bbdbc != 0)" (( "(") (binary_expression "DAT_000bbdbc != 0" (identifier "DAT_000bbdbc") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar18 = DAT_000bbdbc;\n      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);\n    }" ({ "{") (expression_statement "iVar18 = DAT_000bbdbc;" (assignment_expression "iVar18 = DAT_000bbdbc" (identifier "iVar18") (= "=") (identifier "DAT_000bbdbc")) (; ";")) (expression_statement "FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);" (call_expression "FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc)" (identifier "FUN_000317c0") (argument_list "(&DAT_0004d69b,DAT_000bbdbc)" (( "(") (pointer_expression "&DAT_0004d69b" (& "&") (identifier "DAT_0004d69b")) (, ",") (identifier "DAT_000bbdbc") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000317c0(")\n",iVar18);" (call_expression "FUN_000317c0(")\n",iVar18)" (identifier "FUN_000317c0") (argument_list "(")\n",iVar18)" (( "(") (string_literal "")\n"" (" """) (string_content ")") (escape_sequence "\n") (" """)) (, ",") (identifier "iVar18") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xc:\n    FUN_0001f1d0();\n    FUN_000317c0(&UNK_0004ef2c);\n    iVar18 = 9;\n    do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);\n    iStack_2c = *(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }\n    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    piVar3 = *(int **)(param_1 + 0x14);\n    iVar18 = *piVar3;\n    if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }\n    FUN_00030810();\n    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));\n    break;" (case "case") (number_literal "0xc") (: ":") (expression_statement "FUN_0001f1d0();" (call_expression "FUN_0001f1d0()" (identifier "FUN_0001f1d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000317c0(&UNK_0004ef2c);" (call_expression "FUN_000317c0(&UNK_0004ef2c)" (identifier "FUN_000317c0") (argument_list "(&UNK_0004ef2c)" (( "(") (pointer_expression "&UNK_0004ef2c" (& "&") (identifier "UNK_0004ef2c")) () ")"))) (; ";")) (expression_statement "iVar18 = 9;" (assignment_expression "iVar18 = 9" (identifier "iVar18") (= "=") (number_literal "9")) (; ";")) (do_statement "do {\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    } while (iVar18 != 0);" (do "do") (compound_statement "{\n      FUN_000307e0();\n      iVar18 = iVar18 + -1;\n    }" ({ "{") (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" (identifier "FUN_000307e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + -1" (identifier "iVar18") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iStack_2c = *(int *)(param_1 + 8);" (assignment_expression "iStack_2c = *(int *)(param_1 + 8)" (identifier "iStack_2c") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x10) != 0) {\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x10) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x10) != 0" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n    }" ({ "{") (expression_statement "iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);" (assignment_expression "iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c)" (identifier "iStack_2c") (= "=") (binary_expression "iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c)" (identifier "iStack_2c") (+ "+") (pointer_expression "*(int *)(*(int *)(param_1 + 0x10) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x10) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x10) + 0x1c)" (( "(") (binary_expression "*(int *)(param_1 + 0x10) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (} "}"))) (expression_statement "FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));" (call_expression "FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f))" (identifier "FUN_000317c0") (argument_list "(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f))" (( "(") (pointer_expression "&UNK_0004ef34" (& "&") (identifier "UNK_0004ef34")) (, ",") (identifier "iStack_2c") (, ",") (binary_expression "*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(param_1 + 0xc)" (* "*") (cast_expression "(uint *)(param_1 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (>> ">>") (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" (( "(") (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (; ";")) (expression_statement "piVar3 = *(int **)(param_1 + 0x14);" (assignment_expression "piVar3 = *(int **)(param_1 + 0x14)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(param_1 + 0x14)" (* "*") (cast_expression "(int **)(param_1 + 0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar18 = *piVar3;" (assignment_expression "iVar18 = *piVar3" (identifier "iVar18") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (if_statement "if (iVar18 != 0) {\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pbVar16 = (byte *)(piVar3 + 1);\n      do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));\n    }" ({ "{") (expression_statement "pbVar16 = (byte *)(piVar3 + 1);" (assignment_expression "pbVar16 = (byte *)(piVar3 + 1)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)(piVar3 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 1)" (( "(") (binary_expression "piVar3 + 1" (identifier "piVar3") (+ "+") (number_literal "1")) () ")")))) (; ";")) (do_statement "do {\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));" (do "do") (compound_statement "{\n        bVar1 = *pbVar16;\n        pbVar16 = pbVar16 + 1;\n        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);\n      }" ({ "{") (expression_statement "bVar1 = *pbVar16;" (assignment_expression "bVar1 = *pbVar16" (identifier "bVar1") (= "=") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16"))) (; ";")) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + 1" (identifier "pbVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "fprintf(DAT_000bbf50,"%02x",(uint)bVar1);" (call_expression "fprintf(DAT_000bbf50,"%02x",(uint)bVar1)" (identifier "fprintf") (argument_list "(DAT_000bbf50,"%02x",(uint)bVar1)" (( "(") (identifier "DAT_000bbf50") (, ",") (string_literal ""%02x"" (" """) (string_content "%02x") (" """)) (, ",") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar16 != (byte *)((int)piVar3 + iVar18 + 4))" (( "(") (binary_expression "pbVar16 != (byte *)((int)piVar3 + iVar18 + 4)" (identifier "pbVar16") (!= "!=") (cast_expression "(byte *)((int)piVar3 + iVar18 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + iVar18 + 4)" (( "(") (binary_expression "(int)piVar3 + iVar18 + 4" (binary_expression "(int)piVar3 + iVar18" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (identifier "iVar18")) (+ "+") (number_literal "4")) () ")")))) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" (identifier "FUN_00030810") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));" (assignment_expression "DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f))" (identifier "DAT_000bb998") (= "=") (binary_expression "iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f))" (identifier "iStack_2c") (+ "+") (parenthesized_expression "(*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f))" (( "(") (binary_expression "*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(param_1 + 0xc)" (* "*") (cast_expression "(uint *)(param_1 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (>> ">>") (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" (( "(") (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }\n    fwrite("END GROUP\n",1,10,DAT_000bbf50);\n    break;" (case "case") (number_literal "0xd") (: ":") (expression_statement "fwrite("START GROUP\n",1,0xc,DAT_000bbf50);" (call_expression "fwrite("START GROUP\n",1,0xc,DAT_000bbf50)" (identifier "fwrite") (argument_list "("START GROUP\n",1,0xc,DAT_000bbf50)" (( "(") (string_literal ""START GROUP\n"" (" """) (string_content "START GROUP") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0xc") (, ",") (identifier "DAT_000bbf50") () ")"))) (; ";")) (for_statement "for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f580();\n    }" (for "for") (( "(") (assignment_expression "puVar4 = *(undefined4 **)(param_1 + 8)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 8)" (* "*") (cast_expression "(undefined4 **)(param_1 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar4 = (undefined4 *)*puVar4" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)*puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) () ")") (compound_statement "{\n      FUN_0001f580();\n    }" ({ "{") (expression_statement "FUN_0001f580();" (call_expression "FUN_0001f580()" (identifier "FUN_0001f580") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "fwrite("END GROUP\n",1,10,DAT_000bbf50);" (call_expression "fwrite("END GROUP\n",1,10,DAT_000bbf50)" (identifier "fwrite") (argument_list "("END GROUP\n",1,10,DAT_000bbf50)" (( "(") (string_literal ""END GROUP\n"" (" """) (string_content "END GROUP") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "10") (, ",") (identifier "DAT_000bbf50") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xe:\n    pcVar14 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }\n    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));\n    break;" (case "case") (number_literal "0xe") (: ":") (expression_statement "pcVar14 = "BEFORE";" (assignment_expression "pcVar14 = "BEFORE"" (identifier "pcVar14") (= "=") (string_literal ""BEFORE"" (" """) (string_content "BEFORE") (" """))) (; ";")) (if_statement "if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar14 = "AFTER";\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) == 0" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar14 = "AFTER";\n    }" ({ "{") (expression_statement "pcVar14 = "AFTER";" (assignment_expression "pcVar14 = "AFTER"" (identifier "pcVar14") (= "=") (string_literal ""AFTER"" (" """) (string_content "AFTER") (" """))) (; ";")) (} "}"))) (expression_statement "FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));" (call_expression "FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8))" (identifier "FUN_000317c0") (argument_list "("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8))" (( "(") (string_literal ""INSERT %s %s\n"" (" """) (string_content "INSERT %s %s") (escape_sequence "\n") (" """)) (, ",") (identifier "pcVar14") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xf:\n    if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }\n    break;" (case "case") (number_literal "0xf") (: ":") (if_statement "if (DAT_000bbdcc != (undefined4 *)0x0) {\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }" (if "if") (parenthesized_expression "(DAT_000bbdcc != (undefined4 *)0x0)" (( "(") (binary_expression "DAT_000bbdcc != (undefined4 *)0x0" (identifier "DAT_000bbdcc") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }\n    }" ({ "{") (if_statement "if (DAT_000bbdd4 == 0) {\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }\n      else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }" (if "if") (parenthesized_expression "(DAT_000bbdd4 == 0)" (( "(") (binary_expression "DAT_000bbdd4 == 0" (identifier "DAT_000bbdd4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_000317c0(" CONSTRUCTORS\n");\n        puVar4 = DAT_000bbdcc;\n      }" ({ "{") (expression_statement "FUN_000317c0(" CONSTRUCTORS\n");" (call_expression "FUN_000317c0(" CONSTRUCTORS\n")" (identifier "FUN_000317c0") (argument_list "(" CONSTRUCTORS\n")" (( "(") (string_literal "" CONSTRUCTORS\n"" (" """) (string_content " CONSTRUCTORS") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "puVar4 = DAT_000bbdcc;" (assignment_expression "puVar4 = DAT_000bbdcc" (identifier "puVar4") (= "=") (identifier "DAT_000bbdcc")) (; ";")) (} "}")) (else_clause "else {\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }" (else "else") (compound_statement "{\n        FUN_000317c0(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_000bbdcc;\n      }" ({ "{") (expression_statement "FUN_000317c0(" SORT (CONSTRUCTORS)\n");" (call_expression "FUN_000317c0(" SORT (CONSTRUCTORS)\n")" (identifier "FUN_000317c0") (argument_list "(" SORT (CONSTRUCTORS)\n")" (( "(") (string_literal "" SORT (CONSTRUCTORS)\n"" (" """) (string_content " SORT (CONSTRUCTORS)") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "puVar4 = DAT_000bbdcc;" (assignment_expression "puVar4 = DAT_000bbdcc" (identifier "puVar4") (= "=") (identifier "DAT_000bbdcc")) (; ";")) (} "}")))) (for_statement "for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f580();\n      }" (for "for") (( "(") (; ";") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar4 = (undefined4 *)*puVar4" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)*puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) () ")") (compound_statement "{\n        FUN_0001f580();\n      }" ({ "{") (expression_statement "FUN_0001f580();" (call_expression "FUN_0001f580()" (identifier "FUN_0001f580") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_000bbf50,pcVar14,uVar12);\n    FUN_00031780("../../ld/ldlang.c",0x11bc);" (default "default") (: ":") (expression_statement "pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);" (assignment_expression "pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5)" (identifier "pcVar14") (= "=") (cast_expression "(char *)dcgettext(0,"Fail with %d\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"Fail with %d\n",5)" (identifier "dcgettext") (argument_list "(0,"Fail with %d\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Fail with %d\n"" (" """) (string_content "Fail with %d") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(DAT_000bbf50,pcVar14,uVar12);" (call_expression "fprintf(DAT_000bbf50,pcVar14,uVar12)" (identifier "fprintf") (argument_list "(DAT_000bbf50,pcVar14,uVar12)" (( "(") (identifier "DAT_000bbf50") (, ",") (identifier "pcVar14") (, ",") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "FUN_00031780("../../ld/ldlang.c",0x11bc);" (call_expression "FUN_00031780("../../ld/ldlang.c",0x11bc)" (identifier "FUN_00031780") (argument_list "("../../ld/ldlang.c",0x11bc)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x11bc") () ")"))) (; ";"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void __regparm3 function_1(type_1 *var_1,type_2 *os)

{
  type_3 bVar1;
  type_4 *var_17;
  type_5 *var_18;
  type_6 *pfVar4;
  size_t var_22;
  type_1 *var_12;
  bool bVar7;
  type_7 *paVar8;
  char *var_16;
  type_8 var_32;
  size_t var_5;
  char *var_19;
  type_9 var_29;
  type_10 *tree;
  type_11 *var_23;
  int var_13;
  type_9 var_28;
  type_12 *plVar17;
  type_13 var_30;
  type_14 var_8;
  type_7 *var_3;
  char *var_34;
  
  var_28 = (var_1->header).type;
  switch(var_28) {
  case lang_output_section_statement_enum:
    if (var_1 != (type_1 *)abs_output_section) {
      var_3 = (var_1->output_section_statement).type_15;
      var_2("\n%s",(var_1->wild_statement).children.head);
      if (var_3 != (type_7 *)0x0) {
        print_dot = var_3->vma;
        var_5 = var_4((var_1->output_section_statement).name);
        if (0xe < var_5) {
          var_6();
          var_5 = 0;
        }
        do {
          var_7();
          var_5 = var_5 + 1;
        } while (var_5 != 0x10);
        var_2("0x%V %W",var_3->vma,var_3->size >> ((type_3)opb_shift & 0x1f));
        var_8 = var_3->lma;
        if (var_3->vma != var_8) {
          var_19 = (char *)var_9(0," load address 0x%V",5);
          var_2(var_19,var_8);
        }
        if ((var_1->output_section_statement).update_dot_tree != (type_10 *)0x0) {
          var_10((var_1->output_section_statement).update_dot_tree,
                        (type_7 *)(var_11 + 0x150),&print_dot);
        }
      }
      var_6();
    }
    for (var_12 = (var_1->output_section_statement).children.head;
        var_12 != (type_1 *)0x0; var_12 = (var_12->header).next) {
      function_1(var_12,&var_1->output_section_statement);
    }
    break;
  case lang_assignment_statement_enum:
    var_13 = 0x10;
    do {
      var_7();
      var_13 = var_13 + -1;
    } while (var_13 != 0);
    paVar8 = (var_1->input_section).section;
    tree = (type_10 *)paVar8->prev;
    var_3 = os->type_15;
    if (paVar8->next == (type_15 *)0x8) {
      bVar7 = false;
      if (var_3 == (type_7 *)0x0) {
        var_3 = (type_7 *)(var_11 + 0x150);
      }
LAB_0001fe56:
      var_10(tree,var_3,&print_dot);
      var_8 = expld.result.value;
      paVar8 = (var_1->input_section).section;
      if (expld.result.valid_p == 0) goto LAB_0001f610;
      if (paVar8->next == (type_15 *)0x8) {
        if (expld.result.section != (type_7 *)0x0) {
LAB_0001fea7:
          var_8 = expld.result.value + (expld.result.section)->vma;
        }
        var_2("0x%V",var_8);
        if (bVar7) {
LAB_0001fec9:
          print_dot = var_8;
        }
      }
      else {
        if (bVar7) {
          if (expld.result.section != (type_7 *)0x0) goto LAB_0001fea7;
          var_2("0x%V",expld.result.value);
          goto LAB_0001fec9;
        }
        if (expld.assign_name == (char *)0x0) {
          var_13 = var_14(link_info.hash,paVar8->prev,0,0,1);
          if (var_13 == 0) {
            var_2("[unresolved]");
          }
          else {
            var_2("[0x%V]",*(int *)(*(int *)(var_13 + 0x14) + 0x38) + *(int *)(var_13 + 0x18) +
                           *(int *)(*(int *)(*(int *)(var_13 + 0x14) + 0x3c) + 0x1c));
          }
        }
        else {
          if (expld.result.section != (type_7 *)0x0) goto LAB_0001fea7;
          var_2("0x%V",expld.result.value);
        }
      }
    }
    else {
      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {
        bVar7 = true;
      }
      else {
        bVar7 = false;
        expld.assign_name = (char *)tree;
      }
      tree = (type_10 *)paVar8->flags;
      if (var_3 == (type_7 *)0x0) {
        var_3 = (type_7 *)(var_11 + 0x150);
      }
      if (paVar8->next != (type_15 *)0x5) goto LAB_0001fe56;
      expld.result.valid_p = 0;
LAB_0001f610:
      if (paVar8->next == (type_15 *)0x5) {
        var_2("[!provide]");
      }
      else {
        var_2("*undef*   ");
      }
    }
    expld.assign_name = (char *)0x0;
    var_2("                ");
    var_15((type_10 *)(var_1->output_section_statement).children.head);
    var_6();
    break;
  case lang_input_statement_enum:
    var_16 = (var_1->wild_statement).filename;
    if (var_16 == (char *)0x0) {
      return;
    }
    if (((var_1->reloc_statement).section != (type_7 *)0x0) &&
       ((((var_1->reloc_statement).section)->rawsize & 0x20000) != 0)) {
      return;
    }
    var_19 = "LOAD %s\n";
    goto LAB_0001f93c;
  case lang_address_statement_enum:
    var_19 = (var_1->wild_statement).filename;
    var_16 = (char *)var_9(0,"Address of section %s set to ",5);
    var_2(var_16,var_19);
    var_15((var_1->data_statement).exp);
    var_6();
    break;
  case lang_wild_statement_enum:
    var_7();
    if ((var_1->wild_statement).exclude_name_list != (type_4 *)0x0) {
      var_19 = ((var_1->wild_statement).exclude_name_list)->name;
      var_2("EXCLUDE_FILE(%s",var_19);
      for (var_17 = ((var_1->wild_statement).exclude_name_list)->next; var_17 != (type_4 *)0x0;
          var_17 = var_17->next) {
        var_19 = var_17->name;
        var_2(" %s",var_19);
      }
      var_2(") ",var_19);
    }
    if ((var_1->wild_statement).filenames_sorted != 0) {
      var_2("SORT_BY_NAME(");
    }
    if ((var_1->wild_statement).filename == (char *)0x0) {
      var_2("*");
    }
    else {
      var_2("%s",(var_1->wild_statement).filename);
    }
    if ((var_1->wild_statement).filenames_sorted != 0) {
      var_2(")");
    }
    var_2("(");
    for (var_18 = (var_1->wild_statement).section_list; var_18 != (type_5 *)0x0;
        var_18 = var_18->next) {
      switch((var_18->spec).sorted) {
      default:
        var_13 = 0;
        break;
      case by_name:
        var_13 = 1;
        var_2("SORT_BY_NAME(");
        break;
      case by_alignment:
        var_13 = 1;
        var_2("SORT_BY_ALIGNMENT(");
        break;
      case by_name_alignment:
        var_13 = 2;
        var_2("SORT_BY_NAME(SORT_BY_ALIGNMENT(");
        break;
      case by_alignment_name:
        var_13 = 2;
        var_2("SORT_BY_ALIGNMENT(SORT_BY_NAME(");
        break;
      case by_none:
        var_13 = 1;
        var_2("SORT_NONE(");
        break;
      case by_init_priority:
        var_13 = 1;
        var_2("SORT_BY_INIT_PRIORITY(");
      }
      var_17 = (var_18->spec).exclude_name_list;
      if (var_17 != (type_4 *)0x0) {
        var_19 = var_17->name;
        var_2("EXCLUDE_FILE(%s",var_19);
        for (var_17 = ((var_18->spec).exclude_name_list)->next; var_17 != (type_4 *)0x0;
            var_17 = var_17->next) {
          var_19 = var_17->name;
          var_2(" %s",var_19);
        }
        var_2(") ",var_19);
      }
      var_19 = (var_18->spec).name;
      if (var_19 == (char *)0x0) {
        var_2("*");
      }
      else {
        var_2("%s",var_19);
      }
      if ((var_13 != 0) && (var_2(")"), var_13 != 1)) {
        var_2(")");
      }
      if (var_18->next == (type_5 *)0x0) break;
      var_2(" ");
    }
    var_2(")");
    var_6();
    for (var_12 = (var_1->wild_statement).children.head; var_12 != (type_1 *)0x0;
        var_12 = (var_12->header).next) {
      function_1(var_12,os);
    }
    break;
  case lang_input_section_enum:
    var_20((var_1->input_section).section,0);
    return;
  case lang_object_symbols_statement_enum:
    var_2(" CREATE_OBJECT_SYMBOLS\n");
    break;
  case lang_fill_statement_enum:
    var_21(" FILL mask 0x",1,0xd,(type_16 *)config.map_file);
    pfVar4 = (var_1->fill_statement).fill;
    var_22 = pfVar4->size;
    var_23 = pfVar4->data;
    if (var_22 != 0) {
      do {
        bVar1 = *var_23;
        var_23 = var_23 + 1;
        var_24((type_16 *)config.map_file,"%02x",(type_8)bVar1);
      } while (var_23 != pfVar4->data + var_22);
    }
    var_25(10,(type_16 *)config.map_file);
    break;
  case lang_data_statement_enum:
    var_26();
    var_13 = 0x10;
    do {
      var_7();
      var_13 = var_13 + -1;
    } while (var_13 != 0);
    plVar17 = (var_1->wild_statement).children.head;
    if ((var_1->output_section_statement).prev != (type_17 *)0x0) {
      plVar17 = (type_12 *)
                ((int)&((var_1->output_section_statement).prev)->type_15->name + (int)plVar17);
    }
    switch((var_1->data_statement).type) {
    case 0x11a:
      var_19 = "QUAD";
      break;
    case 0x11b:
      var_19 = "SQUAD";
      break;
    case 0x11c:
      var_19 = "LONG";
      var_28 = lang_wild_statement_enum;
      break;
    case 0x11d:
      var_19 = "SHORT";
      var_28 = lang_input_statement_enum;
      break;
    case 0x11e:
      var_19 = "BYTE";
      var_28 = lang_assignment_statement_enum;
      break;
    default:
                    /* WARNING: Subroutine does not return */
      var_27("../../ld/ldlang.c",0x10c9,"print_data_statement");
    }
    var_29 = 1 << ((type_3)opb_shift & 0x1f);
    if (var_28 <= var_29) {
      var_28 = var_29;
    }
    var_2("0x%V %W %s 0x%v",plVar17,var_28 >> ((type_3)opb_shift & 0x1f),var_19,
          (var_1->wild_statement).section_list);
    if (((var_1->reloc_statement).howto)->bitsize != 7) {
      var_7();
      var_15((var_1->data_statement).exp);
    }
    var_6();
    print_dot = (int)plVar17 + (var_28 >> ((type_3)opb_shift & 0x1f));
    break;
  case lang_reloc_statement_enum:
    var_26();
    var_13 = 0x10;
    do {
      var_7();
      var_13 = var_13 + -1;
    } while (var_13 != 0);
    var_30 = (var_1->wild_statement).walk_wild_section_handler;
    if ((var_1->reloc_statement).output_section != (type_7 *)0x0) {
      var_30 = var_30 + ((var_1->reloc_statement).output_section)->vma;
    }
    var_32 = var_31((var_1->wild_statement).filenames_sorted);
    var_2("0x%V %W RELOC %s ",var_30,var_32 >> ((type_3)opb_shift & 0x1f),
          ((var_1->reloc_statement).howto)->name);
    if ((var_1->wild_statement).keep_sections == 0) {
      var_2("%s+",((var_1->wild_statement).section_list)->next);
    }
    else {
      var_2("%s+",(var_1->wild_statement).keep_sections);
    }
    var_15((type_10 *)(var_1->wild_statement).children.head);
    var_6();
    print_dot = (type_14)(var_30 + (var_32 >> ((type_3)opb_shift & 0x1f)));
    break;
  case lang_target_statement_enum:
    var_16 = (var_1->wild_statement).filename;
    var_19 = "TARGET(%s)\n";
LAB_0001f93c:
    var_24((type_16 *)config.map_file,var_19,var_16);
    break;
  case lang_output_statement_enum:
    var_19 = (var_1->wild_statement).filename;
    var_2("OUTPUT(%s",var_19);
    if (var_33 != (char *)0x0) {
      var_19 = var_33;
      var_2(" %s",var_33);
    }
    var_2(")\n",var_19);
    break;
  case lang_padding_statement_enum:
    var_26();
    var_2(" *fill*");
    var_13 = 9;
    do {
      var_7();
      var_13 = var_13 + -1;
    } while (var_13 != 0);
    var_34 = (var_1->wild_statement).filename;
    if ((var_1->output_section_statement).next != (type_17 *)0x0) {
      var_34 = var_34 + (int)((var_1->output_section_statement).next)->type_15;
    }
    var_2("0x%V %W ",var_34,(var_1->padding_statement).size >> ((type_3)opb_shift & 0x1f));
    pfVar4 = (var_1->padding_statement).fill;
    var_22 = pfVar4->size;
    if (var_22 != 0) {
      var_23 = pfVar4->data;
      do {
        bVar1 = *var_23;
        var_23 = var_23 + 1;
        var_24((type_16 *)config.map_file,"%02x",(type_8)bVar1);
      } while (var_23 != pfVar4->data + var_22);
    }
    var_6();
    print_dot = (type_14)(var_34 + ((var_1->padding_statement).size >> ((type_3)opb_shift & 0x1f)));
    break;
  case lang_group_statement_enum:
    var_21("START GROUP\n",1,0xc,(type_16 *)config.map_file);
    for (var_12 = (var_1->output_section_statement).children.head;
        var_12 != (type_1 *)0x0; var_12 = (var_12->header).next) {
      function_1(var_12,os);
    }
    var_21("END GROUP\n",1,10,(type_16 *)config.map_file);
    break;
  case lang_insert_statement_enum:
    var_19 = "BEFORE";
    if ((var_1->wild_statement).filenames_sorted == 0) {
      var_19 = "AFTER";
    }
    var_2("INSERT %s %s\n",var_19,(var_1->wild_statement).filename);
    break;
  case lang_constructors_statement_enum:
    if (constructor_list.head != (type_12 *)0x0) {
      if (var_35 == 0) {
        var_2(" CONSTRUCTORS\n");
        var_12 = constructor_list.head;
      }
      else {
        var_2(" SORT (CONSTRUCTORS)\n");
        var_12 = constructor_list.head;
      }
      for (; var_12 != (type_1 *)0x0; var_12 = (var_12->header).next) {
        function_1(var_12,os);
      }
    }
    break;
  default:
    var_19 = (char *)var_9(0,"Fail with %d\n",5);
    var_24((type_16 *)config.map_file,var_19,var_28);
    var_36("../../ld/ldlang.c",0x11bc);
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (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))))) (binary_expression left: (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))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_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))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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))))) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (for_statement initializer: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) condition: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) update: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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))))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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))))) (number_literal) (number_literal) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_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: (number_literal))))) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_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: (number_literal))))) right: (number_literal))))))))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier))))))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (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 (call_expression function: (identifier) arguments: (argument_list))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_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: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_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: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (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: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (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 (call_expression function: (identifier) arguments: (argument_list))) (break_statement)) (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier)))) (for_statement initializer: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_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: (number_literal)))))) condition: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) update: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (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))))))))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (for_statement initializer: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) condition: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))) update: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) body: (compound_statement (switch_statement condition: (parenthesized_expression (subscript_expression argument: (identifier) index: (number_literal))) body: (compound_statement (case_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier)))) (for_statement initializer: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) condition: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) update: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (subscript_expression argument: (identifier) index: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (break_statement)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (for_statement initializer: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) condition: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) update: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_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))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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))))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (identifier)) right: (unary_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (return_statement))))) (return_statement)) (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_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: (number_literal)))))))))) (switch_statement condition: (parenthesized_expression (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)))))) body: (compound_statement (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier) (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (identifier) (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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_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: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (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 (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_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: (number_literal)))))))))) (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 (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier) (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_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: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (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))))))))))) (expression_statement (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 (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_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: (number_literal)))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (binary_expression left: (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))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (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))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier)))) (for_statement initializer: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) condition: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) update: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier) (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)))))))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (for_statement condition: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) update: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))) (break_statement)) (case_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal))))))) (return_statement))))

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

void __regparm3 MASKED(int param_1,int param_2)

{
  byte bVar1;
  undefined4 *puVar2;
  int *piVar3;
  undefined4 *puVar4;
  int iVar5;
  bool bVar6;
  undefined4 *puVar7;
  undefined4 *__base;
  undefined4 *puVar8;
  size_t sVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  undefined4 uVar13;
  char *pcVar14;
  uint uVar15;
  byte *pbVar16;
  undefined4 *puVar17;
  int iVar18;
  undefined *puVar19;
  uint local_30;
  int iStack_2c;
  size_t sStack_24;
  
  uVar12 = *(uint *)(param_1 + 4);
  switch(uVar12) {
  case 0:
    if (param_1 != DAT_000bbdac) {
      iVar18 = *(int *)(param_1 + 0x1c);
      FUN_000317c0(&UNK_0004ef3d,*(undefined4 *)(param_1 + 0x18));
      if (iVar18 != 0) {
        DAT_000bb998 = *(uint *)(iVar18 + 0x1c);
        sVar9 = strlen(*(char **)(param_1 + 0x18));
        if (0xe < sVar9) {
          FUN_00030810();
          sVar9 = 0;
        }
        do {
          FUN_000307e0();
          sVar9 = sVar9 + 1;
        } while (sVar9 != 0x10);
        FUN_000317c0(&UNK_0004ef41,*(undefined4 *)(iVar18 + 0x1c),
                     *(uint *)(iVar18 + 0x24) >> ((byte)DAT_000bb94c & 0x1f));
        iVar5 = *(int *)(iVar18 + 0x20);
        if (*(int *)(iVar18 + 0x1c) != iVar5) {
          uVar13 = dcgettext(0," load address 0x%V",5);
          FUN_000317c0(uVar13,iVar5);
        }
        if (*(int *)(param_1 + 0x34) != 0) {
          FUN_0002f480(*(int *)(param_1 + 0x34),PTR__bfd_std_section_000bafc4 + 0x150,&DAT_000bb998)
          ;
        }
      }
      FUN_00030810();
    }
    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;
        puVar4 = (undefined4 *)*puVar4) {
      MASKED();
    }
    break;
  case 1:
    iVar18 = 0x10;
    do {
      FUN_000307e0();
      iVar18 = iVar18 + -1;
    } while (iVar18 != 0);
    iVar18 = *(int *)(param_1 + 8);
    pcVar14 = *(char **)(iVar18 + 0x10);
    puVar19 = *(undefined **)(param_2 + 0x1c);
    if (*(int *)(iVar18 + 0xc) == 8) {
      bVar6 = false;
      if (puVar19 == (undefined *)0x0) {
        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;
      }
code_r0x0001fe56:
      FUN_0002f480(pcVar14,puVar19,&DAT_000bb998);
      uVar12 = DAT_000bbf94;
      iVar18 = *(int *)(param_1 + 8);
      if (DAT_000bbfa0 == 0) goto code_r0x0001f610;
      if (*(int *)(iVar18 + 0xc) == 8) {
        if (DAT_000bbf9c != 0) {
code_r0x0001fea7:
          uVar12 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);
        }
        FUN_000317c0("0x%V",uVar12);
        if (bVar6) {
code_r0x0001fec9:
          DAT_000bb998 = uVar12;
        }
      }
      else {
        if (bVar6) {
          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;
          FUN_000317c0("0x%V",DAT_000bbf94);
          goto code_r0x0001fec9;
        }
        if (pcRam000bbf8c == (char *)0x0) {
          iVar18 = bfd_link_hash_lookup(DAT_000bbe1c,*(undefined4 *)(iVar18 + 0x10),0,0,1);
          if (iVar18 == 0) {
            FUN_000317c0("[unresolved]");
          }
          else {
            FUN_000317c0(&UNK_0004ef5c,
                         *(int *)(*(int *)(iVar18 + 0x14) + 0x38) + *(int *)(iVar18 + 0x18) +
                         *(int *)(*(int *)(*(int *)(iVar18 + 0x14) + 0x3c) + 0x1c));
          }
        }
        else {
          if (DAT_000bbf9c != 0) goto code_r0x0001fea7;
          FUN_000317c0("0x%V",DAT_000bbf94);
        }
      }
    }
    else {
      if ((*pcVar14 == '.') && (pcVar14[1] == '\0')) {
        bVar6 = true;
      }
      else {
        bVar6 = false;
        pcRam000bbf8c = pcVar14;
      }
      pcVar14 = *(char **)(iVar18 + 0x14);
      if (puVar19 == (undefined *)0x0) {
        puVar19 = PTR__bfd_std_section_000bafc4 + 0x150;
      }
      if (*(int *)(iVar18 + 0xc) != 5) goto code_r0x0001fe56;
      DAT_000bbfa0 = 0;
code_r0x0001f610:
      if (*(int *)(iVar18 + 0xc) == 5) {
        FUN_000317c0("[!provide]");
      }
      else {
        FUN_000317c0(&UNK_0004ef7b);
      }
    }
    pcRam000bbf8c = (char *)0x0;
    FUN_000317c0(&UNK_0004ef86);
    FUN_0002f810(*(undefined4 *)(param_1 + 8));
    FUN_00030810();
    break;
  case 2:
    iVar18 = *(int *)(param_1 + 8);
    if (iVar18 == 0) {
      return;
    }
    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))
    {
      return;
    }
    pcVar14 = "LOAD %s\n";
    goto code_r0x0001f93c;
  case 3:
    uVar13 = *(undefined4 *)(param_1 + 8);
    uVar11 = dcgettext(0,"Address of section %s set to ",5);
    FUN_000317c0(uVar11,uVar13);
    FUN_0002f810(*(undefined4 *)(param_1 + 0xc));
    FUN_00030810();
    break;
  case 4:
    FUN_000307e0();
    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {
      uVar13 = **(undefined4 **)(param_1 + 0x20);
      FUN_000317c0("EXCLUDE_FILE(%s",uVar13);
      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;
          puVar4 = (undefined4 *)puVar4[1]) {
        uVar13 = *puVar4;
        FUN_000317c0(&DAT_0004d69b,uVar13);
      }
      FUN_000317c0(&UNK_0004ee77,uVar13);
    }
    if (*(int *)(param_1 + 0xc) != 0) {
      FUN_000317c0("SORT_BY_NAME(");
    }
    if (*(int *)(param_1 + 8) == 0) {
      FUN_000317c0(&DAT_0004f0a0);
    }
    else {
      FUN_000317c0(&DAT_0004ef3e,*(int *)(param_1 + 8));
    }
    if (*(int *)(param_1 + 0xc) != 0) {
      FUN_000317c0(")");
    }
    FUN_000317c0("(");
    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {
      switch(piVar3[3]) {
      default:
        iVar18 = 0;
        break;
      case 1:
        iVar18 = 1;
        FUN_000317c0("SORT_BY_NAME(");
        break;
      case 2:
        iVar18 = 1;
        FUN_000317c0("SORT_BY_ALIGNMENT(");
        break;
      case 3:
        iVar18 = 2;
        FUN_000317c0("SORT_BY_NAME(SORT_BY_ALIGNMENT(");
        break;
      case 4:
        iVar18 = 2;
        FUN_000317c0("SORT_BY_ALIGNMENT(SORT_BY_NAME(");
        break;
      case 5:
        iVar18 = 1;
        FUN_000317c0("SORT_NONE(");
        break;
      case 6:
        iVar18 = 1;
        FUN_000317c0("SORT_BY_INIT_PRIORITY(");
      }
      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {
        uVar13 = *(undefined4 *)piVar3[2];
        FUN_000317c0("EXCLUDE_FILE(%s",uVar13);
        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;
            puVar4 = (undefined4 *)puVar4[1]) {
          uVar13 = *puVar4;
          FUN_000317c0(&DAT_0004d69b,uVar13);
        }
        FUN_000317c0(&UNK_0004ee77,uVar13);
      }
      if (piVar3[1] == 0) {
        FUN_000317c0(&DAT_0004f0a0);
      }
      else {
        FUN_000317c0(&DAT_0004ef3e,piVar3[1]);
      }
      if ((iVar18 != 0) && (FUN_000317c0(")"), iVar18 != 1)) {
        FUN_000317c0(")");
      }
      if (*piVar3 == 0) break;
      FUN_000317c0(" ");
    }
    FUN_000317c0(")");
    FUN_00030810();
    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;
        puVar4 = (undefined4 *)*puVar4) {
      MASKED();
    }
    break;
  case 5:
    puVar4 = *(undefined4 **)(param_1 + 8);
    uVar12 = puVar4[9];
    FUN_0001f1d0();
    FUN_000307e0();
    FUN_000317c0(&DAT_0004ef3e,*puVar4);
    sVar9 = strlen((char *)*puVar4);
    uVar10 = sVar9 + 1;
    if (0xe < uVar10) {
      FUN_00030810();
      uVar10 = 0;
    }
    do {
      FUN_000307e0();
      uVar10 = uVar10 + 1;
    } while (uVar10 != 0x10);
    iVar18 = puVar4[0xf];
    if ((iVar18 == 0) || (*(int *)(iVar18 + 0x94) != DAT_000bbe30)) {
      local_30 = DAT_000bb998;
      uVar12 = 0;
    }
    else {
      local_30 = puVar4[0xe] + *(int *)(iVar18 + 0x1c);
    }
    FUN_000317c0(&DAT_0004ee0c,local_30,uVar12,puVar4[0x25]);
    if ((puVar4[10] != uVar12) && (puVar4[10] != 0)) {
      iVar18 = 0x1b;
      do {
        FUN_000307e0();
        iVar18 = iVar18 + -1;
      } while (iVar18 != 0);
      uVar13 = puVar4[10];
      uVar11 = dcgettext(0,"%W (size before relaxing)\n",5);
      FUN_000317c0(uVar11,uVar13);
    }
    puVar17 = DAT_000bb9d0;
    if ((puVar4[0xf] != 0) && (*(int *)(puVar4[0xf] + 0x94) == DAT_000bbe30)) {
      if ((DAT_000bbe04 & 0x10) == 0) {
        puVar2 = (undefined4 *)puVar4[0x1a];
        if (puVar2 != (undefined4 *)0x0) {
          *(undefined4 *)puVar2[1] = 0;
          sVar9 = puVar2[2];
          uVar10 = sVar9 * 4;
          uVar15 = (int)puVar17 - (int)DAT_000bb9cc;
          sStack_24 = sVar9;
          if (uVar15 <= uVar10 && uVar10 - uVar15 != 0) {
            _obstack_newchunk(&DAT_000bb9c0,uVar10);
            sStack_24 = puVar2[2];
            puVar17 = DAT_000bb9d0;
          }
          __base = DAT_000bb9c8;
          if (DAT_000bb9cc + sVar9 == DAT_000bb9c8) {
            DAT_000bb9e8 = DAT_000bb9e8 | 2;
          }
          DAT_000bb9cc = (undefined4 *)((int)(DAT_000bb9cc + sVar9) + DAT_000bb9d8 & ~DAT_000bb9d8);
          if ((uint)((int)puVar17 - (int)DAT_000bb9c4) <
              (uint)((int)DAT_000bb9cc - (int)DAT_000bb9c4)) {
            DAT_000bb9cc = puVar17;
          }
          puVar17 = (undefined4 *)*puVar2;
          puVar8 = DAT_000bb9cc;
          puVar7 = DAT_000bb9c8;
          while (DAT_000bb9c8 = puVar8, puVar17 != (undefined4 *)0x0) {
            uVar13 = *puVar17;
            puVar17 = (undefined4 *)puVar17[1];
            *puVar7 = uVar13;
            puVar8 = DAT_000bb9c8;
            puVar7 = puVar7 + 1;
          }
          qsort(__base,sStack_24,4,FUN_0001de00);
          if (puVar2[2] != 0) {
            uVar10 = 0;
            do {
              puVar17 = __base + uVar10;
              uVar10 = uVar10 + 1;
              FUN_0001f140(*puVar17,puVar4);
            } while (uVar10 < (uint)puVar2[2]);
          }
          if ((DAT_000bb9c4 < __base) && (__base < DAT_000bb9d0)) {
            DAT_000bb9cc = __base;
            DAT_000bb9c8 = __base;
          }
          else {
            _obstack_free(&DAT_000bb9c0,__base);
          }
        }
      }
      else {
        bfd_link_hash_traverse(DAT_000bbe1c,FUN_0001f140,puVar4);
      }
      local_30 = (uVar12 >> ((byte)DAT_000bb94c & 0x1f)) + local_30;
      if (DAT_000bb998 < local_30) {
        DAT_000bb998 = local_30;
        return;
      }
    }
    return;
  case 6:
    FUN_000317c0(" CREATE_OBJECT_SYMBOLS\n");
    break;
  case 7:
    fwrite(" FILL mask 0x",1,0xd,DAT_000bbf50);
    piVar3 = *(int **)(param_1 + 8);
    iVar18 = *piVar3;
    pbVar16 = (byte *)(piVar3 + 1);
    if (iVar18 != 0) {
      do {
        bVar1 = *pbVar16;
        pbVar16 = pbVar16 + 1;
        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);
      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));
    }
    fputc(10,DAT_000bbf50);
    break;
  case 8:
    FUN_0001f1d0();
    iVar18 = 0x10;
    do {
      FUN_000307e0();
      iVar18 = iVar18 + -1;
    } while (iVar18 != 0);
    iVar18 = *(int *)(param_1 + 0x18);
    if (*(int *)(param_1 + 0x14) != 0) {
      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x14) + 0x1c);
    }
    switch(*(undefined4 *)(param_1 + 8)) {
    case 0x11a:
      pcVar14 = "QUAD";
      break;
    case 0x11b:
      pcVar14 = "SQUAD";
      break;
    case 0x11c:
      pcVar14 = "LONG";
      uVar12 = 4;
      break;
    case 0x11d:
      pcVar14 = "SHORT";
      uVar12 = 2;
      break;
    case 0x11e:
      pcVar14 = "BYTE";
      uVar12 = 1;
      break;
    default:
                    /* WARNING: Subroutine does not return */
      FUN_00030840("../../ld/ldlang.c",0x10c9,"print_data_statement",uVar12);
    }
    uVar10 = 1 << ((byte)DAT_000bb94c & 0x1f);
    if (uVar12 <= uVar10) {
      uVar12 = uVar10;
    }
    FUN_000317c0("0x%V %W %s 0x%v",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),pcVar14,
                 *(undefined4 *)(param_1 + 0x10));
    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {
      FUN_000307e0();
      FUN_0002f810(*(undefined4 *)(param_1 + 0xc));
    }
    FUN_00030810();
    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));
    break;
  case 9:
    FUN_0001f1d0();
    iVar18 = 0x10;
    do {
      FUN_000307e0();
      iVar18 = iVar18 + -1;
    } while (iVar18 != 0);
    iVar18 = *(int *)(param_1 + 0x24);
    if (*(int *)(param_1 + 0x20) != 0) {
      iVar18 = iVar18 + *(int *)(*(int *)(param_1 + 0x20) + 0x1c);
    }
    uVar12 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));
    FUN_000317c0("0x%V %W RELOC %s ",iVar18,uVar12 >> ((byte)DAT_000bb94c & 0x1f),
                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));
    if (*(int *)(param_1 + 0x14) == 0) {
      FUN_000317c0(&UNK_0004ef28,**(undefined4 **)(param_1 + 0x10));
    }
    else {
      FUN_000317c0(&UNK_0004ef28,*(int *)(param_1 + 0x14));
    }
    FUN_0002f810(*(undefined4 *)(param_1 + 0x18));
    FUN_00030810();
    DAT_000bb998 = iVar18 + (uVar12 >> ((byte)DAT_000bb94c & 0x1f));
    break;
  case 10:
    iVar18 = *(int *)(param_1 + 8);
    pcVar14 = "TARGET(%s)\n";
code_r0x0001f93c:
    fprintf(DAT_000bbf50,pcVar14,iVar18);
    break;
  case 0xb:
    iVar18 = *(int *)(param_1 + 8);
    FUN_000317c0("OUTPUT(%s",iVar18);
    if (DAT_000bbdbc != 0) {
      iVar18 = DAT_000bbdbc;
      FUN_000317c0(&DAT_0004d69b,DAT_000bbdbc);
    }
    FUN_000317c0(")\n",iVar18);
    break;
  case 0xc:
    FUN_0001f1d0();
    FUN_000317c0(&UNK_0004ef2c);
    iVar18 = 9;
    do {
      FUN_000307e0();
      iVar18 = iVar18 + -1;
    } while (iVar18 != 0);
    iStack_2c = *(int *)(param_1 + 8);
    if (*(int *)(param_1 + 0x10) != 0) {
      iStack_2c = iStack_2c + *(int *)(*(int *)(param_1 + 0x10) + 0x1c);
    }
    FUN_000317c0(&UNK_0004ef34,iStack_2c,*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));
    piVar3 = *(int **)(param_1 + 0x14);
    iVar18 = *piVar3;
    if (iVar18 != 0) {
      pbVar16 = (byte *)(piVar3 + 1);
      do {
        bVar1 = *pbVar16;
        pbVar16 = pbVar16 + 1;
        fprintf(DAT_000bbf50,"%02x",(uint)bVar1);
      } while (pbVar16 != (byte *)((int)piVar3 + iVar18 + 4));
    }
    FUN_00030810();
    DAT_000bb998 = iStack_2c + (*(uint *)(param_1 + 0xc) >> ((byte)DAT_000bb94c & 0x1f));
    break;
  case 0xd:
    fwrite("START GROUP\n",1,0xc,DAT_000bbf50);
    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;
        puVar4 = (undefined4 *)*puVar4) {
      MASKED();
    }
    fwrite("END GROUP\n",1,10,DAT_000bbf50);
    break;
  case 0xe:
    pcVar14 = "BEFORE";
    if (*(int *)(param_1 + 0xc) == 0) {
      pcVar14 = "AFTER";
    }
    FUN_000317c0("INSERT %s %s\n",pcVar14,*(undefined4 *)(param_1 + 8));
    break;
  case 0xf:
    if (DAT_000bbdcc != (undefined4 *)0x0) {
      if (DAT_000bbdd4 == 0) {
        FUN_000317c0(" CONSTRUCTORS\n");
        puVar4 = DAT_000bbdcc;
      }
      else {
        FUN_000317c0(" SORT (CONSTRUCTORS)\n");
        puVar4 = DAT_000bbdcc;
      }
      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {
        MASKED();
      }
    }
    break;
  default:
    pcVar14 = (char *)dcgettext(0,"Fail with %d\n",5);
    fprintf(DAT_000bbf50,pcVar14,uVar12);
    FUN_00031780("../../ld/ldlang.c",0x11bc);
  }
  return;
}

