
/* 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)

{
  uint *puVar1;
  statement_enum sVar2;
  name_list *pnVar3;
  wildcard_list *pwVar4;
  lang_memory_region_type *plVar5;
  fill_type *pfVar6;
  size_t sVar7;
  lang_statement_union_type *plVar8;
  int iVar9;
  asection *paVar10;
  char *pcVar11;
  size_t sVar12;
  char *pcVar13;
  uint uVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  etree_type *tree;
  int iVar19;
  asection *paVar20;
  uchar *puVar21;
  bool bVar22;
  wildcard_list *local_3c;
  wildcard_list *local_38;
  lang_statement_union **local_34;
  etree_union *local_30;
  
  sVar2 = (s->header).type;
  switch(sVar2) {
  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._0_4_ = *(char **)&paVar20->vma;
        print_dot._4_4_ = *(int *)((int)&paVar20->vma + 4);
        sVar12 = strlen((s->output_section_statement).name);
        if (0xe < sVar12) {
          print_nl();
          sVar12 = 0;
        }
        do {
          print_space();
          sVar12 = sVar12 + 1;
        } while (sVar12 != 0x10);
        uVar14 = *(uint *)((int)&paVar20->size + 4);
        bVar15 = (byte)opb_shift & 0x1f;
        uVar17 = uVar14 >> ((byte)opb_shift & 0x1f);
        uVar18 = uVar17;
        uVar14 = (uint)paVar20->size >> bVar15 | uVar14 << 0x20 - bVar15;
        if ((opb_shift & 0x20) != 0) {
          uVar18 = 0;
          uVar14 = uVar17;
        }
        minfo("0x%V %W",(int)paVar20->vma,*(undefined4 *)((int)&paVar20->vma + 4),uVar14,uVar18);
        iVar19 = *(int *)((int)&paVar20->lma + 4);
        iVar9 = (int)paVar20->lma;
        if (iVar19 != *(int *)((int)&paVar20->vma + 4) || (int)paVar20->vma != iVar9) {
          pcVar13 = (char *)dcgettext(0," load address 0x%V",5);
          minfo(pcVar13,iVar9,iVar19);
        }
        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_00097fd4 + 0x180),&print_dot);
        }
      }
      print_nl();
    }
    for (plVar8 = (s->output_section_statement).children.head;
        plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {
      print_statement(plVar8,&s->output_section_statement);
    }
    break;
  case lang_assignment_statement_enum:
    iVar19 = 0x10;
    do {
      print_space();
      iVar19 = iVar19 + -1;
    } while (iVar19 != 0);
    paVar10 = (s->input_section).section;
    tree = (etree_type *)paVar10->prev;
    paVar20 = os->bfd_section;
    if (paVar10->next == (bfd_section *)0x8) {
      bVar22 = false;
      if (paVar20 == (asection *)0x0) {
        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);
      }
LAB_000201d5:
      exp_fold_tree(tree,paVar20,&print_dot);
      iVar19 = expld.result.value._4_4_;
      pcVar13 = (char *)expld.result.value;
      paVar10 = (s->input_section).section;
      if (expld.result.valid_p == 0) goto LAB_0001f87e;
      if (paVar10->next == (bfd_section *)0x8) {
        if (expld.result.section != (asection *)0x0) {
LAB_00020228:
          iVar19 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +
                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma);
          pcVar13 = (char *)expld.result.value + (int)(expld.result.section)->vma;
        }
        minfo("0x%V",pcVar13,iVar19);
        if (bVar22) {
LAB_0002025d:
          print_dot._0_4_ = pcVar13;
          print_dot._4_4_ = iVar19;
        }
      }
      else {
        if (bVar22) {
          if (expld.result.section != (asection *)0x0) goto LAB_00020228;
          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);
          goto LAB_0002025d;
        }
        if (expld.assign_name == (char *)0x0) {
          iVar19 = bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1);
          if (iVar19 == 0) {
            minfo("[unresolved]");
          }
          else {
            iVar9 = *(int *)(iVar19 + 0x14);
            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);
            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);
            minfo("[0x%V]",uVar14 + *puVar1,
                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +
                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +
                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));
          }
        }
        else {
          if (expld.result.section != (asection *)0x0) goto LAB_00020228;
          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);
        }
      }
    }
    else {
      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {
        bVar22 = true;
      }
      else {
        bVar22 = false;
        expld.assign_name = (char *)tree;
      }
      tree = (etree_type *)paVar10->flags;
      if (paVar20 == (asection *)0x0) {
        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);
      }
      if (paVar10->next != (bfd_section *)0x5) goto LAB_000201d5;
      expld.result.valid_p = 0;
LAB_0001f87e:
      if (paVar10->next == (bfd_section *)0x5) {
        minfo("[!provide]");
      }
      else {
        minfo("*undef*   ");
      }
      minfo("        ");
    }
    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:
    pcVar11 = (s->wild_statement).filename;
    if (pcVar11 == (char *)0x0) {
      return;
    }
    if (((s->reloc_statement).section != (asection *)0x0) &&
       ((((s->reloc_statement).section)->lma & 0x2000000000000) != 0)) {
      return;
    }
    pcVar13 = "LOAD %s\n";
    goto LAB_0001fc3c;
  case lang_address_statement_enum:
    pcVar13 = (s->wild_statement).filename;
    pcVar11 = (char *)dcgettext(0,"Address of section %s set to ",5);
    minfo(pcVar11,pcVar13);
    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) {
      pcVar13 = ((s->wild_statement).exclude_name_list)->name;
      minfo("EXCLUDE_FILE(%s",pcVar13);
      for (pnVar3 = ((s->wild_statement).exclude_name_list)->next; pnVar3 != (name_list *)0x0;
          pnVar3 = pnVar3->next) {
        pcVar13 = pnVar3->name;
        minfo(" %s",pcVar13);
      }
      minfo(") ",pcVar13);
    }
    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 (pwVar4 = (s->wild_statement).section_list; pwVar4 != (wildcard_list *)0x0;
        pwVar4 = pwVar4->next) {
      switch((pwVar4->spec).sorted) {
      default:
        iVar19 = 0;
        break;
      case by_name:
        iVar19 = 1;
        minfo("SORT_BY_NAME(");
        break;
      case by_alignment:
        iVar19 = 1;
        minfo("SORT_BY_ALIGNMENT(");
        break;
      case by_name_alignment:
        iVar19 = 2;
        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");
        break;
      case by_alignment_name:
        iVar19 = 2;
        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");
        break;
      case by_none:
        minfo("SORT_NONE(");
        iVar19 = 1;
        break;
      case by_init_priority:
        iVar19 = 1;
        minfo("SORT_BY_INIT_PRIORITY(");
      }
      pnVar3 = (pwVar4->spec).exclude_name_list;
      if (pnVar3 != (name_list *)0x0) {
        pcVar13 = pnVar3->name;
        minfo("EXCLUDE_FILE(%s",pcVar13);
        for (pnVar3 = ((pwVar4->spec).exclude_name_list)->next; pnVar3 != (name_list *)0x0;
            pnVar3 = pnVar3->next) {
          pcVar13 = pnVar3->name;
          minfo(" %s",pcVar13);
        }
        minfo(") ",pcVar13);
      }
      pcVar13 = (pwVar4->spec).name;
      if (pcVar13 == (char *)0x0) {
        minfo("*");
      }
      else {
        minfo("%s",pcVar13);
      }
      if ((iVar19 != 0) && (minfo(")"), iVar19 != 1)) {
        minfo(")");
      }
      if (pwVar4->next == (wildcard_list *)0x0) break;
      minfo(" ");
    }
    minfo(")");
    print_nl();
    for (plVar8 = (s->wild_statement).children.head; plVar8 != (lang_statement_union_type *)0x0;
        plVar8 = (plVar8->header).next) {
      print_statement(plVar8,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);
    pfVar6 = (s->fill_statement).fill;
    sVar7 = pfVar6->size;
    puVar21 = pfVar6->data;
    if (sVar7 != 0) {
      do {
        bVar15 = *puVar21;
        puVar21 = puVar21 + 1;
        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);
      } while (puVar21 != pfVar6->data + sVar7);
    }
    fputc(10,(FILE *)config.map_file);
    break;
  case lang_data_statement_enum:
    init_opb();
    iVar19 = 0x10;
    do {
      print_space();
      iVar19 = iVar19 + -1;
    } while (iVar19 != 0);
    local_34 = (s->wild_statement).children.tail;
    local_30 = (etree_union *)(s->wild_statement).exclude_name_list;
    paVar20 = (s->data_statement).output_section;
    if (paVar20 != (asection *)0x0) {
      uVar14 = (uint)paVar20->vma;
      bVar22 = CARRY4((uint)local_34,uVar14);
      local_34 = (lang_statement_union **)((int)local_34 + uVar14);
      local_30 = (etree_union *)
                 ((int)&(local_30->type).node_code + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4)
                 );
    }
    switch((s->data_statement).type) {
    case 0x11a:
      pcVar13 = "QUAD";
      uVar14 = 8;
      break;
    case 0x11b:
      pcVar13 = "SQUAD";
      uVar14 = 8;
      break;
    case 0x11c:
      pcVar13 = "LONG";
      uVar14 = 4;
      break;
    case 0x11d:
      pcVar13 = "SHORT";
      uVar14 = 2;
      break;
    case 0x11e:
      pcVar13 = "BYTE";
      uVar14 = 1;
      break;
    default:
                    /* WARNING: Subroutine does not return */
      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");
    }
    bVar15 = (byte)opb_shift;
    local_3c = (wildcard_list *)(1 << (bVar15 & 0x1f));
    if (local_3c < uVar14) {
      local_3c = (wildcard_list *)uVar14;
    }
    uVar17 = 0 >> (bVar15 & 0x1f);
    uVar18 = uVar17;
    uVar14 = (uint)local_3c >> (bVar15 & 0x1f) | 0 << 0x20 - (bVar15 & 0x1f);
    if ((opb_shift & 0x20) != 0) {
      uVar18 = 0;
      uVar14 = uVar17;
    }
    minfo("0x%V %W %s 0x%v",local_34,local_30,uVar14,uVar18,pcVar13,(s->wild_statement).section_list
          ,(s->wild_statement).keep_sections);
    if (((s->reloc_statement).howto)->bitsize != 7) {
      print_space();
      exp_print_tree((s->data_statement).exp);
    }
    print_nl();
    bVar15 = (byte)opb_shift & 0x1f;
    uVar17 = 0 >> ((byte)opb_shift & 0x1f);
    uVar18 = uVar17;
    uVar14 = (uint)local_3c >> bVar15 | 0 << 0x20 - bVar15;
    if ((opb_shift & 0x20) != 0) {
      uVar18 = 0;
      uVar14 = uVar17;
    }
    print_dot._0_4_ = (char *)(uVar14 + (int)local_34);
    print_dot._4_4_ = (int)(char **)local_30 + CARRY4(uVar14,(uint)local_34) + uVar18;
    break;
  case lang_reloc_statement_enum:
    init_opb();
    iVar19 = 0x10;
    do {
      print_space();
      iVar19 = iVar19 + -1;
    } while (iVar19 != 0);
    local_3c = (s->wild_statement).handler_data[0];
    local_38 = (s->wild_statement).handler_data[1];
    plVar5 = (s->output_section_statement).lma_region;
    if (plVar5 != (lang_memory_region_type *)0x0) {
      uVar14 = *(uint *)((int)&plVar5->length + 4);
      bVar22 = CARRY4((uint)local_3c,uVar14);
      local_3c = (wildcard_list *)((int)&local_3c->next + uVar14);
      local_38 = (wildcard_list *)((int)plVar5->length_exp + (uint)bVar22 + (int)&local_38->next);
    }
    uVar17 = bfd_get_reloc_size((s->wild_statement).filenames_sorted);
    bVar15 = (byte)opb_shift & 0x1f;
    uVar16 = 0 >> ((byte)opb_shift & 0x1f);
    uVar18 = uVar16;
    uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15;
    if ((opb_shift & 0x20) != 0) {
      uVar18 = 0;
      uVar14 = uVar16;
    }
    minfo("0x%V %W RELOC %s ",local_3c,local_38,uVar14,uVar18,((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();
    bVar15 = (byte)opb_shift & 0x1f;
    uVar16 = 0 >> ((byte)opb_shift & 0x1f);
    uVar18 = uVar16;
    uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15;
    if ((opb_shift & 0x20) != 0) {
      uVar18 = 0;
      uVar14 = uVar16;
    }
    print_dot._0_4_ = (char *)((int)&local_3c->next + uVar14);
    print_dot._4_4_ = (int)&local_38->next + CARRY4(uVar14,(uint)local_3c) + uVar18;
    break;
  case lang_target_statement_enum:
    pcVar11 = (s->wild_statement).filename;
    pcVar13 = "TARGET(%s)\n";
LAB_0001fc3c:
    fprintf((FILE *)config.map_file,pcVar13,pcVar11);
    break;
  case lang_output_statement_enum:
    pcVar13 = (s->wild_statement).filename;
    minfo("OUTPUT(%s",pcVar13);
    if (output_target != (char *)0x0) {
      pcVar13 = output_target;
      minfo(" %s",output_target);
    }
    minfo(")\n",pcVar13);
    break;
  case lang_padding_statement_enum:
    init_opb();
    minfo(" *fill*");
    iVar19 = 9;
    do {
      print_space();
      iVar19 = iVar19 + -1;
    } while (iVar19 != 0);
    local_34 = (lang_statement_union **)(s->wild_statement).filename;
    local_30 = (s->data_statement).exp;
    paVar20 = (s->data_statement).output_section;
    if (paVar20 != (asection *)0x0) {
      uVar14 = (uint)paVar20->vma;
      bVar22 = CARRY4((uint)local_34,uVar14);
      local_34 = (lang_statement_union **)((int)local_34 + uVar14);
      local_30 = (etree_union *)((int)local_30 + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4));
    }
    bVar15 = (byte)opb_shift & 0x1f;
    uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f);
    uVar18 = uVar17;
    uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |
             (s->wild_statement).keep_sections << 0x20 - bVar15;
    if ((opb_shift & 0x20) != 0) {
      uVar18 = 0;
      uVar14 = uVar17;
    }
    minfo("0x%V %W ",local_34,local_30,uVar14,uVar18);
    pfVar6 = (s->padding_statement).fill;
    sVar7 = pfVar6->size;
    if (sVar7 != 0) {
      puVar21 = pfVar6->data;
      do {
        bVar15 = *puVar21;
        puVar21 = puVar21 + 1;
        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);
      } while (puVar21 != pfVar6->data + sVar7);
    }
    print_nl();
    bVar15 = (byte)opb_shift & 0x1f;
    uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f);
    uVar18 = uVar17;
    uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |
             (s->wild_statement).keep_sections << 0x20 - bVar15;
    if ((opb_shift & 0x20) != 0) {
      uVar18 = 0;
      uVar14 = uVar17;
    }
    print_dot._0_4_ = (char *)((int)local_34 + uVar14);
    print_dot._4_4_ = (int)local_30 + CARRY4((uint)local_34,uVar14) + uVar18;
    break;
  case lang_group_statement_enum:
    fwrite("START GROUP\n",1,0xc,(FILE *)config.map_file);
    for (plVar8 = (s->output_section_statement).children.head;
        plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {
      print_statement(plVar8,os);
    }
    fwrite("END GROUP\n",1,10,(FILE *)config.map_file);
    break;
  case lang_insert_statement_enum:
    pcVar13 = "BEFORE";
    if ((s->wild_statement).filenames_sorted == 0) {
      pcVar13 = "AFTER";
    }
    minfo("INSERT %s %s\n",pcVar13,(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");
        plVar8 = constructor_list.head;
      }
      else {
        minfo(" SORT (CONSTRUCTORS)\n");
        plVar8 = constructor_list.head;
      }
      for (; plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {
        print_statement(plVar8,os);
      }
    }
    break;
  default:
    pcVar13 = (char *)dcgettext(0,"Fail with %d\n",5);
    fprintf((FILE *)config.map_file,pcVar13,sVar2);
    info_assert("../../ld/ldlang.c",0x11bc);
  }
  return;
}



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

void __regparm3 FUN_0001f7f0(int param_1,int param_2)

{
  uint *puVar1;
  undefined4 *puVar2;
  int *piVar3;
  undefined4 *puVar4;
  int iVar5;
  int iVar6;
  undefined4 *__base;
  undefined4 *puVar7;
  size_t sVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  char *pcVar12;
  byte bVar13;
  undefined4 *puVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  undefined4 *puVar19;
  int iVar20;
  undefined *puVar21;
  byte *pbVar22;
  bool bVar23;
  uint local_3c;
  uint uStack_38;
  uint uStack_34;
  uint uStack_30;
  size_t sStack_24;
  
  uVar11 = *(undefined4 *)(param_1 + 4);
  switch(uVar11) {
  case 0:
    if (param_1 != DAT_00098bac) {
      iVar20 = *(int *)(param_1 + 0x1c);
      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));
      if (iVar20 != 0) {
        DAT_00098838 = *(uint *)(iVar20 + 0x1c);
        DAT_0009883c = *(uint *)(iVar20 + 0x20);
        sVar8 = strlen(*(char **)(param_1 + 0x18));
        if (0xe < sVar8) {
          FUN_00031cf0();
          sVar8 = 0;
        }
        do {
          FUN_00031cc0();
          sVar8 = sVar8 + 1;
        } while (sVar8 != 0x10);
        bVar13 = (byte)DAT_000987ec & 0x1f;
        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);
        uVar17 = uVar16;
        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;
        if ((DAT_000987ec & 0x20) != 0) {
          uVar17 = 0;
          uVar18 = uVar16;
        }
        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),
                     uVar18,uVar17);
        iVar6 = *(int *)(iVar20 + 0x28);
        iVar5 = *(int *)(iVar20 + 0x24);
        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {
          uVar11 = dcgettext(0," load address 0x%V",5);
          FUN_00032c40(uVar11,iVar5,iVar6);
        }
        if (*(int *)(param_1 + 0x34) != 0) {
          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)
          ;
        }
      }
      FUN_00031cf0();
    }
    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;
        puVar4 = (undefined4 *)*puVar4) {
      FUN_0001f7f0();
    }
    break;
  case 1:
    iVar20 = 0x10;
    do {
      FUN_00031cc0();
      iVar20 = iVar20 + -1;
    } while (iVar20 != 0);
    iVar20 = *(int *)(param_1 + 8);
    pcVar12 = *(char **)(iVar20 + 0x10);
    puVar21 = *(undefined **)(param_2 + 0x1c);
    if (*(int *)(iVar20 + 0xc) == 8) {
      bVar23 = false;
      if (puVar21 == (undefined *)0x0) {
        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;
      }
code_r0x000201d5:
      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);
      uVar17 = DAT_00098db8;
      uVar18 = DAT_00098db4;
      iVar20 = *(int *)(param_1 + 8);
      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;
      if (*(int *)(iVar20 + 0xc) == 8) {
        if (DAT_00098dc0 != 0) {
code_r0x00020228:
          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +
                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));
          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);
        }
        FUN_00032c40("0x%V",uVar18,uVar17);
        if (bVar23) {
code_r0x0002025d:
          DAT_00098838 = uVar18;
          DAT_0009883c = uVar17;
        }
      }
      else {
        if (bVar23) {
          if (DAT_00098dc0 != 0) goto code_r0x00020228;
          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);
          goto code_r0x0002025d;
        }
        if (pcRam00098dac == (char *)0x0) {
          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);
          if (iVar20 == 0) {
            FUN_00032c40("[unresolved]");
          }
          else {
            iVar6 = *(int *)(iVar20 + 0x14);
            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);
            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);
            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,
                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +
                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +
                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));
          }
        }
        else {
          if (DAT_00098dc0 != 0) goto code_r0x00020228;
          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);
        }
      }
    }
    else {
      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {
        bVar23 = true;
      }
      else {
        bVar23 = false;
        pcRam00098dac = pcVar12;
      }
      pcVar12 = *(char **)(iVar20 + 0x14);
      if (puVar21 == (undefined *)0x0) {
        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;
      }
      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;
      DAT_00098dc4 = 0;
code_r0x0001f87e:
      if (*(int *)(iVar20 + 0xc) == 5) {
        FUN_00032c40("[!provide]");
      }
      else {
        FUN_00032c40(&UNK_0004cec3);
      }
      FUN_00032c40(&UNK_0004ced6);
    }
    pcRam00098dac = (char *)0x0;
    FUN_00032c40(&UNK_0004cece);
    FUN_00030c80(*(undefined4 *)(param_1 + 8));
    FUN_00031cf0();
    break;
  case 2:
    iVar20 = *(int *)(param_1 + 8);
    if (iVar20 == 0) {
      return;
    }
    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))
    {
      return;
    }
    pcVar12 = "LOAD %s\n";
    goto code_r0x0001fc3c;
  case 3:
    uVar11 = *(undefined4 *)(param_1 + 8);
    uVar10 = dcgettext(0,"Address of section %s set to ",5);
    FUN_00032c40(uVar10,uVar11);
    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));
    FUN_00031cf0();
    break;
  case 4:
    FUN_00031cc0();
    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {
      uVar11 = **(undefined4 **)(param_1 + 0x20);
      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);
      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;
          puVar4 = (undefined4 *)puVar4[1]) {
        uVar11 = *puVar4;
        FUN_00032c40(&DAT_0004b5e3,uVar11);
      }
      FUN_00032c40(&UNK_0004cdbf,uVar11);
    }
    if (*(int *)(param_1 + 0xc) != 0) {
      FUN_00032c40("SORT_BY_NAME(");
    }
    if (*(int *)(param_1 + 8) == 0) {
      FUN_00032c40(&DAT_0004cff4);
    }
    else {
      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));
    }
    if (*(int *)(param_1 + 0xc) != 0) {
      FUN_00032c40(")");
    }
    FUN_00032c40("(");
    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {
      switch(piVar3[3]) {
      default:
        iVar20 = 0;
        break;
      case 1:
        iVar20 = 1;
        FUN_00032c40("SORT_BY_NAME(");
        break;
      case 2:
        iVar20 = 1;
        FUN_00032c40("SORT_BY_ALIGNMENT(");
        break;
      case 3:
        iVar20 = 2;
        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");
        break;
      case 4:
        iVar20 = 2;
        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");
        break;
      case 5:
        FUN_00032c40("SORT_NONE(");
        iVar20 = 1;
        break;
      case 6:
        iVar20 = 1;
        FUN_00032c40("SORT_BY_INIT_PRIORITY(");
      }
      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {
        uVar11 = *(undefined4 *)piVar3[2];
        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);
        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;
            puVar4 = (undefined4 *)puVar4[1]) {
          uVar11 = *puVar4;
          FUN_00032c40(&DAT_0004b5e3,uVar11);
        }
        FUN_00032c40(&UNK_0004cdbf,uVar11);
      }
      if (piVar3[1] == 0) {
        FUN_00032c40(&DAT_0004cff4);
      }
      else {
        FUN_00032c40(&DAT_0004ce86,piVar3[1]);
      }
      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {
        FUN_00032c40(")");
      }
      if (*piVar3 == 0) break;
      FUN_00032c40(&UNK_0004cedd);
    }
    FUN_00032c40(")");
    FUN_00031cf0();
    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;
        puVar4 = (undefined4 *)*puVar4) {
      FUN_0001f7f0();
    }
    break;
  case 5:
    puVar4 = *(undefined4 **)(param_1 + 8);
    uStack_38 = puVar4[0xc];
    local_3c = puVar4[0xb];
    FUN_0001f3e0();
    FUN_00031cc0();
    FUN_00032c40(&DAT_0004ce86,*puVar4);
    sVar8 = strlen((char *)*puVar4);
    uVar18 = sVar8 + 1;
    if (0xe < uVar18) {
      FUN_00031cf0();
      uVar18 = 0;
    }
    do {
      FUN_00031cc0();
      uVar18 = uVar18 + 1;
    } while (uVar18 != 0x10);
    iVar20 = puVar4[0x15];
    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {
      uStack_34 = DAT_00098838;
      uStack_30 = DAT_0009883c;
      local_3c = 0;
      uStack_38 = 0;
    }
    else {
      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];
      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +
                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);
    }
    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);
    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&
       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {
      iVar20 = 0x23;
      do {
        FUN_00031cc0();
        iVar20 = iVar20 + -1;
      } while (iVar20 != 0);
      uVar11 = puVar4[0xd];
      uVar10 = puVar4[0xe];
      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);
      FUN_00032c40(uVar9,uVar11,uVar10);
    }
    puVar19 = DAT_00098870;
    puVar14 = DAT_0009886c;
    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {
      if ((DAT_00098c04 & 0x10) == 0) {
        puVar2 = (undefined4 *)puVar4[0x20];
        if (puVar2 != (undefined4 *)0x0) {
          *(undefined4 *)puVar2[1] = 0;
          sVar8 = puVar2[2];
          uVar18 = sVar8 * 4;
          uVar17 = (int)puVar19 - (int)puVar14;
          sStack_24 = sVar8;
          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {
            _obstack_newchunk(&DAT_00098860,uVar18);
            sStack_24 = puVar2[2];
            puVar14 = DAT_0009886c;
            puVar19 = DAT_00098870;
          }
          __base = DAT_00098868;
          if (puVar14 + sVar8 == DAT_00098868) {
            DAT_00098888 = DAT_00098888 | 2;
          }
          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);
          if ((uint)((int)puVar19 - (int)DAT_00098864) <
              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {
            DAT_0009886c = puVar19;
          }
          puVar14 = (undefined4 *)*puVar2;
          puVar7 = DAT_0009886c;
          puVar19 = DAT_00098868;
          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {
            uVar11 = *puVar14;
            puVar14 = (undefined4 *)puVar14[1];
            *puVar19 = uVar11;
            puVar7 = DAT_00098868;
            puVar19 = puVar19 + 1;
          }
          qsort(__base,sStack_24,4,FUN_0001dec0);
          if (puVar2[2] != 0) {
            uVar18 = 0;
            do {
              puVar14 = __base + uVar18;
              uVar18 = uVar18 + 1;
              FUN_0001f350(*puVar14,puVar4);
            } while (uVar18 < (uint)puVar2[2]);
          }
          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {
            DAT_0009886c = __base;
            DAT_00098868 = __base;
          }
          else {
            _obstack_free(&DAT_00098860,__base);
          }
        }
      }
      else {
        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);
      }
      bVar13 = (byte)DAT_000987ec & 0x1f;
      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);
      uVar17 = uVar16;
      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;
      if ((DAT_000987ec & 0x20) != 0) {
        uVar17 = 0;
        uVar18 = uVar16;
      }
      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);
      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)
         ) {
        DAT_00098838 = uVar18 + uStack_34;
        DAT_0009883c = uVar17;
        return;
      }
    }
    return;
  case 6:
    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");
    break;
  case 7:
    fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);
    piVar3 = *(int **)(param_1 + 8);
    iVar20 = *piVar3;
    pbVar22 = (byte *)(piVar3 + 1);
    if (iVar20 != 0) {
      do {
        bVar13 = *pbVar22;
        pbVar22 = pbVar22 + 1;
        fprintf(DAT_00098d50,"%02x",(uint)bVar13);
      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));
    }
    fputc(10,DAT_00098d50);
    break;
  case 8:
    FUN_0001f3e0();
    iVar20 = 0x10;
    do {
      FUN_00031cc0();
      iVar20 = iVar20 + -1;
    } while (iVar20 != 0);
    uStack_34 = *(uint *)(param_1 + 0x1c);
    uStack_30 = *(int *)(param_1 + 0x20);
    iVar20 = *(int *)(param_1 + 0x18);
    if (iVar20 != 0) {
      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));
      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);
      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;
    }
    switch(*(undefined4 *)(param_1 + 8)) {
    case 0x11a:
      pcVar12 = "QUAD";
      uVar18 = 8;
      break;
    case 0x11b:
      pcVar12 = "SQUAD";
      uVar18 = 8;
      break;
    case 0x11c:
      pcVar12 = "LONG";
      uVar18 = 4;
      break;
    case 0x11d:
      pcVar12 = "SHORT";
      uVar18 = 2;
      break;
    case 0x11e:
      pcVar12 = "BYTE";
      uVar18 = 1;
      break;
    default:
                    /* WARNING: Subroutine does not return */
      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);
    }
    bVar13 = (byte)DAT_000987ec;
    local_3c = 1 << (bVar13 & 0x1f);
    if (local_3c < uVar18) {
      local_3c = uVar18;
    }
    uVar16 = 0 >> (bVar13 & 0x1f);
    uVar17 = uVar16;
    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);
    if ((DAT_000987ec & 0x20) != 0) {
      uVar17 = 0;
      uVar18 = uVar16;
    }
    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,
                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));
    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {
      FUN_00031cc0();
      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));
    }
    FUN_00031cf0();
    bVar13 = (byte)DAT_000987ec & 0x1f;
    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);
    uVar17 = uVar16;
    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;
    if ((DAT_000987ec & 0x20) != 0) {
      uVar17 = 0;
      uVar18 = uVar16;
    }
    DAT_00098838 = uVar18 + uStack_34;
    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);
    break;
  case 9:
    FUN_0001f3e0();
    iVar20 = 0x10;
    do {
      FUN_00031cc0();
      iVar20 = iVar20 + -1;
    } while (iVar20 != 0);
    local_3c = *(uint *)(param_1 + 0x28);
    uStack_38 = *(int *)(param_1 + 0x2c);
    iVar20 = *(int *)(param_1 + 0x24);
    if (iVar20 != 0) {
      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));
      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);
      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;
    }
    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));
    bVar13 = (byte)DAT_000987ec & 0x1f;
    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);
    uVar17 = uVar15;
    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;
    if ((DAT_000987ec & 0x20) != 0) {
      uVar17 = 0;
      uVar18 = uVar15;
    }
    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,
                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));
    if (*(int *)(param_1 + 0x14) == 0) {
      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));
    }
    else {
      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));
    }
    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));
    FUN_00031cf0();
    bVar13 = (byte)DAT_000987ec & 0x1f;
    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);
    uVar17 = uVar15;
    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;
    if ((DAT_000987ec & 0x20) != 0) {
      uVar17 = 0;
      uVar18 = uVar15;
    }
    DAT_00098838 = uVar18 + local_3c;
    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);
    break;
  case 10:
    iVar20 = *(int *)(param_1 + 8);
    pcVar12 = "TARGET(%s)\n";
code_r0x0001fc3c:
    fprintf(DAT_00098d50,pcVar12,iVar20);
    break;
  case 0xb:
    iVar20 = *(int *)(param_1 + 8);
    FUN_00032c40("OUTPUT(%s",iVar20);
    if (DAT_00098bbc != 0) {
      iVar20 = DAT_00098bbc;
      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);
    }
    FUN_00032c40(")\n",iVar20);
    break;
  case 0xc:
    FUN_0001f3e0();
    FUN_00032c40(&UNK_0004ce74);
    iVar20 = 9;
    do {
      FUN_00031cc0();
      iVar20 = iVar20 + -1;
    } while (iVar20 != 0);
    uStack_34 = *(uint *)(param_1 + 8);
    uStack_30 = *(int *)(param_1 + 0xc);
    iVar20 = *(int *)(param_1 + 0x18);
    if (iVar20 != 0) {
      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));
      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);
      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;
    }
    bVar13 = (byte)DAT_000987ec & 0x1f;
    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);
    uVar17 = uVar16;
    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;
    if ((DAT_000987ec & 0x20) != 0) {
      uVar17 = 0;
      uVar18 = uVar16;
    }
    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);
    piVar3 = *(int **)(param_1 + 0x1c);
    iVar20 = *piVar3;
    if (iVar20 != 0) {
      pbVar22 = (byte *)(piVar3 + 1);
      do {
        bVar13 = *pbVar22;
        pbVar22 = pbVar22 + 1;
        fprintf(DAT_00098d50,"%02x",(uint)bVar13);
      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));
    }
    FUN_00031cf0();
    bVar13 = (byte)DAT_000987ec & 0x1f;
    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);
    uVar17 = uVar16;
    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;
    if ((DAT_000987ec & 0x20) != 0) {
      uVar17 = 0;
      uVar18 = uVar16;
    }
    DAT_00098838 = uStack_34 + uVar18;
    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);
    break;
  case 0xd:
    fwrite("START GROUP\n",1,0xc,DAT_00098d50);
    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;
        puVar4 = (undefined4 *)*puVar4) {
      FUN_0001f7f0();
    }
    fwrite("END GROUP\n",1,10,DAT_00098d50);
    break;
  case 0xe:
    pcVar12 = "BEFORE";
    if (*(int *)(param_1 + 0xc) == 0) {
      pcVar12 = "AFTER";
    }
    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));
    break;
  case 0xf:
    if (DAT_00098bcc != (undefined4 *)0x0) {
      if (DAT_00098bd4 == 0) {
        FUN_00032c40(" CONSTRUCTORS\n");
        puVar4 = DAT_00098bcc;
      }
      else {
        FUN_00032c40(" SORT (CONSTRUCTORS)\n");
        puVar4 = DAT_00098bcc;
      }
      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {
        FUN_0001f7f0();
      }
    }
    break;
  default:
    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);
    fprintf(DAT_00098d50,pcVar12,uVar11);
    FUN_00032c00("../../ld/ldlang.c",0x11bc);
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00015a40
ADD EBX,0x78807
SUB ESP,0x2c
MOV ESI,dword ptr [EAX + 0x4]
MOV dword ptr [ESP],EDX
CMP ESI,0xf
JA 0x0001ffe8
MOV EDI,EAX
MOV EAX,dword ptr [EBX + ESI*0x4 + 0xfffb493c]
ADD EAX,EBX
JMP EAX
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffb4d7c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
ADD ESP,0xc
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xd00]
PUSH dword ptr [EAX + 0x50]
CALL 0x00014740
POP EAX
LEA EAX,[EBX + 0xfffb4cfe]
POP EDX
PUSH 0x11bc
PUSH EAX
CALL 0x00032c00
ADD ESP,0x10
JMP 0x0001f930
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_0001f7f0(int param_1,int param_2)\n\n{\n  uint *puVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *__base;\n  undefined4 *puVar7;\n  size_t sVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  char *pcVar12;\n  byte bVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined4 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  byte *pbVar22;\n  bool bVar23;\n  uint local_3c;\n  uint uStack_38;\n  uint uStack_34;\n  uint uStack_30;\n  size_t sStack_24;\n  \n  uVar11 = *(undefined4 *)(param_1 + 4);\n  switch(uVar11) {\n  case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;\n  case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;\n  case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;\n  case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;\n  case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;\n  case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;\n  case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;\n  case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;\n  case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;\n  case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_0001f7f0(int param_1,int param_2)\n\n{\n  uint *puVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *__base;\n  undefined4 *puVar7;\n  size_t sVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  char *pcVar12;\n  byte bVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined4 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  byte *pbVar22;\n  bool bVar23;\n  uint local_3c;\n  uint uStack_38;\n  uint uStack_34;\n  uint uStack_30;\n  size_t sStack_24;\n  \n  uVar11 = *(undefined4 *)(param_1 + 4);\n  switch(uVar11) {\n  case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;\n  case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;\n  case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;\n  case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;\n  case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;\n  case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;\n  case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;\n  case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;\n  case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;\n  case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0001f7f0(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  uint *puVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *__base;\n  undefined4 *puVar7;\n  size_t sVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  char *pcVar12;\n  byte bVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined4 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  byte *pbVar22;\n  bool bVar23;\n  uint local_3c;\n  uint uStack_38;\n  uint uStack_34;\n  uint uStack_30;\n  size_t sStack_24;\n  \n  uVar11 = *(undefined4 *)(param_1 + 4);\n  switch(uVar11) {\n  case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;\n  case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;\n  case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;\n  case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;\n  case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;\n  case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;\n  case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;\n  case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;\n  case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;\n  case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * 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 "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *__base;" type_identifier (pointer_declarator "*__base" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint uStack_38;" type_identifier identifier ;) (declaration "uint uStack_34;" type_identifier identifier ;) (declaration "uint uStack_30;" type_identifier identifier ;) (declaration "size_t sStack_24;" primitive_type identifier ;) (expression_statement "uVar11 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (switch_statement "switch(uVar11) {\n  case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;\n  case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;\n  case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;\n  case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;\n  case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;\n  case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;\n  case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;\n  case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;\n  case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;\n  case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../ld/ldlang.c",0x11bc);\n  }" switch (parenthesized_expression "(uVar11)" ( identifier )) (compound_statement "{\n  case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;\n  case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;\n  case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;\n  case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;\n  case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;\n  case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;\n  case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;\n  case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;\n  case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;\n  case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../ld/ldlang.c",0x11bc);\n  }" { (case_statement "case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;" case number_literal : (if_statement "if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }" if (parenthesized_expression "(param_1 != DAT_00098bac)" ( (binary_expression "param_1 != DAT_00098bac" identifier != identifier) )) (compound_statement "{\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }" { (expression_statement "iVar20 = *(int *)(param_1 + 0x1c);" (assignment_expression "iVar20 = *(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_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));" (call_expression "FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18))" identifier (argument_list "(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18))" ( (pointer_expression "&UNK_0004ce85" & 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 (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }" { (expression_statement "DAT_00098838 = *(uint *)(iVar20 + 0x1c);" (assignment_expression "DAT_00098838 = *(uint *)(iVar20 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "DAT_0009883c = *(uint *)(iVar20 + 0x20);" (assignment_expression "DAT_0009883c = *(uint *)(iVar20 + 0x20)" identifier = (pointer_expression "*(uint *)(iVar20 + 0x20)" * (cast_expression "(uint *)(iVar20 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "sVar8 = strlen(*(char **)(param_1 + 0x18));" (assignment_expression "sVar8 = 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 < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }" if (parenthesized_expression "(0xe < sVar8)" ( (binary_expression "0xe < sVar8" number_literal < identifier) )) (compound_statement "{\n          FUN_00031cf0();\n          sVar8 = 0;\n        }" { (expression_statement "FUN_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar8 = 0;" (assignment_expression "sVar8 = 0" identifier = number_literal) ;) })) (do_statement "do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);" do (compound_statement "{\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        }" { (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar8 = sVar8 + 1;" (assignment_expression "sVar8 = sVar8 + 1" identifier = (binary_expression "sVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar8 != 0x10)" ( (binary_expression "sVar8 != 0x10" identifier != number_literal) )) ;) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" identifier = (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f)" identifier = (binary_expression "*(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f)" (pointer_expression "*(uint *)(iVar20 + 0x30)" * (cast_expression "(uint *)(iVar20 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" ( (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;" (assignment_expression "uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13" identifier = (binary_expression "*(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13" (binary_expression "*(uint *)(iVar20 + 0x2c) >> bVar13" (pointer_expression "*(uint *)(iVar20 + 0x2c)" * (cast_expression "(uint *)(iVar20 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x2c)" ( (binary_expression "iVar20 + 0x2c" identifier + number_literal) )))) >> identifier) | (binary_expression "*(uint *)(iVar20 + 0x30) << 0x20 - bVar13" (pointer_expression "*(uint *)(iVar20 + 0x30)" * (cast_expression "(uint *)(iVar20 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) )))) << (binary_expression "0x20 - bVar13" number_literal - identifier)))) ;) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }" if (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" ( (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" ( (binary_expression "DAT_000987ec & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);" (call_expression "FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17)" identifier (argument_list "(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17)" ( (pointer_expression "&UNK_0004ce89" & identifier) , (pointer_expression "*(undefined4 *)(iVar20 + 0x1c)" * (cast_expression "(undefined4 *)(iVar20 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar20 + 0x20)" * (cast_expression "(undefined4 *)(iVar20 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "iVar6 = *(int *)(iVar20 + 0x28);" (assignment_expression "iVar6 = *(int *)(iVar20 + 0x28)" identifier = (pointer_expression "*(int *)(iVar20 + 0x28)" * (cast_expression "(int *)(iVar20 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x28)" ( (binary_expression "iVar20 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(iVar20 + 0x24);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0x24)" identifier = (pointer_expression "*(int *)(iVar20 + 0x24)" * (cast_expression "(int *)(iVar20 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x24)" ( (binary_expression "iVar20 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }" if (parenthesized_expression "(iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5)" ( (binary_expression "iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5" (binary_expression "iVar6 != *(int *)(iVar20 + 0x20)" identifier != (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) ))))) || (binary_expression "*(int *)(iVar20 + 0x1c) != iVar5" (pointer_expression "*(int *)(iVar20 + 0x1c)" * (cast_expression "(int *)(iVar20 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) != identifier)) )) (compound_statement "{\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }" { (expression_statement "uVar11 = dcgettext(0," load address 0x%V",5);" (assignment_expression "uVar11 = 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_00032c40(uVar11,iVar5,iVar6);" (call_expression "FUN_00032c40(uVar11,iVar5,iVar6)" identifier (argument_list "(uVar11,iVar5,iVar6)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\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_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }" { (expression_statement "FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;" (call_expression "FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)" identifier (argument_list "(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)" ( (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_00097fd4 + 0x180" identifier + number_literal) , (pointer_expression "&DAT_00098838" & identifier) ))) ;) })) })) (expression_statement "FUN_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) })) (for_statement "for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\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_0001f7f0();\n    }" { (expression_statement "FUN_0001f7f0();" (call_expression "FUN_0001f7f0()" identifier (argument_list "()" ( ))) ;) })) (break_statement "break;" break ;)) (case_statement "case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;" case number_literal : (expression_statement "iVar20 = 0x10;" (assignment_expression "iVar20 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);" do (compound_statement "{\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    }" { (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) ;) (expression_statement "iVar20 = *(int *)(param_1 + 8);" (assignment_expression "iVar20 = *(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 "pcVar12 = *(char **)(iVar20 + 0x10);" (assignment_expression "pcVar12 = *(char **)(iVar20 + 0x10)" identifier = (pointer_expression "*(char **)(iVar20 + 0x10)" * (cast_expression "(char **)(iVar20 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "puVar21 = *(undefined **)(param_2 + 0x1c);" (assignment_expression "puVar21 = *(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 *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }" if (parenthesized_expression "(*(int *)(iVar20 + 0xc) == 8)" ( (binary_expression "*(int *)(iVar20 + 0xc) == 8" (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }" { (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (if_statement "if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }" if (parenthesized_expression "(puVar21 == (undefined *)0x0)" ( (binary_expression "puVar21 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }" { (expression_statement "puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;" (assignment_expression "puVar21 = PTR__bfd_std_section_00097fd4 + 0x180" identifier = (binary_expression "PTR__bfd_std_section_00097fd4 + 0x180" identifier + number_literal)) ;) })) (labeled_statement "code_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);" statement_identifier : (expression_statement "FUN_000308e0(pcVar12,puVar21,&DAT_00098838);" (call_expression "FUN_000308e0(pcVar12,puVar21,&DAT_00098838)" identifier (argument_list "(pcVar12,puVar21,&DAT_00098838)" ( identifier , identifier , (pointer_expression "&DAT_00098838" & identifier) ))) ;)) (expression_statement "uVar17 = DAT_00098db8;" (assignment_expression "uVar17 = DAT_00098db8" identifier = identifier) ;) (expression_statement "uVar18 = DAT_00098db4;" (assignment_expression "uVar18 = DAT_00098db4" identifier = identifier) ;) (expression_statement "iVar20 = *(int *)(param_1 + 8);" (assignment_expression "iVar20 = *(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_00098dc4 == 0) goto code_r0x0001f87e;" if (parenthesized_expression "(DAT_00098dc4 == 0)" ( (binary_expression "DAT_00098dc4 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x0001f87e;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar20 + 0xc) == 8)" ( (binary_expression "*(int *)(iVar20 + 0xc) == 8" (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }" { (if_statement "if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }" if (parenthesized_expression "(DAT_00098dc0 != 0)" ( (binary_expression "DAT_00098dc0 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }" { (labeled_statement "code_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));" statement_identifier : (expression_statement "uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));" (assignment_expression "uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c))" identifier = (binary_expression "DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c))" (binary_expression "DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20)" identifier + (pointer_expression "*(int *)(DAT_00098dc0 + 0x20)" * (cast_expression "(int *)(DAT_00098dc0 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00098dc0 + 0x20)" ( (binary_expression "DAT_00098dc0 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c))" identifier (argument_list "(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c))" ( identifier , (pointer_expression "*(uint *)(DAT_00098dc0 + 0x1c)" * (cast_expression "(uint *)(DAT_00098dc0 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00098dc0 + 0x1c)" ( (binary_expression "DAT_00098dc0 + 0x1c" identifier + number_literal) )))) )))))) ;)) (expression_statement "uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);" (assignment_expression "uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c)" identifier = (binary_expression "DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c)" identifier + (pointer_expression "*(uint *)(DAT_00098dc0 + 0x1c)" * (cast_expression "(uint *)(DAT_00098dc0 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00098dc0 + 0x1c)" ( (binary_expression "DAT_00098dc0 + 0x1c" identifier + number_literal) )))))) ;) })) (expression_statement "FUN_00032c40("0x%V",uVar18,uVar17);" (call_expression "FUN_00032c40("0x%V",uVar18,uVar17)" identifier (argument_list "("0x%V",uVar18,uVar17)" ( (string_literal ""0x%V"" " string_content ") , identifier , identifier ))) ;) (if_statement "if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }" { (labeled_statement "code_r0x0002025d:\n          DAT_00098838 = uVar18;" statement_identifier : (expression_statement "DAT_00098838 = uVar18;" (assignment_expression "DAT_00098838 = uVar18" identifier = identifier) ;)) (expression_statement "DAT_0009883c = uVar17;" (assignment_expression "DAT_0009883c = uVar17" identifier = identifier) ;) })) }) (else_clause "else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }" else (compound_statement "{\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }" { (if_statement "if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }" { (if_statement "if (DAT_00098dc0 != 0) goto code_r0x00020228;" if (parenthesized_expression "(DAT_00098dc0 != 0)" ( (binary_expression "DAT_00098dc0 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00020228;" goto statement_identifier ;)) (expression_statement "FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);" (call_expression "FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8)" identifier (argument_list "("0x%V",DAT_00098db4,DAT_00098db8)" ( (string_literal ""0x%V"" " string_content ") , identifier , identifier ))) ;) (goto_statement "goto code_r0x0002025d;" goto statement_identifier ;) })) (if_statement "if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }" if (parenthesized_expression "(pcRam00098dac == (char *)0x0)" ( (binary_expression "pcRam00098dac == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }" { (expression_statement "iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);" (assignment_expression "iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1)" identifier (argument_list "(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1)" ( identifier , (pointer_expression "*(undefined4 *)(iVar20 + 0x10)" * (cast_expression "(undefined4 *)(iVar20 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) )))) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_00032c40("[unresolved]");\n          }" { (expression_statement "FUN_00032c40("[unresolved]");" (call_expression "FUN_00032c40("[unresolved]")" identifier (argument_list "("[unresolved]")" ( (string_literal ""[unresolved]"" " string_content ") ))) ;) }) (else_clause "else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }" else (compound_statement "{\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }" { (expression_statement "iVar6 = *(int *)(iVar20 + 0x14);" (assignment_expression "iVar6 = *(int *)(iVar20 + 0x14)" identifier = (pointer_expression "*(int *)(iVar20 + 0x14)" * (cast_expression "(int *)(iVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);" (assignment_expression "uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c)" identifier = (binary_expression "*(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c)" (pointer_expression "*(uint *)(iVar20 + 0x18)" * (cast_expression "(uint *)(iVar20 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x18)" ( (binary_expression "iVar20 + 0x18" identifier + number_literal) )))) + (pointer_expression "*(uint *)(iVar6 + 0x4c)" * (cast_expression "(uint *)(iVar6 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) )))))) ;) (expression_statement "puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);" (assignment_expression "puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c)" identifier = (cast_expression "(uint *)(*(int *)(iVar6 + 0x54) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x54) + 0x1c)" ( (binary_expression "*(int *)(iVar6 + 0x54) + 0x1c" (pointer_expression "*(int *)(iVar6 + 0x54)" * (cast_expression "(int *)(iVar6 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x54)" ( (binary_expression "iVar6 + 0x54" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));" (call_expression "FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1))" identifier (argument_list "(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1))" ( (pointer_expression "&UNK_0004cea4" & identifier) , (binary_expression "uVar18 + *puVar1" identifier + (pointer_expression "*puVar1" * identifier)) , (binary_expression "*(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1)" (binary_expression "*(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20)" (binary_expression "*(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c))" (binary_expression "*(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50)" (pointer_expression "*(int *)(iVar20 + 0x1c)" * (cast_expression "(int *)(iVar20 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar6 + 0x50)" * (cast_expression "(int *)(iVar6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x50)" ( (binary_expression "iVar6 + 0x50" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c))" identifier (argument_list "(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c))" ( (pointer_expression "*(uint *)(iVar20 + 0x18)" * (cast_expression "(uint *)(iVar20 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x18)" ( (binary_expression "iVar20 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(uint *)(iVar6 + 0x4c)" * (cast_expression "(uint *)(iVar6 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) )))) ))))) + (pointer_expression "*(int *)(*(int *)(iVar6 + 0x54) + 0x20)" * (cast_expression "(int *)(*(int *)(iVar6 + 0x54) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x54) + 0x20)" ( (binary_expression "*(int *)(iVar6 + 0x54) + 0x20" (pointer_expression "*(int *)(iVar6 + 0x54)" * (cast_expression "(int *)(iVar6 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x54)" ( (binary_expression "iVar6 + 0x54" identifier + number_literal) )))) + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar18,*puVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar18,*puVar1)" identifier (argument_list "(uVar18,*puVar1)" ( identifier , (pointer_expression "*puVar1" * identifier) ))))) ))) ;) }))) }) (else_clause "else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }" else (compound_statement "{\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }" { (if_statement "if (DAT_00098dc0 != 0) goto code_r0x00020228;" if (parenthesized_expression "(DAT_00098dc0 != 0)" ( (binary_expression "DAT_00098dc0 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00020228;" goto statement_identifier ;)) (expression_statement "FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);" (call_expression "FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8)" identifier (argument_list "("0x%V",DAT_00098db4,DAT_00098db8)" ( (string_literal ""0x%V"" " string_content ") , identifier , identifier ))) ;) }))) }))) }) (else_clause "else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }" else (compound_statement "{\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }" { (if_statement "if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }" if (parenthesized_expression "((*pcVar12 == '.') && (pcVar12[1] == '\0'))" ( (binary_expression "(*pcVar12 == '.') && (pcVar12[1] == '\0')" (parenthesized_expression "(*pcVar12 == '.')" ( (binary_expression "*pcVar12 == '.'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'.'" ' character ')) )) && (parenthesized_expression "(pcVar12[1] == '\0')" ( (binary_expression "pcVar12[1] == '\0'" (subscript_expression "pcVar12[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        bVar23 = true;\n      }" { (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) }) (else_clause "else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }" else (compound_statement "{\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }" { (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "pcRam00098dac = pcVar12;" (assignment_expression "pcRam00098dac = pcVar12" identifier = identifier) ;) }))) (expression_statement "pcVar12 = *(char **)(iVar20 + 0x14);" (assignment_expression "pcVar12 = *(char **)(iVar20 + 0x14)" identifier = (pointer_expression "*(char **)(iVar20 + 0x14)" * (cast_expression "(char **)(iVar20 + 0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }" if (parenthesized_expression "(puVar21 == (undefined *)0x0)" ( (binary_expression "puVar21 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }" { (expression_statement "puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;" (assignment_expression "puVar21 = PTR__bfd_std_section_00097fd4 + 0x180" identifier = (binary_expression "PTR__bfd_std_section_00097fd4 + 0x180" identifier + number_literal)) ;) })) (if_statement "if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;" if (parenthesized_expression "(*(int *)(iVar20 + 0xc) != 5)" ( (binary_expression "*(int *)(iVar20 + 0xc) != 5" (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto code_r0x000201d5;" goto statement_identifier ;)) (expression_statement "DAT_00098dc4 = 0;" (assignment_expression "DAT_00098dc4 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }" statement_identifier : (if_statement "if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }" if (parenthesized_expression "(*(int *)(iVar20 + 0xc) == 5)" ( (binary_expression "*(int *)(iVar20 + 0xc) == 5" (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        FUN_00032c40("[!provide]");\n      }" { (expression_statement "FUN_00032c40("[!provide]");" (call_expression "FUN_00032c40("[!provide]")" identifier (argument_list "("[!provide]")" ( (string_literal ""[!provide]"" " string_content ") ))) ;) }) (else_clause "else {\n        FUN_00032c40(&UNK_0004cec3);\n      }" else (compound_statement "{\n        FUN_00032c40(&UNK_0004cec3);\n      }" { (expression_statement "FUN_00032c40(&UNK_0004cec3);" (call_expression "FUN_00032c40(&UNK_0004cec3)" identifier (argument_list "(&UNK_0004cec3)" ( (pointer_expression "&UNK_0004cec3" & identifier) ))) ;) })))) (expression_statement "FUN_00032c40(&UNK_0004ced6);" (call_expression "FUN_00032c40(&UNK_0004ced6)" identifier (argument_list "(&UNK_0004ced6)" ( (pointer_expression "&UNK_0004ced6" & identifier) ))) ;) }))) (expression_statement "pcRam00098dac = (char *)0x0;" (assignment_expression "pcRam00098dac = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00032c40(&UNK_0004cece);" (call_expression "FUN_00032c40(&UNK_0004cece)" identifier (argument_list "(&UNK_0004cece)" ( (pointer_expression "&UNK_0004cece" & identifier) ))) ;) (expression_statement "FUN_00030c80(*(undefined4 *)(param_1 + 8));" (call_expression "FUN_00030c80(*(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_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;" case number_literal : (expression_statement "iVar20 = *(int *)(param_1 + 8);" (assignment_expression "iVar20 = *(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 (iVar20 == 0) {\n      return;\n    }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 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 "pcVar12 = "LOAD %s\n";" (assignment_expression "pcVar12 = "LOAD %s\n"" identifier = (string_literal ""LOAD %s\n"" " string_content escape_sequence ")) ;) (goto_statement "goto code_r0x0001fc3c;" goto statement_identifier ;)) (case_statement "case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;" case number_literal : (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(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 "uVar10 = dcgettext(0,"Address of section %s set to ",5);" (assignment_expression "uVar10 = 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_00032c40(uVar10,uVar11);" (call_expression "FUN_00032c40(uVar10,uVar11)" identifier (argument_list "(uVar10,uVar11)" ( identifier , identifier ))) ;) (expression_statement "FUN_00030c80(*(undefined4 *)(param_1 + 0xc));" (call_expression "FUN_00030c80(*(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_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;" case number_literal : (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\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      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }" { (expression_statement "uVar11 = **(undefined4 **)(param_1 + 0x20);" (assignment_expression "uVar11 = **(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_00032c40("EXCLUDE_FILE(%s",uVar11);" (call_expression "FUN_00032c40("EXCLUDE_FILE(%s",uVar11)" identifier (argument_list "("EXCLUDE_FILE(%s",uVar11)" ( (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        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\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        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }" { (expression_statement "uVar11 = *puVar4;" (assignment_expression "uVar11 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "FUN_00032c40(&DAT_0004b5e3,uVar11);" (call_expression "FUN_00032c40(&DAT_0004b5e3,uVar11)" identifier (argument_list "(&DAT_0004b5e3,uVar11)" ( (pointer_expression "&DAT_0004b5e3" & identifier) , identifier ))) ;) })) (expression_statement "FUN_00032c40(&UNK_0004cdbf,uVar11);" (call_expression "FUN_00032c40(&UNK_0004cdbf,uVar11)" identifier (argument_list "(&UNK_0004cdbf,uVar11)" ( (pointer_expression "&UNK_0004cdbf" & identifier) , identifier ))) ;) })) (if_statement "if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("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_00032c40("SORT_BY_NAME(");\n    }" { (expression_statement "FUN_00032c40("SORT_BY_NAME(");" (call_expression "FUN_00032c40("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_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(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_00032c40(&DAT_0004cff4);\n    }" { (expression_statement "FUN_00032c40(&DAT_0004cff4);" (call_expression "FUN_00032c40(&DAT_0004cff4)" identifier (argument_list "(&DAT_0004cff4)" ( (pointer_expression "&DAT_0004cff4" & identifier) ))) ;) }) (else_clause "else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }" else (compound_statement "{\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }" { (expression_statement "FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));" (call_expression "FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8))" identifier (argument_list "(&DAT_0004ce86,*(int *)(param_1 + 8))" ( (pointer_expression "&DAT_0004ce86" & 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_00032c40(")");\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_00032c40(")");\n    }" { (expression_statement "FUN_00032c40(")");" (call_expression "FUN_00032c40(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) ;) })) (expression_statement "FUN_00032c40("(");" (call_expression "FUN_00032c40("(")" 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        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\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        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }" { (switch_statement "switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }" switch (parenthesized_expression "(piVar3[3])" ( (subscript_expression "piVar3[3]" identifier [ number_literal ]) )) (compound_statement "{\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }" { (case_statement "default:\n        iVar20 = 0;\n        break;" default : (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;" case number_literal : (expression_statement "iVar20 = 1;" (assignment_expression "iVar20 = 1" identifier = number_literal) ;) (expression_statement "FUN_00032c40("SORT_BY_NAME(");" (call_expression "FUN_00032c40("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        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;" case number_literal : (expression_statement "iVar20 = 1;" (assignment_expression "iVar20 = 1" identifier = number_literal) ;) (expression_statement "FUN_00032c40("SORT_BY_ALIGNMENT(");" (call_expression "FUN_00032c40("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        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;" case number_literal : (expression_statement "iVar20 = 2;" (assignment_expression "iVar20 = 2" identifier = number_literal) ;) (expression_statement "FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");" (call_expression "FUN_00032c40("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        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;" case number_literal : (expression_statement "iVar20 = 2;" (assignment_expression "iVar20 = 2" identifier = number_literal) ;) (expression_statement "FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");" (call_expression "FUN_00032c40("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        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;" case number_literal : (expression_statement "FUN_00032c40("SORT_NONE(");" (call_expression "FUN_00032c40("SORT_NONE(")" identifier (argument_list "("SORT_NONE(")" ( (string_literal ""SORT_NONE("" " string_content ") ))) ;) (expression_statement "iVar20 = 1;" (assignment_expression "iVar20 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");" case number_literal : (expression_statement "iVar20 = 1;" (assignment_expression "iVar20 = 1" identifier = number_literal) ;) (expression_statement "FUN_00032c40("SORT_BY_INIT_PRIORITY(");" (call_expression "FUN_00032c40("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        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\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        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }" { (expression_statement "uVar11 = *(undefined4 *)piVar3[2];" (assignment_expression "uVar11 = *(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_00032c40("EXCLUDE_FILE(%s",uVar11);" (call_expression "FUN_00032c40("EXCLUDE_FILE(%s",uVar11)" identifier (argument_list "("EXCLUDE_FILE(%s",uVar11)" ( (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          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\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          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }" { (expression_statement "uVar11 = *puVar4;" (assignment_expression "uVar11 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "FUN_00032c40(&DAT_0004b5e3,uVar11);" (call_expression "FUN_00032c40(&DAT_0004b5e3,uVar11)" identifier (argument_list "(&DAT_0004b5e3,uVar11)" ( (pointer_expression "&DAT_0004b5e3" & identifier) , identifier ))) ;) })) (expression_statement "FUN_00032c40(&UNK_0004cdbf,uVar11);" (call_expression "FUN_00032c40(&UNK_0004cdbf,uVar11)" identifier (argument_list "(&UNK_0004cdbf,uVar11)" ( (pointer_expression "&UNK_0004cdbf" & identifier) , identifier ))) ;) })) (if_statement "if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,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_00032c40(&DAT_0004cff4);\n      }" { (expression_statement "FUN_00032c40(&DAT_0004cff4);" (call_expression "FUN_00032c40(&DAT_0004cff4)" identifier (argument_list "(&DAT_0004cff4)" ( (pointer_expression "&DAT_0004cff4" & identifier) ))) ;) }) (else_clause "else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }" else (compound_statement "{\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }" { (expression_statement "FUN_00032c40(&DAT_0004ce86,piVar3[1]);" (call_expression "FUN_00032c40(&DAT_0004ce86,piVar3[1])" identifier (argument_list "(&DAT_0004ce86,piVar3[1])" ( (pointer_expression "&DAT_0004ce86" & identifier) , (subscript_expression "piVar3[1]" identifier [ number_literal ]) ))) ;) }))) (if_statement "if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }" if (parenthesized_expression "((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1))" ( (binary_expression "(iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)" (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) && (parenthesized_expression "(FUN_00032c40(")"), iVar20 != 1)" ( (comma_expression "FUN_00032c40(")"), iVar20 != 1" (call_expression "FUN_00032c40(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) , (binary_expression "iVar20 != 1" identifier != number_literal)) ))) )) (compound_statement "{\n        FUN_00032c40(")");\n      }" { (expression_statement "FUN_00032c40(")");" (call_expression "FUN_00032c40(")")" 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_00032c40(&UNK_0004cedd);" (call_expression "FUN_00032c40(&UNK_0004cedd)" identifier (argument_list "(&UNK_0004cedd)" ( (pointer_expression "&UNK_0004cedd" & identifier) ))) ;) })) (expression_statement "FUN_00032c40(")");" (call_expression "FUN_00032c40(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) ;) (expression_statement "FUN_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) (for_statement "for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\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_0001f7f0();\n    }" { (expression_statement "FUN_0001f7f0();" (call_expression "FUN_0001f7f0()" identifier (argument_list "()" ( ))) ;) })) (break_statement "break;" break ;)) (case_statement "case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\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 "uStack_38 = puVar4[0xc];" (assignment_expression "uStack_38 = puVar4[0xc]" identifier = (subscript_expression "puVar4[0xc]" identifier [ number_literal ])) ;) (expression_statement "local_3c = puVar4[0xb];" (assignment_expression "local_3c = puVar4[0xb]" identifier = (subscript_expression "puVar4[0xb]" identifier [ number_literal ])) ;) (expression_statement "FUN_0001f3e0();" (call_expression "FUN_0001f3e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00032c40(&DAT_0004ce86,*puVar4);" (call_expression "FUN_00032c40(&DAT_0004ce86,*puVar4)" identifier (argument_list "(&DAT_0004ce86,*puVar4)" ( (pointer_expression "&DAT_0004ce86" & identifier) , (pointer_expression "*puVar4" * identifier) ))) ;) (expression_statement "sVar8 = strlen((char *)*puVar4);" (assignment_expression "sVar8 = 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 "uVar18 = sVar8 + 1;" (assignment_expression "uVar18 = sVar8 + 1" identifier = (binary_expression "sVar8 + 1" identifier + number_literal)) ;) (if_statement "if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }" if (parenthesized_expression "(0xe < uVar18)" ( (binary_expression "0xe < uVar18" number_literal < identifier) )) (compound_statement "{\n      FUN_00031cf0();\n      uVar18 = 0;\n    }" { (expression_statement "FUN_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) })) (do_statement "do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);" do (compound_statement "{\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    }" { (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar18 != 0x10)" ( (binary_expression "uVar18 != 0x10" identifier != number_literal) )) ;) (expression_statement "iVar20 = puVar4[0x15];" (assignment_expression "iVar20 = puVar4[0x15]" identifier = (subscript_expression "puVar4[0x15]" identifier [ number_literal ])) ;) (if_statement "if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }" if (parenthesized_expression "((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34))" ( (binary_expression "(iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)" (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(iVar20 + 0xac) != DAT_00098c34)" ( (binary_expression "*(int *)(iVar20 + 0xac) != DAT_00098c34" (pointer_expression "*(int *)(iVar20 + 0xac)" * (cast_expression "(int *)(iVar20 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xac)" ( (binary_expression "iVar20 + 0xac" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }" { (expression_statement "uStack_34 = DAT_00098838;" (assignment_expression "uStack_34 = DAT_00098838" identifier = identifier) ;) (expression_statement "uStack_30 = DAT_0009883c;" (assignment_expression "uStack_30 = DAT_0009883c" identifier = identifier) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "uStack_38 = 0;" (assignment_expression "uStack_38 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }" else (compound_statement "{\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }" { (expression_statement "uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];" (assignment_expression "uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13]" identifier = (binary_expression "*(uint *)(iVar20 + 0x1c) + puVar4[0x13]" (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) + (subscript_expression "puVar4[0x13]" identifier [ number_literal ]))) ;) (expression_statement "uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);" (assignment_expression "uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13])" identifier = (binary_expression "*(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13])" (binary_expression "*(int *)(iVar20 + 0x20) + puVar4[0x14]" (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) + (subscript_expression "puVar4[0x14]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13])" identifier (argument_list "(*(uint *)(iVar20 + 0x1c),puVar4[0x13])" ( (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) , (subscript_expression "puVar4[0x13]" identifier [ number_literal ]) )))))) ;) }))) (expression_statement "FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);" (call_expression "FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b])" identifier (argument_list "(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b])" ( (pointer_expression "&DAT_0004cd54" & identifier) , identifier , identifier , identifier , identifier , (subscript_expression "puVar4[0x2b]" identifier [ number_literal ]) ))) ;) (if_statement "if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }" if (parenthesized_expression "((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0))" ( (binary_expression "(local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)" (parenthesized_expression "(local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe])" ( (binary_expression "local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]" (binary_expression "local_3c != puVar4[0xd]" identifier != (subscript_expression "puVar4[0xd]" identifier [ number_literal ])) || (binary_expression "uStack_38 != puVar4[0xe]" identifier != (subscript_expression "puVar4[0xe]" identifier [ number_literal ]))) )) && (parenthesized_expression "(puVar4[0xd] != 0 || puVar4[0xe] != 0)" ( (binary_expression "puVar4[0xd] != 0 || puVar4[0xe] != 0" (binary_expression "puVar4[0xd] != 0" (subscript_expression "puVar4[0xd]" identifier [ number_literal ]) != number_literal) || (binary_expression "puVar4[0xe] != 0" (subscript_expression "puVar4[0xe]" identifier [ number_literal ]) != number_literal)) ))) )) (compound_statement "{\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }" { (expression_statement "iVar20 = 0x23;" (assignment_expression "iVar20 = 0x23" identifier = number_literal) ;) (do_statement "do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);" do (compound_statement "{\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      }" { (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) ;) (expression_statement "uVar11 = puVar4[0xd];" (assignment_expression "uVar11 = puVar4[0xd]" identifier = (subscript_expression "puVar4[0xd]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar4[0xe];" (assignment_expression "uVar10 = puVar4[0xe]" identifier = (subscript_expression "puVar4[0xe]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);" (assignment_expression "uVar9 = 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_00032c40(uVar9,uVar11,uVar10);" (call_expression "FUN_00032c40(uVar9,uVar11,uVar10)" identifier (argument_list "(uVar9,uVar11,uVar10)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "puVar19 = DAT_00098870;" (assignment_expression "puVar19 = DAT_00098870" identifier = identifier) ;) (expression_statement "puVar14 = DAT_0009886c;" (assignment_expression "puVar14 = DAT_0009886c" identifier = identifier) ;) (if_statement "if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }" if (parenthesized_expression "((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34))" ( (binary_expression "(puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)" (parenthesized_expression "(puVar4[0x15] != 0)" ( (binary_expression "puVar4[0x15] != 0" (subscript_expression "puVar4[0x15]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)" ( (binary_expression "*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34" (pointer_expression "*(int *)(puVar4[0x15] + 0xac)" * (cast_expression "(int *)(puVar4[0x15] + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4[0x15] + 0xac)" ( (binary_expression "puVar4[0x15] + 0xac" (subscript_expression "puVar4[0x15]" identifier [ number_literal ]) + number_literal) )))) == identifier) ))) )) (compound_statement "{\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }" { (if_statement "if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }" if (parenthesized_expression "((DAT_00098c04 & 0x10) == 0)" ( (binary_expression "(DAT_00098c04 & 0x10) == 0" (parenthesized_expression "(DAT_00098c04 & 0x10)" ( (binary_expression "DAT_00098c04 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }" { (expression_statement "puVar2 = (undefined4 *)puVar4[0x20];" (assignment_expression "puVar2 = (undefined4 *)puVar4[0x20]" identifier = (cast_expression "(undefined4 *)puVar4[0x20]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[0x20]" identifier [ number_literal ]))) ;) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__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          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__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 "sVar8 = puVar2[2];" (assignment_expression "sVar8 = puVar2[2]" identifier = (subscript_expression "puVar2[2]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = sVar8 * 4;" (assignment_expression "uVar18 = sVar8 * 4" identifier = (binary_expression "sVar8 * 4" identifier * number_literal)) ;) (expression_statement "uVar17 = (int)puVar19 - (int)puVar14;" (assignment_expression "uVar17 = (int)puVar19 - (int)puVar14" identifier = (binary_expression "(int)puVar19 - (int)puVar14" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "sStack_24 = sVar8;" (assignment_expression "sStack_24 = sVar8" identifier = identifier) ;) (if_statement "if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }" if (parenthesized_expression "(uVar17 <= uVar18 && uVar18 - uVar17 != 0)" ( (binary_expression "uVar17 <= uVar18 && uVar18 - uVar17 != 0" (binary_expression "uVar17 <= uVar18" identifier <= identifier) && (binary_expression "uVar18 - uVar17 != 0" (binary_expression "uVar18 - uVar17" identifier - identifier) != number_literal)) )) (compound_statement "{\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }" { (expression_statement "_obstack_newchunk(&DAT_00098860,uVar18);" (call_expression "_obstack_newchunk(&DAT_00098860,uVar18)" identifier (argument_list "(&DAT_00098860,uVar18)" ( (pointer_expression "&DAT_00098860" & identifier) , identifier ))) ;) (expression_statement "sStack_24 = puVar2[2];" (assignment_expression "sStack_24 = puVar2[2]" identifier = (subscript_expression "puVar2[2]" identifier [ number_literal ])) ;) (expression_statement "puVar14 = DAT_0009886c;" (assignment_expression "puVar14 = DAT_0009886c" identifier = identifier) ;) (expression_statement "puVar19 = DAT_00098870;" (assignment_expression "puVar19 = DAT_00098870" identifier = identifier) ;) })) (expression_statement "__base = DAT_00098868;" (assignment_expression "__base = DAT_00098868" identifier = identifier) ;) (if_statement "if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }" if (parenthesized_expression "(puVar14 + sVar8 == DAT_00098868)" ( (binary_expression "puVar14 + sVar8 == DAT_00098868" (binary_expression "puVar14 + sVar8" identifier + identifier) == identifier) )) (compound_statement "{\n            DAT_00098888 = DAT_00098888 | 2;\n          }" { (expression_statement "DAT_00098888 = DAT_00098888 | 2;" (assignment_expression "DAT_00098888 = DAT_00098888 | 2" identifier = (binary_expression "DAT_00098888 | 2" identifier | number_literal)) ;) })) (expression_statement "DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);" (assignment_expression "DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878)" identifier = (cast_expression "(undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878)" ( (binary_expression "(int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878" (binary_expression "(int)(puVar14 + sVar8) + DAT_00098878" (cast_expression "(int)(puVar14 + sVar8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + sVar8)" ( (binary_expression "puVar14 + sVar8" identifier + identifier) ))) + identifier) & (unary_expression "~DAT_00098878" ~ identifier)) )))) ;) (if_statement "if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }" if (parenthesized_expression "((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864))" ( (binary_expression "(uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)" (call_expression "(uint)((int)puVar19 - (int)DAT_00098864)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar19 - (int)DAT_00098864)" ( (binary_expression "(int)puVar19 - (int)DAT_00098864" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)DAT_00098864" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)((int)DAT_0009886c - (int)DAT_00098864)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)DAT_0009886c - (int)DAT_00098864)" ( (binary_expression "(int)DAT_0009886c - (int)DAT_00098864" (cast_expression "(int)DAT_0009886c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)DAT_00098864" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n            DAT_0009886c = puVar19;\n          }" { (expression_statement "DAT_0009886c = puVar19;" (assignment_expression "DAT_0009886c = puVar19" identifier = identifier) ;) })) (expression_statement "puVar14 = (undefined4 *)*puVar2;" (assignment_expression "puVar14 = (undefined4 *)*puVar2" identifier = (cast_expression "(undefined4 *)*puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (expression_statement "puVar7 = DAT_0009886c;" (assignment_expression "puVar7 = DAT_0009886c" identifier = identifier) ;) (expression_statement "puVar19 = DAT_00098868;" (assignment_expression "puVar19 = DAT_00098868" identifier = identifier) ;) (while_statement "while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }" while (parenthesized_expression "(DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0)" ( (comma_expression "DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0" (assignment_expression "DAT_00098868 = puVar7" identifier = identifier) , (binary_expression "puVar14 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }" { (expression_statement "uVar11 = *puVar14;" (assignment_expression "uVar11 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar14 = (undefined4 *)puVar14[1];" (assignment_expression "puVar14 = (undefined4 *)puVar14[1]" identifier = (cast_expression "(undefined4 *)puVar14[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[1]" identifier [ number_literal ]))) ;) (expression_statement "*puVar19 = uVar11;" (assignment_expression "*puVar19 = uVar11" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "puVar7 = DAT_00098868;" (assignment_expression "puVar7 = DAT_00098868" identifier = identifier) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) })) (expression_statement "qsort(__base,sStack_24,4,FUN_0001dec0);" (call_expression "qsort(__base,sStack_24,4,FUN_0001dec0)" identifier (argument_list "(__base,sStack_24,4,FUN_0001dec0)" ( identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (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            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);" do (compound_statement "{\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            }" { (expression_statement "puVar14 = __base + uVar18;" (assignment_expression "puVar14 = __base + uVar18" identifier = (binary_expression "__base + uVar18" identifier + identifier)) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0001f350(*puVar14,puVar4);" (call_expression "FUN_0001f350(*puVar14,puVar4)" identifier (argument_list "(*puVar14,puVar4)" ( (pointer_expression "*puVar14" * identifier) , identifier ))) ;) }) while (parenthesized_expression "(uVar18 < (uint)puVar2[2])" ( (binary_expression "uVar18 < (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_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }" if (parenthesized_expression "((DAT_00098864 < __base) && (__base < DAT_00098870))" ( (binary_expression "(DAT_00098864 < __base) && (__base < DAT_00098870)" (parenthesized_expression "(DAT_00098864 < __base)" ( (binary_expression "DAT_00098864 < __base" identifier < identifier) )) && (parenthesized_expression "(__base < DAT_00098870)" ( (binary_expression "__base < DAT_00098870" identifier < identifier) ))) )) (compound_statement "{\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }" { (expression_statement "DAT_0009886c = __base;" (assignment_expression "DAT_0009886c = __base" identifier = identifier) ;) (expression_statement "DAT_00098868 = __base;" (assignment_expression "DAT_00098868 = __base" identifier = identifier) ;) }) (else_clause "else {\n            _obstack_free(&DAT_00098860,__base);\n          }" else (compound_statement "{\n            _obstack_free(&DAT_00098860,__base);\n          }" { (expression_statement "_obstack_free(&DAT_00098860,__base);" (call_expression "_obstack_free(&DAT_00098860,__base)" identifier (argument_list "(&DAT_00098860,__base)" ( (pointer_expression "&DAT_00098860" & identifier) , identifier ))) ;) }))) })) }) (else_clause "else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }" else (compound_statement "{\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }" { (expression_statement "bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);" (call_expression "bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4)" identifier (argument_list "(DAT_00098c20,FUN_0001f350,puVar4)" ( identifier , identifier , identifier ))) ;) }))) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" identifier = (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f)" identifier = (binary_expression "uStack_38 >> ((byte)DAT_000987ec & 0x1f)" identifier >> (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" ( (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;" (assignment_expression "uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13" identifier = (binary_expression "local_3c >> bVar13 | uStack_38 << 0x20 - bVar13" (binary_expression "local_3c >> bVar13" identifier >> identifier) | (binary_expression "uStack_38 << 0x20 - bVar13" identifier << (binary_expression "0x20 - bVar13" number_literal - identifier)))) ;) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }" if (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" ( (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" ( (binary_expression "DAT_000987ec & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);" (assignment_expression "uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34)" identifier = (binary_expression "uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34)" (binary_expression "uVar17 + uStack_30" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar18,uStack_34)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar18,uStack_34)" identifier (argument_list "(uVar18,uStack_34)" ( identifier , identifier )))))) ;) (if_statement "if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }" if (parenthesized_expression "(DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         )" ( (binary_expression "DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)" (binary_expression "DAT_0009883c < uVar17" identifier < identifier) || (binary_expression "DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)" (binary_expression "DAT_0009883c - uVar17" identifier - identifier) < (call_expression "(uint)(DAT_00098838 < uVar18 + uStack_34)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(DAT_00098838 < uVar18 + uStack_34)" ( (binary_expression "DAT_00098838 < uVar18 + uStack_34" identifier < (binary_expression "uVar18 + uStack_34" identifier + identifier)) ))))) )) (compound_statement "{\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }" { (expression_statement "DAT_00098838 = uVar18 + uStack_34;" (assignment_expression "DAT_00098838 = uVar18 + uStack_34" identifier = (binary_expression "uVar18 + uStack_34" identifier + identifier)) ;) (expression_statement "DAT_0009883c = uVar17;" (assignment_expression "DAT_0009883c = uVar17" identifier = identifier) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;)) (case_statement "case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;" case number_literal : (expression_statement "FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");" (call_expression "FUN_00032c40(" 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_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;" case number_literal : (expression_statement "fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);" (call_expression "fwrite(" FILL mask 0x",1,0xd,DAT_00098d50)" identifier (argument_list "(" FILL mask 0x",1,0xd,DAT_00098d50)" ( (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 "iVar20 = *piVar3;" (assignment_expression "iVar20 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "pbVar22 = (byte *)(piVar3 + 1);" (assignment_expression "pbVar22 = (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 (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }" { (do_statement "do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));" do (compound_statement "{\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      }" { (expression_statement "bVar13 = *pbVar22;" (assignment_expression "bVar13 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "fprintf(DAT_00098d50,"%02x",(uint)bVar13);" (call_expression "fprintf(DAT_00098d50,"%02x",(uint)bVar13)" identifier (argument_list "(DAT_00098d50,"%02x",(uint)bVar13)" ( identifier , (string_literal ""%02x"" " string_content ") , (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }) while (parenthesized_expression "(pbVar22 != (byte *)((int)piVar3 + iVar20 + 4))" ( (binary_expression "pbVar22 != (byte *)((int)piVar3 + iVar20 + 4)" identifier != (cast_expression "(byte *)((int)piVar3 + iVar20 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + iVar20 + 4)" ( (binary_expression "(int)piVar3 + iVar20 + 4" (binary_expression "(int)piVar3 + iVar20" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )) ;) })) (expression_statement "fputc(10,DAT_00098d50);" (call_expression "fputc(10,DAT_00098d50)" identifier (argument_list "(10,DAT_00098d50)" ( number_literal , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;" case number_literal : (expression_statement "FUN_0001f3e0();" (call_expression "FUN_0001f3e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = 0x10;" (assignment_expression "iVar20 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);" do (compound_statement "{\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    }" { (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) ;) (expression_statement "uStack_34 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uStack_34 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uStack_30 = *(int *)(param_1 + 0x20);" (assignment_expression "uStack_30 = *(int *)(param_1 + 0x20)" identifier = (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) ))))) ;) (expression_statement "iVar20 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar20 = *(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 (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" { (expression_statement "bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));" (assignment_expression "bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c))" identifier = (call_expression "CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c))" identifier (argument_list "(uStack_34,*(uint *)(iVar20 + 0x1c))" ( identifier , (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);" (assignment_expression "uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c)" identifier = (binary_expression "uStack_34 + *(uint *)(iVar20 + 0x1c)" identifier + (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;" (assignment_expression "uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23" identifier = (binary_expression "uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23" (binary_expression "uStack_30 + *(int *)(iVar20 + 0x20)" identifier + (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (switch_statement "switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\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      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }" { (case_statement "case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;" case number_literal : (expression_statement "pcVar12 = "QUAD";" (assignment_expression "pcVar12 = "QUAD"" identifier = (string_literal ""QUAD"" " string_content ")) ;) (expression_statement "uVar18 = 8;" (assignment_expression "uVar18 = 8" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;" case number_literal : (expression_statement "pcVar12 = "SQUAD";" (assignment_expression "pcVar12 = "SQUAD"" identifier = (string_literal ""SQUAD"" " string_content ")) ;) (expression_statement "uVar18 = 8;" (assignment_expression "uVar18 = 8" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;" case number_literal : (expression_statement "pcVar12 = "LONG";" (assignment_expression "pcVar12 = "LONG"" identifier = (string_literal ""LONG"" " string_content ")) ;) (expression_statement "uVar18 = 4;" (assignment_expression "uVar18 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;" case number_literal : (expression_statement "pcVar12 = "SHORT";" (assignment_expression "pcVar12 = "SHORT"" identifier = (string_literal ""SHORT"" " string_content ")) ;) (expression_statement "uVar18 = 2;" (assignment_expression "uVar18 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;" case number_literal : (expression_statement "pcVar12 = "BYTE";" (assignment_expression "pcVar12 = "BYTE"" identifier = (string_literal ""BYTE"" " string_content ")) ;) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);" default : comment (expression_statement "FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);" (call_expression "FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1)" identifier (argument_list "("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal , (string_literal ""print_data_statement"" " string_content ") , identifier ))) ;)) })) (expression_statement "bVar13 = (byte)DAT_000987ec;" (assignment_expression "bVar13 = (byte)DAT_000987ec" identifier = (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "local_3c = 1 << (bVar13 & 0x1f);" (assignment_expression "local_3c = 1 << (bVar13 & 0x1f)" identifier = (binary_expression "1 << (bVar13 & 0x1f)" number_literal << (parenthesized_expression "(bVar13 & 0x1f)" ( (binary_expression "bVar13 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }" if (parenthesized_expression "(local_3c < uVar18)" ( (binary_expression "local_3c < uVar18" identifier < identifier) )) (compound_statement "{\n      local_3c = uVar18;\n    }" { (expression_statement "local_3c = uVar18;" (assignment_expression "local_3c = uVar18" identifier = identifier) ;) })) (expression_statement "uVar16 = 0 >> (bVar13 & 0x1f);" (assignment_expression "uVar16 = 0 >> (bVar13 & 0x1f)" identifier = (binary_expression "0 >> (bVar13 & 0x1f)" number_literal >> (parenthesized_expression "(bVar13 & 0x1f)" ( (binary_expression "bVar13 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);" (assignment_expression "uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f)" identifier = (binary_expression "local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f)" (binary_expression "local_3c >> (bVar13 & 0x1f)" identifier >> (parenthesized_expression "(bVar13 & 0x1f)" ( (binary_expression "bVar13 & 0x1f" identifier & number_literal) ))) | (binary_expression "0 << 0x20 - (bVar13 & 0x1f)" number_literal << (binary_expression "0x20 - (bVar13 & 0x1f)" number_literal - (parenthesized_expression "(bVar13 & 0x1f)" ( (binary_expression "bVar13 & 0x1f" identifier & number_literal) )))))) ;) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" if (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" ( (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" ( (binary_expression "DAT_000987ec & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));" (call_expression "FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" identifier (argument_list "("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" ( (string_literal ""0x%V %W %s 0x%v"" " string_content ") , identifier , identifier , identifier , identifier , 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) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) ))) ;) (if_statement "if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(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_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }" { (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00030c80(*(undefined4 *)(param_1 + 0xc));" (call_expression "FUN_00030c80(*(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_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" identifier = (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f)" identifier = (binary_expression "0 >> ((byte)DAT_000987ec & 0x1f)" number_literal >> (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" ( (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;" (assignment_expression "uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13" identifier = (binary_expression "local_3c >> bVar13 | 0 << 0x20 - bVar13" (binary_expression "local_3c >> bVar13" identifier >> identifier) | (binary_expression "0 << 0x20 - bVar13" number_literal << (binary_expression "0x20 - bVar13" number_literal - identifier)))) ;) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" if (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" ( (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" ( (binary_expression "DAT_000987ec & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "DAT_00098838 = uVar18 + uStack_34;" (assignment_expression "DAT_00098838 = uVar18 + uStack_34" identifier = (binary_expression "uVar18 + uStack_34" identifier + identifier)) ;) (expression_statement "DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);" (assignment_expression "DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34)" identifier = (binary_expression "uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34)" (binary_expression "uVar17 + uStack_30" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar18,uStack_34)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar18,uStack_34)" identifier (argument_list "(uVar18,uStack_34)" ( identifier , identifier )))))) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;" case number_literal : (expression_statement "FUN_0001f3e0();" (call_expression "FUN_0001f3e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = 0x10;" (assignment_expression "iVar20 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);" do (compound_statement "{\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    }" { (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) ;) (expression_statement "local_3c = *(uint *)(param_1 + 0x28);" (assignment_expression "local_3c = *(uint *)(param_1 + 0x28)" identifier = (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uStack_38 = *(int *)(param_1 + 0x2c);" (assignment_expression "uStack_38 = *(int *)(param_1 + 0x2c)" identifier = (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar20 = *(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 (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" { (expression_statement "bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));" (assignment_expression "bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c))" identifier = (call_expression "CARRY4(local_3c,*(uint *)(iVar20 + 0x1c))" identifier (argument_list "(local_3c,*(uint *)(iVar20 + 0x1c))" ( identifier , (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "local_3c = local_3c + *(uint *)(iVar20 + 0x1c);" (assignment_expression "local_3c = local_3c + *(uint *)(iVar20 + 0x1c)" identifier = (binary_expression "local_3c + *(uint *)(iVar20 + 0x1c)" identifier + (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;" (assignment_expression "uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23" identifier = (binary_expression "uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23" (binary_expression "uStack_38 + *(int *)(iVar20 + 0x20)" identifier + (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));" (assignment_expression "uVar16 = 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 "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" identifier = (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f)" identifier = (binary_expression "0 >> ((byte)DAT_000987ec & 0x1f)" number_literal >> (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" ( (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" identifier = identifier) ;) (expression_statement "uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;" (assignment_expression "uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13" identifier = (binary_expression "uVar16 >> bVar13 | 0 << 0x20 - bVar13" (binary_expression "uVar16 >> bVar13" identifier >> identifier) | (binary_expression "0 << 0x20 - bVar13" number_literal << (binary_expression "0x20 - bVar13" number_literal - identifier)))) ;) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }" if (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" ( (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" ( (binary_expression "DAT_000987ec & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar15;" (assignment_expression "uVar18 = uVar15" identifier = identifier) ;) })) (expression_statement "FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));" (call_expression "FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20))" identifier (argument_list "("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20))" ( (string_literal ""0x%V %W RELOC %s "" " string_content ") , identifier , identifier , identifier , identifier , (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_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(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_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }" { (expression_statement "FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));" (call_expression "FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10))" identifier (argument_list "(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10))" ( (pointer_expression "&UNK_0004ce70" & 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_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }" else (compound_statement "{\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }" { (expression_statement "FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));" (call_expression "FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14))" identifier (argument_list "(&UNK_0004ce70,*(int *)(param_1 + 0x14))" ( (pointer_expression "&UNK_0004ce70" & 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_00030c80(*(undefined4 *)(param_1 + 0x18));" (call_expression "FUN_00030c80(*(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_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" identifier = (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f)" identifier = (binary_expression "0 >> ((byte)DAT_000987ec & 0x1f)" number_literal >> (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" ( (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" identifier = identifier) ;) (expression_statement "uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;" (assignment_expression "uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13" identifier = (binary_expression "uVar16 >> bVar13 | 0 << 0x20 - bVar13" (binary_expression "uVar16 >> bVar13" identifier >> identifier) | (binary_expression "0 << 0x20 - bVar13" number_literal << (binary_expression "0x20 - bVar13" number_literal - identifier)))) ;) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }" if (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" ( (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" ( (binary_expression "DAT_000987ec & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar15;" (assignment_expression "uVar18 = uVar15" identifier = identifier) ;) })) (expression_statement "DAT_00098838 = uVar18 + local_3c;" (assignment_expression "DAT_00098838 = uVar18 + local_3c" identifier = (binary_expression "uVar18 + local_3c" identifier + identifier)) ;) (expression_statement "DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);" (assignment_expression "DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c)" identifier = (binary_expression "uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c)" (binary_expression "uVar17 + uStack_38" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar18,local_3c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar18,local_3c)" identifier (argument_list "(uVar18,local_3c)" ( identifier , identifier )))))) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;" case number_literal : (expression_statement "iVar20 = *(int *)(param_1 + 8);" (assignment_expression "iVar20 = *(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 "pcVar12 = "TARGET(%s)\n";" (assignment_expression "pcVar12 = "TARGET(%s)\n"" identifier = (string_literal ""TARGET(%s)\n"" " string_content escape_sequence ")) ;) (labeled_statement "code_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);" statement_identifier : (expression_statement "fprintf(DAT_00098d50,pcVar12,iVar20);" (call_expression "fprintf(DAT_00098d50,pcVar12,iVar20)" identifier (argument_list "(DAT_00098d50,pcVar12,iVar20)" ( identifier , identifier , identifier ))) ;)) (break_statement "break;" break ;)) (case_statement "case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;" case number_literal : (expression_statement "iVar20 = *(int *)(param_1 + 8);" (assignment_expression "iVar20 = *(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_00032c40("OUTPUT(%s",iVar20);" (call_expression "FUN_00032c40("OUTPUT(%s",iVar20)" identifier (argument_list "("OUTPUT(%s",iVar20)" ( (string_literal ""OUTPUT(%s"" " string_content ") , identifier ))) ;) (if_statement "if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }" if (parenthesized_expression "(DAT_00098bbc != 0)" ( (binary_expression "DAT_00098bbc != 0" identifier != number_literal) )) (compound_statement "{\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }" { (expression_statement "iVar20 = DAT_00098bbc;" (assignment_expression "iVar20 = DAT_00098bbc" identifier = identifier) ;) (expression_statement "FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);" (call_expression "FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc)" identifier (argument_list "(&DAT_0004b5e3,DAT_00098bbc)" ( (pointer_expression "&DAT_0004b5e3" & identifier) , identifier ))) ;) })) (expression_statement "FUN_00032c40(")\n",iVar20);" (call_expression "FUN_00032c40(")\n",iVar20)" identifier (argument_list "(")\n",iVar20)" ( (string_literal "")\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;" case number_literal : (expression_statement "FUN_0001f3e0();" (call_expression "FUN_0001f3e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00032c40(&UNK_0004ce74);" (call_expression "FUN_00032c40(&UNK_0004ce74)" identifier (argument_list "(&UNK_0004ce74)" ( (pointer_expression "&UNK_0004ce74" & identifier) ))) ;) (expression_statement "iVar20 = 9;" (assignment_expression "iVar20 = 9" identifier = number_literal) ;) (do_statement "do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);" do (compound_statement "{\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    }" { (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) ;) (expression_statement "uStack_34 = *(uint *)(param_1 + 8);" (assignment_expression "uStack_34 = *(uint *)(param_1 + 8)" identifier = (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uStack_30 = *(int *)(param_1 + 0xc);" (assignment_expression "uStack_30 = *(int *)(param_1 + 0xc)" identifier = (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) ))))) ;) (expression_statement "iVar20 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar20 = *(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 (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" { (expression_statement "bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));" (assignment_expression "bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c))" identifier = (call_expression "CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c))" identifier (argument_list "(uStack_34,*(uint *)(iVar20 + 0x1c))" ( identifier , (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);" (assignment_expression "uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c)" identifier = (binary_expression "uStack_34 + *(uint *)(iVar20 + 0x1c)" identifier + (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;" (assignment_expression "uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23" identifier = (binary_expression "uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23" (binary_expression "uStack_30 + *(int *)(iVar20 + 0x20)" identifier + (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" identifier = (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f)" identifier = (binary_expression "*(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f)" (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" ( (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;" (assignment_expression "uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13" identifier = (binary_expression "*(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13" (binary_expression "*(uint *)(param_1 + 0x10) >> bVar13" (pointer_expression "*(uint *)(param_1 + 0x10)" * (cast_expression "(uint *)(param_1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) >> identifier) | (binary_expression "*(uint *)(param_1 + 0x14) << 0x20 - bVar13" (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) << (binary_expression "0x20 - bVar13" number_literal - identifier)))) ;) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" if (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" ( (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" ( (binary_expression "DAT_000987ec & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);" (call_expression "FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17)" identifier (argument_list "(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17)" ( (pointer_expression "&UNK_0004ce7c" & identifier) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "piVar3 = *(int **)(param_1 + 0x1c);" (assignment_expression "piVar3 = *(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 "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = *piVar3;" (assignment_expression "iVar20 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }" { (expression_statement "pbVar22 = (byte *)(piVar3 + 1);" (assignment_expression "pbVar22 = (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        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));" do (compound_statement "{\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      }" { (expression_statement "bVar13 = *pbVar22;" (assignment_expression "bVar13 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "fprintf(DAT_00098d50,"%02x",(uint)bVar13);" (call_expression "fprintf(DAT_00098d50,"%02x",(uint)bVar13)" identifier (argument_list "(DAT_00098d50,"%02x",(uint)bVar13)" ( identifier , (string_literal ""%02x"" " string_content ") , (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }) while (parenthesized_expression "(pbVar22 != (byte *)((int)piVar3 + iVar20 + 4))" ( (binary_expression "pbVar22 != (byte *)((int)piVar3 + iVar20 + 4)" identifier != (cast_expression "(byte *)((int)piVar3 + iVar20 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + iVar20 + 4)" ( (binary_expression "(int)piVar3 + iVar20 + 4" (binary_expression "(int)piVar3 + iVar20" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )) ;) })) (expression_statement "FUN_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" identifier = (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f)" identifier = (binary_expression "*(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f)" (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" ( (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;" (assignment_expression "uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13" identifier = (binary_expression "*(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13" (binary_expression "*(uint *)(param_1 + 0x10) >> bVar13" (pointer_expression "*(uint *)(param_1 + 0x10)" * (cast_expression "(uint *)(param_1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) >> identifier) | (binary_expression "*(uint *)(param_1 + 0x14) << 0x20 - bVar13" (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) << (binary_expression "0x20 - bVar13" number_literal - identifier)))) ;) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" if (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" ( (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" ( (binary_expression "DAT_000987ec & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "DAT_00098838 = uStack_34 + uVar18;" (assignment_expression "DAT_00098838 = uStack_34 + uVar18" identifier = (binary_expression "uStack_34 + uVar18" identifier + identifier)) ;) (expression_statement "DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);" (assignment_expression "DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18)" identifier = (binary_expression "uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18)" (binary_expression "uStack_30 + uVar17" identifier + identifier) + (cast_expression "(uint)CARRY4(uStack_34,uVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uStack_34,uVar18)" identifier (argument_list "(uStack_34,uVar18)" ( identifier , identifier )))))) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;" case number_literal : (expression_statement "fwrite("START GROUP\n",1,0xc,DAT_00098d50);" (call_expression "fwrite("START GROUP\n",1,0xc,DAT_00098d50)" identifier (argument_list "("START GROUP\n",1,0xc,DAT_00098d50)" ( (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_0001f7f0();\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_0001f7f0();\n    }" { (expression_statement "FUN_0001f7f0();" (call_expression "FUN_0001f7f0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "fwrite("END GROUP\n",1,10,DAT_00098d50);" (call_expression "fwrite("END GROUP\n",1,10,DAT_00098d50)" identifier (argument_list "("END GROUP\n",1,10,DAT_00098d50)" ( (string_literal ""END GROUP\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;" case number_literal : (expression_statement "pcVar12 = "BEFORE";" (assignment_expression "pcVar12 = "BEFORE"" identifier = (string_literal ""BEFORE"" " string_content ")) ;) (if_statement "if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "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      pcVar12 = "AFTER";\n    }" { (expression_statement "pcVar12 = "AFTER";" (assignment_expression "pcVar12 = "AFTER"" identifier = (string_literal ""AFTER"" " string_content ")) ;) })) (expression_statement "FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));" (call_expression "FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8))" identifier (argument_list "("INSERT %s %s\n",pcVar12,*(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_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;" case number_literal : (if_statement "if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }" if (parenthesized_expression "(DAT_00098bcc != (undefined4 *)0x0)" ( (binary_expression "DAT_00098bcc != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }" { (if_statement "if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }" if (parenthesized_expression "(DAT_00098bd4 == 0)" ( (binary_expression "DAT_00098bd4 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }" { (expression_statement "FUN_00032c40(" CONSTRUCTORS\n");" (call_expression "FUN_00032c40(" CONSTRUCTORS\n")" identifier (argument_list "(" CONSTRUCTORS\n")" ( (string_literal "" CONSTRUCTORS\n"" " string_content escape_sequence ") ))) ;) (expression_statement "puVar4 = DAT_00098bcc;" (assignment_expression "puVar4 = DAT_00098bcc" identifier = identifier) ;) }) (else_clause "else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }" else (compound_statement "{\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }" { (expression_statement "FUN_00032c40(" SORT (CONSTRUCTORS)\n");" (call_expression "FUN_00032c40(" SORT (CONSTRUCTORS)\n")" identifier (argument_list "(" SORT (CONSTRUCTORS)\n")" ( (string_literal "" SORT (CONSTRUCTORS)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "puVar4 = DAT_00098bcc;" (assignment_expression "puVar4 = DAT_00098bcc" identifier = identifier) ;) }))) (for_statement "for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\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_0001f7f0();\n      }" { (expression_statement "FUN_0001f7f0();" (call_expression "FUN_0001f7f0()" identifier (argument_list "()" ( ))) ;) })) })) (break_statement "break;" break ;)) (case_statement "default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../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(DAT_00098d50,pcVar12,uVar11);" (call_expression "fprintf(DAT_00098d50,pcVar12,uVar11)" identifier (argument_list "(DAT_00098d50,pcVar12,uVar11)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00032c00("../../ld/ldlang.c",0x11bc);" (call_expression "FUN_00032c00("../../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  uint *puVar1;\n  statement_enum sVar2;\n  name_list *pnVar3;\n  wildcard_list *pwVar4;\n  lang_memory_region_type *plVar5;\n  fill_type *pfVar6;\n  size_t sVar7;\n  lang_statement_union_type *plVar8;\n  int iVar9;\n  asection *paVar10;\n  char *pcVar11;\n  size_t sVar12;\n  char *pcVar13;\n  uint uVar14;\n  byte bVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  etree_type *tree;\n  int iVar19;\n  asection *paVar20;\n  uchar *puVar21;\n  bool bVar22;\n  wildcard_list *local_3c;\n  wildcard_list *local_38;\n  lang_statement_union **local_34;\n  etree_union *local_30;\n  \n  sVar2 = (s->header).type;\n  switch(sVar2) {\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._0_4_ = *(char **)&paVar20->vma;\n        print_dot._4_4_ = *(int *)((int)&paVar20->vma + 4);\n        sVar12 = strlen((s->output_section_statement).name);\n        if (0xe < sVar12) {\n          print_nl();\n          sVar12 = 0;\n        }\n        do {\n          print_space();\n          sVar12 = sVar12 + 1;\n        } while (sVar12 != 0x10);\n        uVar14 = *(uint *)((int)&paVar20->size + 4);\n        bVar15 = (byte)opb_shift & 0x1f;\n        uVar17 = uVar14 >> ((byte)opb_shift & 0x1f);\n        uVar18 = uVar17;\n        uVar14 = (uint)paVar20->size >> bVar15 | uVar14 << 0x20 - bVar15;\n        if ((opb_shift & 0x20) != 0) {\n          uVar18 = 0;\n          uVar14 = uVar17;\n        }\n        minfo("0x%V %W",(int)paVar20->vma,*(undefined4 *)((int)&paVar20->vma + 4),uVar14,uVar18);\n        iVar19 = *(int *)((int)&paVar20->lma + 4);\n        iVar9 = (int)paVar20->lma;\n        if (iVar19 != *(int *)((int)&paVar20->vma + 4) || (int)paVar20->vma != iVar9) {\n          pcVar13 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar13,iVar9,iVar19);\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_00097fd4 + 0x180),&print_dot);\n        }\n      }\n      print_nl();\n    }\n    for (plVar8 = (s->output_section_statement).children.head;\n        plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,&s->output_section_statement);\n    }\n    break;\n  case lang_assignment_statement_enum:\n    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    paVar10 = (s->input_section).section;\n    tree = (etree_type *)paVar10->prev;\n    paVar20 = os->bfd_section;\n    if (paVar10->next == (bfd_section *)0x8) {\n      bVar22 = false;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\nLAB_000201d5:\n      exp_fold_tree(tree,paVar20,&print_dot);\n      iVar19 = expld.result.value._4_4_;\n      pcVar13 = (char *)expld.result.value;\n      paVar10 = (s->input_section).section;\n      if (expld.result.valid_p == 0) goto LAB_0001f87e;\n      if (paVar10->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_00020228:\n          iVar19 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +\n                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma);\n          pcVar13 = (char *)expld.result.value + (int)(expld.result.section)->vma;\n        }\n        minfo("0x%V",pcVar13,iVar19);\n        if (bVar22) {\nLAB_0002025d:\n          print_dot._0_4_ = pcVar13;\n          print_dot._4_4_ = iVar19;\n        }\n      }\n      else {\n        if (bVar22) {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n          goto LAB_0002025d;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar19 = bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1);\n          if (iVar19 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            iVar9 = *(int *)(iVar19 + 0x14);\n            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);\n            minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n        }\n      }\n    }\n    else {\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar22 = true;\n      }\n      else {\n        bVar22 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar10->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\n      if (paVar10->next != (bfd_section *)0x5) goto LAB_000201d5;\n      expld.result.valid_p = 0;\nLAB_0001f87e:\n      if (paVar10->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n      minfo("        ");\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    pcVar11 = (s->wild_statement).filename;\n    if (pcVar11 == (char *)0x0) {\n      return;\n    }\n    if (((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->lma & 0x2000000000000) != 0)) {\n      return;\n    }\n    pcVar13 = "LOAD %s\n";\n    goto LAB_0001fc3c;\n  case lang_address_statement_enum:\n    pcVar13 = (s->wild_statement).filename;\n    pcVar11 = (char *)dcgettext(0,"Address of section %s set to ",5);\n    minfo(pcVar11,pcVar13);\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      pcVar13 = ((s->wild_statement).exclude_name_list)->name;\n      minfo("EXCLUDE_FILE(%s",pcVar13);\n      for (pnVar3 = ((s->wild_statement).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n          pnVar3 = pnVar3->next) {\n        pcVar13 = pnVar3->name;\n        minfo(" %s",pcVar13);\n      }\n      minfo(") ",pcVar13);\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 (pwVar4 = (s->wild_statement).section_list; pwVar4 != (wildcard_list *)0x0;\n        pwVar4 = pwVar4->next) {\n      switch((pwVar4->spec).sorted) {\n      default:\n        iVar19 = 0;\n        break;\n      case by_name:\n        iVar19 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar19 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar19 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar19 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        minfo("SORT_NONE(");\n        iVar19 = 1;\n        break;\n      case by_init_priority:\n        iVar19 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }\n      pnVar3 = (pwVar4->spec).exclude_name_list;\n      if (pnVar3 != (name_list *)0x0) {\n        pcVar13 = pnVar3->name;\n        minfo("EXCLUDE_FILE(%s",pcVar13);\n        for (pnVar3 = ((pwVar4->spec).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n            pnVar3 = pnVar3->next) {\n          pcVar13 = pnVar3->name;\n          minfo(" %s",pcVar13);\n        }\n        minfo(") ",pcVar13);\n      }\n      pcVar13 = (pwVar4->spec).name;\n      if (pcVar13 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar13);\n      }\n      if ((iVar19 != 0) && (minfo(")"), iVar19 != 1)) {\n        minfo(")");\n      }\n      if (pwVar4->next == (wildcard_list *)0x0) break;\n      minfo(" ");\n    }\n    minfo(")");\n    print_nl();\n    for (plVar8 = (s->wild_statement).children.head; plVar8 != (lang_statement_union_type *)0x0;\n        plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,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    pfVar6 = (s->fill_statement).fill;\n    sVar7 = pfVar6->size;\n    puVar21 = pfVar6->data;\n    if (sVar7 != 0) {\n      do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);\n    }\n    fputc(10,(FILE *)config.map_file);\n    break;\n  case lang_data_statement_enum:\n    init_opb();\n    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_34 = (s->wild_statement).children.tail;\n    local_30 = (etree_union *)(s->wild_statement).exclude_name_list;\n    paVar20 = (s->data_statement).output_section;\n    if (paVar20 != (asection *)0x0) {\n      uVar14 = (uint)paVar20->vma;\n      bVar22 = CARRY4((uint)local_34,uVar14);\n      local_34 = (lang_statement_union **)((int)local_34 + uVar14);\n      local_30 = (etree_union *)\n                 ((int)&(local_30->type).node_code + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4)\n                 );\n    }\n    switch((s->data_statement).type) {\n    case 0x11a:\n      pcVar13 = "QUAD";\n      uVar14 = 8;\n      break;\n    case 0x11b:\n      pcVar13 = "SQUAD";\n      uVar14 = 8;\n      break;\n    case 0x11c:\n      pcVar13 = "LONG";\n      uVar14 = 4;\n      break;\n    case 0x11d:\n      pcVar13 = "SHORT";\n      uVar14 = 2;\n      break;\n    case 0x11e:\n      pcVar13 = "BYTE";\n      uVar14 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");\n    }\n    bVar15 = (byte)opb_shift;\n    local_3c = (wildcard_list *)(1 << (bVar15 & 0x1f));\n    if (local_3c < uVar14) {\n      local_3c = (wildcard_list *)uVar14;\n    }\n    uVar17 = 0 >> (bVar15 & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)local_3c >> (bVar15 & 0x1f) | 0 << 0x20 - (bVar15 & 0x1f);\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    minfo("0x%V %W %s 0x%v",local_34,local_30,uVar14,uVar18,pcVar13,(s->wild_statement).section_list\n          ,(s->wild_statement).keep_sections);\n    if (((s->reloc_statement).howto)->bitsize != 7) {\n      print_space();\n      exp_print_tree((s->data_statement).exp);\n    }\n    print_nl();\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)local_3c >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    print_dot._0_4_ = (char *)(uVar14 + (int)local_34);\n    print_dot._4_4_ = (int)(char **)local_30 + CARRY4(uVar14,(uint)local_34) + uVar18;\n    break;\n  case lang_reloc_statement_enum:\n    init_opb();\n    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_3c = (s->wild_statement).handler_data[0];\n    local_38 = (s->wild_statement).handler_data[1];\n    plVar5 = (s->output_section_statement).lma_region;\n    if (plVar5 != (lang_memory_region_type *)0x0) {\n      uVar14 = *(uint *)((int)&plVar5->length + 4);\n      bVar22 = CARRY4((uint)local_3c,uVar14);\n      local_3c = (wildcard_list *)((int)&local_3c->next + uVar14);\n      local_38 = (wildcard_list *)((int)plVar5->length_exp + (uint)bVar22 + (int)&local_38->next);\n    }\n    uVar17 = bfd_get_reloc_size((s->wild_statement).filenames_sorted);\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar16 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar16;\n    uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar16;\n    }\n    minfo("0x%V %W RELOC %s ",local_3c,local_38,uVar14,uVar18,((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    bVar15 = (byte)opb_shift & 0x1f;\n    uVar16 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar16;\n    uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar16;\n    }\n    print_dot._0_4_ = (char *)((int)&local_3c->next + uVar14);\n    print_dot._4_4_ = (int)&local_38->next + CARRY4(uVar14,(uint)local_3c) + uVar18;\n    break;\n  case lang_target_statement_enum:\n    pcVar11 = (s->wild_statement).filename;\n    pcVar13 = "TARGET(%s)\n";\nLAB_0001fc3c:\n    fprintf((FILE *)config.map_file,pcVar13,pcVar11);\n    break;\n  case lang_output_statement_enum:\n    pcVar13 = (s->wild_statement).filename;\n    minfo("OUTPUT(%s",pcVar13);\n    if (output_target != (char *)0x0) {\n      pcVar13 = output_target;\n      minfo(" %s",output_target);\n    }\n    minfo(")\n",pcVar13);\n    break;\n  case lang_padding_statement_enum:\n    init_opb();\n    minfo(" *fill*");\n    iVar19 = 9;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_34 = (lang_statement_union **)(s->wild_statement).filename;\n    local_30 = (s->data_statement).exp;\n    paVar20 = (s->data_statement).output_section;\n    if (paVar20 != (asection *)0x0) {\n      uVar14 = (uint)paVar20->vma;\n      bVar22 = CARRY4((uint)local_34,uVar14);\n      local_34 = (lang_statement_union **)((int)local_34 + uVar14);\n      local_30 = (etree_union *)((int)local_30 + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4));\n    }\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    minfo("0x%V %W ",local_34,local_30,uVar14,uVar18);\n    pfVar6 = (s->padding_statement).fill;\n    sVar7 = pfVar6->size;\n    if (sVar7 != 0) {\n      puVar21 = pfVar6->data;\n      do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);\n    }\n    print_nl();\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    print_dot._0_4_ = (char *)((int)local_34 + uVar14);\n    print_dot._4_4_ = (int)local_30 + CARRY4((uint)local_34,uVar14) + uVar18;\n    break;\n  case lang_group_statement_enum:\n    fwrite("START GROUP\n",1,0xc,(FILE *)config.map_file);\n    for (plVar8 = (s->output_section_statement).children.head;\n        plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,os);\n    }\n    fwrite("END GROUP\n",1,10,(FILE *)config.map_file);\n    break;\n  case lang_insert_statement_enum:\n    pcVar13 = "BEFORE";\n    if ((s->wild_statement).filenames_sorted == 0) {\n      pcVar13 = "AFTER";\n    }\n    minfo("INSERT %s %s\n",pcVar13,(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        plVar8 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar8 = constructor_list.head;\n      }\n      for (; plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n        print_statement(plVar8,os);\n      }\n    }\n    break;\n  default:\n    pcVar13 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf((FILE *)config.map_file,pcVar13,sVar2);\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  uint *puVar1;\n  statement_enum sVar2;\n  name_list *pnVar3;\n  wildcard_list *pwVar4;\n  lang_memory_region_type *plVar5;\n  fill_type *pfVar6;\n  size_t sVar7;\n  lang_statement_union_type *plVar8;\n  int iVar9;\n  asection *paVar10;\n  char *pcVar11;\n  size_t sVar12;\n  char *pcVar13;\n  uint uVar14;\n  byte bVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  etree_type *tree;\n  int iVar19;\n  asection *paVar20;\n  uchar *puVar21;\n  bool bVar22;\n  wildcard_list *local_3c;\n  wildcard_list *local_38;\n  lang_statement_union **local_34;\n  etree_union *local_30;\n  \n  sVar2 = (s->header).type;\n  switch(sVar2) {\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._0_4_ = *(char **)&paVar20->vma;\n        print_dot._4_4_ = *(int *)((int)&paVar20->vma + 4);\n        sVar12 = strlen((s->output_section_statement).name);\n        if (0xe < sVar12) {\n          print_nl();\n          sVar12 = 0;\n        }\n        do {\n          print_space();\n          sVar12 = sVar12 + 1;\n        } while (sVar12 != 0x10);\n        uVar14 = *(uint *)((int)&paVar20->size + 4);\n        bVar15 = (byte)opb_shift & 0x1f;\n        uVar17 = uVar14 >> ((byte)opb_shift & 0x1f);\n        uVar18 = uVar17;\n        uVar14 = (uint)paVar20->size >> bVar15 | uVar14 << 0x20 - bVar15;\n        if ((opb_shift & 0x20) != 0) {\n          uVar18 = 0;\n          uVar14 = uVar17;\n        }\n        minfo("0x%V %W",(int)paVar20->vma,*(undefined4 *)((int)&paVar20->vma + 4),uVar14,uVar18);\n        iVar19 = *(int *)((int)&paVar20->lma + 4);\n        iVar9 = (int)paVar20->lma;\n        if (iVar19 != *(int *)((int)&paVar20->vma + 4) || (int)paVar20->vma != iVar9) {\n          pcVar13 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar13,iVar9,iVar19);\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_00097fd4 + 0x180),&print_dot);\n        }\n      }\n      print_nl();\n    }\n    for (plVar8 = (s->output_section_statement).children.head;\n        plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,&s->output_section_statement);\n    }\n    break;\n  case lang_assignment_statement_enum:\n    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    paVar10 = (s->input_section).section;\n    tree = (etree_type *)paVar10->prev;\n    paVar20 = os->bfd_section;\n    if (paVar10->next == (bfd_section *)0x8) {\n      bVar22 = false;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\nLAB_000201d5:\n      exp_fold_tree(tree,paVar20,&print_dot);\n      iVar19 = expld.result.value._4_4_;\n      pcVar13 = (char *)expld.result.value;\n      paVar10 = (s->input_section).section;\n      if (expld.result.valid_p == 0) goto LAB_0001f87e;\n      if (paVar10->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_00020228:\n          iVar19 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +\n                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma);\n          pcVar13 = (char *)expld.result.value + (int)(expld.result.section)->vma;\n        }\n        minfo("0x%V",pcVar13,iVar19);\n        if (bVar22) {\nLAB_0002025d:\n          print_dot._0_4_ = pcVar13;\n          print_dot._4_4_ = iVar19;\n        }\n      }\n      else {\n        if (bVar22) {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n          goto LAB_0002025d;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar19 = bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1);\n          if (iVar19 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            iVar9 = *(int *)(iVar19 + 0x14);\n            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);\n            minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n        }\n      }\n    }\n    else {\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar22 = true;\n      }\n      else {\n        bVar22 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar10->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\n      if (paVar10->next != (bfd_section *)0x5) goto LAB_000201d5;\n      expld.result.valid_p = 0;\nLAB_0001f87e:\n      if (paVar10->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n      minfo("        ");\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    pcVar11 = (s->wild_statement).filename;\n    if (pcVar11 == (char *)0x0) {\n      return;\n    }\n    if (((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->lma & 0x2000000000000) != 0)) {\n      return;\n    }\n    pcVar13 = "LOAD %s\n";\n    goto LAB_0001fc3c;\n  case lang_address_statement_enum:\n    pcVar13 = (s->wild_statement).filename;\n    pcVar11 = (char *)dcgettext(0,"Address of section %s set to ",5);\n    minfo(pcVar11,pcVar13);\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      pcVar13 = ((s->wild_statement).exclude_name_list)->name;\n      minfo("EXCLUDE_FILE(%s",pcVar13);\n      for (pnVar3 = ((s->wild_statement).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n          pnVar3 = pnVar3->next) {\n        pcVar13 = pnVar3->name;\n        minfo(" %s",pcVar13);\n      }\n      minfo(") ",pcVar13);\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 (pwVar4 = (s->wild_statement).section_list; pwVar4 != (wildcard_list *)0x0;\n        pwVar4 = pwVar4->next) {\n      switch((pwVar4->spec).sorted) {\n      default:\n        iVar19 = 0;\n        break;\n      case by_name:\n        iVar19 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar19 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar19 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar19 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        minfo("SORT_NONE(");\n        iVar19 = 1;\n        break;\n      case by_init_priority:\n        iVar19 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }\n      pnVar3 = (pwVar4->spec).exclude_name_list;\n      if (pnVar3 != (name_list *)0x0) {\n        pcVar13 = pnVar3->name;\n        minfo("EXCLUDE_FILE(%s",pcVar13);\n        for (pnVar3 = ((pwVar4->spec).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n            pnVar3 = pnVar3->next) {\n          pcVar13 = pnVar3->name;\n          minfo(" %s",pcVar13);\n        }\n        minfo(") ",pcVar13);\n      }\n      pcVar13 = (pwVar4->spec).name;\n      if (pcVar13 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar13);\n      }\n      if ((iVar19 != 0) && (minfo(")"), iVar19 != 1)) {\n        minfo(")");\n      }\n      if (pwVar4->next == (wildcard_list *)0x0) break;\n      minfo(" ");\n    }\n    minfo(")");\n    print_nl();\n    for (plVar8 = (s->wild_statement).children.head; plVar8 != (lang_statement_union_type *)0x0;\n        plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,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    pfVar6 = (s->fill_statement).fill;\n    sVar7 = pfVar6->size;\n    puVar21 = pfVar6->data;\n    if (sVar7 != 0) {\n      do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);\n    }\n    fputc(10,(FILE *)config.map_file);\n    break;\n  case lang_data_statement_enum:\n    init_opb();\n    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_34 = (s->wild_statement).children.tail;\n    local_30 = (etree_union *)(s->wild_statement).exclude_name_list;\n    paVar20 = (s->data_statement).output_section;\n    if (paVar20 != (asection *)0x0) {\n      uVar14 = (uint)paVar20->vma;\n      bVar22 = CARRY4((uint)local_34,uVar14);\n      local_34 = (lang_statement_union **)((int)local_34 + uVar14);\n      local_30 = (etree_union *)\n                 ((int)&(local_30->type).node_code + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4)\n                 );\n    }\n    switch((s->data_statement).type) {\n    case 0x11a:\n      pcVar13 = "QUAD";\n      uVar14 = 8;\n      break;\n    case 0x11b:\n      pcVar13 = "SQUAD";\n      uVar14 = 8;\n      break;\n    case 0x11c:\n      pcVar13 = "LONG";\n      uVar14 = 4;\n      break;\n    case 0x11d:\n      pcVar13 = "SHORT";\n      uVar14 = 2;\n      break;\n    case 0x11e:\n      pcVar13 = "BYTE";\n      uVar14 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");\n    }\n    bVar15 = (byte)opb_shift;\n    local_3c = (wildcard_list *)(1 << (bVar15 & 0x1f));\n    if (local_3c < uVar14) {\n      local_3c = (wildcard_list *)uVar14;\n    }\n    uVar17 = 0 >> (bVar15 & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)local_3c >> (bVar15 & 0x1f) | 0 << 0x20 - (bVar15 & 0x1f);\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    minfo("0x%V %W %s 0x%v",local_34,local_30,uVar14,uVar18,pcVar13,(s->wild_statement).section_list\n          ,(s->wild_statement).keep_sections);\n    if (((s->reloc_statement).howto)->bitsize != 7) {\n      print_space();\n      exp_print_tree((s->data_statement).exp);\n    }\n    print_nl();\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)local_3c >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    print_dot._0_4_ = (char *)(uVar14 + (int)local_34);\n    print_dot._4_4_ = (int)(char **)local_30 + CARRY4(uVar14,(uint)local_34) + uVar18;\n    break;\n  case lang_reloc_statement_enum:\n    init_opb();\n    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_3c = (s->wild_statement).handler_data[0];\n    local_38 = (s->wild_statement).handler_data[1];\n    plVar5 = (s->output_section_statement).lma_region;\n    if (plVar5 != (lang_memory_region_type *)0x0) {\n      uVar14 = *(uint *)((int)&plVar5->length + 4);\n      bVar22 = CARRY4((uint)local_3c,uVar14);\n      local_3c = (wildcard_list *)((int)&local_3c->next + uVar14);\n      local_38 = (wildcard_list *)((int)plVar5->length_exp + (uint)bVar22 + (int)&local_38->next);\n    }\n    uVar17 = bfd_get_reloc_size((s->wild_statement).filenames_sorted);\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar16 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar16;\n    uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar16;\n    }\n    minfo("0x%V %W RELOC %s ",local_3c,local_38,uVar14,uVar18,((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    bVar15 = (byte)opb_shift & 0x1f;\n    uVar16 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar16;\n    uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar16;\n    }\n    print_dot._0_4_ = (char *)((int)&local_3c->next + uVar14);\n    print_dot._4_4_ = (int)&local_38->next + CARRY4(uVar14,(uint)local_3c) + uVar18;\n    break;\n  case lang_target_statement_enum:\n    pcVar11 = (s->wild_statement).filename;\n    pcVar13 = "TARGET(%s)\n";\nLAB_0001fc3c:\n    fprintf((FILE *)config.map_file,pcVar13,pcVar11);\n    break;\n  case lang_output_statement_enum:\n    pcVar13 = (s->wild_statement).filename;\n    minfo("OUTPUT(%s",pcVar13);\n    if (output_target != (char *)0x0) {\n      pcVar13 = output_target;\n      minfo(" %s",output_target);\n    }\n    minfo(")\n",pcVar13);\n    break;\n  case lang_padding_statement_enum:\n    init_opb();\n    minfo(" *fill*");\n    iVar19 = 9;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_34 = (lang_statement_union **)(s->wild_statement).filename;\n    local_30 = (s->data_statement).exp;\n    paVar20 = (s->data_statement).output_section;\n    if (paVar20 != (asection *)0x0) {\n      uVar14 = (uint)paVar20->vma;\n      bVar22 = CARRY4((uint)local_34,uVar14);\n      local_34 = (lang_statement_union **)((int)local_34 + uVar14);\n      local_30 = (etree_union *)((int)local_30 + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4));\n    }\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    minfo("0x%V %W ",local_34,local_30,uVar14,uVar18);\n    pfVar6 = (s->padding_statement).fill;\n    sVar7 = pfVar6->size;\n    if (sVar7 != 0) {\n      puVar21 = pfVar6->data;\n      do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);\n    }\n    print_nl();\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    print_dot._0_4_ = (char *)((int)local_34 + uVar14);\n    print_dot._4_4_ = (int)local_30 + CARRY4((uint)local_34,uVar14) + uVar18;\n    break;\n  case lang_group_statement_enum:\n    fwrite("START GROUP\n",1,0xc,(FILE *)config.map_file);\n    for (plVar8 = (s->output_section_statement).children.head;\n        plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,os);\n    }\n    fwrite("END GROUP\n",1,10,(FILE *)config.map_file);\n    break;\n  case lang_insert_statement_enum:\n    pcVar13 = "BEFORE";\n    if ((s->wild_statement).filenames_sorted == 0) {\n      pcVar13 = "AFTER";\n    }\n    minfo("INSERT %s %s\n",pcVar13,(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        plVar8 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar8 = constructor_list.head;\n      }\n      for (; plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n        print_statement(plVar8,os);\n      }\n    }\n    break;\n  default:\n    pcVar13 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf((FILE *)config.map_file,pcVar13,sVar2);\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  uint *puVar1;\n  statement_enum sVar2;\n  name_list *pnVar3;\n  wildcard_list *pwVar4;\n  lang_memory_region_type *plVar5;\n  fill_type *pfVar6;\n  size_t sVar7;\n  lang_statement_union_type *plVar8;\n  int iVar9;\n  asection *paVar10;\n  char *pcVar11;\n  size_t sVar12;\n  char *pcVar13;\n  uint uVar14;\n  byte bVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  etree_type *tree;\n  int iVar19;\n  asection *paVar20;\n  uchar *puVar21;\n  bool bVar22;\n  wildcard_list *local_3c;\n  wildcard_list *local_38;\n  lang_statement_union **local_34;\n  etree_union *local_30;\n  \n  sVar2 = (s->header).type;\n  switch(sVar2) {\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._0_4_ = *(char **)&paVar20->vma;\n        print_dot._4_4_ = *(int *)((int)&paVar20->vma + 4);\n        sVar12 = strlen((s->output_section_statement).name);\n        if (0xe < sVar12) {\n          print_nl();\n          sVar12 = 0;\n        }\n        do {\n          print_space();\n          sVar12 = sVar12 + 1;\n        } while (sVar12 != 0x10);\n        uVar14 = *(uint *)((int)&paVar20->size + 4);\n        bVar15 = (byte)opb_shift & 0x1f;\n        uVar17 = uVar14 >> ((byte)opb_shift & 0x1f);\n        uVar18 = uVar17;\n        uVar14 = (uint)paVar20->size >> bVar15 | uVar14 << 0x20 - bVar15;\n        if ((opb_shift & 0x20) != 0) {\n          uVar18 = 0;\n          uVar14 = uVar17;\n        }\n        minfo("0x%V %W",(int)paVar20->vma,*(undefined4 *)((int)&paVar20->vma + 4),uVar14,uVar18);\n        iVar19 = *(int *)((int)&paVar20->lma + 4);\n        iVar9 = (int)paVar20->lma;\n        if (iVar19 != *(int *)((int)&paVar20->vma + 4) || (int)paVar20->vma != iVar9) {\n          pcVar13 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar13,iVar9,iVar19);\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_00097fd4 + 0x180),&print_dot);\n        }\n      }\n      print_nl();\n    }\n    for (plVar8 = (s->output_section_statement).children.head;\n        plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,&s->output_section_statement);\n    }\n    break;\n  case lang_assignment_statement_enum:\n    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    paVar10 = (s->input_section).section;\n    tree = (etree_type *)paVar10->prev;\n    paVar20 = os->bfd_section;\n    if (paVar10->next == (bfd_section *)0x8) {\n      bVar22 = false;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\nLAB_000201d5:\n      exp_fold_tree(tree,paVar20,&print_dot);\n      iVar19 = expld.result.value._4_4_;\n      pcVar13 = (char *)expld.result.value;\n      paVar10 = (s->input_section).section;\n      if (expld.result.valid_p == 0) goto LAB_0001f87e;\n      if (paVar10->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_00020228:\n          iVar19 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +\n                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma);\n          pcVar13 = (char *)expld.result.value + (int)(expld.result.section)->vma;\n        }\n        minfo("0x%V",pcVar13,iVar19);\n        if (bVar22) {\nLAB_0002025d:\n          print_dot._0_4_ = pcVar13;\n          print_dot._4_4_ = iVar19;\n        }\n      }\n      else {\n        if (bVar22) {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n          goto LAB_0002025d;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar19 = bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1);\n          if (iVar19 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            iVar9 = *(int *)(iVar19 + 0x14);\n            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);\n            minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n        }\n      }\n    }\n    else {\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar22 = true;\n      }\n      else {\n        bVar22 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar10->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\n      if (paVar10->next != (bfd_section *)0x5) goto LAB_000201d5;\n      expld.result.valid_p = 0;\nLAB_0001f87e:\n      if (paVar10->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n      minfo("        ");\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    pcVar11 = (s->wild_statement).filename;\n    if (pcVar11 == (char *)0x0) {\n      return;\n    }\n    if (((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->lma & 0x2000000000000) != 0)) {\n      return;\n    }\n    pcVar13 = "LOAD %s\n";\n    goto LAB_0001fc3c;\n  case lang_address_statement_enum:\n    pcVar13 = (s->wild_statement).filename;\n    pcVar11 = (char *)dcgettext(0,"Address of section %s set to ",5);\n    minfo(pcVar11,pcVar13);\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      pcVar13 = ((s->wild_statement).exclude_name_list)->name;\n      minfo("EXCLUDE_FILE(%s",pcVar13);\n      for (pnVar3 = ((s->wild_statement).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n          pnVar3 = pnVar3->next) {\n        pcVar13 = pnVar3->name;\n        minfo(" %s",pcVar13);\n      }\n      minfo(") ",pcVar13);\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 (pwVar4 = (s->wild_statement).section_list; pwVar4 != (wildcard_list *)0x0;\n        pwVar4 = pwVar4->next) {\n      switch((pwVar4->spec).sorted) {\n      default:\n        iVar19 = 0;\n        break;\n      case by_name:\n        iVar19 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar19 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar19 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar19 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        minfo("SORT_NONE(");\n        iVar19 = 1;\n        break;\n      case by_init_priority:\n        iVar19 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }\n      pnVar3 = (pwVar4->spec).exclude_name_list;\n      if (pnVar3 != (name_list *)0x0) {\n        pcVar13 = pnVar3->name;\n        minfo("EXCLUDE_FILE(%s",pcVar13);\n        for (pnVar3 = ((pwVar4->spec).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n            pnVar3 = pnVar3->next) {\n          pcVar13 = pnVar3->name;\n          minfo(" %s",pcVar13);\n        }\n        minfo(") ",pcVar13);\n      }\n      pcVar13 = (pwVar4->spec).name;\n      if (pcVar13 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar13);\n      }\n      if ((iVar19 != 0) && (minfo(")"), iVar19 != 1)) {\n        minfo(")");\n      }\n      if (pwVar4->next == (wildcard_list *)0x0) break;\n      minfo(" ");\n    }\n    minfo(")");\n    print_nl();\n    for (plVar8 = (s->wild_statement).children.head; plVar8 != (lang_statement_union_type *)0x0;\n        plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,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    pfVar6 = (s->fill_statement).fill;\n    sVar7 = pfVar6->size;\n    puVar21 = pfVar6->data;\n    if (sVar7 != 0) {\n      do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);\n    }\n    fputc(10,(FILE *)config.map_file);\n    break;\n  case lang_data_statement_enum:\n    init_opb();\n    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_34 = (s->wild_statement).children.tail;\n    local_30 = (etree_union *)(s->wild_statement).exclude_name_list;\n    paVar20 = (s->data_statement).output_section;\n    if (paVar20 != (asection *)0x0) {\n      uVar14 = (uint)paVar20->vma;\n      bVar22 = CARRY4((uint)local_34,uVar14);\n      local_34 = (lang_statement_union **)((int)local_34 + uVar14);\n      local_30 = (etree_union *)\n                 ((int)&(local_30->type).node_code + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4)\n                 );\n    }\n    switch((s->data_statement).type) {\n    case 0x11a:\n      pcVar13 = "QUAD";\n      uVar14 = 8;\n      break;\n    case 0x11b:\n      pcVar13 = "SQUAD";\n      uVar14 = 8;\n      break;\n    case 0x11c:\n      pcVar13 = "LONG";\n      uVar14 = 4;\n      break;\n    case 0x11d:\n      pcVar13 = "SHORT";\n      uVar14 = 2;\n      break;\n    case 0x11e:\n      pcVar13 = "BYTE";\n      uVar14 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");\n    }\n    bVar15 = (byte)opb_shift;\n    local_3c = (wildcard_list *)(1 << (bVar15 & 0x1f));\n    if (local_3c < uVar14) {\n      local_3c = (wildcard_list *)uVar14;\n    }\n    uVar17 = 0 >> (bVar15 & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)local_3c >> (bVar15 & 0x1f) | 0 << 0x20 - (bVar15 & 0x1f);\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    minfo("0x%V %W %s 0x%v",local_34,local_30,uVar14,uVar18,pcVar13,(s->wild_statement).section_list\n          ,(s->wild_statement).keep_sections);\n    if (((s->reloc_statement).howto)->bitsize != 7) {\n      print_space();\n      exp_print_tree((s->data_statement).exp);\n    }\n    print_nl();\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)local_3c >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    print_dot._0_4_ = (char *)(uVar14 + (int)local_34);\n    print_dot._4_4_ = (int)(char **)local_30 + CARRY4(uVar14,(uint)local_34) + uVar18;\n    break;\n  case lang_reloc_statement_enum:\n    init_opb();\n    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_3c = (s->wild_statement).handler_data[0];\n    local_38 = (s->wild_statement).handler_data[1];\n    plVar5 = (s->output_section_statement).lma_region;\n    if (plVar5 != (lang_memory_region_type *)0x0) {\n      uVar14 = *(uint *)((int)&plVar5->length + 4);\n      bVar22 = CARRY4((uint)local_3c,uVar14);\n      local_3c = (wildcard_list *)((int)&local_3c->next + uVar14);\n      local_38 = (wildcard_list *)((int)plVar5->length_exp + (uint)bVar22 + (int)&local_38->next);\n    }\n    uVar17 = bfd_get_reloc_size((s->wild_statement).filenames_sorted);\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar16 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar16;\n    uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar16;\n    }\n    minfo("0x%V %W RELOC %s ",local_3c,local_38,uVar14,uVar18,((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    bVar15 = (byte)opb_shift & 0x1f;\n    uVar16 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar16;\n    uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar16;\n    }\n    print_dot._0_4_ = (char *)((int)&local_3c->next + uVar14);\n    print_dot._4_4_ = (int)&local_38->next + CARRY4(uVar14,(uint)local_3c) + uVar18;\n    break;\n  case lang_target_statement_enum:\n    pcVar11 = (s->wild_statement).filename;\n    pcVar13 = "TARGET(%s)\n";\nLAB_0001fc3c:\n    fprintf((FILE *)config.map_file,pcVar13,pcVar11);\n    break;\n  case lang_output_statement_enum:\n    pcVar13 = (s->wild_statement).filename;\n    minfo("OUTPUT(%s",pcVar13);\n    if (output_target != (char *)0x0) {\n      pcVar13 = output_target;\n      minfo(" %s",output_target);\n    }\n    minfo(")\n",pcVar13);\n    break;\n  case lang_padding_statement_enum:\n    init_opb();\n    minfo(" *fill*");\n    iVar19 = 9;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_34 = (lang_statement_union **)(s->wild_statement).filename;\n    local_30 = (s->data_statement).exp;\n    paVar20 = (s->data_statement).output_section;\n    if (paVar20 != (asection *)0x0) {\n      uVar14 = (uint)paVar20->vma;\n      bVar22 = CARRY4((uint)local_34,uVar14);\n      local_34 = (lang_statement_union **)((int)local_34 + uVar14);\n      local_30 = (etree_union *)((int)local_30 + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4));\n    }\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    minfo("0x%V %W ",local_34,local_30,uVar14,uVar18);\n    pfVar6 = (s->padding_statement).fill;\n    sVar7 = pfVar6->size;\n    if (sVar7 != 0) {\n      puVar21 = pfVar6->data;\n      do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);\n    }\n    print_nl();\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    print_dot._0_4_ = (char *)((int)local_34 + uVar14);\n    print_dot._4_4_ = (int)local_30 + CARRY4((uint)local_34,uVar14) + uVar18;\n    break;\n  case lang_group_statement_enum:\n    fwrite("START GROUP\n",1,0xc,(FILE *)config.map_file);\n    for (plVar8 = (s->output_section_statement).children.head;\n        plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,os);\n    }\n    fwrite("END GROUP\n",1,10,(FILE *)config.map_file);\n    break;\n  case lang_insert_statement_enum:\n    pcVar13 = "BEFORE";\n    if ((s->wild_statement).filenames_sorted == 0) {\n      pcVar13 = "AFTER";\n    }\n    minfo("INSERT %s %s\n",pcVar13,(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        plVar8 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar8 = constructor_list.head;\n      }\n      for (; plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n        print_statement(plVar8,os);\n      }\n    }\n    break;\n  default:\n    pcVar13 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf((FILE *)config.map_file,pcVar13,sVar2);\n    info_assert("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "statement_enum sVar2;" type_identifier identifier ;) (declaration "name_list *pnVar3;" type_identifier (pointer_declarator "*pnVar3" * identifier) ;) (declaration "wildcard_list *pwVar4;" type_identifier (pointer_declarator "*pwVar4" * identifier) ;) (declaration "lang_memory_region_type *plVar5;" type_identifier (pointer_declarator "*plVar5" * identifier) ;) (declaration "fill_type *pfVar6;" type_identifier (pointer_declarator "*pfVar6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "lang_statement_union_type *plVar8;" type_identifier (pointer_declarator "*plVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "asection *paVar10;" type_identifier (pointer_declarator "*paVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "etree_type *tree;" type_identifier (pointer_declarator "*tree" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "asection *paVar20;" type_identifier (pointer_declarator "*paVar20" * identifier) ;) (declaration "uchar *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "wildcard_list *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "wildcard_list *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "lang_statement_union **local_34;" type_identifier (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)) ;) (declaration "etree_union *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (expression_statement "sVar2 = (s->header).type;" (assignment_expression "sVar2 = (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(sVar2) {\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._0_4_ = *(char **)&paVar20->vma;\n        print_dot._4_4_ = *(int *)((int)&paVar20->vma + 4);\n        sVar12 = strlen((s->output_section_statement).name);\n        if (0xe < sVar12) {\n          print_nl();\n          sVar12 = 0;\n        }\n        do {\n          print_space();\n          sVar12 = sVar12 + 1;\n        } while (sVar12 != 0x10);\n        uVar14 = *(uint *)((int)&paVar20->size + 4);\n        bVar15 = (byte)opb_shift & 0x1f;\n        uVar17 = uVar14 >> ((byte)opb_shift & 0x1f);\n        uVar18 = uVar17;\n        uVar14 = (uint)paVar20->size >> bVar15 | uVar14 << 0x20 - bVar15;\n        if ((opb_shift & 0x20) != 0) {\n          uVar18 = 0;\n          uVar14 = uVar17;\n        }\n        minfo("0x%V %W",(int)paVar20->vma,*(undefined4 *)((int)&paVar20->vma + 4),uVar14,uVar18);\n        iVar19 = *(int *)((int)&paVar20->lma + 4);\n        iVar9 = (int)paVar20->lma;\n        if (iVar19 != *(int *)((int)&paVar20->vma + 4) || (int)paVar20->vma != iVar9) {\n          pcVar13 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar13,iVar9,iVar19);\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_00097fd4 + 0x180),&print_dot);\n        }\n      }\n      print_nl();\n    }\n    for (plVar8 = (s->output_section_statement).children.head;\n        plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,&s->output_section_statement);\n    }\n    break;\n  case lang_assignment_statement_enum:\n    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    paVar10 = (s->input_section).section;\n    tree = (etree_type *)paVar10->prev;\n    paVar20 = os->bfd_section;\n    if (paVar10->next == (bfd_section *)0x8) {\n      bVar22 = false;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\nLAB_000201d5:\n      exp_fold_tree(tree,paVar20,&print_dot);\n      iVar19 = expld.result.value._4_4_;\n      pcVar13 = (char *)expld.result.value;\n      paVar10 = (s->input_section).section;\n      if (expld.result.valid_p == 0) goto LAB_0001f87e;\n      if (paVar10->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_00020228:\n          iVar19 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +\n                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma);\n          pcVar13 = (char *)expld.result.value + (int)(expld.result.section)->vma;\n        }\n        minfo("0x%V",pcVar13,iVar19);\n        if (bVar22) {\nLAB_0002025d:\n          print_dot._0_4_ = pcVar13;\n          print_dot._4_4_ = iVar19;\n        }\n      }\n      else {\n        if (bVar22) {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n          goto LAB_0002025d;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar19 = bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1);\n          if (iVar19 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            iVar9 = *(int *)(iVar19 + 0x14);\n            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);\n            minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n        }\n      }\n    }\n    else {\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar22 = true;\n      }\n      else {\n        bVar22 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar10->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\n      if (paVar10->next != (bfd_section *)0x5) goto LAB_000201d5;\n      expld.result.valid_p = 0;\nLAB_0001f87e:\n      if (paVar10->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n      minfo("        ");\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    pcVar11 = (s->wild_statement).filename;\n    if (pcVar11 == (char *)0x0) {\n      return;\n    }\n    if (((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->lma & 0x2000000000000) != 0)) {\n      return;\n    }\n    pcVar13 = "LOAD %s\n";\n    goto LAB_0001fc3c;\n  case lang_address_statement_enum:\n    pcVar13 = (s->wild_statement).filename;\n    pcVar11 = (char *)dcgettext(0,"Address of section %s set to ",5);\n    minfo(pcVar11,pcVar13);\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      pcVar13 = ((s->wild_statement).exclude_name_list)->name;\n      minfo("EXCLUDE_FILE(%s",pcVar13);\n      for (pnVar3 = ((s->wild_statement).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n          pnVar3 = pnVar3->next) {\n        pcVar13 = pnVar3->name;\n        minfo(" %s",pcVar13);\n      }\n      minfo(") ",pcVar13);\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 (pwVar4 = (s->wild_statement).section_list; pwVar4 != (wildcard_list *)0x0;\n        pwVar4 = pwVar4->next) {\n      switch((pwVar4->spec).sorted) {\n      default:\n        iVar19 = 0;\n        break;\n      case by_name:\n        iVar19 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar19 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar19 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar19 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        minfo("SORT_NONE(");\n        iVar19 = 1;\n        break;\n      case by_init_priority:\n        iVar19 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }\n      pnVar3 = (pwVar4->spec).exclude_name_list;\n      if (pnVar3 != (name_list *)0x0) {\n        pcVar13 = pnVar3->name;\n        minfo("EXCLUDE_FILE(%s",pcVar13);\n        for (pnVar3 = ((pwVar4->spec).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n            pnVar3 = pnVar3->next) {\n          pcVar13 = pnVar3->name;\n          minfo(" %s",pcVar13);\n        }\n        minfo(") ",pcVar13);\n      }\n      pcVar13 = (pwVar4->spec).name;\n      if (pcVar13 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar13);\n      }\n      if ((iVar19 != 0) && (minfo(")"), iVar19 != 1)) {\n        minfo(")");\n      }\n      if (pwVar4->next == (wildcard_list *)0x0) break;\n      minfo(" ");\n    }\n    minfo(")");\n    print_nl();\n    for (plVar8 = (s->wild_statement).children.head; plVar8 != (lang_statement_union_type *)0x0;\n        plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,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    pfVar6 = (s->fill_statement).fill;\n    sVar7 = pfVar6->size;\n    puVar21 = pfVar6->data;\n    if (sVar7 != 0) {\n      do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);\n    }\n    fputc(10,(FILE *)config.map_file);\n    break;\n  case lang_data_statement_enum:\n    init_opb();\n    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_34 = (s->wild_statement).children.tail;\n    local_30 = (etree_union *)(s->wild_statement).exclude_name_list;\n    paVar20 = (s->data_statement).output_section;\n    if (paVar20 != (asection *)0x0) {\n      uVar14 = (uint)paVar20->vma;\n      bVar22 = CARRY4((uint)local_34,uVar14);\n      local_34 = (lang_statement_union **)((int)local_34 + uVar14);\n      local_30 = (etree_union *)\n                 ((int)&(local_30->type).node_code + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4)\n                 );\n    }\n    switch((s->data_statement).type) {\n    case 0x11a:\n      pcVar13 = "QUAD";\n      uVar14 = 8;\n      break;\n    case 0x11b:\n      pcVar13 = "SQUAD";\n      uVar14 = 8;\n      break;\n    case 0x11c:\n      pcVar13 = "LONG";\n      uVar14 = 4;\n      break;\n    case 0x11d:\n      pcVar13 = "SHORT";\n      uVar14 = 2;\n      break;\n    case 0x11e:\n      pcVar13 = "BYTE";\n      uVar14 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");\n    }\n    bVar15 = (byte)opb_shift;\n    local_3c = (wildcard_list *)(1 << (bVar15 & 0x1f));\n    if (local_3c < uVar14) {\n      local_3c = (wildcard_list *)uVar14;\n    }\n    uVar17 = 0 >> (bVar15 & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)local_3c >> (bVar15 & 0x1f) | 0 << 0x20 - (bVar15 & 0x1f);\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    minfo("0x%V %W %s 0x%v",local_34,local_30,uVar14,uVar18,pcVar13,(s->wild_statement).section_list\n          ,(s->wild_statement).keep_sections);\n    if (((s->reloc_statement).howto)->bitsize != 7) {\n      print_space();\n      exp_print_tree((s->data_statement).exp);\n    }\n    print_nl();\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)local_3c >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    print_dot._0_4_ = (char *)(uVar14 + (int)local_34);\n    print_dot._4_4_ = (int)(char **)local_30 + CARRY4(uVar14,(uint)local_34) + uVar18;\n    break;\n  case lang_reloc_statement_enum:\n    init_opb();\n    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_3c = (s->wild_statement).handler_data[0];\n    local_38 = (s->wild_statement).handler_data[1];\n    plVar5 = (s->output_section_statement).lma_region;\n    if (plVar5 != (lang_memory_region_type *)0x0) {\n      uVar14 = *(uint *)((int)&plVar5->length + 4);\n      bVar22 = CARRY4((uint)local_3c,uVar14);\n      local_3c = (wildcard_list *)((int)&local_3c->next + uVar14);\n      local_38 = (wildcard_list *)((int)plVar5->length_exp + (uint)bVar22 + (int)&local_38->next);\n    }\n    uVar17 = bfd_get_reloc_size((s->wild_statement).filenames_sorted);\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar16 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar16;\n    uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar16;\n    }\n    minfo("0x%V %W RELOC %s ",local_3c,local_38,uVar14,uVar18,((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    bVar15 = (byte)opb_shift & 0x1f;\n    uVar16 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar16;\n    uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar16;\n    }\n    print_dot._0_4_ = (char *)((int)&local_3c->next + uVar14);\n    print_dot._4_4_ = (int)&local_38->next + CARRY4(uVar14,(uint)local_3c) + uVar18;\n    break;\n  case lang_target_statement_enum:\n    pcVar11 = (s->wild_statement).filename;\n    pcVar13 = "TARGET(%s)\n";\nLAB_0001fc3c:\n    fprintf((FILE *)config.map_file,pcVar13,pcVar11);\n    break;\n  case lang_output_statement_enum:\n    pcVar13 = (s->wild_statement).filename;\n    minfo("OUTPUT(%s",pcVar13);\n    if (output_target != (char *)0x0) {\n      pcVar13 = output_target;\n      minfo(" %s",output_target);\n    }\n    minfo(")\n",pcVar13);\n    break;\n  case lang_padding_statement_enum:\n    init_opb();\n    minfo(" *fill*");\n    iVar19 = 9;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_34 = (lang_statement_union **)(s->wild_statement).filename;\n    local_30 = (s->data_statement).exp;\n    paVar20 = (s->data_statement).output_section;\n    if (paVar20 != (asection *)0x0) {\n      uVar14 = (uint)paVar20->vma;\n      bVar22 = CARRY4((uint)local_34,uVar14);\n      local_34 = (lang_statement_union **)((int)local_34 + uVar14);\n      local_30 = (etree_union *)((int)local_30 + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4));\n    }\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    minfo("0x%V %W ",local_34,local_30,uVar14,uVar18);\n    pfVar6 = (s->padding_statement).fill;\n    sVar7 = pfVar6->size;\n    if (sVar7 != 0) {\n      puVar21 = pfVar6->data;\n      do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);\n    }\n    print_nl();\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    print_dot._0_4_ = (char *)((int)local_34 + uVar14);\n    print_dot._4_4_ = (int)local_30 + CARRY4((uint)local_34,uVar14) + uVar18;\n    break;\n  case lang_group_statement_enum:\n    fwrite("START GROUP\n",1,0xc,(FILE *)config.map_file);\n    for (plVar8 = (s->output_section_statement).children.head;\n        plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,os);\n    }\n    fwrite("END GROUP\n",1,10,(FILE *)config.map_file);\n    break;\n  case lang_insert_statement_enum:\n    pcVar13 = "BEFORE";\n    if ((s->wild_statement).filenames_sorted == 0) {\n      pcVar13 = "AFTER";\n    }\n    minfo("INSERT %s %s\n",pcVar13,(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        plVar8 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar8 = constructor_list.head;\n      }\n      for (; plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n        print_statement(plVar8,os);\n      }\n    }\n    break;\n  default:\n    pcVar13 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf((FILE *)config.map_file,pcVar13,sVar2);\n    info_assert("../../ld/ldlang.c",0x11bc);\n  }" switch (parenthesized_expression "(sVar2)" ( 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._0_4_ = *(char **)&paVar20->vma;\n        print_dot._4_4_ = *(int *)((int)&paVar20->vma + 4);\n        sVar12 = strlen((s->output_section_statement).name);\n        if (0xe < sVar12) {\n          print_nl();\n          sVar12 = 0;\n        }\n        do {\n          print_space();\n          sVar12 = sVar12 + 1;\n        } while (sVar12 != 0x10);\n        uVar14 = *(uint *)((int)&paVar20->size + 4);\n        bVar15 = (byte)opb_shift & 0x1f;\n        uVar17 = uVar14 >> ((byte)opb_shift & 0x1f);\n        uVar18 = uVar17;\n        uVar14 = (uint)paVar20->size >> bVar15 | uVar14 << 0x20 - bVar15;\n        if ((opb_shift & 0x20) != 0) {\n          uVar18 = 0;\n          uVar14 = uVar17;\n        }\n        minfo("0x%V %W",(int)paVar20->vma,*(undefined4 *)((int)&paVar20->vma + 4),uVar14,uVar18);\n        iVar19 = *(int *)((int)&paVar20->lma + 4);\n        iVar9 = (int)paVar20->lma;\n        if (iVar19 != *(int *)((int)&paVar20->vma + 4) || (int)paVar20->vma != iVar9) {\n          pcVar13 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar13,iVar9,iVar19);\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_00097fd4 + 0x180),&print_dot);\n        }\n      }\n      print_nl();\n    }\n    for (plVar8 = (s->output_section_statement).children.head;\n        plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,&s->output_section_statement);\n    }\n    break;\n  case lang_assignment_statement_enum:\n    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    paVar10 = (s->input_section).section;\n    tree = (etree_type *)paVar10->prev;\n    paVar20 = os->bfd_section;\n    if (paVar10->next == (bfd_section *)0x8) {\n      bVar22 = false;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\nLAB_000201d5:\n      exp_fold_tree(tree,paVar20,&print_dot);\n      iVar19 = expld.result.value._4_4_;\n      pcVar13 = (char *)expld.result.value;\n      paVar10 = (s->input_section).section;\n      if (expld.result.valid_p == 0) goto LAB_0001f87e;\n      if (paVar10->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_00020228:\n          iVar19 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +\n                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma);\n          pcVar13 = (char *)expld.result.value + (int)(expld.result.section)->vma;\n        }\n        minfo("0x%V",pcVar13,iVar19);\n        if (bVar22) {\nLAB_0002025d:\n          print_dot._0_4_ = pcVar13;\n          print_dot._4_4_ = iVar19;\n        }\n      }\n      else {\n        if (bVar22) {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n          goto LAB_0002025d;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar19 = bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1);\n          if (iVar19 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            iVar9 = *(int *)(iVar19 + 0x14);\n            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);\n            minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n        }\n      }\n    }\n    else {\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar22 = true;\n      }\n      else {\n        bVar22 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar10->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\n      if (paVar10->next != (bfd_section *)0x5) goto LAB_000201d5;\n      expld.result.valid_p = 0;\nLAB_0001f87e:\n      if (paVar10->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n      minfo("        ");\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    pcVar11 = (s->wild_statement).filename;\n    if (pcVar11 == (char *)0x0) {\n      return;\n    }\n    if (((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->lma & 0x2000000000000) != 0)) {\n      return;\n    }\n    pcVar13 = "LOAD %s\n";\n    goto LAB_0001fc3c;\n  case lang_address_statement_enum:\n    pcVar13 = (s->wild_statement).filename;\n    pcVar11 = (char *)dcgettext(0,"Address of section %s set to ",5);\n    minfo(pcVar11,pcVar13);\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      pcVar13 = ((s->wild_statement).exclude_name_list)->name;\n      minfo("EXCLUDE_FILE(%s",pcVar13);\n      for (pnVar3 = ((s->wild_statement).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n          pnVar3 = pnVar3->next) {\n        pcVar13 = pnVar3->name;\n        minfo(" %s",pcVar13);\n      }\n      minfo(") ",pcVar13);\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 (pwVar4 = (s->wild_statement).section_list; pwVar4 != (wildcard_list *)0x0;\n        pwVar4 = pwVar4->next) {\n      switch((pwVar4->spec).sorted) {\n      default:\n        iVar19 = 0;\n        break;\n      case by_name:\n        iVar19 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar19 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar19 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar19 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        minfo("SORT_NONE(");\n        iVar19 = 1;\n        break;\n      case by_init_priority:\n        iVar19 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }\n      pnVar3 = (pwVar4->spec).exclude_name_list;\n      if (pnVar3 != (name_list *)0x0) {\n        pcVar13 = pnVar3->name;\n        minfo("EXCLUDE_FILE(%s",pcVar13);\n        for (pnVar3 = ((pwVar4->spec).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n            pnVar3 = pnVar3->next) {\n          pcVar13 = pnVar3->name;\n          minfo(" %s",pcVar13);\n        }\n        minfo(") ",pcVar13);\n      }\n      pcVar13 = (pwVar4->spec).name;\n      if (pcVar13 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar13);\n      }\n      if ((iVar19 != 0) && (minfo(")"), iVar19 != 1)) {\n        minfo(")");\n      }\n      if (pwVar4->next == (wildcard_list *)0x0) break;\n      minfo(" ");\n    }\n    minfo(")");\n    print_nl();\n    for (plVar8 = (s->wild_statement).children.head; plVar8 != (lang_statement_union_type *)0x0;\n        plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,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    pfVar6 = (s->fill_statement).fill;\n    sVar7 = pfVar6->size;\n    puVar21 = pfVar6->data;\n    if (sVar7 != 0) {\n      do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);\n    }\n    fputc(10,(FILE *)config.map_file);\n    break;\n  case lang_data_statement_enum:\n    init_opb();\n    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_34 = (s->wild_statement).children.tail;\n    local_30 = (etree_union *)(s->wild_statement).exclude_name_list;\n    paVar20 = (s->data_statement).output_section;\n    if (paVar20 != (asection *)0x0) {\n      uVar14 = (uint)paVar20->vma;\n      bVar22 = CARRY4((uint)local_34,uVar14);\n      local_34 = (lang_statement_union **)((int)local_34 + uVar14);\n      local_30 = (etree_union *)\n                 ((int)&(local_30->type).node_code + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4)\n                 );\n    }\n    switch((s->data_statement).type) {\n    case 0x11a:\n      pcVar13 = "QUAD";\n      uVar14 = 8;\n      break;\n    case 0x11b:\n      pcVar13 = "SQUAD";\n      uVar14 = 8;\n      break;\n    case 0x11c:\n      pcVar13 = "LONG";\n      uVar14 = 4;\n      break;\n    case 0x11d:\n      pcVar13 = "SHORT";\n      uVar14 = 2;\n      break;\n    case 0x11e:\n      pcVar13 = "BYTE";\n      uVar14 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");\n    }\n    bVar15 = (byte)opb_shift;\n    local_3c = (wildcard_list *)(1 << (bVar15 & 0x1f));\n    if (local_3c < uVar14) {\n      local_3c = (wildcard_list *)uVar14;\n    }\n    uVar17 = 0 >> (bVar15 & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)local_3c >> (bVar15 & 0x1f) | 0 << 0x20 - (bVar15 & 0x1f);\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    minfo("0x%V %W %s 0x%v",local_34,local_30,uVar14,uVar18,pcVar13,(s->wild_statement).section_list\n          ,(s->wild_statement).keep_sections);\n    if (((s->reloc_statement).howto)->bitsize != 7) {\n      print_space();\n      exp_print_tree((s->data_statement).exp);\n    }\n    print_nl();\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)local_3c >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    print_dot._0_4_ = (char *)(uVar14 + (int)local_34);\n    print_dot._4_4_ = (int)(char **)local_30 + CARRY4(uVar14,(uint)local_34) + uVar18;\n    break;\n  case lang_reloc_statement_enum:\n    init_opb();\n    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_3c = (s->wild_statement).handler_data[0];\n    local_38 = (s->wild_statement).handler_data[1];\n    plVar5 = (s->output_section_statement).lma_region;\n    if (plVar5 != (lang_memory_region_type *)0x0) {\n      uVar14 = *(uint *)((int)&plVar5->length + 4);\n      bVar22 = CARRY4((uint)local_3c,uVar14);\n      local_3c = (wildcard_list *)((int)&local_3c->next + uVar14);\n      local_38 = (wildcard_list *)((int)plVar5->length_exp + (uint)bVar22 + (int)&local_38->next);\n    }\n    uVar17 = bfd_get_reloc_size((s->wild_statement).filenames_sorted);\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar16 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar16;\n    uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar16;\n    }\n    minfo("0x%V %W RELOC %s ",local_3c,local_38,uVar14,uVar18,((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    bVar15 = (byte)opb_shift & 0x1f;\n    uVar16 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar16;\n    uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar16;\n    }\n    print_dot._0_4_ = (char *)((int)&local_3c->next + uVar14);\n    print_dot._4_4_ = (int)&local_38->next + CARRY4(uVar14,(uint)local_3c) + uVar18;\n    break;\n  case lang_target_statement_enum:\n    pcVar11 = (s->wild_statement).filename;\n    pcVar13 = "TARGET(%s)\n";\nLAB_0001fc3c:\n    fprintf((FILE *)config.map_file,pcVar13,pcVar11);\n    break;\n  case lang_output_statement_enum:\n    pcVar13 = (s->wild_statement).filename;\n    minfo("OUTPUT(%s",pcVar13);\n    if (output_target != (char *)0x0) {\n      pcVar13 = output_target;\n      minfo(" %s",output_target);\n    }\n    minfo(")\n",pcVar13);\n    break;\n  case lang_padding_statement_enum:\n    init_opb();\n    minfo(" *fill*");\n    iVar19 = 9;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_34 = (lang_statement_union **)(s->wild_statement).filename;\n    local_30 = (s->data_statement).exp;\n    paVar20 = (s->data_statement).output_section;\n    if (paVar20 != (asection *)0x0) {\n      uVar14 = (uint)paVar20->vma;\n      bVar22 = CARRY4((uint)local_34,uVar14);\n      local_34 = (lang_statement_union **)((int)local_34 + uVar14);\n      local_30 = (etree_union *)((int)local_30 + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4));\n    }\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    minfo("0x%V %W ",local_34,local_30,uVar14,uVar18);\n    pfVar6 = (s->padding_statement).fill;\n    sVar7 = pfVar6->size;\n    if (sVar7 != 0) {\n      puVar21 = pfVar6->data;\n      do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);\n    }\n    print_nl();\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    print_dot._0_4_ = (char *)((int)local_34 + uVar14);\n    print_dot._4_4_ = (int)local_30 + CARRY4((uint)local_34,uVar14) + uVar18;\n    break;\n  case lang_group_statement_enum:\n    fwrite("START GROUP\n",1,0xc,(FILE *)config.map_file);\n    for (plVar8 = (s->output_section_statement).children.head;\n        plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,os);\n    }\n    fwrite("END GROUP\n",1,10,(FILE *)config.map_file);\n    break;\n  case lang_insert_statement_enum:\n    pcVar13 = "BEFORE";\n    if ((s->wild_statement).filenames_sorted == 0) {\n      pcVar13 = "AFTER";\n    }\n    minfo("INSERT %s %s\n",pcVar13,(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        plVar8 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar8 = constructor_list.head;\n      }\n      for (; plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n        print_statement(plVar8,os);\n      }\n    }\n    break;\n  default:\n    pcVar13 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf((FILE *)config.map_file,pcVar13,sVar2);\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._0_4_ = *(char **)&paVar20->vma;\n        print_dot._4_4_ = *(int *)((int)&paVar20->vma + 4);\n        sVar12 = strlen((s->output_section_statement).name);\n        if (0xe < sVar12) {\n          print_nl();\n          sVar12 = 0;\n        }\n        do {\n          print_space();\n          sVar12 = sVar12 + 1;\n        } while (sVar12 != 0x10);\n        uVar14 = *(uint *)((int)&paVar20->size + 4);\n        bVar15 = (byte)opb_shift & 0x1f;\n        uVar17 = uVar14 >> ((byte)opb_shift & 0x1f);\n        uVar18 = uVar17;\n        uVar14 = (uint)paVar20->size >> bVar15 | uVar14 << 0x20 - bVar15;\n        if ((opb_shift & 0x20) != 0) {\n          uVar18 = 0;\n          uVar14 = uVar17;\n        }\n        minfo("0x%V %W",(int)paVar20->vma,*(undefined4 *)((int)&paVar20->vma + 4),uVar14,uVar18);\n        iVar19 = *(int *)((int)&paVar20->lma + 4);\n        iVar9 = (int)paVar20->lma;\n        if (iVar19 != *(int *)((int)&paVar20->vma + 4) || (int)paVar20->vma != iVar9) {\n          pcVar13 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar13,iVar9,iVar19);\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_00097fd4 + 0x180),&print_dot);\n        }\n      }\n      print_nl();\n    }\n    for (plVar8 = (s->output_section_statement).children.head;\n        plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,&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._0_4_ = *(char **)&paVar20->vma;\n        print_dot._4_4_ = *(int *)((int)&paVar20->vma + 4);\n        sVar12 = strlen((s->output_section_statement).name);\n        if (0xe < sVar12) {\n          print_nl();\n          sVar12 = 0;\n        }\n        do {\n          print_space();\n          sVar12 = sVar12 + 1;\n        } while (sVar12 != 0x10);\n        uVar14 = *(uint *)((int)&paVar20->size + 4);\n        bVar15 = (byte)opb_shift & 0x1f;\n        uVar17 = uVar14 >> ((byte)opb_shift & 0x1f);\n        uVar18 = uVar17;\n        uVar14 = (uint)paVar20->size >> bVar15 | uVar14 << 0x20 - bVar15;\n        if ((opb_shift & 0x20) != 0) {\n          uVar18 = 0;\n          uVar14 = uVar17;\n        }\n        minfo("0x%V %W",(int)paVar20->vma,*(undefined4 *)((int)&paVar20->vma + 4),uVar14,uVar18);\n        iVar19 = *(int *)((int)&paVar20->lma + 4);\n        iVar9 = (int)paVar20->lma;\n        if (iVar19 != *(int *)((int)&paVar20->vma + 4) || (int)paVar20->vma != iVar9) {\n          pcVar13 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar13,iVar9,iVar19);\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_00097fd4 + 0x180),&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._0_4_ = *(char **)&paVar20->vma;\n        print_dot._4_4_ = *(int *)((int)&paVar20->vma + 4);\n        sVar12 = strlen((s->output_section_statement).name);\n        if (0xe < sVar12) {\n          print_nl();\n          sVar12 = 0;\n        }\n        do {\n          print_space();\n          sVar12 = sVar12 + 1;\n        } while (sVar12 != 0x10);\n        uVar14 = *(uint *)((int)&paVar20->size + 4);\n        bVar15 = (byte)opb_shift & 0x1f;\n        uVar17 = uVar14 >> ((byte)opb_shift & 0x1f);\n        uVar18 = uVar17;\n        uVar14 = (uint)paVar20->size >> bVar15 | uVar14 << 0x20 - bVar15;\n        if ((opb_shift & 0x20) != 0) {\n          uVar18 = 0;\n          uVar14 = uVar17;\n        }\n        minfo("0x%V %W",(int)paVar20->vma,*(undefined4 *)((int)&paVar20->vma + 4),uVar14,uVar18);\n        iVar19 = *(int *)((int)&paVar20->lma + 4);\n        iVar9 = (int)paVar20->lma;\n        if (iVar19 != *(int *)((int)&paVar20->vma + 4) || (int)paVar20->vma != iVar9) {\n          pcVar13 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar13,iVar9,iVar19);\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_00097fd4 + 0x180),&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._0_4_ = *(char **)&paVar20->vma;\n        print_dot._4_4_ = *(int *)((int)&paVar20->vma + 4);\n        sVar12 = strlen((s->output_section_statement).name);\n        if (0xe < sVar12) {\n          print_nl();\n          sVar12 = 0;\n        }\n        do {\n          print_space();\n          sVar12 = sVar12 + 1;\n        } while (sVar12 != 0x10);\n        uVar14 = *(uint *)((int)&paVar20->size + 4);\n        bVar15 = (byte)opb_shift & 0x1f;\n        uVar17 = uVar14 >> ((byte)opb_shift & 0x1f);\n        uVar18 = uVar17;\n        uVar14 = (uint)paVar20->size >> bVar15 | uVar14 << 0x20 - bVar15;\n        if ((opb_shift & 0x20) != 0) {\n          uVar18 = 0;\n          uVar14 = uVar17;\n        }\n        minfo("0x%V %W",(int)paVar20->vma,*(undefined4 *)((int)&paVar20->vma + 4),uVar14,uVar18);\n        iVar19 = *(int *)((int)&paVar20->lma + 4);\n        iVar9 = (int)paVar20->lma;\n        if (iVar19 != *(int *)((int)&paVar20->vma + 4) || (int)paVar20->vma != iVar9) {\n          pcVar13 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar13,iVar9,iVar19);\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_00097fd4 + 0x180),&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._0_4_ = *(char **)&paVar20->vma;\n        print_dot._4_4_ = *(int *)((int)&paVar20->vma + 4);\n        sVar12 = strlen((s->output_section_statement).name);\n        if (0xe < sVar12) {\n          print_nl();\n          sVar12 = 0;\n        }\n        do {\n          print_space();\n          sVar12 = sVar12 + 1;\n        } while (sVar12 != 0x10);\n        uVar14 = *(uint *)((int)&paVar20->size + 4);\n        bVar15 = (byte)opb_shift & 0x1f;\n        uVar17 = uVar14 >> ((byte)opb_shift & 0x1f);\n        uVar18 = uVar17;\n        uVar14 = (uint)paVar20->size >> bVar15 | uVar14 << 0x20 - bVar15;\n        if ((opb_shift & 0x20) != 0) {\n          uVar18 = 0;\n          uVar14 = uVar17;\n        }\n        minfo("0x%V %W",(int)paVar20->vma,*(undefined4 *)((int)&paVar20->vma + 4),uVar14,uVar18);\n        iVar19 = *(int *)((int)&paVar20->lma + 4);\n        iVar9 = (int)paVar20->lma;\n        if (iVar19 != *(int *)((int)&paVar20->vma + 4) || (int)paVar20->vma != iVar9) {\n          pcVar13 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar13,iVar9,iVar19);\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_00097fd4 + 0x180),&print_dot);\n        }\n      }" { (expression_statement "print_dot._0_4_ = *(char **)&paVar20->vma;" (assignment_expression "print_dot._0_4_ = *(char **)&paVar20->vma" (field_expression "print_dot._0_4_" identifier . field_identifier) = (pointer_expression "*(char **)&paVar20->vma" * (cast_expression "(char **)&paVar20->vma" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar20->vma" & (field_expression "paVar20->vma" identifier -> field_identifier))))) ;) (expression_statement "print_dot._4_4_ = *(int *)((int)&paVar20->vma + 4);" (assignment_expression "print_dot._4_4_ = *(int *)((int)&paVar20->vma + 4)" (field_expression "print_dot._4_4_" identifier . field_identifier) = (pointer_expression "*(int *)((int)&paVar20->vma + 4)" * (cast_expression "(int *)((int)&paVar20->vma + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar20->vma + 4)" ( (binary_expression "(int)&paVar20->vma + 4" (cast_expression "(int)&paVar20->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar20->vma" & (field_expression "paVar20->vma" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "sVar12 = strlen((s->output_section_statement).name);" (assignment_expression "sVar12 = 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 < sVar12) {\n          print_nl();\n          sVar12 = 0;\n        }" if (parenthesized_expression "(0xe < sVar12)" ( (binary_expression "0xe < sVar12" number_literal < identifier) )) (compound_statement "{\n          print_nl();\n          sVar12 = 0;\n        }" { (expression_statement "print_nl();" (call_expression "print_nl()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar12 = 0;" (assignment_expression "sVar12 = 0" identifier = number_literal) ;) })) (do_statement "do {\n          print_space();\n          sVar12 = sVar12 + 1;\n        } while (sVar12 != 0x10);" do (compound_statement "{\n          print_space();\n          sVar12 = sVar12 + 1;\n        }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar12 = sVar12 + 1;" (assignment_expression "sVar12 = sVar12 + 1" identifier = (binary_expression "sVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar12 != 0x10)" ( (binary_expression "sVar12 != 0x10" identifier != number_literal) )) ;) (expression_statement "uVar14 = *(uint *)((int)&paVar20->size + 4);" (assignment_expression "uVar14 = *(uint *)((int)&paVar20->size + 4)" identifier = (pointer_expression "*(uint *)((int)&paVar20->size + 4)" * (cast_expression "(uint *)((int)&paVar20->size + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar20->size + 4)" ( (binary_expression "(int)&paVar20->size + 4" (cast_expression "(int)&paVar20->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar20->size" & (field_expression "paVar20->size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "bVar15 = (byte)opb_shift & 0x1f;" (assignment_expression "bVar15 = (byte)opb_shift & 0x1f" identifier = (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar17 = uVar14 >> ((byte)opb_shift & 0x1f);" (assignment_expression "uVar17 = uVar14 >> ((byte)opb_shift & 0x1f)" identifier = (binary_expression "uVar14 >> ((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) )))) ;) (expression_statement "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" identifier = identifier) ;) (expression_statement "uVar14 = (uint)paVar20->size >> bVar15 | uVar14 << 0x20 - bVar15;" (assignment_expression "uVar14 = (uint)paVar20->size >> bVar15 | uVar14 << 0x20 - bVar15" identifier = (binary_expression "(uint)paVar20->size >> bVar15 | uVar14 << 0x20 - bVar15" (binary_expression "(uint)paVar20->size >> bVar15" (cast_expression "(uint)paVar20->size" ( (type_descriptor "uint" type_identifier) ) (field_expression "paVar20->size" identifier -> field_identifier)) >> identifier) | (binary_expression "uVar14 << 0x20 - bVar15" identifier << (binary_expression "0x20 - bVar15" number_literal - identifier)))) ;) (if_statement "if ((opb_shift & 0x20) != 0) {\n          uVar18 = 0;\n          uVar14 = uVar17;\n        }" if (parenthesized_expression "((opb_shift & 0x20) != 0)" ( (binary_expression "(opb_shift & 0x20) != 0" (parenthesized_expression "(opb_shift & 0x20)" ( (binary_expression "opb_shift & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar18 = 0;\n          uVar14 = uVar17;\n        }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = uVar17;" (assignment_expression "uVar14 = uVar17" identifier = identifier) ;) })) (expression_statement "minfo("0x%V %W",(int)paVar20->vma,*(undefined4 *)((int)&paVar20->vma + 4),uVar14,uVar18);" (call_expression "minfo("0x%V %W",(int)paVar20->vma,*(undefined4 *)((int)&paVar20->vma + 4),uVar14,uVar18)" identifier (argument_list "("0x%V %W",(int)paVar20->vma,*(undefined4 *)((int)&paVar20->vma + 4),uVar14,uVar18)" ( (string_literal ""0x%V %W"" " string_content ") , (cast_expression "(int)paVar20->vma" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar20->vma" identifier -> field_identifier)) , (pointer_expression "*(undefined4 *)((int)&paVar20->vma + 4)" * (cast_expression "(undefined4 *)((int)&paVar20->vma + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar20->vma + 4)" ( (binary_expression "(int)&paVar20->vma + 4" (cast_expression "(int)&paVar20->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar20->vma" & (field_expression "paVar20->vma" identifier -> field_identifier))) + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "iVar19 = *(int *)((int)&paVar20->lma + 4);" (assignment_expression "iVar19 = *(int *)((int)&paVar20->lma + 4)" identifier = (pointer_expression "*(int *)((int)&paVar20->lma + 4)" * (cast_expression "(int *)((int)&paVar20->lma + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar20->lma + 4)" ( (binary_expression "(int)&paVar20->lma + 4" (cast_expression "(int)&paVar20->lma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar20->lma" & (field_expression "paVar20->lma" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "iVar9 = (int)paVar20->lma;" (assignment_expression "iVar9 = (int)paVar20->lma" identifier = (cast_expression "(int)paVar20->lma" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar20->lma" identifier -> field_identifier))) ;) (if_statement "if (iVar19 != *(int *)((int)&paVar20->vma + 4) || (int)paVar20->vma != iVar9) {\n          pcVar13 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar13,iVar9,iVar19);\n        }" if (parenthesized_expression "(iVar19 != *(int *)((int)&paVar20->vma + 4) || (int)paVar20->vma != iVar9)" ( (binary_expression "iVar19 != *(int *)((int)&paVar20->vma + 4) || (int)paVar20->vma != iVar9" (binary_expression "iVar19 != *(int *)((int)&paVar20->vma + 4)" identifier != (pointer_expression "*(int *)((int)&paVar20->vma + 4)" * (cast_expression "(int *)((int)&paVar20->vma + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar20->vma + 4)" ( (binary_expression "(int)&paVar20->vma + 4" (cast_expression "(int)&paVar20->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar20->vma" & (field_expression "paVar20->vma" identifier -> field_identifier))) + number_literal) ))))) || (binary_expression "(int)paVar20->vma != iVar9" (cast_expression "(int)paVar20->vma" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar20->vma" identifier -> field_identifier)) != identifier)) )) (compound_statement "{\n          pcVar13 = (char *)dcgettext(0," load address 0x%V",5);\n          minfo(pcVar13,iVar9,iVar19);\n        }" { (expression_statement "pcVar13 = (char *)dcgettext(0," load address 0x%V",5);" (assignment_expression "pcVar13 = (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(pcVar13,iVar9,iVar19);" (call_expression "minfo(pcVar13,iVar9,iVar19)" identifier (argument_list "(pcVar13,iVar9,iVar19)" ( identifier , 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_00097fd4 + 0x180),&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_00097fd4 + 0x180),&print_dot);\n        }" { (expression_statement "exp_fold_tree((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_00097fd4 + 0x180),&print_dot);" (call_expression "exp_fold_tree((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_00097fd4 + 0x180),&print_dot)" identifier (argument_list "((s->output_section_statement).update_dot_tree,\n                        (asection *)(PTR__bfd_std_section_00097fd4 + 0x180),&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_00097fd4 + 0x180)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00097fd4 + 0x180)" ( (binary_expression "PTR__bfd_std_section_00097fd4 + 0x180" identifier + number_literal) ))) , (pointer_expression "&print_dot" & identifier) ))) ;) })) })) (expression_statement "print_nl();" (call_expression "print_nl()" identifier (argument_list "()" ( ))) ;) })) (for_statement "for (plVar8 = (s->output_section_statement).children.head;\n        plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,&s->output_section_statement);\n    }" for ( (assignment_expression "plVar8 = (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 "plVar8 != (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 "plVar8 = (plVar8->header).next" identifier = (field_expression "(plVar8->header).next" (parenthesized_expression "(plVar8->header)" ( (field_expression "plVar8->header" identifier -> field_identifier) )) . field_identifier)) ) (compound_statement "{\n      print_statement(plVar8,&s->output_section_statement);\n    }" { (expression_statement "print_statement(plVar8,&s->output_section_statement);" (call_expression "print_statement(plVar8,&s->output_section_statement)" identifier (argument_list "(plVar8,&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    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    paVar10 = (s->input_section).section;\n    tree = (etree_type *)paVar10->prev;\n    paVar20 = os->bfd_section;\n    if (paVar10->next == (bfd_section *)0x8) {\n      bVar22 = false;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\nLAB_000201d5:\n      exp_fold_tree(tree,paVar20,&print_dot);\n      iVar19 = expld.result.value._4_4_;\n      pcVar13 = (char *)expld.result.value;\n      paVar10 = (s->input_section).section;\n      if (expld.result.valid_p == 0) goto LAB_0001f87e;\n      if (paVar10->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_00020228:\n          iVar19 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +\n                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma);\n          pcVar13 = (char *)expld.result.value + (int)(expld.result.section)->vma;\n        }\n        minfo("0x%V",pcVar13,iVar19);\n        if (bVar22) {\nLAB_0002025d:\n          print_dot._0_4_ = pcVar13;\n          print_dot._4_4_ = iVar19;\n        }\n      }\n      else {\n        if (bVar22) {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n          goto LAB_0002025d;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar19 = bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1);\n          if (iVar19 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            iVar9 = *(int *)(iVar19 + 0x14);\n            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);\n            minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n        }\n      }\n    }\n    else {\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar22 = true;\n      }\n      else {\n        bVar22 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar10->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\n      if (paVar10->next != (bfd_section *)0x5) goto LAB_000201d5;\n      expld.result.valid_p = 0;\nLAB_0001f87e:\n      if (paVar10->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n      minfo("        ");\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 "iVar19 = 0x10;" (assignment_expression "iVar19 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);" do (compound_statement "{\n      print_space();\n      iVar19 = iVar19 + -1;\n    }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) ;) (expression_statement "paVar10 = (s->input_section).section;" (assignment_expression "paVar10 = (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 *)paVar10->prev;" (assignment_expression "tree = (etree_type *)paVar10->prev" identifier = (cast_expression "(etree_type *)paVar10->prev" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar10->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 (paVar10->next == (bfd_section *)0x8) {\n      bVar22 = false;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\nLAB_000201d5:\n      exp_fold_tree(tree,paVar20,&print_dot);\n      iVar19 = expld.result.value._4_4_;\n      pcVar13 = (char *)expld.result.value;\n      paVar10 = (s->input_section).section;\n      if (expld.result.valid_p == 0) goto LAB_0001f87e;\n      if (paVar10->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_00020228:\n          iVar19 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +\n                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma);\n          pcVar13 = (char *)expld.result.value + (int)(expld.result.section)->vma;\n        }\n        minfo("0x%V",pcVar13,iVar19);\n        if (bVar22) {\nLAB_0002025d:\n          print_dot._0_4_ = pcVar13;\n          print_dot._4_4_ = iVar19;\n        }\n      }\n      else {\n        if (bVar22) {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n          goto LAB_0002025d;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar19 = bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1);\n          if (iVar19 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            iVar9 = *(int *)(iVar19 + 0x14);\n            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);\n            minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n        }\n      }\n    }\n    else {\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar22 = true;\n      }\n      else {\n        bVar22 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar10->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\n      if (paVar10->next != (bfd_section *)0x5) goto LAB_000201d5;\n      expld.result.valid_p = 0;\nLAB_0001f87e:\n      if (paVar10->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n      minfo("        ");\n    }" if (parenthesized_expression "(paVar10->next == (bfd_section *)0x8)" ( (binary_expression "paVar10->next == (bfd_section *)0x8" (field_expression "paVar10->next" identifier -> field_identifier) == (cast_expression "(bfd_section *)0x8" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      bVar22 = false;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\nLAB_000201d5:\n      exp_fold_tree(tree,paVar20,&print_dot);\n      iVar19 = expld.result.value._4_4_;\n      pcVar13 = (char *)expld.result.value;\n      paVar10 = (s->input_section).section;\n      if (expld.result.valid_p == 0) goto LAB_0001f87e;\n      if (paVar10->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_00020228:\n          iVar19 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +\n                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma);\n          pcVar13 = (char *)expld.result.value + (int)(expld.result.section)->vma;\n        }\n        minfo("0x%V",pcVar13,iVar19);\n        if (bVar22) {\nLAB_0002025d:\n          print_dot._0_4_ = pcVar13;\n          print_dot._4_4_ = iVar19;\n        }\n      }\n      else {\n        if (bVar22) {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n          goto LAB_0002025d;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar19 = bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1);\n          if (iVar19 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            iVar9 = *(int *)(iVar19 + 0x14);\n            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);\n            minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n        }\n      }\n    }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (if_statement "if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\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_00097fd4 + 0x180);\n      }" { (expression_statement "paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);" (assignment_expression "paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180)" identifier = (cast_expression "(asection *)(PTR__bfd_std_section_00097fd4 + 0x180)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00097fd4 + 0x180)" ( (binary_expression "PTR__bfd_std_section_00097fd4 + 0x180" identifier + number_literal) )))) ;) })) (labeled_statement "LAB_000201d5:\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 "iVar19 = expld.result.value._4_4_;" (assignment_expression "iVar19 = expld.result.value._4_4_" identifier = (field_expression "expld.result.value._4_4_" (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar13 = (char *)expld.result.value;" (assignment_expression "pcVar13 = (char *)expld.result.value" identifier = (cast_expression "(char *)expld.result.value" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier))) ;) (expression_statement "paVar10 = (s->input_section).section;" (assignment_expression "paVar10 = (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_0001f87e;" 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_0001f87e;" goto statement_identifier ;)) (if_statement "if (paVar10->next == (bfd_section *)0x8) {\n        if (expld.result.section != (asection *)0x0) {\nLAB_00020228:\n          iVar19 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +\n                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma);\n          pcVar13 = (char *)expld.result.value + (int)(expld.result.section)->vma;\n        }\n        minfo("0x%V",pcVar13,iVar19);\n        if (bVar22) {\nLAB_0002025d:\n          print_dot._0_4_ = pcVar13;\n          print_dot._4_4_ = iVar19;\n        }\n      }\n      else {\n        if (bVar22) {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n          goto LAB_0002025d;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar19 = bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1);\n          if (iVar19 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            iVar9 = *(int *)(iVar19 + 0x14);\n            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);\n            minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n        }\n      }" if (parenthesized_expression "(paVar10->next == (bfd_section *)0x8)" ( (binary_expression "paVar10->next == (bfd_section *)0x8" (field_expression "paVar10->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_00020228:\n          iVar19 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +\n                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma);\n          pcVar13 = (char *)expld.result.value + (int)(expld.result.section)->vma;\n        }\n        minfo("0x%V",pcVar13,iVar19);\n        if (bVar22) {\nLAB_0002025d:\n          print_dot._0_4_ = pcVar13;\n          print_dot._4_4_ = iVar19;\n        }\n      }" { (if_statement "if (expld.result.section != (asection *)0x0) {\nLAB_00020228:\n          iVar19 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +\n                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma);\n          pcVar13 = (char *)expld.result.value + (int)(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_00020228:\n          iVar19 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +\n                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma);\n          pcVar13 = (char *)expld.result.value + (int)(expld.result.section)->vma;\n        }" { (labeled_statement "LAB_00020228:\n          iVar19 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +\n                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma);" statement_identifier : (expression_statement "iVar19 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +\n                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma);" (assignment_expression "iVar19 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +\n                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma)" identifier = (binary_expression "expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +\n                   (uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma)" (binary_expression "expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4)" (field_expression "expld.result.value._4_4_" (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier) . field_identifier) + (pointer_expression "*(int *)((int)&(expld.result.section)->vma + 4)" * (cast_expression "(int *)((int)&(expld.result.section)->vma + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(expld.result.section)->vma + 4)" ( (binary_expression "(int)&(expld.result.section)->vma + 4" (cast_expression "(int)&(expld.result.section)->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(expld.result.section)->vma" & (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))) + number_literal) ))))) + (cast_expression "(uint)CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma)" identifier (argument_list "((uint)(char *)expld.result.value,(uint)(expld.result.section)->vma)" ( (cast_expression "(uint)(char *)expld.result.value" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char *)expld.result.value" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier))) , (field_expression "(uint)(expld.result.section)->vma" (call_expression "(uint)(expld.result.section)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(expld.result.section)" ( (field_expression "expld.result.section" (field_expression "expld.result" identifier . field_identifier) . field_identifier) ))) -> field_identifier) )))))) ;)) (expression_statement "pcVar13 = (char *)expld.result.value + (int)(expld.result.section)->vma;" (assignment_expression "pcVar13 = (char *)expld.result.value + (int)(expld.result.section)->vma" identifier = (binary_expression "(char *)expld.result.value + (int)(expld.result.section)->vma" (cast_expression "(char *)expld.result.value" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier)) + (cast_expression "(int)(expld.result.section)->vma" ( (type_descriptor "int" primitive_type) ) (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",pcVar13,iVar19);" (call_expression "minfo("0x%V",pcVar13,iVar19)" identifier (argument_list "("0x%V",pcVar13,iVar19)" ( (string_literal ""0x%V"" " string_content ") , identifier , identifier ))) ;) (if_statement "if (bVar22) {\nLAB_0002025d:\n          print_dot._0_4_ = pcVar13;\n          print_dot._4_4_ = iVar19;\n        }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\nLAB_0002025d:\n          print_dot._0_4_ = pcVar13;\n          print_dot._4_4_ = iVar19;\n        }" { (labeled_statement "LAB_0002025d:\n          print_dot._0_4_ = pcVar13;" statement_identifier : (expression_statement "print_dot._0_4_ = pcVar13;" (assignment_expression "print_dot._0_4_ = pcVar13" (field_expression "print_dot._0_4_" identifier . field_identifier) = identifier) ;)) (expression_statement "print_dot._4_4_ = iVar19;" (assignment_expression "print_dot._4_4_ = iVar19" (field_expression "print_dot._4_4_" identifier . field_identifier) = identifier) ;) })) }) (else_clause "else {\n        if (bVar22) {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n          goto LAB_0002025d;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar19 = bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1);\n          if (iVar19 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            iVar9 = *(int *)(iVar19 + 0x14);\n            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);\n            minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n        }\n      }" else (compound_statement "{\n        if (bVar22) {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n          goto LAB_0002025d;\n        }\n        if (expld.assign_name == (char *)0x0) {\n          iVar19 = bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1);\n          if (iVar19 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            iVar9 = *(int *)(iVar19 + 0x14);\n            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);\n            minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n        }\n      }" { (if_statement "if (bVar22) {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n          goto LAB_0002025d;\n        }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n          goto LAB_0002025d;\n        }" { (if_statement "if (expld.result.section != (asection *)0x0) goto LAB_00020228;" 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_00020228;" goto statement_identifier ;)) (expression_statement "minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);" (call_expression "minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_)" identifier (argument_list "("0x%V",(char *)expld.result.value,expld.result.value._4_4_)" ( (string_literal ""0x%V"" " string_content ") , (cast_expression "(char *)expld.result.value" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier)) , (field_expression "expld.result.value._4_4_" (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier) . field_identifier) ))) ;) (goto_statement "goto LAB_0002025d;" goto statement_identifier ;) })) (if_statement "if (expld.assign_name == (char *)0x0) {\n          iVar19 = bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1);\n          if (iVar19 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            iVar9 = *(int *)(iVar19 + 0x14);\n            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);\n            minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));\n          }\n        }\n        else {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\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          iVar19 = bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1);\n          if (iVar19 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            iVar9 = *(int *)(iVar19 + 0x14);\n            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);\n            minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));\n          }\n        }" { (expression_statement "iVar19 = bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1);" (assignment_expression "iVar19 = bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(link_info.hash,paVar10->prev,0,0,1)" identifier (argument_list "(link_info.hash,paVar10->prev,0,0,1)" ( (field_expression "link_info.hash" identifier . field_identifier) , (field_expression "paVar10->prev" identifier -> field_identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar19 == 0) {\n            minfo("[unresolved]");\n          }\n          else {\n            iVar9 = *(int *)(iVar19 + 0x14);\n            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);\n            minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));\n          }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 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            iVar9 = *(int *)(iVar19 + 0x14);\n            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);\n            minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));\n          }" else (compound_statement "{\n            iVar9 = *(int *)(iVar19 + 0x14);\n            uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);\n            minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));\n          }" { (expression_statement "iVar9 = *(int *)(iVar19 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar19 + 0x14)" identifier = (pointer_expression "*(int *)(iVar19 + 0x14)" * (cast_expression "(int *)(iVar19 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x14)" ( (binary_expression "iVar19 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c);" (assignment_expression "uVar14 = *(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c)" identifier = (binary_expression "*(uint *)(iVar19 + 0x18) + *(uint *)(iVar9 + 0x4c)" (pointer_expression "*(uint *)(iVar19 + 0x18)" * (cast_expression "(uint *)(iVar19 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x18)" ( (binary_expression "iVar19 + 0x18" identifier + number_literal) )))) + (pointer_expression "*(uint *)(iVar9 + 0x4c)" * (cast_expression "(uint *)(iVar9 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4c)" ( (binary_expression "iVar9 + 0x4c" identifier + number_literal) )))))) ;) (expression_statement "puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c);" (assignment_expression "puVar1 = (uint *)(*(int *)(iVar9 + 0x54) + 0x1c)" identifier = (cast_expression "(uint *)(*(int *)(iVar9 + 0x54) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x54) + 0x1c)" ( (binary_expression "*(int *)(iVar9 + 0x54) + 0x1c" (pointer_expression "*(int *)(iVar9 + 0x54)" * (cast_expression "(int *)(iVar9 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x54)" ( (binary_expression "iVar9 + 0x54" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1));" (call_expression "minfo("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1))" identifier (argument_list "("[0x%V]",uVar14 + *puVar1,\n                  *(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1))" ( (string_literal ""[0x%V]"" " string_content ") , (binary_expression "uVar14 + *puVar1" identifier + (pointer_expression "*puVar1" * identifier)) , (binary_expression "*(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20) + (uint)CARRY4(uVar14,*puVar1)" (binary_expression "*(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c)) +\n                  *(int *)(*(int *)(iVar9 + 0x54) + 0x20)" (binary_expression "*(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50) +\n                  (uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c))" (binary_expression "*(int *)(iVar19 + 0x1c) + *(int *)(iVar9 + 0x50)" (pointer_expression "*(int *)(iVar19 + 0x1c)" * (cast_expression "(int *)(iVar19 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x1c)" ( (binary_expression "iVar19 + 0x1c" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar9 + 0x50)" * (cast_expression "(int *)(iVar9 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x50)" ( (binary_expression "iVar9 + 0x50" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c))" identifier (argument_list "(*(uint *)(iVar19 + 0x18),*(uint *)(iVar9 + 0x4c))" ( (pointer_expression "*(uint *)(iVar19 + 0x18)" * (cast_expression "(uint *)(iVar19 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x18)" ( (binary_expression "iVar19 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(uint *)(iVar9 + 0x4c)" * (cast_expression "(uint *)(iVar9 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4c)" ( (binary_expression "iVar9 + 0x4c" identifier + number_literal) )))) ))))) + (pointer_expression "*(int *)(*(int *)(iVar9 + 0x54) + 0x20)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x54) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x54) + 0x20)" ( (binary_expression "*(int *)(iVar9 + 0x54) + 0x20" (pointer_expression "*(int *)(iVar9 + 0x54)" * (cast_expression "(int *)(iVar9 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x54)" ( (binary_expression "iVar9 + 0x54" identifier + number_literal) )))) + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar14,*puVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14,*puVar1)" identifier (argument_list "(uVar14,*puVar1)" ( identifier , (pointer_expression "*puVar1" * identifier) ))))) ))) ;) }))) }) (else_clause "else {\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n        }" else (compound_statement "{\n          if (expld.result.section != (asection *)0x0) goto LAB_00020228;\n          minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);\n        }" { (if_statement "if (expld.result.section != (asection *)0x0) goto LAB_00020228;" 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_00020228;" goto statement_identifier ;)) (expression_statement "minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_);" (call_expression "minfo("0x%V",(char *)expld.result.value,expld.result.value._4_4_)" identifier (argument_list "("0x%V",(char *)expld.result.value,expld.result.value._4_4_)" ( (string_literal ""0x%V"" " string_content ") , (cast_expression "(char *)expld.result.value" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier)) , (field_expression "expld.result.value._4_4_" (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier) . field_identifier) ))) ;) }))) }))) }) (else_clause "else {\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar22 = true;\n      }\n      else {\n        bVar22 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar10->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\n      if (paVar10->next != (bfd_section *)0x5) goto LAB_000201d5;\n      expld.result.valid_p = 0;\nLAB_0001f87e:\n      if (paVar10->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n      minfo("        ");\n    }" else (compound_statement "{\n      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar22 = true;\n      }\n      else {\n        bVar22 = false;\n        expld.assign_name = (char *)tree;\n      }\n      tree = (etree_type *)paVar10->flags;\n      if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\n      }\n      if (paVar10->next != (bfd_section *)0x5) goto LAB_000201d5;\n      expld.result.valid_p = 0;\nLAB_0001f87e:\n      if (paVar10->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }\n      minfo("        ");\n    }" { (if_statement "if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {\n        bVar22 = true;\n      }\n      else {\n        bVar22 = 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        bVar22 = true;\n      }" { (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) }) (else_clause "else {\n        bVar22 = false;\n        expld.assign_name = (char *)tree;\n      }" else (compound_statement "{\n        bVar22 = false;\n        expld.assign_name = (char *)tree;\n      }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = 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 *)paVar10->flags;" (assignment_expression "tree = (etree_type *)paVar10->flags" identifier = (cast_expression "(etree_type *)paVar10->flags" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar10->flags" identifier -> field_identifier))) ;) (if_statement "if (paVar20 == (asection *)0x0) {\n        paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);\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_00097fd4 + 0x180);\n      }" { (expression_statement "paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180);" (assignment_expression "paVar20 = (asection *)(PTR__bfd_std_section_00097fd4 + 0x180)" identifier = (cast_expression "(asection *)(PTR__bfd_std_section_00097fd4 + 0x180)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00097fd4 + 0x180)" ( (binary_expression "PTR__bfd_std_section_00097fd4 + 0x180" identifier + number_literal) )))) ;) })) (if_statement "if (paVar10->next != (bfd_section *)0x5) goto LAB_000201d5;" if (parenthesized_expression "(paVar10->next != (bfd_section *)0x5)" ( (binary_expression "paVar10->next != (bfd_section *)0x5" (field_expression "paVar10->next" identifier -> field_identifier) != (cast_expression "(bfd_section *)0x5" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000201d5;" 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_0001f87e:\n      if (paVar10->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }" statement_identifier : (if_statement "if (paVar10->next == (bfd_section *)0x5) {\n        minfo("[!provide]");\n      }\n      else {\n        minfo("*undef*   ");\n      }" if (parenthesized_expression "(paVar10->next == (bfd_section *)0x5)" ( (binary_expression "paVar10->next == (bfd_section *)0x5" (field_expression "paVar10->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 "minfo("        ");" (call_expression "minfo("        ")" identifier (argument_list "("        ")" ( (string_literal ""        "" " 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    pcVar11 = (s->wild_statement).filename;\n    if (pcVar11 == (char *)0x0) {\n      return;\n    }\n    if (((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->lma & 0x2000000000000) != 0)) {\n      return;\n    }\n    pcVar13 = "LOAD %s\n";\n    goto LAB_0001fc3c;" case identifier : (expression_statement "pcVar11 = (s->wild_statement).filename;" (assignment_expression "pcVar11 = (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 (pcVar11 == (char *)0x0) {\n      return;\n    }" if (parenthesized_expression "(pcVar11 == (char *)0x0)" ( (binary_expression "pcVar11 == (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)->lma & 0x2000000000000) != 0)) {\n      return;\n    }" if (parenthesized_expression "(((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->lma & 0x2000000000000) != 0))" ( (binary_expression "((s->reloc_statement).section != (asection *)0x0) &&\n       ((((s->reloc_statement).section)->lma & 0x2000000000000) != 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)->lma & 0x2000000000000) != 0)" ( (binary_expression "(((s->reloc_statement).section)->lma & 0x2000000000000) != 0" (parenthesized_expression "(((s->reloc_statement).section)->lma & 0x2000000000000)" ( (binary_expression "((s->reloc_statement).section)->lma & 0x2000000000000" (field_expression "((s->reloc_statement).section)->lma" (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 "pcVar13 = "LOAD %s\n";" (assignment_expression "pcVar13 = "LOAD %s\n"" identifier = (string_literal ""LOAD %s\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0001fc3c;" goto statement_identifier ;)) (case_statement "case lang_address_statement_enum:\n    pcVar13 = (s->wild_statement).filename;\n    pcVar11 = (char *)dcgettext(0,"Address of section %s set to ",5);\n    minfo(pcVar11,pcVar13);\n    exp_print_tree((s->data_statement).exp);\n    print_nl();\n    break;" case identifier : (expression_statement "pcVar13 = (s->wild_statement).filename;" (assignment_expression "pcVar13 = (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 "pcVar11 = (char *)dcgettext(0,"Address of section %s set to ",5);" (assignment_expression "pcVar11 = (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(pcVar11,pcVar13);" (call_expression "minfo(pcVar11,pcVar13)" identifier (argument_list "(pcVar11,pcVar13)" ( 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      pcVar13 = ((s->wild_statement).exclude_name_list)->name;\n      minfo("EXCLUDE_FILE(%s",pcVar13);\n      for (pnVar3 = ((s->wild_statement).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n          pnVar3 = pnVar3->next) {\n        pcVar13 = pnVar3->name;\n        minfo(" %s",pcVar13);\n      }\n      minfo(") ",pcVar13);\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 (pwVar4 = (s->wild_statement).section_list; pwVar4 != (wildcard_list *)0x0;\n        pwVar4 = pwVar4->next) {\n      switch((pwVar4->spec).sorted) {\n      default:\n        iVar19 = 0;\n        break;\n      case by_name:\n        iVar19 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar19 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar19 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar19 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        minfo("SORT_NONE(");\n        iVar19 = 1;\n        break;\n      case by_init_priority:\n        iVar19 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }\n      pnVar3 = (pwVar4->spec).exclude_name_list;\n      if (pnVar3 != (name_list *)0x0) {\n        pcVar13 = pnVar3->name;\n        minfo("EXCLUDE_FILE(%s",pcVar13);\n        for (pnVar3 = ((pwVar4->spec).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n            pnVar3 = pnVar3->next) {\n          pcVar13 = pnVar3->name;\n          minfo(" %s",pcVar13);\n        }\n        minfo(") ",pcVar13);\n      }\n      pcVar13 = (pwVar4->spec).name;\n      if (pcVar13 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar13);\n      }\n      if ((iVar19 != 0) && (minfo(")"), iVar19 != 1)) {\n        minfo(")");\n      }\n      if (pwVar4->next == (wildcard_list *)0x0) break;\n      minfo(" ");\n    }\n    minfo(")");\n    print_nl();\n    for (plVar8 = (s->wild_statement).children.head; plVar8 != (lang_statement_union_type *)0x0;\n        plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,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      pcVar13 = ((s->wild_statement).exclude_name_list)->name;\n      minfo("EXCLUDE_FILE(%s",pcVar13);\n      for (pnVar3 = ((s->wild_statement).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n          pnVar3 = pnVar3->next) {\n        pcVar13 = pnVar3->name;\n        minfo(" %s",pcVar13);\n      }\n      minfo(") ",pcVar13);\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      pcVar13 = ((s->wild_statement).exclude_name_list)->name;\n      minfo("EXCLUDE_FILE(%s",pcVar13);\n      for (pnVar3 = ((s->wild_statement).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n          pnVar3 = pnVar3->next) {\n        pcVar13 = pnVar3->name;\n        minfo(" %s",pcVar13);\n      }\n      minfo(") ",pcVar13);\n    }" { (expression_statement "pcVar13 = ((s->wild_statement).exclude_name_list)->name;" (assignment_expression "pcVar13 = ((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",pcVar13);" (call_expression "minfo("EXCLUDE_FILE(%s",pcVar13)" identifier (argument_list "("EXCLUDE_FILE(%s",pcVar13)" ( (string_literal ""EXCLUDE_FILE(%s"" " string_content ") , identifier ))) ;) (for_statement "for (pnVar3 = ((s->wild_statement).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n          pnVar3 = pnVar3->next) {\n        pcVar13 = pnVar3->name;\n        minfo(" %s",pcVar13);\n      }" for ( (assignment_expression "pnVar3 = ((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 "pnVar3 != (name_list *)0x0" identifier != (cast_expression "(name_list *)0x0" ( (type_descriptor "name_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pnVar3 = pnVar3->next" identifier = (field_expression "pnVar3->next" identifier -> field_identifier)) ) (compound_statement "{\n        pcVar13 = pnVar3->name;\n        minfo(" %s",pcVar13);\n      }" { (expression_statement "pcVar13 = pnVar3->name;" (assignment_expression "pcVar13 = pnVar3->name" identifier = (field_expression "pnVar3->name" identifier -> field_identifier)) ;) (expression_statement "minfo(" %s",pcVar13);" (call_expression "minfo(" %s",pcVar13)" identifier (argument_list "(" %s",pcVar13)" ( (string_literal "" %s"" " string_content ") , identifier ))) ;) })) (expression_statement "minfo(") ",pcVar13);" (call_expression "minfo(") ",pcVar13)" identifier (argument_list "(") ",pcVar13)" ( (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 (pwVar4 = (s->wild_statement).section_list; pwVar4 != (wildcard_list *)0x0;\n        pwVar4 = pwVar4->next) {\n      switch((pwVar4->spec).sorted) {\n      default:\n        iVar19 = 0;\n        break;\n      case by_name:\n        iVar19 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar19 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar19 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar19 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        minfo("SORT_NONE(");\n        iVar19 = 1;\n        break;\n      case by_init_priority:\n        iVar19 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }\n      pnVar3 = (pwVar4->spec).exclude_name_list;\n      if (pnVar3 != (name_list *)0x0) {\n        pcVar13 = pnVar3->name;\n        minfo("EXCLUDE_FILE(%s",pcVar13);\n        for (pnVar3 = ((pwVar4->spec).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n            pnVar3 = pnVar3->next) {\n          pcVar13 = pnVar3->name;\n          minfo(" %s",pcVar13);\n        }\n        minfo(") ",pcVar13);\n      }\n      pcVar13 = (pwVar4->spec).name;\n      if (pcVar13 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar13);\n      }\n      if ((iVar19 != 0) && (minfo(")"), iVar19 != 1)) {\n        minfo(")");\n      }\n      if (pwVar4->next == (wildcard_list *)0x0) break;\n      minfo(" ");\n    }" for ( (assignment_expression "pwVar4 = (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 "pwVar4 != (wildcard_list *)0x0" identifier != (cast_expression "(wildcard_list *)0x0" ( (type_descriptor "wildcard_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pwVar4 = pwVar4->next" identifier = (field_expression "pwVar4->next" identifier -> field_identifier)) ) (compound_statement "{\n      switch((pwVar4->spec).sorted) {\n      default:\n        iVar19 = 0;\n        break;\n      case by_name:\n        iVar19 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar19 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar19 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar19 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        minfo("SORT_NONE(");\n        iVar19 = 1;\n        break;\n      case by_init_priority:\n        iVar19 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }\n      pnVar3 = (pwVar4->spec).exclude_name_list;\n      if (pnVar3 != (name_list *)0x0) {\n        pcVar13 = pnVar3->name;\n        minfo("EXCLUDE_FILE(%s",pcVar13);\n        for (pnVar3 = ((pwVar4->spec).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n            pnVar3 = pnVar3->next) {\n          pcVar13 = pnVar3->name;\n          minfo(" %s",pcVar13);\n        }\n        minfo(") ",pcVar13);\n      }\n      pcVar13 = (pwVar4->spec).name;\n      if (pcVar13 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar13);\n      }\n      if ((iVar19 != 0) && (minfo(")"), iVar19 != 1)) {\n        minfo(")");\n      }\n      if (pwVar4->next == (wildcard_list *)0x0) break;\n      minfo(" ");\n    }" { (switch_statement "switch((pwVar4->spec).sorted) {\n      default:\n        iVar19 = 0;\n        break;\n      case by_name:\n        iVar19 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar19 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar19 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar19 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        minfo("SORT_NONE(");\n        iVar19 = 1;\n        break;\n      case by_init_priority:\n        iVar19 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }" switch (parenthesized_expression "((pwVar4->spec).sorted)" ( (field_expression "(pwVar4->spec).sorted" (parenthesized_expression "(pwVar4->spec)" ( (field_expression "pwVar4->spec" identifier -> field_identifier) )) . field_identifier) )) (compound_statement "{\n      default:\n        iVar19 = 0;\n        break;\n      case by_name:\n        iVar19 = 1;\n        minfo("SORT_BY_NAME(");\n        break;\n      case by_alignment:\n        iVar19 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;\n      case by_name_alignment:\n        iVar19 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case by_alignment_name:\n        iVar19 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case by_none:\n        minfo("SORT_NONE(");\n        iVar19 = 1;\n        break;\n      case by_init_priority:\n        iVar19 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");\n      }" { (case_statement "default:\n        iVar19 = 0;\n        break;" default : (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case by_name:\n        iVar19 = 1;\n        minfo("SORT_BY_NAME(");\n        break;" case identifier : (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 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        iVar19 = 1;\n        minfo("SORT_BY_ALIGNMENT(");\n        break;" case identifier : (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 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        iVar19 = 2;\n        minfo("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;" case identifier : (expression_statement "iVar19 = 2;" (assignment_expression "iVar19 = 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        iVar19 = 2;\n        minfo("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;" case identifier : (expression_statement "iVar19 = 2;" (assignment_expression "iVar19 = 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        minfo("SORT_NONE(");\n        iVar19 = 1;\n        break;" case identifier : (expression_statement "minfo("SORT_NONE(");" (call_expression "minfo("SORT_NONE(")" identifier (argument_list "("SORT_NONE(")" ( (string_literal ""SORT_NONE("" " string_content ") ))) ;) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case by_init_priority:\n        iVar19 = 1;\n        minfo("SORT_BY_INIT_PRIORITY(");" case identifier : (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 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 "pnVar3 = (pwVar4->spec).exclude_name_list;" (assignment_expression "pnVar3 = (pwVar4->spec).exclude_name_list" identifier = (field_expression "(pwVar4->spec).exclude_name_list" (parenthesized_expression "(pwVar4->spec)" ( (field_expression "pwVar4->spec" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pnVar3 != (name_list *)0x0) {\n        pcVar13 = pnVar3->name;\n        minfo("EXCLUDE_FILE(%s",pcVar13);\n        for (pnVar3 = ((pwVar4->spec).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n            pnVar3 = pnVar3->next) {\n          pcVar13 = pnVar3->name;\n          minfo(" %s",pcVar13);\n        }\n        minfo(") ",pcVar13);\n      }" if (parenthesized_expression "(pnVar3 != (name_list *)0x0)" ( (binary_expression "pnVar3 != (name_list *)0x0" identifier != (cast_expression "(name_list *)0x0" ( (type_descriptor "name_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar13 = pnVar3->name;\n        minfo("EXCLUDE_FILE(%s",pcVar13);\n        for (pnVar3 = ((pwVar4->spec).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n            pnVar3 = pnVar3->next) {\n          pcVar13 = pnVar3->name;\n          minfo(" %s",pcVar13);\n        }\n        minfo(") ",pcVar13);\n      }" { (expression_statement "pcVar13 = pnVar3->name;" (assignment_expression "pcVar13 = pnVar3->name" identifier = (field_expression "pnVar3->name" identifier -> field_identifier)) ;) (expression_statement "minfo("EXCLUDE_FILE(%s",pcVar13);" (call_expression "minfo("EXCLUDE_FILE(%s",pcVar13)" identifier (argument_list "("EXCLUDE_FILE(%s",pcVar13)" ( (string_literal ""EXCLUDE_FILE(%s"" " string_content ") , identifier ))) ;) (for_statement "for (pnVar3 = ((pwVar4->spec).exclude_name_list)->next; pnVar3 != (name_list *)0x0;\n            pnVar3 = pnVar3->next) {\n          pcVar13 = pnVar3->name;\n          minfo(" %s",pcVar13);\n        }" for ( (assignment_expression "pnVar3 = ((pwVar4->spec).exclude_name_list)->next" identifier = (field_expression "((pwVar4->spec).exclude_name_list)->next" (parenthesized_expression "((pwVar4->spec).exclude_name_list)" ( (field_expression "(pwVar4->spec).exclude_name_list" (parenthesized_expression "(pwVar4->spec)" ( (field_expression "pwVar4->spec" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ; (binary_expression "pnVar3 != (name_list *)0x0" identifier != (cast_expression "(name_list *)0x0" ( (type_descriptor "name_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pnVar3 = pnVar3->next" identifier = (field_expression "pnVar3->next" identifier -> field_identifier)) ) (compound_statement "{\n          pcVar13 = pnVar3->name;\n          minfo(" %s",pcVar13);\n        }" { (expression_statement "pcVar13 = pnVar3->name;" (assignment_expression "pcVar13 = pnVar3->name" identifier = (field_expression "pnVar3->name" identifier -> field_identifier)) ;) (expression_statement "minfo(" %s",pcVar13);" (call_expression "minfo(" %s",pcVar13)" identifier (argument_list "(" %s",pcVar13)" ( (string_literal "" %s"" " string_content ") , identifier ))) ;) })) (expression_statement "minfo(") ",pcVar13);" (call_expression "minfo(") ",pcVar13)" identifier (argument_list "(") ",pcVar13)" ( (string_literal "") "" " string_content ") , identifier ))) ;) })) (expression_statement "pcVar13 = (pwVar4->spec).name;" (assignment_expression "pcVar13 = (pwVar4->spec).name" identifier = (field_expression "(pwVar4->spec).name" (parenthesized_expression "(pwVar4->spec)" ( (field_expression "pwVar4->spec" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pcVar13 == (char *)0x0) {\n        minfo("*");\n      }\n      else {\n        minfo("%s",pcVar13);\n      }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (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",pcVar13);\n      }" else (compound_statement "{\n        minfo("%s",pcVar13);\n      }" { (expression_statement "minfo("%s",pcVar13);" (call_expression "minfo("%s",pcVar13)" identifier (argument_list "("%s",pcVar13)" ( (string_literal ""%s"" " string_content ") , identifier ))) ;) }))) (if_statement "if ((iVar19 != 0) && (minfo(")"), iVar19 != 1)) {\n        minfo(")");\n      }" if (parenthesized_expression "((iVar19 != 0) && (minfo(")"), iVar19 != 1))" ( (binary_expression "(iVar19 != 0) && (minfo(")"), iVar19 != 1)" (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) && (parenthesized_expression "(minfo(")"), iVar19 != 1)" ( (comma_expression "minfo(")"), iVar19 != 1" (call_expression "minfo(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) , (binary_expression "iVar19 != 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 (pwVar4->next == (wildcard_list *)0x0) break;" if (parenthesized_expression "(pwVar4->next == (wildcard_list *)0x0)" ( (binary_expression "pwVar4->next == (wildcard_list *)0x0" (field_expression "pwVar4->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 (plVar8 = (s->wild_statement).children.head; plVar8 != (lang_statement_union_type *)0x0;\n        plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,os);\n    }" for ( (assignment_expression "plVar8 = (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 "plVar8 != (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 "plVar8 = (plVar8->header).next" identifier = (field_expression "(plVar8->header).next" (parenthesized_expression "(plVar8->header)" ( (field_expression "plVar8->header" identifier -> field_identifier) )) . field_identifier)) ) (compound_statement "{\n      print_statement(plVar8,os);\n    }" { (expression_statement "print_statement(plVar8,os);" (call_expression "print_statement(plVar8,os)" identifier (argument_list "(plVar8,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    pfVar6 = (s->fill_statement).fill;\n    sVar7 = pfVar6->size;\n    puVar21 = pfVar6->data;\n    if (sVar7 != 0) {\n      do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);\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 "pfVar6 = (s->fill_statement).fill;" (assignment_expression "pfVar6 = (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 "sVar7 = pfVar6->size;" (assignment_expression "sVar7 = pfVar6->size" identifier = (field_expression "pfVar6->size" identifier -> field_identifier)) ;) (expression_statement "puVar21 = pfVar6->data;" (assignment_expression "puVar21 = pfVar6->data" identifier = (field_expression "pfVar6->data" identifier -> field_identifier)) ;) (if_statement "if (sVar7 != 0) {\n      do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);\n    }" if (parenthesized_expression "(sVar7 != 0)" ( (binary_expression "sVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);\n    }" { (do_statement "do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);" do (compound_statement "{\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      }" { (expression_statement "bVar15 = *puVar21;" (assignment_expression "bVar15 = *puVar21" identifier = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "puVar21 = puVar21 + 1;" (assignment_expression "puVar21 = puVar21 + 1" identifier = (binary_expression "puVar21 + 1" identifier + number_literal)) ;) (expression_statement "fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);" (call_expression "fprintf((FILE *)config.map_file,"%02x",(uint)bVar15)" identifier (argument_list "((FILE *)config.map_file,"%02x",(uint)bVar15)" ( (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)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }) while (parenthesized_expression "(puVar21 != pfVar6->data + sVar7)" ( (binary_expression "puVar21 != pfVar6->data + sVar7" identifier != (binary_expression "pfVar6->data + sVar7" (field_expression "pfVar6->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    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_34 = (s->wild_statement).children.tail;\n    local_30 = (etree_union *)(s->wild_statement).exclude_name_list;\n    paVar20 = (s->data_statement).output_section;\n    if (paVar20 != (asection *)0x0) {\n      uVar14 = (uint)paVar20->vma;\n      bVar22 = CARRY4((uint)local_34,uVar14);\n      local_34 = (lang_statement_union **)((int)local_34 + uVar14);\n      local_30 = (etree_union *)\n                 ((int)&(local_30->type).node_code + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4)\n                 );\n    }\n    switch((s->data_statement).type) {\n    case 0x11a:\n      pcVar13 = "QUAD";\n      uVar14 = 8;\n      break;\n    case 0x11b:\n      pcVar13 = "SQUAD";\n      uVar14 = 8;\n      break;\n    case 0x11c:\n      pcVar13 = "LONG";\n      uVar14 = 4;\n      break;\n    case 0x11d:\n      pcVar13 = "SHORT";\n      uVar14 = 2;\n      break;\n    case 0x11e:\n      pcVar13 = "BYTE";\n      uVar14 = 1;\n      break;\n    default:\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x10c9,"print_data_statement");\n    }\n    bVar15 = (byte)opb_shift;\n    local_3c = (wildcard_list *)(1 << (bVar15 & 0x1f));\n    if (local_3c < uVar14) {\n      local_3c = (wildcard_list *)uVar14;\n    }\n    uVar17 = 0 >> (bVar15 & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)local_3c >> (bVar15 & 0x1f) | 0 << 0x20 - (bVar15 & 0x1f);\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    minfo("0x%V %W %s 0x%v",local_34,local_30,uVar14,uVar18,pcVar13,(s->wild_statement).section_list\n          ,(s->wild_statement).keep_sections);\n    if (((s->reloc_statement).howto)->bitsize != 7) {\n      print_space();\n      exp_print_tree((s->data_statement).exp);\n    }\n    print_nl();\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)local_3c >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    print_dot._0_4_ = (char *)(uVar14 + (int)local_34);\n    print_dot._4_4_ = (int)(char **)local_30 + CARRY4(uVar14,(uint)local_34) + uVar18;\n    break;" case identifier : (expression_statement "init_opb();" (call_expression "init_opb()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar19 = 0x10;" (assignment_expression "iVar19 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);" do (compound_statement "{\n      print_space();\n      iVar19 = iVar19 + -1;\n    }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) ;) (expression_statement "local_34 = (s->wild_statement).children.tail;" (assignment_expression "local_34 = (s->wild_statement).children.tail" identifier = (field_expression "(s->wild_statement).children.tail" (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 "local_30 = (etree_union *)(s->wild_statement).exclude_name_list;" (assignment_expression "local_30 = (etree_union *)(s->wild_statement).exclude_name_list" identifier = (cast_expression "(etree_union *)(s->wild_statement).exclude_name_list" ( (type_descriptor "etree_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(s->wild_statement).exclude_name_list" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "paVar20 = (s->data_statement).output_section;" (assignment_expression "paVar20 = (s->data_statement).output_section" identifier = (field_expression "(s->data_statement).output_section" (parenthesized_expression "(s->data_statement)" ( (field_expression "s->data_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (paVar20 != (asection *)0x0) {\n      uVar14 = (uint)paVar20->vma;\n      bVar22 = CARRY4((uint)local_34,uVar14);\n      local_34 = (lang_statement_union **)((int)local_34 + uVar14);\n      local_30 = (etree_union *)\n                 ((int)&(local_30->type).node_code + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4)\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      uVar14 = (uint)paVar20->vma;\n      bVar22 = CARRY4((uint)local_34,uVar14);\n      local_34 = (lang_statement_union **)((int)local_34 + uVar14);\n      local_30 = (etree_union *)\n                 ((int)&(local_30->type).node_code + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4)\n                 );\n    }" { (expression_statement "uVar14 = (uint)paVar20->vma;" (assignment_expression "uVar14 = (uint)paVar20->vma" identifier = (cast_expression "(uint)paVar20->vma" ( (type_descriptor "uint" type_identifier) ) (field_expression "paVar20->vma" identifier -> field_identifier))) ;) (expression_statement "bVar22 = CARRY4((uint)local_34,uVar14);" (assignment_expression "bVar22 = CARRY4((uint)local_34,uVar14)" identifier = (call_expression "CARRY4((uint)local_34,uVar14)" identifier (argument_list "((uint)local_34,uVar14)" ( (cast_expression "(uint)local_34" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "local_34 = (lang_statement_union **)((int)local_34 + uVar14);" (assignment_expression "local_34 = (lang_statement_union **)((int)local_34 + uVar14)" identifier = (cast_expression "(lang_statement_union **)((int)local_34 + uVar14)" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_34 + uVar14)" ( (binary_expression "(int)local_34 + uVar14" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "local_30 = (etree_union *)\n                 ((int)&(local_30->type).node_code + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4)\n                 );" (assignment_expression "local_30 = (etree_union *)\n                 ((int)&(local_30->type).node_code + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4)\n                 )" identifier = (cast_expression "(etree_union *)\n                 ((int)&(local_30->type).node_code + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4)\n                 )" ( (type_descriptor "etree_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_30->type).node_code + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4)\n                 )" ( (binary_expression "(int)&(local_30->type).node_code + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4)" (binary_expression "(int)&(local_30->type).node_code + (uint)bVar22" (cast_expression "(int)&(local_30->type).node_code" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_30->type).node_code" & (field_expression "(local_30->type).node_code" (parenthesized_expression "(local_30->type)" ( (field_expression "local_30->type" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier)) + (pointer_expression "*(int *)((int)&paVar20->vma + 4)" * (cast_expression "(int *)((int)&paVar20->vma + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar20->vma + 4)" ( (binary_expression "(int)&paVar20->vma + 4" (cast_expression "(int)&paVar20->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar20->vma" & (field_expression "paVar20->vma" identifier -> field_identifier))) + number_literal) ))))) )))) ;) })) (switch_statement "switch((s->data_statement).type) {\n    case 0x11a:\n      pcVar13 = "QUAD";\n      uVar14 = 8;\n      break;\n    case 0x11b:\n      pcVar13 = "SQUAD";\n      uVar14 = 8;\n      break;\n    case 0x11c:\n      pcVar13 = "LONG";\n      uVar14 = 4;\n      break;\n    case 0x11d:\n      pcVar13 = "SHORT";\n      uVar14 = 2;\n      break;\n    case 0x11e:\n      pcVar13 = "BYTE";\n      uVar14 = 1;\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      pcVar13 = "QUAD";\n      uVar14 = 8;\n      break;\n    case 0x11b:\n      pcVar13 = "SQUAD";\n      uVar14 = 8;\n      break;\n    case 0x11c:\n      pcVar13 = "LONG";\n      uVar14 = 4;\n      break;\n    case 0x11d:\n      pcVar13 = "SHORT";\n      uVar14 = 2;\n      break;\n    case 0x11e:\n      pcVar13 = "BYTE";\n      uVar14 = 1;\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      pcVar13 = "QUAD";\n      uVar14 = 8;\n      break;" case number_literal : (expression_statement "pcVar13 = "QUAD";" (assignment_expression "pcVar13 = "QUAD"" identifier = (string_literal ""QUAD"" " string_content ")) ;) (expression_statement "uVar14 = 8;" (assignment_expression "uVar14 = 8" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11b:\n      pcVar13 = "SQUAD";\n      uVar14 = 8;\n      break;" case number_literal : (expression_statement "pcVar13 = "SQUAD";" (assignment_expression "pcVar13 = "SQUAD"" identifier = (string_literal ""SQUAD"" " string_content ")) ;) (expression_statement "uVar14 = 8;" (assignment_expression "uVar14 = 8" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11c:\n      pcVar13 = "LONG";\n      uVar14 = 4;\n      break;" case number_literal : (expression_statement "pcVar13 = "LONG";" (assignment_expression "pcVar13 = "LONG"" identifier = (string_literal ""LONG"" " string_content ")) ;) (expression_statement "uVar14 = 4;" (assignment_expression "uVar14 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11d:\n      pcVar13 = "SHORT";\n      uVar14 = 2;\n      break;" case number_literal : (expression_statement "pcVar13 = "SHORT";" (assignment_expression "pcVar13 = "SHORT"" identifier = (string_literal ""SHORT"" " string_content ")) ;) (expression_statement "uVar14 = 2;" (assignment_expression "uVar14 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11e:\n      pcVar13 = "BYTE";\n      uVar14 = 1;\n      break;" case number_literal : (expression_statement "pcVar13 = "BYTE";" (assignment_expression "pcVar13 = "BYTE"" identifier = (string_literal ""BYTE"" " string_content ")) ;) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (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 "bVar15 = (byte)opb_shift;" (assignment_expression "bVar15 = (byte)opb_shift" identifier = (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "local_3c = (wildcard_list *)(1 << (bVar15 & 0x1f));" (assignment_expression "local_3c = (wildcard_list *)(1 << (bVar15 & 0x1f))" identifier = (cast_expression "(wildcard_list *)(1 << (bVar15 & 0x1f))" ( (type_descriptor "wildcard_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(1 << (bVar15 & 0x1f))" ( (binary_expression "1 << (bVar15 & 0x1f)" number_literal << (parenthesized_expression "(bVar15 & 0x1f)" ( (binary_expression "bVar15 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if (local_3c < uVar14) {\n      local_3c = (wildcard_list *)uVar14;\n    }" if (parenthesized_expression "(local_3c < uVar14)" ( (binary_expression "local_3c < uVar14" identifier < identifier) )) (compound_statement "{\n      local_3c = (wildcard_list *)uVar14;\n    }" { (expression_statement "local_3c = (wildcard_list *)uVar14;" (assignment_expression "local_3c = (wildcard_list *)uVar14" identifier = (cast_expression "(wildcard_list *)uVar14" ( (type_descriptor "wildcard_list *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "uVar17 = 0 >> (bVar15 & 0x1f);" (assignment_expression "uVar17 = 0 >> (bVar15 & 0x1f)" identifier = (binary_expression "0 >> (bVar15 & 0x1f)" number_literal >> (parenthesized_expression "(bVar15 & 0x1f)" ( (binary_expression "bVar15 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" identifier = identifier) ;) (expression_statement "uVar14 = (uint)local_3c >> (bVar15 & 0x1f) | 0 << 0x20 - (bVar15 & 0x1f);" (assignment_expression "uVar14 = (uint)local_3c >> (bVar15 & 0x1f) | 0 << 0x20 - (bVar15 & 0x1f)" identifier = (binary_expression "(uint)local_3c >> (bVar15 & 0x1f) | 0 << 0x20 - (bVar15 & 0x1f)" (binary_expression "(uint)local_3c >> (bVar15 & 0x1f)" (cast_expression "(uint)local_3c" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(bVar15 & 0x1f)" ( (binary_expression "bVar15 & 0x1f" identifier & number_literal) ))) | (binary_expression "0 << 0x20 - (bVar15 & 0x1f)" number_literal << (binary_expression "0x20 - (bVar15 & 0x1f)" number_literal - (parenthesized_expression "(bVar15 & 0x1f)" ( (binary_expression "bVar15 & 0x1f" identifier & number_literal) )))))) ;) (if_statement "if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }" if (parenthesized_expression "((opb_shift & 0x20) != 0)" ( (binary_expression "(opb_shift & 0x20) != 0" (parenthesized_expression "(opb_shift & 0x20)" ( (binary_expression "opb_shift & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = uVar17;" (assignment_expression "uVar14 = uVar17" identifier = identifier) ;) })) (expression_statement "minfo("0x%V %W %s 0x%v",local_34,local_30,uVar14,uVar18,pcVar13,(s->wild_statement).section_list\n          ,(s->wild_statement).keep_sections);" (call_expression "minfo("0x%V %W %s 0x%v",local_34,local_30,uVar14,uVar18,pcVar13,(s->wild_statement).section_list\n          ,(s->wild_statement).keep_sections)" identifier (argument_list "("0x%V %W %s 0x%v",local_34,local_30,uVar14,uVar18,pcVar13,(s->wild_statement).section_list\n          ,(s->wild_statement).keep_sections)" ( (string_literal ""0x%V %W %s 0x%v"" " string_content ") , identifier , identifier , identifier , identifier , identifier , (field_expression "(s->wild_statement).section_list" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) , (field_expression "(s->wild_statement).keep_sections" (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 "bVar15 = (byte)opb_shift & 0x1f;" (assignment_expression "bVar15 = (byte)opb_shift & 0x1f" identifier = (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar17 = 0 >> ((byte)opb_shift & 0x1f);" (assignment_expression "uVar17 = 0 >> ((byte)opb_shift & 0x1f)" identifier = (binary_expression "0 >> ((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) )))) ;) (expression_statement "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" identifier = identifier) ;) (expression_statement "uVar14 = (uint)local_3c >> bVar15 | 0 << 0x20 - bVar15;" (assignment_expression "uVar14 = (uint)local_3c >> bVar15 | 0 << 0x20 - bVar15" identifier = (binary_expression "(uint)local_3c >> bVar15 | 0 << 0x20 - bVar15" (binary_expression "(uint)local_3c >> bVar15" (cast_expression "(uint)local_3c" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "0 << 0x20 - bVar15" number_literal << (binary_expression "0x20 - bVar15" number_literal - identifier)))) ;) (if_statement "if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }" if (parenthesized_expression "((opb_shift & 0x20) != 0)" ( (binary_expression "(opb_shift & 0x20) != 0" (parenthesized_expression "(opb_shift & 0x20)" ( (binary_expression "opb_shift & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = uVar17;" (assignment_expression "uVar14 = uVar17" identifier = identifier) ;) })) (expression_statement "print_dot._0_4_ = (char *)(uVar14 + (int)local_34);" (assignment_expression "print_dot._0_4_ = (char *)(uVar14 + (int)local_34)" (field_expression "print_dot._0_4_" identifier . field_identifier) = (cast_expression "(char *)(uVar14 + (int)local_34)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 + (int)local_34)" ( (binary_expression "uVar14 + (int)local_34" identifier + (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "print_dot._4_4_ = (int)(char **)local_30 + CARRY4(uVar14,(uint)local_34) + uVar18;" (assignment_expression "print_dot._4_4_ = (int)(char **)local_30 + CARRY4(uVar14,(uint)local_34) + uVar18" (field_expression "print_dot._4_4_" identifier . field_identifier) = (binary_expression "(int)(char **)local_30 + CARRY4(uVar14,(uint)local_34) + uVar18" (binary_expression "(int)(char **)local_30 + CARRY4(uVar14,(uint)local_34)" (cast_expression "(int)(char **)local_30" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char **)local_30" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) + (call_expression "CARRY4(uVar14,(uint)local_34)" identifier (argument_list "(uVar14,(uint)local_34)" ( identifier , (cast_expression "(uint)local_34" ( (type_descriptor "uint" type_identifier) ) identifier) )))) + identifier)) ;) (break_statement "break;" break ;)) (case_statement "case lang_reloc_statement_enum:\n    init_opb();\n    iVar19 = 0x10;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_3c = (s->wild_statement).handler_data[0];\n    local_38 = (s->wild_statement).handler_data[1];\n    plVar5 = (s->output_section_statement).lma_region;\n    if (plVar5 != (lang_memory_region_type *)0x0) {\n      uVar14 = *(uint *)((int)&plVar5->length + 4);\n      bVar22 = CARRY4((uint)local_3c,uVar14);\n      local_3c = (wildcard_list *)((int)&local_3c->next + uVar14);\n      local_38 = (wildcard_list *)((int)plVar5->length_exp + (uint)bVar22 + (int)&local_38->next);\n    }\n    uVar17 = bfd_get_reloc_size((s->wild_statement).filenames_sorted);\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar16 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar16;\n    uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar16;\n    }\n    minfo("0x%V %W RELOC %s ",local_3c,local_38,uVar14,uVar18,((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    bVar15 = (byte)opb_shift & 0x1f;\n    uVar16 = 0 >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar16;\n    uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar16;\n    }\n    print_dot._0_4_ = (char *)((int)&local_3c->next + uVar14);\n    print_dot._4_4_ = (int)&local_38->next + CARRY4(uVar14,(uint)local_3c) + uVar18;\n    break;" case identifier : (expression_statement "init_opb();" (call_expression "init_opb()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar19 = 0x10;" (assignment_expression "iVar19 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);" do (compound_statement "{\n      print_space();\n      iVar19 = iVar19 + -1;\n    }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) ;) (expression_statement "local_3c = (s->wild_statement).handler_data[0];" (assignment_expression "local_3c = (s->wild_statement).handler_data[0]" identifier = (subscript_expression "(s->wild_statement).handler_data[0]" (field_expression "(s->wild_statement).handler_data" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "local_38 = (s->wild_statement).handler_data[1];" (assignment_expression "local_38 = (s->wild_statement).handler_data[1]" identifier = (subscript_expression "(s->wild_statement).handler_data[1]" (field_expression "(s->wild_statement).handler_data" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "plVar5 = (s->output_section_statement).lma_region;" (assignment_expression "plVar5 = (s->output_section_statement).lma_region" identifier = (field_expression "(s->output_section_statement).lma_region" (parenthesized_expression "(s->output_section_statement)" ( (field_expression "s->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (plVar5 != (lang_memory_region_type *)0x0) {\n      uVar14 = *(uint *)((int)&plVar5->length + 4);\n      bVar22 = CARRY4((uint)local_3c,uVar14);\n      local_3c = (wildcard_list *)((int)&local_3c->next + uVar14);\n      local_38 = (wildcard_list *)((int)plVar5->length_exp + (uint)bVar22 + (int)&local_38->next);\n    }" if (parenthesized_expression "(plVar5 != (lang_memory_region_type *)0x0)" ( (binary_expression "plVar5 != (lang_memory_region_type *)0x0" identifier != (cast_expression "(lang_memory_region_type *)0x0" ( (type_descriptor "lang_memory_region_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar14 = *(uint *)((int)&plVar5->length + 4);\n      bVar22 = CARRY4((uint)local_3c,uVar14);\n      local_3c = (wildcard_list *)((int)&local_3c->next + uVar14);\n      local_38 = (wildcard_list *)((int)plVar5->length_exp + (uint)bVar22 + (int)&local_38->next);\n    }" { (expression_statement "uVar14 = *(uint *)((int)&plVar5->length + 4);" (assignment_expression "uVar14 = *(uint *)((int)&plVar5->length + 4)" identifier = (pointer_expression "*(uint *)((int)&plVar5->length + 4)" * (cast_expression "(uint *)((int)&plVar5->length + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&plVar5->length + 4)" ( (binary_expression "(int)&plVar5->length + 4" (cast_expression "(int)&plVar5->length" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&plVar5->length" & (field_expression "plVar5->length" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "bVar22 = CARRY4((uint)local_3c,uVar14);" (assignment_expression "bVar22 = CARRY4((uint)local_3c,uVar14)" identifier = (call_expression "CARRY4((uint)local_3c,uVar14)" identifier (argument_list "((uint)local_3c,uVar14)" ( (cast_expression "(uint)local_3c" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "local_3c = (wildcard_list *)((int)&local_3c->next + uVar14);" (assignment_expression "local_3c = (wildcard_list *)((int)&local_3c->next + uVar14)" identifier = (cast_expression "(wildcard_list *)((int)&local_3c->next + uVar14)" ( (type_descriptor "wildcard_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_3c->next + uVar14)" ( (binary_expression "(int)&local_3c->next + uVar14" (cast_expression "(int)&local_3c->next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_3c->next" & (field_expression "local_3c->next" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "local_38 = (wildcard_list *)((int)plVar5->length_exp + (uint)bVar22 + (int)&local_38->next);" (assignment_expression "local_38 = (wildcard_list *)((int)plVar5->length_exp + (uint)bVar22 + (int)&local_38->next)" identifier = (cast_expression "(wildcard_list *)((int)plVar5->length_exp + (uint)bVar22 + (int)&local_38->next)" ( (type_descriptor "wildcard_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)plVar5->length_exp + (uint)bVar22 + (int)&local_38->next)" ( (binary_expression "(int)plVar5->length_exp + (uint)bVar22 + (int)&local_38->next" (binary_expression "(int)plVar5->length_exp + (uint)bVar22" (cast_expression "(int)plVar5->length_exp" ( (type_descriptor "int" primitive_type) ) (field_expression "plVar5->length_exp" identifier -> field_identifier)) + (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier)) + (cast_expression "(int)&local_38->next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_38->next" & (field_expression "local_38->next" identifier -> field_identifier)))) )))) ;) })) (expression_statement "uVar17 = bfd_get_reloc_size((s->wild_statement).filenames_sorted);" (assignment_expression "uVar17 = 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 "bVar15 = (byte)opb_shift & 0x1f;" (assignment_expression "bVar15 = (byte)opb_shift & 0x1f" identifier = (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = 0 >> ((byte)opb_shift & 0x1f);" (assignment_expression "uVar16 = 0 >> ((byte)opb_shift & 0x1f)" identifier = (binary_expression "0 >> ((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) )))) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) (expression_statement "uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15;" (assignment_expression "uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15" identifier = (binary_expression "uVar17 >> bVar15 | 0 << 0x20 - bVar15" (binary_expression "uVar17 >> bVar15" identifier >> identifier) | (binary_expression "0 << 0x20 - bVar15" number_literal << (binary_expression "0x20 - bVar15" number_literal - identifier)))) ;) (if_statement "if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar16;\n    }" if (parenthesized_expression "((opb_shift & 0x20) != 0)" ( (binary_expression "(opb_shift & 0x20) != 0" (parenthesized_expression "(opb_shift & 0x20)" ( (binary_expression "opb_shift & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar18 = 0;\n      uVar14 = uVar16;\n    }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = uVar16;" (assignment_expression "uVar14 = uVar16" identifier = identifier) ;) })) (expression_statement "minfo("0x%V %W RELOC %s ",local_3c,local_38,uVar14,uVar18,((s->reloc_statement).howto)->name);" (call_expression "minfo("0x%V %W RELOC %s ",local_3c,local_38,uVar14,uVar18,((s->reloc_statement).howto)->name)" identifier (argument_list "("0x%V %W RELOC %s ",local_3c,local_38,uVar14,uVar18,((s->reloc_statement).howto)->name)" ( (string_literal ""0x%V %W RELOC %s "" " string_content ") , identifier , identifier , identifier , identifier , (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 "bVar15 = (byte)opb_shift & 0x1f;" (assignment_expression "bVar15 = (byte)opb_shift & 0x1f" identifier = (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = 0 >> ((byte)opb_shift & 0x1f);" (assignment_expression "uVar16 = 0 >> ((byte)opb_shift & 0x1f)" identifier = (binary_expression "0 >> ((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) )))) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) (expression_statement "uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15;" (assignment_expression "uVar14 = uVar17 >> bVar15 | 0 << 0x20 - bVar15" identifier = (binary_expression "uVar17 >> bVar15 | 0 << 0x20 - bVar15" (binary_expression "uVar17 >> bVar15" identifier >> identifier) | (binary_expression "0 << 0x20 - bVar15" number_literal << (binary_expression "0x20 - bVar15" number_literal - identifier)))) ;) (if_statement "if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar16;\n    }" if (parenthesized_expression "((opb_shift & 0x20) != 0)" ( (binary_expression "(opb_shift & 0x20) != 0" (parenthesized_expression "(opb_shift & 0x20)" ( (binary_expression "opb_shift & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar18 = 0;\n      uVar14 = uVar16;\n    }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = uVar16;" (assignment_expression "uVar14 = uVar16" identifier = identifier) ;) })) (expression_statement "print_dot._0_4_ = (char *)((int)&local_3c->next + uVar14);" (assignment_expression "print_dot._0_4_ = (char *)((int)&local_3c->next + uVar14)" (field_expression "print_dot._0_4_" identifier . field_identifier) = (cast_expression "(char *)((int)&local_3c->next + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_3c->next + uVar14)" ( (binary_expression "(int)&local_3c->next + uVar14" (cast_expression "(int)&local_3c->next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_3c->next" & (field_expression "local_3c->next" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "print_dot._4_4_ = (int)&local_38->next + CARRY4(uVar14,(uint)local_3c) + uVar18;" (assignment_expression "print_dot._4_4_ = (int)&local_38->next + CARRY4(uVar14,(uint)local_3c) + uVar18" (field_expression "print_dot._4_4_" identifier . field_identifier) = (binary_expression "(int)&local_38->next + CARRY4(uVar14,(uint)local_3c) + uVar18" (binary_expression "(int)&local_38->next + CARRY4(uVar14,(uint)local_3c)" (cast_expression "(int)&local_38->next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_38->next" & (field_expression "local_38->next" identifier -> field_identifier))) + (call_expression "CARRY4(uVar14,(uint)local_3c)" identifier (argument_list "(uVar14,(uint)local_3c)" ( identifier , (cast_expression "(uint)local_3c" ( (type_descriptor "uint" type_identifier) ) identifier) )))) + identifier)) ;) (break_statement "break;" break ;)) (case_statement "case lang_target_statement_enum:\n    pcVar11 = (s->wild_statement).filename;\n    pcVar13 = "TARGET(%s)\n";\nLAB_0001fc3c:\n    fprintf((FILE *)config.map_file,pcVar13,pcVar11);\n    break;" case identifier : (expression_statement "pcVar11 = (s->wild_statement).filename;" (assignment_expression "pcVar11 = (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 "pcVar13 = "TARGET(%s)\n";" (assignment_expression "pcVar13 = "TARGET(%s)\n"" identifier = (string_literal ""TARGET(%s)\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_0001fc3c:\n    fprintf((FILE *)config.map_file,pcVar13,pcVar11);" statement_identifier : (expression_statement "fprintf((FILE *)config.map_file,pcVar13,pcVar11);" (call_expression "fprintf((FILE *)config.map_file,pcVar13,pcVar11)" identifier (argument_list "((FILE *)config.map_file,pcVar13,pcVar11)" ( (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    pcVar13 = (s->wild_statement).filename;\n    minfo("OUTPUT(%s",pcVar13);\n    if (output_target != (char *)0x0) {\n      pcVar13 = output_target;\n      minfo(" %s",output_target);\n    }\n    minfo(")\n",pcVar13);\n    break;" case identifier : (expression_statement "pcVar13 = (s->wild_statement).filename;" (assignment_expression "pcVar13 = (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",pcVar13);" (call_expression "minfo("OUTPUT(%s",pcVar13)" identifier (argument_list "("OUTPUT(%s",pcVar13)" ( (string_literal ""OUTPUT(%s"" " string_content ") , identifier ))) ;) (if_statement "if (output_target != (char *)0x0) {\n      pcVar13 = 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      pcVar13 = output_target;\n      minfo(" %s",output_target);\n    }" { (expression_statement "pcVar13 = output_target;" (assignment_expression "pcVar13 = 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",pcVar13);" (call_expression "minfo(")\n",pcVar13)" identifier (argument_list "(")\n",pcVar13)" ( (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    iVar19 = 9;\n    do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n    local_34 = (lang_statement_union **)(s->wild_statement).filename;\n    local_30 = (s->data_statement).exp;\n    paVar20 = (s->data_statement).output_section;\n    if (paVar20 != (asection *)0x0) {\n      uVar14 = (uint)paVar20->vma;\n      bVar22 = CARRY4((uint)local_34,uVar14);\n      local_34 = (lang_statement_union **)((int)local_34 + uVar14);\n      local_30 = (etree_union *)((int)local_30 + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4));\n    }\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    minfo("0x%V %W ",local_34,local_30,uVar14,uVar18);\n    pfVar6 = (s->padding_statement).fill;\n    sVar7 = pfVar6->size;\n    if (sVar7 != 0) {\n      puVar21 = pfVar6->data;\n      do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);\n    }\n    print_nl();\n    bVar15 = (byte)opb_shift & 0x1f;\n    uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f);\n    uVar18 = uVar17;\n    uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15;\n    if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }\n    print_dot._0_4_ = (char *)((int)local_34 + uVar14);\n    print_dot._4_4_ = (int)local_30 + CARRY4((uint)local_34,uVar14) + uVar18;\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 "iVar19 = 9;" (assignment_expression "iVar19 = 9" identifier = number_literal) ;) (do_statement "do {\n      print_space();\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);" do (compound_statement "{\n      print_space();\n      iVar19 = iVar19 + -1;\n    }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) ;) (expression_statement "local_34 = (lang_statement_union **)(s->wild_statement).filename;" (assignment_expression "local_34 = (lang_statement_union **)(s->wild_statement).filename" identifier = (cast_expression "(lang_statement_union **)(s->wild_statement).filename" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "(s->wild_statement).filename" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "local_30 = (s->data_statement).exp;" (assignment_expression "local_30 = (s->data_statement).exp" identifier = (field_expression "(s->data_statement).exp" (parenthesized_expression "(s->data_statement)" ( (field_expression "s->data_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "paVar20 = (s->data_statement).output_section;" (assignment_expression "paVar20 = (s->data_statement).output_section" identifier = (field_expression "(s->data_statement).output_section" (parenthesized_expression "(s->data_statement)" ( (field_expression "s->data_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (paVar20 != (asection *)0x0) {\n      uVar14 = (uint)paVar20->vma;\n      bVar22 = CARRY4((uint)local_34,uVar14);\n      local_34 = (lang_statement_union **)((int)local_34 + uVar14);\n      local_30 = (etree_union *)((int)local_30 + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4));\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      uVar14 = (uint)paVar20->vma;\n      bVar22 = CARRY4((uint)local_34,uVar14);\n      local_34 = (lang_statement_union **)((int)local_34 + uVar14);\n      local_30 = (etree_union *)((int)local_30 + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4));\n    }" { (expression_statement "uVar14 = (uint)paVar20->vma;" (assignment_expression "uVar14 = (uint)paVar20->vma" identifier = (cast_expression "(uint)paVar20->vma" ( (type_descriptor "uint" type_identifier) ) (field_expression "paVar20->vma" identifier -> field_identifier))) ;) (expression_statement "bVar22 = CARRY4((uint)local_34,uVar14);" (assignment_expression "bVar22 = CARRY4((uint)local_34,uVar14)" identifier = (call_expression "CARRY4((uint)local_34,uVar14)" identifier (argument_list "((uint)local_34,uVar14)" ( (cast_expression "(uint)local_34" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "local_34 = (lang_statement_union **)((int)local_34 + uVar14);" (assignment_expression "local_34 = (lang_statement_union **)((int)local_34 + uVar14)" identifier = (cast_expression "(lang_statement_union **)((int)local_34 + uVar14)" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_34 + uVar14)" ( (binary_expression "(int)local_34 + uVar14" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "local_30 = (etree_union *)((int)local_30 + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4));" (assignment_expression "local_30 = (etree_union *)((int)local_30 + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4))" identifier = (cast_expression "(etree_union *)((int)local_30 + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4))" ( (type_descriptor "etree_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_30 + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4))" ( (binary_expression "(int)local_30 + (uint)bVar22 + *(int *)((int)&paVar20->vma + 4)" (binary_expression "(int)local_30 + (uint)bVar22" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier)) + (pointer_expression "*(int *)((int)&paVar20->vma + 4)" * (cast_expression "(int *)((int)&paVar20->vma + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar20->vma + 4)" ( (binary_expression "(int)&paVar20->vma + 4" (cast_expression "(int)&paVar20->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar20->vma" & (field_expression "paVar20->vma" identifier -> field_identifier))) + number_literal) ))))) )))) ;) })) (expression_statement "bVar15 = (byte)opb_shift & 0x1f;" (assignment_expression "bVar15 = (byte)opb_shift & 0x1f" identifier = (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f);" (assignment_expression "uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f)" identifier = (binary_expression "(uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f)" (field_expression "(uint)(s->wild_statement).keep_sections" (call_expression "(uint)(s->wild_statement)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(s->wild_statement)" ( (field_expression "s->wild_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 "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" identifier = identifier) ;) (expression_statement "uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15;" (assignment_expression "uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15" identifier = (binary_expression "(uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15" (binary_expression "(uint)(s->wild_statement).section_list >> bVar15" (field_expression "(uint)(s->wild_statement).section_list" (call_expression "(uint)(s->wild_statement)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) ))) . field_identifier) >> identifier) | (binary_expression "(s->wild_statement).keep_sections << 0x20 - bVar15" (field_expression "(s->wild_statement).keep_sections" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) << (binary_expression "0x20 - bVar15" number_literal - identifier)))) ;) (if_statement "if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }" if (parenthesized_expression "((opb_shift & 0x20) != 0)" ( (binary_expression "(opb_shift & 0x20) != 0" (parenthesized_expression "(opb_shift & 0x20)" ( (binary_expression "opb_shift & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = uVar17;" (assignment_expression "uVar14 = uVar17" identifier = identifier) ;) })) (expression_statement "minfo("0x%V %W ",local_34,local_30,uVar14,uVar18);" (call_expression "minfo("0x%V %W ",local_34,local_30,uVar14,uVar18)" identifier (argument_list "("0x%V %W ",local_34,local_30,uVar14,uVar18)" ( (string_literal ""0x%V %W "" " string_content ") , identifier , identifier , identifier , identifier ))) ;) (expression_statement "pfVar6 = (s->padding_statement).fill;" (assignment_expression "pfVar6 = (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 "sVar7 = pfVar6->size;" (assignment_expression "sVar7 = pfVar6->size" identifier = (field_expression "pfVar6->size" identifier -> field_identifier)) ;) (if_statement "if (sVar7 != 0) {\n      puVar21 = pfVar6->data;\n      do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);\n    }" if (parenthesized_expression "(sVar7 != 0)" ( (binary_expression "sVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar21 = pfVar6->data;\n      do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);\n    }" { (expression_statement "puVar21 = pfVar6->data;" (assignment_expression "puVar21 = pfVar6->data" identifier = (field_expression "pfVar6->data" identifier -> field_identifier)) ;) (do_statement "do {\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      } while (puVar21 != pfVar6->data + sVar7);" do (compound_statement "{\n        bVar15 = *puVar21;\n        puVar21 = puVar21 + 1;\n        fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);\n      }" { (expression_statement "bVar15 = *puVar21;" (assignment_expression "bVar15 = *puVar21" identifier = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "puVar21 = puVar21 + 1;" (assignment_expression "puVar21 = puVar21 + 1" identifier = (binary_expression "puVar21 + 1" identifier + number_literal)) ;) (expression_statement "fprintf((FILE *)config.map_file,"%02x",(uint)bVar15);" (call_expression "fprintf((FILE *)config.map_file,"%02x",(uint)bVar15)" identifier (argument_list "((FILE *)config.map_file,"%02x",(uint)bVar15)" ( (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)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }) while (parenthesized_expression "(puVar21 != pfVar6->data + sVar7)" ( (binary_expression "puVar21 != pfVar6->data + sVar7" identifier != (binary_expression "pfVar6->data + sVar7" (field_expression "pfVar6->data" identifier -> field_identifier) + identifier)) )) ;) })) (expression_statement "print_nl();" (call_expression "print_nl()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar15 = (byte)opb_shift & 0x1f;" (assignment_expression "bVar15 = (byte)opb_shift & 0x1f" identifier = (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f);" (assignment_expression "uVar17 = (uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f)" identifier = (binary_expression "(uint)(s->wild_statement).keep_sections >> ((byte)opb_shift & 0x1f)" (field_expression "(uint)(s->wild_statement).keep_sections" (call_expression "(uint)(s->wild_statement)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(s->wild_statement)" ( (field_expression "s->wild_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 "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" identifier = identifier) ;) (expression_statement "uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15;" (assignment_expression "uVar14 = (uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15" identifier = (binary_expression "(uint)(s->wild_statement).section_list >> bVar15 |\n             (s->wild_statement).keep_sections << 0x20 - bVar15" (binary_expression "(uint)(s->wild_statement).section_list >> bVar15" (field_expression "(uint)(s->wild_statement).section_list" (call_expression "(uint)(s->wild_statement)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) ))) . field_identifier) >> identifier) | (binary_expression "(s->wild_statement).keep_sections << 0x20 - bVar15" (field_expression "(s->wild_statement).keep_sections" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) << (binary_expression "0x20 - bVar15" number_literal - identifier)))) ;) (if_statement "if ((opb_shift & 0x20) != 0) {\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }" if (parenthesized_expression "((opb_shift & 0x20) != 0)" ( (binary_expression "(opb_shift & 0x20) != 0" (parenthesized_expression "(opb_shift & 0x20)" ( (binary_expression "opb_shift & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar18 = 0;\n      uVar14 = uVar17;\n    }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = uVar17;" (assignment_expression "uVar14 = uVar17" identifier = identifier) ;) })) (expression_statement "print_dot._0_4_ = (char *)((int)local_34 + uVar14);" (assignment_expression "print_dot._0_4_ = (char *)((int)local_34 + uVar14)" (field_expression "print_dot._0_4_" identifier . field_identifier) = (cast_expression "(char *)((int)local_34 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34 + uVar14)" ( (binary_expression "(int)local_34 + uVar14" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "print_dot._4_4_ = (int)local_30 + CARRY4((uint)local_34,uVar14) + uVar18;" (assignment_expression "print_dot._4_4_ = (int)local_30 + CARRY4((uint)local_34,uVar14) + uVar18" (field_expression "print_dot._4_4_" identifier . field_identifier) = (binary_expression "(int)local_30 + CARRY4((uint)local_34,uVar14) + uVar18" (binary_expression "(int)local_30 + CARRY4((uint)local_34,uVar14)" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "CARRY4((uint)local_34,uVar14)" identifier (argument_list "((uint)local_34,uVar14)" ( (cast_expression "(uint)local_34" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))) + identifier)) ;) (break_statement "break;" break ;)) (case_statement "case lang_group_statement_enum:\n    fwrite("START GROUP\n",1,0xc,(FILE *)config.map_file);\n    for (plVar8 = (s->output_section_statement).children.head;\n        plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,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 (plVar8 = (s->output_section_statement).children.head;\n        plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n      print_statement(plVar8,os);\n    }" for ( (assignment_expression "plVar8 = (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 "plVar8 != (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 "plVar8 = (plVar8->header).next" identifier = (field_expression "(plVar8->header).next" (parenthesized_expression "(plVar8->header)" ( (field_expression "plVar8->header" identifier -> field_identifier) )) . field_identifier)) ) (compound_statement "{\n      print_statement(plVar8,os);\n    }" { (expression_statement "print_statement(plVar8,os);" (call_expression "print_statement(plVar8,os)" identifier (argument_list "(plVar8,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    pcVar13 = "BEFORE";\n    if ((s->wild_statement).filenames_sorted == 0) {\n      pcVar13 = "AFTER";\n    }\n    minfo("INSERT %s %s\n",pcVar13,(s->wild_statement).filename);\n    break;" case identifier : (expression_statement "pcVar13 = "BEFORE";" (assignment_expression "pcVar13 = "BEFORE"" identifier = (string_literal ""BEFORE"" " string_content ")) ;) (if_statement "if ((s->wild_statement).filenames_sorted == 0) {\n      pcVar13 = "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      pcVar13 = "AFTER";\n    }" { (expression_statement "pcVar13 = "AFTER";" (assignment_expression "pcVar13 = "AFTER"" identifier = (string_literal ""AFTER"" " string_content ")) ;) })) (expression_statement "minfo("INSERT %s %s\n",pcVar13,(s->wild_statement).filename);" (call_expression "minfo("INSERT %s %s\n",pcVar13,(s->wild_statement).filename)" identifier (argument_list "("INSERT %s %s\n",pcVar13,(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        plVar8 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar8 = constructor_list.head;\n      }\n      for (; plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n        print_statement(plVar8,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        plVar8 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar8 = constructor_list.head;\n      }\n      for (; plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n        print_statement(plVar8,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        plVar8 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar8 = constructor_list.head;\n      }\n      for (; plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n        print_statement(plVar8,os);\n      }\n    }" { (if_statement "if (constructors_sorted == 0) {\n        minfo(" CONSTRUCTORS\n");\n        plVar8 = constructor_list.head;\n      }\n      else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar8 = 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        plVar8 = 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 "plVar8 = constructor_list.head;" (assignment_expression "plVar8 = constructor_list.head" identifier = (field_expression "constructor_list.head" identifier . field_identifier)) ;) }) (else_clause "else {\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar8 = constructor_list.head;\n      }" else (compound_statement "{\n        minfo(" SORT (CONSTRUCTORS)\n");\n        plVar8 = 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 "plVar8 = constructor_list.head;" (assignment_expression "plVar8 = constructor_list.head" identifier = (field_expression "constructor_list.head" identifier . field_identifier)) ;) }))) (for_statement "for (; plVar8 != (lang_statement_union_type *)0x0; plVar8 = (plVar8->header).next) {\n        print_statement(plVar8,os);\n      }" for ( ; (binary_expression "plVar8 != (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 "plVar8 = (plVar8->header).next" identifier = (field_expression "(plVar8->header).next" (parenthesized_expression "(plVar8->header)" ( (field_expression "plVar8->header" identifier -> field_identifier) )) . field_identifier)) ) (compound_statement "{\n        print_statement(plVar8,os);\n      }" { (expression_statement "print_statement(plVar8,os);" (call_expression "print_statement(plVar8,os)" identifier (argument_list "(plVar8,os)" ( identifier , identifier ))) ;) })) })) (break_statement "break;" break ;)) (case_statement "default:\n    pcVar13 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf((FILE *)config.map_file,pcVar13,sVar2);\n    info_assert("../../ld/ldlang.c",0x11bc);" default : (expression_statement "pcVar13 = (char *)dcgettext(0,"Fail with %d\n",5);" (assignment_expression "pcVar13 = (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,pcVar13,sVar2);" (call_expression "fprintf((FILE *)config.map_file,pcVar13,sVar2)" identifier (argument_list "((FILE *)config.map_file,pcVar13,sVar2)" ( (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_0001f7f0(int param_1,int param_2)\n\n{\n  uint *puVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *__base;\n  undefined4 *puVar7;\n  size_t sVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  char *pcVar12;\n  byte bVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined4 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  byte *pbVar22;\n  bool bVar23;\n  uint local_3c;\n  uint uStack_38;\n  uint uStack_34;\n  uint uStack_30;\n  size_t sStack_24;\n  \n  uVar11 = *(undefined4 *)(param_1 + 4);\n  switch(uVar11) {\n  case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;\n  case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;\n  case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;\n  case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;\n  case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;\n  case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;\n  case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;\n  case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;\n  case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;\n  case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_0001f7f0(int param_1,int param_2)\n\n{\n  uint *puVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *__base;\n  undefined4 *puVar7;\n  size_t sVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  char *pcVar12;\n  byte bVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined4 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  byte *pbVar22;\n  bool bVar23;\n  uint local_3c;\n  uint uStack_38;\n  uint uStack_34;\n  uint uStack_30;\n  size_t sStack_24;\n  \n  uVar11 = *(undefined4 *)(param_1 + 4);\n  switch(uVar11) {\n  case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;\n  case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;\n  case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;\n  case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;\n  case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;\n  case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;\n  case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;\n  case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;\n  case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;\n  case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0001f7f0(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  uint *puVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *__base;\n  undefined4 *puVar7;\n  size_t sVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  char *pcVar12;\n  byte bVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined4 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  byte *pbVar22;\n  bool bVar23;\n  uint local_3c;\n  uint uStack_38;\n  uint uStack_34;\n  uint uStack_30;\n  size_t sStack_24;\n  \n  uVar11 = *(undefined4 *)(param_1 + 4);\n  switch(uVar11) {\n  case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;\n  case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;\n  case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;\n  case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;\n  case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;\n  case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;\n  case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;\n  case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;\n  case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;\n  case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * 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 "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *__base;" type_identifier (pointer_declarator "*__base" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint uStack_38;" type_identifier identifier ;) (declaration "uint uStack_34;" type_identifier identifier ;) (declaration "uint uStack_30;" type_identifier identifier ;) (declaration "size_t sStack_24;" primitive_type identifier ;) (expression_statement "uVar11 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (switch_statement "switch(uVar11) {\n  case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;\n  case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;\n  case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;\n  case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;\n  case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;\n  case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;\n  case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;\n  case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;\n  case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;\n  case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../ld/ldlang.c",0x11bc);\n  }" switch (parenthesized_expression "(uVar11)" ( identifier )) (compound_statement "{\n  case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;\n  case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;\n  case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;\n  case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;\n  case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;\n  case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;\n  case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;\n  case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;\n  case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;\n  case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../ld/ldlang.c",0x11bc);\n  }" { (case_statement "case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;" case number_literal : (if_statement "if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }" if (parenthesized_expression "(param_1 != DAT_00098bac)" ( (binary_expression "param_1 != DAT_00098bac" identifier != identifier) )) (compound_statement "{\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }" { (expression_statement "iVar20 = *(int *)(param_1 + 0x1c);" (assignment_expression "iVar20 = *(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_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));" (call_expression "FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18))" identifier (argument_list "(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18))" ( (pointer_expression "&UNK_0004ce85" & 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 (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }" { (expression_statement "DAT_00098838 = *(uint *)(iVar20 + 0x1c);" (assignment_expression "DAT_00098838 = *(uint *)(iVar20 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "DAT_0009883c = *(uint *)(iVar20 + 0x20);" (assignment_expression "DAT_0009883c = *(uint *)(iVar20 + 0x20)" identifier = (pointer_expression "*(uint *)(iVar20 + 0x20)" * (cast_expression "(uint *)(iVar20 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "sVar8 = strlen(*(char **)(param_1 + 0x18));" (assignment_expression "sVar8 = 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 < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }" if (parenthesized_expression "(0xe < sVar8)" ( (binary_expression "0xe < sVar8" number_literal < identifier) )) (compound_statement "{\n          FUN_00031cf0();\n          sVar8 = 0;\n        }" { (expression_statement "FUN_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar8 = 0;" (assignment_expression "sVar8 = 0" identifier = number_literal) ;) })) (do_statement "do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);" do (compound_statement "{\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        }" { (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar8 = sVar8 + 1;" (assignment_expression "sVar8 = sVar8 + 1" identifier = (binary_expression "sVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar8 != 0x10)" ( (binary_expression "sVar8 != 0x10" identifier != number_literal) )) ;) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" identifier = (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f)" identifier = (binary_expression "*(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f)" (pointer_expression "*(uint *)(iVar20 + 0x30)" * (cast_expression "(uint *)(iVar20 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" ( (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;" (assignment_expression "uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13" identifier = (binary_expression "*(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13" (binary_expression "*(uint *)(iVar20 + 0x2c) >> bVar13" (pointer_expression "*(uint *)(iVar20 + 0x2c)" * (cast_expression "(uint *)(iVar20 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x2c)" ( (binary_expression "iVar20 + 0x2c" identifier + number_literal) )))) >> identifier) | (binary_expression "*(uint *)(iVar20 + 0x30) << 0x20 - bVar13" (pointer_expression "*(uint *)(iVar20 + 0x30)" * (cast_expression "(uint *)(iVar20 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) )))) << (binary_expression "0x20 - bVar13" number_literal - identifier)))) ;) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }" if (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" ( (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" ( (binary_expression "DAT_000987ec & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);" (call_expression "FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17)" identifier (argument_list "(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17)" ( (pointer_expression "&UNK_0004ce89" & identifier) , (pointer_expression "*(undefined4 *)(iVar20 + 0x1c)" * (cast_expression "(undefined4 *)(iVar20 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar20 + 0x20)" * (cast_expression "(undefined4 *)(iVar20 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "iVar6 = *(int *)(iVar20 + 0x28);" (assignment_expression "iVar6 = *(int *)(iVar20 + 0x28)" identifier = (pointer_expression "*(int *)(iVar20 + 0x28)" * (cast_expression "(int *)(iVar20 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x28)" ( (binary_expression "iVar20 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(iVar20 + 0x24);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0x24)" identifier = (pointer_expression "*(int *)(iVar20 + 0x24)" * (cast_expression "(int *)(iVar20 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x24)" ( (binary_expression "iVar20 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }" if (parenthesized_expression "(iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5)" ( (binary_expression "iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5" (binary_expression "iVar6 != *(int *)(iVar20 + 0x20)" identifier != (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) ))))) || (binary_expression "*(int *)(iVar20 + 0x1c) != iVar5" (pointer_expression "*(int *)(iVar20 + 0x1c)" * (cast_expression "(int *)(iVar20 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) != identifier)) )) (compound_statement "{\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }" { (expression_statement "uVar11 = dcgettext(0," load address 0x%V",5);" (assignment_expression "uVar11 = 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_00032c40(uVar11,iVar5,iVar6);" (call_expression "FUN_00032c40(uVar11,iVar5,iVar6)" identifier (argument_list "(uVar11,iVar5,iVar6)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\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_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }" { (expression_statement "FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;" (call_expression "FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)" identifier (argument_list "(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)" ( (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_00097fd4 + 0x180" identifier + number_literal) , (pointer_expression "&DAT_00098838" & identifier) ))) ;) })) })) (expression_statement "FUN_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) })) (for_statement "for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\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_0001f7f0();\n    }" { (expression_statement "FUN_0001f7f0();" (call_expression "FUN_0001f7f0()" identifier (argument_list "()" ( ))) ;) })) (break_statement "break;" break ;)) (case_statement "case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;" case number_literal : (expression_statement "iVar20 = 0x10;" (assignment_expression "iVar20 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);" do (compound_statement "{\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    }" { (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) ;) (expression_statement "iVar20 = *(int *)(param_1 + 8);" (assignment_expression "iVar20 = *(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 "pcVar12 = *(char **)(iVar20 + 0x10);" (assignment_expression "pcVar12 = *(char **)(iVar20 + 0x10)" identifier = (pointer_expression "*(char **)(iVar20 + 0x10)" * (cast_expression "(char **)(iVar20 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "puVar21 = *(undefined **)(param_2 + 0x1c);" (assignment_expression "puVar21 = *(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 *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }" if (parenthesized_expression "(*(int *)(iVar20 + 0xc) == 8)" ( (binary_expression "*(int *)(iVar20 + 0xc) == 8" (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }" { (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (if_statement "if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }" if (parenthesized_expression "(puVar21 == (undefined *)0x0)" ( (binary_expression "puVar21 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }" { (expression_statement "puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;" (assignment_expression "puVar21 = PTR__bfd_std_section_00097fd4 + 0x180" identifier = (binary_expression "PTR__bfd_std_section_00097fd4 + 0x180" identifier + number_literal)) ;) })) (labeled_statement "code_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);" statement_identifier : (expression_statement "FUN_000308e0(pcVar12,puVar21,&DAT_00098838);" (call_expression "FUN_000308e0(pcVar12,puVar21,&DAT_00098838)" identifier (argument_list "(pcVar12,puVar21,&DAT_00098838)" ( identifier , identifier , (pointer_expression "&DAT_00098838" & identifier) ))) ;)) (expression_statement "uVar17 = DAT_00098db8;" (assignment_expression "uVar17 = DAT_00098db8" identifier = identifier) ;) (expression_statement "uVar18 = DAT_00098db4;" (assignment_expression "uVar18 = DAT_00098db4" identifier = identifier) ;) (expression_statement "iVar20 = *(int *)(param_1 + 8);" (assignment_expression "iVar20 = *(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_00098dc4 == 0) goto code_r0x0001f87e;" if (parenthesized_expression "(DAT_00098dc4 == 0)" ( (binary_expression "DAT_00098dc4 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x0001f87e;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar20 + 0xc) == 8)" ( (binary_expression "*(int *)(iVar20 + 0xc) == 8" (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }" { (if_statement "if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }" if (parenthesized_expression "(DAT_00098dc0 != 0)" ( (binary_expression "DAT_00098dc0 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }" { (labeled_statement "code_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));" statement_identifier : (expression_statement "uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));" (assignment_expression "uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c))" identifier = (binary_expression "DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c))" (binary_expression "DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20)" identifier + (pointer_expression "*(int *)(DAT_00098dc0 + 0x20)" * (cast_expression "(int *)(DAT_00098dc0 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00098dc0 + 0x20)" ( (binary_expression "DAT_00098dc0 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c))" identifier (argument_list "(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c))" ( identifier , (pointer_expression "*(uint *)(DAT_00098dc0 + 0x1c)" * (cast_expression "(uint *)(DAT_00098dc0 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00098dc0 + 0x1c)" ( (binary_expression "DAT_00098dc0 + 0x1c" identifier + number_literal) )))) )))))) ;)) (expression_statement "uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);" (assignment_expression "uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c)" identifier = (binary_expression "DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c)" identifier + (pointer_expression "*(uint *)(DAT_00098dc0 + 0x1c)" * (cast_expression "(uint *)(DAT_00098dc0 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00098dc0 + 0x1c)" ( (binary_expression "DAT_00098dc0 + 0x1c" identifier + number_literal) )))))) ;) })) (expression_statement "FUN_00032c40("0x%V",uVar18,uVar17);" (call_expression "FUN_00032c40("0x%V",uVar18,uVar17)" identifier (argument_list "("0x%V",uVar18,uVar17)" ( (string_literal ""0x%V"" " string_content ") , identifier , identifier ))) ;) (if_statement "if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }" { (labeled_statement "code_r0x0002025d:\n          DAT_00098838 = uVar18;" statement_identifier : (expression_statement "DAT_00098838 = uVar18;" (assignment_expression "DAT_00098838 = uVar18" identifier = identifier) ;)) (expression_statement "DAT_0009883c = uVar17;" (assignment_expression "DAT_0009883c = uVar17" identifier = identifier) ;) })) }) (else_clause "else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }" else (compound_statement "{\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }" { (if_statement "if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }" { (if_statement "if (DAT_00098dc0 != 0) goto code_r0x00020228;" if (parenthesized_expression "(DAT_00098dc0 != 0)" ( (binary_expression "DAT_00098dc0 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00020228;" goto statement_identifier ;)) (expression_statement "FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);" (call_expression "FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8)" identifier (argument_list "("0x%V",DAT_00098db4,DAT_00098db8)" ( (string_literal ""0x%V"" " string_content ") , identifier , identifier ))) ;) (goto_statement "goto code_r0x0002025d;" goto statement_identifier ;) })) (if_statement "if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }" if (parenthesized_expression "(pcRam00098dac == (char *)0x0)" ( (binary_expression "pcRam00098dac == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }" { (expression_statement "iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);" (assignment_expression "iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1)" identifier (argument_list "(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1)" ( identifier , (pointer_expression "*(undefined4 *)(iVar20 + 0x10)" * (cast_expression "(undefined4 *)(iVar20 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) )))) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_00032c40("[unresolved]");\n          }" { (expression_statement "FUN_00032c40("[unresolved]");" (call_expression "FUN_00032c40("[unresolved]")" identifier (argument_list "("[unresolved]")" ( (string_literal ""[unresolved]"" " string_content ") ))) ;) }) (else_clause "else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }" else (compound_statement "{\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }" { (expression_statement "iVar6 = *(int *)(iVar20 + 0x14);" (assignment_expression "iVar6 = *(int *)(iVar20 + 0x14)" identifier = (pointer_expression "*(int *)(iVar20 + 0x14)" * (cast_expression "(int *)(iVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);" (assignment_expression "uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c)" identifier = (binary_expression "*(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c)" (pointer_expression "*(uint *)(iVar20 + 0x18)" * (cast_expression "(uint *)(iVar20 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x18)" ( (binary_expression "iVar20 + 0x18" identifier + number_literal) )))) + (pointer_expression "*(uint *)(iVar6 + 0x4c)" * (cast_expression "(uint *)(iVar6 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) )))))) ;) (expression_statement "puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);" (assignment_expression "puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c)" identifier = (cast_expression "(uint *)(*(int *)(iVar6 + 0x54) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x54) + 0x1c)" ( (binary_expression "*(int *)(iVar6 + 0x54) + 0x1c" (pointer_expression "*(int *)(iVar6 + 0x54)" * (cast_expression "(int *)(iVar6 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x54)" ( (binary_expression "iVar6 + 0x54" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));" (call_expression "FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1))" identifier (argument_list "(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1))" ( (pointer_expression "&UNK_0004cea4" & identifier) , (binary_expression "uVar18 + *puVar1" identifier + (pointer_expression "*puVar1" * identifier)) , (binary_expression "*(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1)" (binary_expression "*(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20)" (binary_expression "*(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c))" (binary_expression "*(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50)" (pointer_expression "*(int *)(iVar20 + 0x1c)" * (cast_expression "(int *)(iVar20 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar6 + 0x50)" * (cast_expression "(int *)(iVar6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x50)" ( (binary_expression "iVar6 + 0x50" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c))" identifier (argument_list "(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c))" ( (pointer_expression "*(uint *)(iVar20 + 0x18)" * (cast_expression "(uint *)(iVar20 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x18)" ( (binary_expression "iVar20 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(uint *)(iVar6 + 0x4c)" * (cast_expression "(uint *)(iVar6 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) )))) ))))) + (pointer_expression "*(int *)(*(int *)(iVar6 + 0x54) + 0x20)" * (cast_expression "(int *)(*(int *)(iVar6 + 0x54) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x54) + 0x20)" ( (binary_expression "*(int *)(iVar6 + 0x54) + 0x20" (pointer_expression "*(int *)(iVar6 + 0x54)" * (cast_expression "(int *)(iVar6 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x54)" ( (binary_expression "iVar6 + 0x54" identifier + number_literal) )))) + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar18,*puVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar18,*puVar1)" identifier (argument_list "(uVar18,*puVar1)" ( identifier , (pointer_expression "*puVar1" * identifier) ))))) ))) ;) }))) }) (else_clause "else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }" else (compound_statement "{\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }" { (if_statement "if (DAT_00098dc0 != 0) goto code_r0x00020228;" if (parenthesized_expression "(DAT_00098dc0 != 0)" ( (binary_expression "DAT_00098dc0 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00020228;" goto statement_identifier ;)) (expression_statement "FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);" (call_expression "FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8)" identifier (argument_list "("0x%V",DAT_00098db4,DAT_00098db8)" ( (string_literal ""0x%V"" " string_content ") , identifier , identifier ))) ;) }))) }))) }) (else_clause "else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }" else (compound_statement "{\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }" { (if_statement "if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }" if (parenthesized_expression "((*pcVar12 == '.') && (pcVar12[1] == '\0'))" ( (binary_expression "(*pcVar12 == '.') && (pcVar12[1] == '\0')" (parenthesized_expression "(*pcVar12 == '.')" ( (binary_expression "*pcVar12 == '.'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'.'" ' character ')) )) && (parenthesized_expression "(pcVar12[1] == '\0')" ( (binary_expression "pcVar12[1] == '\0'" (subscript_expression "pcVar12[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        bVar23 = true;\n      }" { (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) }) (else_clause "else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }" else (compound_statement "{\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }" { (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "pcRam00098dac = pcVar12;" (assignment_expression "pcRam00098dac = pcVar12" identifier = identifier) ;) }))) (expression_statement "pcVar12 = *(char **)(iVar20 + 0x14);" (assignment_expression "pcVar12 = *(char **)(iVar20 + 0x14)" identifier = (pointer_expression "*(char **)(iVar20 + 0x14)" * (cast_expression "(char **)(iVar20 + 0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }" if (parenthesized_expression "(puVar21 == (undefined *)0x0)" ( (binary_expression "puVar21 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }" { (expression_statement "puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;" (assignment_expression "puVar21 = PTR__bfd_std_section_00097fd4 + 0x180" identifier = (binary_expression "PTR__bfd_std_section_00097fd4 + 0x180" identifier + number_literal)) ;) })) (if_statement "if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;" if (parenthesized_expression "(*(int *)(iVar20 + 0xc) != 5)" ( (binary_expression "*(int *)(iVar20 + 0xc) != 5" (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto code_r0x000201d5;" goto statement_identifier ;)) (expression_statement "DAT_00098dc4 = 0;" (assignment_expression "DAT_00098dc4 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }" statement_identifier : (if_statement "if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }" if (parenthesized_expression "(*(int *)(iVar20 + 0xc) == 5)" ( (binary_expression "*(int *)(iVar20 + 0xc) == 5" (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        FUN_00032c40("[!provide]");\n      }" { (expression_statement "FUN_00032c40("[!provide]");" (call_expression "FUN_00032c40("[!provide]")" identifier (argument_list "("[!provide]")" ( (string_literal ""[!provide]"" " string_content ") ))) ;) }) (else_clause "else {\n        FUN_00032c40(&UNK_0004cec3);\n      }" else (compound_statement "{\n        FUN_00032c40(&UNK_0004cec3);\n      }" { (expression_statement "FUN_00032c40(&UNK_0004cec3);" (call_expression "FUN_00032c40(&UNK_0004cec3)" identifier (argument_list "(&UNK_0004cec3)" ( (pointer_expression "&UNK_0004cec3" & identifier) ))) ;) })))) (expression_statement "FUN_00032c40(&UNK_0004ced6);" (call_expression "FUN_00032c40(&UNK_0004ced6)" identifier (argument_list "(&UNK_0004ced6)" ( (pointer_expression "&UNK_0004ced6" & identifier) ))) ;) }))) (expression_statement "pcRam00098dac = (char *)0x0;" (assignment_expression "pcRam00098dac = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00032c40(&UNK_0004cece);" (call_expression "FUN_00032c40(&UNK_0004cece)" identifier (argument_list "(&UNK_0004cece)" ( (pointer_expression "&UNK_0004cece" & identifier) ))) ;) (expression_statement "FUN_00030c80(*(undefined4 *)(param_1 + 8));" (call_expression "FUN_00030c80(*(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_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;" case number_literal : (expression_statement "iVar20 = *(int *)(param_1 + 8);" (assignment_expression "iVar20 = *(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 (iVar20 == 0) {\n      return;\n    }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 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 "pcVar12 = "LOAD %s\n";" (assignment_expression "pcVar12 = "LOAD %s\n"" identifier = (string_literal ""LOAD %s\n"" " string_content escape_sequence ")) ;) (goto_statement "goto code_r0x0001fc3c;" goto statement_identifier ;)) (case_statement "case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;" case number_literal : (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(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 "uVar10 = dcgettext(0,"Address of section %s set to ",5);" (assignment_expression "uVar10 = 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_00032c40(uVar10,uVar11);" (call_expression "FUN_00032c40(uVar10,uVar11)" identifier (argument_list "(uVar10,uVar11)" ( identifier , identifier ))) ;) (expression_statement "FUN_00030c80(*(undefined4 *)(param_1 + 0xc));" (call_expression "FUN_00030c80(*(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_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;" case number_literal : (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\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      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }" { (expression_statement "uVar11 = **(undefined4 **)(param_1 + 0x20);" (assignment_expression "uVar11 = **(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_00032c40("EXCLUDE_FILE(%s",uVar11);" (call_expression "FUN_00032c40("EXCLUDE_FILE(%s",uVar11)" identifier (argument_list "("EXCLUDE_FILE(%s",uVar11)" ( (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        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\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        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }" { (expression_statement "uVar11 = *puVar4;" (assignment_expression "uVar11 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "FUN_00032c40(&DAT_0004b5e3,uVar11);" (call_expression "FUN_00032c40(&DAT_0004b5e3,uVar11)" identifier (argument_list "(&DAT_0004b5e3,uVar11)" ( (pointer_expression "&DAT_0004b5e3" & identifier) , identifier ))) ;) })) (expression_statement "FUN_00032c40(&UNK_0004cdbf,uVar11);" (call_expression "FUN_00032c40(&UNK_0004cdbf,uVar11)" identifier (argument_list "(&UNK_0004cdbf,uVar11)" ( (pointer_expression "&UNK_0004cdbf" & identifier) , identifier ))) ;) })) (if_statement "if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("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_00032c40("SORT_BY_NAME(");\n    }" { (expression_statement "FUN_00032c40("SORT_BY_NAME(");" (call_expression "FUN_00032c40("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_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(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_00032c40(&DAT_0004cff4);\n    }" { (expression_statement "FUN_00032c40(&DAT_0004cff4);" (call_expression "FUN_00032c40(&DAT_0004cff4)" identifier (argument_list "(&DAT_0004cff4)" ( (pointer_expression "&DAT_0004cff4" & identifier) ))) ;) }) (else_clause "else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }" else (compound_statement "{\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }" { (expression_statement "FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));" (call_expression "FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8))" identifier (argument_list "(&DAT_0004ce86,*(int *)(param_1 + 8))" ( (pointer_expression "&DAT_0004ce86" & 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_00032c40(")");\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_00032c40(")");\n    }" { (expression_statement "FUN_00032c40(")");" (call_expression "FUN_00032c40(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) ;) })) (expression_statement "FUN_00032c40("(");" (call_expression "FUN_00032c40("(")" 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        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\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        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }" { (switch_statement "switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }" switch (parenthesized_expression "(piVar3[3])" ( (subscript_expression "piVar3[3]" identifier [ number_literal ]) )) (compound_statement "{\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }" { (case_statement "default:\n        iVar20 = 0;\n        break;" default : (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;" case number_literal : (expression_statement "iVar20 = 1;" (assignment_expression "iVar20 = 1" identifier = number_literal) ;) (expression_statement "FUN_00032c40("SORT_BY_NAME(");" (call_expression "FUN_00032c40("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        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;" case number_literal : (expression_statement "iVar20 = 1;" (assignment_expression "iVar20 = 1" identifier = number_literal) ;) (expression_statement "FUN_00032c40("SORT_BY_ALIGNMENT(");" (call_expression "FUN_00032c40("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        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;" case number_literal : (expression_statement "iVar20 = 2;" (assignment_expression "iVar20 = 2" identifier = number_literal) ;) (expression_statement "FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");" (call_expression "FUN_00032c40("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        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;" case number_literal : (expression_statement "iVar20 = 2;" (assignment_expression "iVar20 = 2" identifier = number_literal) ;) (expression_statement "FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");" (call_expression "FUN_00032c40("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        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;" case number_literal : (expression_statement "FUN_00032c40("SORT_NONE(");" (call_expression "FUN_00032c40("SORT_NONE(")" identifier (argument_list "("SORT_NONE(")" ( (string_literal ""SORT_NONE("" " string_content ") ))) ;) (expression_statement "iVar20 = 1;" (assignment_expression "iVar20 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");" case number_literal : (expression_statement "iVar20 = 1;" (assignment_expression "iVar20 = 1" identifier = number_literal) ;) (expression_statement "FUN_00032c40("SORT_BY_INIT_PRIORITY(");" (call_expression "FUN_00032c40("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        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\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        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }" { (expression_statement "uVar11 = *(undefined4 *)piVar3[2];" (assignment_expression "uVar11 = *(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_00032c40("EXCLUDE_FILE(%s",uVar11);" (call_expression "FUN_00032c40("EXCLUDE_FILE(%s",uVar11)" identifier (argument_list "("EXCLUDE_FILE(%s",uVar11)" ( (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          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\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          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }" { (expression_statement "uVar11 = *puVar4;" (assignment_expression "uVar11 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "FUN_00032c40(&DAT_0004b5e3,uVar11);" (call_expression "FUN_00032c40(&DAT_0004b5e3,uVar11)" identifier (argument_list "(&DAT_0004b5e3,uVar11)" ( (pointer_expression "&DAT_0004b5e3" & identifier) , identifier ))) ;) })) (expression_statement "FUN_00032c40(&UNK_0004cdbf,uVar11);" (call_expression "FUN_00032c40(&UNK_0004cdbf,uVar11)" identifier (argument_list "(&UNK_0004cdbf,uVar11)" ( (pointer_expression "&UNK_0004cdbf" & identifier) , identifier ))) ;) })) (if_statement "if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,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_00032c40(&DAT_0004cff4);\n      }" { (expression_statement "FUN_00032c40(&DAT_0004cff4);" (call_expression "FUN_00032c40(&DAT_0004cff4)" identifier (argument_list "(&DAT_0004cff4)" ( (pointer_expression "&DAT_0004cff4" & identifier) ))) ;) }) (else_clause "else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }" else (compound_statement "{\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }" { (expression_statement "FUN_00032c40(&DAT_0004ce86,piVar3[1]);" (call_expression "FUN_00032c40(&DAT_0004ce86,piVar3[1])" identifier (argument_list "(&DAT_0004ce86,piVar3[1])" ( (pointer_expression "&DAT_0004ce86" & identifier) , (subscript_expression "piVar3[1]" identifier [ number_literal ]) ))) ;) }))) (if_statement "if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }" if (parenthesized_expression "((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1))" ( (binary_expression "(iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)" (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) && (parenthesized_expression "(FUN_00032c40(")"), iVar20 != 1)" ( (comma_expression "FUN_00032c40(")"), iVar20 != 1" (call_expression "FUN_00032c40(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) , (binary_expression "iVar20 != 1" identifier != number_literal)) ))) )) (compound_statement "{\n        FUN_00032c40(")");\n      }" { (expression_statement "FUN_00032c40(")");" (call_expression "FUN_00032c40(")")" 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_00032c40(&UNK_0004cedd);" (call_expression "FUN_00032c40(&UNK_0004cedd)" identifier (argument_list "(&UNK_0004cedd)" ( (pointer_expression "&UNK_0004cedd" & identifier) ))) ;) })) (expression_statement "FUN_00032c40(")");" (call_expression "FUN_00032c40(")")" identifier (argument_list "(")")" ( (string_literal "")"" " string_content ") ))) ;) (expression_statement "FUN_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) (for_statement "for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\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_0001f7f0();\n    }" { (expression_statement "FUN_0001f7f0();" (call_expression "FUN_0001f7f0()" identifier (argument_list "()" ( ))) ;) })) (break_statement "break;" break ;)) (case_statement "case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\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 "uStack_38 = puVar4[0xc];" (assignment_expression "uStack_38 = puVar4[0xc]" identifier = (subscript_expression "puVar4[0xc]" identifier [ number_literal ])) ;) (expression_statement "local_3c = puVar4[0xb];" (assignment_expression "local_3c = puVar4[0xb]" identifier = (subscript_expression "puVar4[0xb]" identifier [ number_literal ])) ;) (expression_statement "FUN_0001f3e0();" (call_expression "FUN_0001f3e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00032c40(&DAT_0004ce86,*puVar4);" (call_expression "FUN_00032c40(&DAT_0004ce86,*puVar4)" identifier (argument_list "(&DAT_0004ce86,*puVar4)" ( (pointer_expression "&DAT_0004ce86" & identifier) , (pointer_expression "*puVar4" * identifier) ))) ;) (expression_statement "sVar8 = strlen((char *)*puVar4);" (assignment_expression "sVar8 = 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 "uVar18 = sVar8 + 1;" (assignment_expression "uVar18 = sVar8 + 1" identifier = (binary_expression "sVar8 + 1" identifier + number_literal)) ;) (if_statement "if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }" if (parenthesized_expression "(0xe < uVar18)" ( (binary_expression "0xe < uVar18" number_literal < identifier) )) (compound_statement "{\n      FUN_00031cf0();\n      uVar18 = 0;\n    }" { (expression_statement "FUN_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) })) (do_statement "do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);" do (compound_statement "{\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    }" { (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar18 != 0x10)" ( (binary_expression "uVar18 != 0x10" identifier != number_literal) )) ;) (expression_statement "iVar20 = puVar4[0x15];" (assignment_expression "iVar20 = puVar4[0x15]" identifier = (subscript_expression "puVar4[0x15]" identifier [ number_literal ])) ;) (if_statement "if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }" if (parenthesized_expression "((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34))" ( (binary_expression "(iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)" (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(iVar20 + 0xac) != DAT_00098c34)" ( (binary_expression "*(int *)(iVar20 + 0xac) != DAT_00098c34" (pointer_expression "*(int *)(iVar20 + 0xac)" * (cast_expression "(int *)(iVar20 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xac)" ( (binary_expression "iVar20 + 0xac" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }" { (expression_statement "uStack_34 = DAT_00098838;" (assignment_expression "uStack_34 = DAT_00098838" identifier = identifier) ;) (expression_statement "uStack_30 = DAT_0009883c;" (assignment_expression "uStack_30 = DAT_0009883c" identifier = identifier) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "uStack_38 = 0;" (assignment_expression "uStack_38 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }" else (compound_statement "{\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }" { (expression_statement "uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];" (assignment_expression "uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13]" identifier = (binary_expression "*(uint *)(iVar20 + 0x1c) + puVar4[0x13]" (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) + (subscript_expression "puVar4[0x13]" identifier [ number_literal ]))) ;) (expression_statement "uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);" (assignment_expression "uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13])" identifier = (binary_expression "*(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13])" (binary_expression "*(int *)(iVar20 + 0x20) + puVar4[0x14]" (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) + (subscript_expression "puVar4[0x14]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13])" identifier (argument_list "(*(uint *)(iVar20 + 0x1c),puVar4[0x13])" ( (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) , (subscript_expression "puVar4[0x13]" identifier [ number_literal ]) )))))) ;) }))) (expression_statement "FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);" (call_expression "FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b])" identifier (argument_list "(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b])" ( (pointer_expression "&DAT_0004cd54" & identifier) , identifier , identifier , identifier , identifier , (subscript_expression "puVar4[0x2b]" identifier [ number_literal ]) ))) ;) (if_statement "if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }" if (parenthesized_expression "((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0))" ( (binary_expression "(local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)" (parenthesized_expression "(local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe])" ( (binary_expression "local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]" (binary_expression "local_3c != puVar4[0xd]" identifier != (subscript_expression "puVar4[0xd]" identifier [ number_literal ])) || (binary_expression "uStack_38 != puVar4[0xe]" identifier != (subscript_expression "puVar4[0xe]" identifier [ number_literal ]))) )) && (parenthesized_expression "(puVar4[0xd] != 0 || puVar4[0xe] != 0)" ( (binary_expression "puVar4[0xd] != 0 || puVar4[0xe] != 0" (binary_expression "puVar4[0xd] != 0" (subscript_expression "puVar4[0xd]" identifier [ number_literal ]) != number_literal) || (binary_expression "puVar4[0xe] != 0" (subscript_expression "puVar4[0xe]" identifier [ number_literal ]) != number_literal)) ))) )) (compound_statement "{\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }" { (expression_statement "iVar20 = 0x23;" (assignment_expression "iVar20 = 0x23" identifier = number_literal) ;) (do_statement "do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);" do (compound_statement "{\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      }" { (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) ;) (expression_statement "uVar11 = puVar4[0xd];" (assignment_expression "uVar11 = puVar4[0xd]" identifier = (subscript_expression "puVar4[0xd]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar4[0xe];" (assignment_expression "uVar10 = puVar4[0xe]" identifier = (subscript_expression "puVar4[0xe]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);" (assignment_expression "uVar9 = 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_00032c40(uVar9,uVar11,uVar10);" (call_expression "FUN_00032c40(uVar9,uVar11,uVar10)" identifier (argument_list "(uVar9,uVar11,uVar10)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "puVar19 = DAT_00098870;" (assignment_expression "puVar19 = DAT_00098870" identifier = identifier) ;) (expression_statement "puVar14 = DAT_0009886c;" (assignment_expression "puVar14 = DAT_0009886c" identifier = identifier) ;) (if_statement "if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }" if (parenthesized_expression "((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34))" ( (binary_expression "(puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)" (parenthesized_expression "(puVar4[0x15] != 0)" ( (binary_expression "puVar4[0x15] != 0" (subscript_expression "puVar4[0x15]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)" ( (binary_expression "*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34" (pointer_expression "*(int *)(puVar4[0x15] + 0xac)" * (cast_expression "(int *)(puVar4[0x15] + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4[0x15] + 0xac)" ( (binary_expression "puVar4[0x15] + 0xac" (subscript_expression "puVar4[0x15]" identifier [ number_literal ]) + number_literal) )))) == identifier) ))) )) (compound_statement "{\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }" { (if_statement "if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }" if (parenthesized_expression "((DAT_00098c04 & 0x10) == 0)" ( (binary_expression "(DAT_00098c04 & 0x10) == 0" (parenthesized_expression "(DAT_00098c04 & 0x10)" ( (binary_expression "DAT_00098c04 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }" { (expression_statement "puVar2 = (undefined4 *)puVar4[0x20];" (assignment_expression "puVar2 = (undefined4 *)puVar4[0x20]" identifier = (cast_expression "(undefined4 *)puVar4[0x20]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[0x20]" identifier [ number_literal ]))) ;) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__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          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__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 "sVar8 = puVar2[2];" (assignment_expression "sVar8 = puVar2[2]" identifier = (subscript_expression "puVar2[2]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = sVar8 * 4;" (assignment_expression "uVar18 = sVar8 * 4" identifier = (binary_expression "sVar8 * 4" identifier * number_literal)) ;) (expression_statement "uVar17 = (int)puVar19 - (int)puVar14;" (assignment_expression "uVar17 = (int)puVar19 - (int)puVar14" identifier = (binary_expression "(int)puVar19 - (int)puVar14" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "sStack_24 = sVar8;" (assignment_expression "sStack_24 = sVar8" identifier = identifier) ;) (if_statement "if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }" if (parenthesized_expression "(uVar17 <= uVar18 && uVar18 - uVar17 != 0)" ( (binary_expression "uVar17 <= uVar18 && uVar18 - uVar17 != 0" (binary_expression "uVar17 <= uVar18" identifier <= identifier) && (binary_expression "uVar18 - uVar17 != 0" (binary_expression "uVar18 - uVar17" identifier - identifier) != number_literal)) )) (compound_statement "{\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }" { (expression_statement "_obstack_newchunk(&DAT_00098860,uVar18);" (call_expression "_obstack_newchunk(&DAT_00098860,uVar18)" identifier (argument_list "(&DAT_00098860,uVar18)" ( (pointer_expression "&DAT_00098860" & identifier) , identifier ))) ;) (expression_statement "sStack_24 = puVar2[2];" (assignment_expression "sStack_24 = puVar2[2]" identifier = (subscript_expression "puVar2[2]" identifier [ number_literal ])) ;) (expression_statement "puVar14 = DAT_0009886c;" (assignment_expression "puVar14 = DAT_0009886c" identifier = identifier) ;) (expression_statement "puVar19 = DAT_00098870;" (assignment_expression "puVar19 = DAT_00098870" identifier = identifier) ;) })) (expression_statement "__base = DAT_00098868;" (assignment_expression "__base = DAT_00098868" identifier = identifier) ;) (if_statement "if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }" if (parenthesized_expression "(puVar14 + sVar8 == DAT_00098868)" ( (binary_expression "puVar14 + sVar8 == DAT_00098868" (binary_expression "puVar14 + sVar8" identifier + identifier) == identifier) )) (compound_statement "{\n            DAT_00098888 = DAT_00098888 | 2;\n          }" { (expression_statement "DAT_00098888 = DAT_00098888 | 2;" (assignment_expression "DAT_00098888 = DAT_00098888 | 2" identifier = (binary_expression "DAT_00098888 | 2" identifier | number_literal)) ;) })) (expression_statement "DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);" (assignment_expression "DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878)" identifier = (cast_expression "(undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878)" ( (binary_expression "(int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878" (binary_expression "(int)(puVar14 + sVar8) + DAT_00098878" (cast_expression "(int)(puVar14 + sVar8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + sVar8)" ( (binary_expression "puVar14 + sVar8" identifier + identifier) ))) + identifier) & (unary_expression "~DAT_00098878" ~ identifier)) )))) ;) (if_statement "if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }" if (parenthesized_expression "((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864))" ( (binary_expression "(uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)" (call_expression "(uint)((int)puVar19 - (int)DAT_00098864)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar19 - (int)DAT_00098864)" ( (binary_expression "(int)puVar19 - (int)DAT_00098864" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)DAT_00098864" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)((int)DAT_0009886c - (int)DAT_00098864)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)DAT_0009886c - (int)DAT_00098864)" ( (binary_expression "(int)DAT_0009886c - (int)DAT_00098864" (cast_expression "(int)DAT_0009886c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)DAT_00098864" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n            DAT_0009886c = puVar19;\n          }" { (expression_statement "DAT_0009886c = puVar19;" (assignment_expression "DAT_0009886c = puVar19" identifier = identifier) ;) })) (expression_statement "puVar14 = (undefined4 *)*puVar2;" (assignment_expression "puVar14 = (undefined4 *)*puVar2" identifier = (cast_expression "(undefined4 *)*puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (expression_statement "puVar7 = DAT_0009886c;" (assignment_expression "puVar7 = DAT_0009886c" identifier = identifier) ;) (expression_statement "puVar19 = DAT_00098868;" (assignment_expression "puVar19 = DAT_00098868" identifier = identifier) ;) (while_statement "while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }" while (parenthesized_expression "(DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0)" ( (comma_expression "DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0" (assignment_expression "DAT_00098868 = puVar7" identifier = identifier) , (binary_expression "puVar14 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }" { (expression_statement "uVar11 = *puVar14;" (assignment_expression "uVar11 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar14 = (undefined4 *)puVar14[1];" (assignment_expression "puVar14 = (undefined4 *)puVar14[1]" identifier = (cast_expression "(undefined4 *)puVar14[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[1]" identifier [ number_literal ]))) ;) (expression_statement "*puVar19 = uVar11;" (assignment_expression "*puVar19 = uVar11" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "puVar7 = DAT_00098868;" (assignment_expression "puVar7 = DAT_00098868" identifier = identifier) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) })) (expression_statement "qsort(__base,sStack_24,4,FUN_0001dec0);" (call_expression "qsort(__base,sStack_24,4,FUN_0001dec0)" identifier (argument_list "(__base,sStack_24,4,FUN_0001dec0)" ( identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (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            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);" do (compound_statement "{\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            }" { (expression_statement "puVar14 = __base + uVar18;" (assignment_expression "puVar14 = __base + uVar18" identifier = (binary_expression "__base + uVar18" identifier + identifier)) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0001f350(*puVar14,puVar4);" (call_expression "FUN_0001f350(*puVar14,puVar4)" identifier (argument_list "(*puVar14,puVar4)" ( (pointer_expression "*puVar14" * identifier) , identifier ))) ;) }) while (parenthesized_expression "(uVar18 < (uint)puVar2[2])" ( (binary_expression "uVar18 < (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_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }" if (parenthesized_expression "((DAT_00098864 < __base) && (__base < DAT_00098870))" ( (binary_expression "(DAT_00098864 < __base) && (__base < DAT_00098870)" (parenthesized_expression "(DAT_00098864 < __base)" ( (binary_expression "DAT_00098864 < __base" identifier < identifier) )) && (parenthesized_expression "(__base < DAT_00098870)" ( (binary_expression "__base < DAT_00098870" identifier < identifier) ))) )) (compound_statement "{\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }" { (expression_statement "DAT_0009886c = __base;" (assignment_expression "DAT_0009886c = __base" identifier = identifier) ;) (expression_statement "DAT_00098868 = __base;" (assignment_expression "DAT_00098868 = __base" identifier = identifier) ;) }) (else_clause "else {\n            _obstack_free(&DAT_00098860,__base);\n          }" else (compound_statement "{\n            _obstack_free(&DAT_00098860,__base);\n          }" { (expression_statement "_obstack_free(&DAT_00098860,__base);" (call_expression "_obstack_free(&DAT_00098860,__base)" identifier (argument_list "(&DAT_00098860,__base)" ( (pointer_expression "&DAT_00098860" & identifier) , identifier ))) ;) }))) })) }) (else_clause "else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }" else (compound_statement "{\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }" { (expression_statement "bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);" (call_expression "bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4)" identifier (argument_list "(DAT_00098c20,FUN_0001f350,puVar4)" ( identifier , identifier , identifier ))) ;) }))) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" identifier = (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f)" identifier = (binary_expression "uStack_38 >> ((byte)DAT_000987ec & 0x1f)" identifier >> (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" ( (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;" (assignment_expression "uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13" identifier = (binary_expression "local_3c >> bVar13 | uStack_38 << 0x20 - bVar13" (binary_expression "local_3c >> bVar13" identifier >> identifier) | (binary_expression "uStack_38 << 0x20 - bVar13" identifier << (binary_expression "0x20 - bVar13" number_literal - identifier)))) ;) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }" if (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" ( (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" ( (binary_expression "DAT_000987ec & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);" (assignment_expression "uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34)" identifier = (binary_expression "uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34)" (binary_expression "uVar17 + uStack_30" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar18,uStack_34)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar18,uStack_34)" identifier (argument_list "(uVar18,uStack_34)" ( identifier , identifier )))))) ;) (if_statement "if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }" if (parenthesized_expression "(DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         )" ( (binary_expression "DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)" (binary_expression "DAT_0009883c < uVar17" identifier < identifier) || (binary_expression "DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)" (binary_expression "DAT_0009883c - uVar17" identifier - identifier) < (call_expression "(uint)(DAT_00098838 < uVar18 + uStack_34)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(DAT_00098838 < uVar18 + uStack_34)" ( (binary_expression "DAT_00098838 < uVar18 + uStack_34" identifier < (binary_expression "uVar18 + uStack_34" identifier + identifier)) ))))) )) (compound_statement "{\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }" { (expression_statement "DAT_00098838 = uVar18 + uStack_34;" (assignment_expression "DAT_00098838 = uVar18 + uStack_34" identifier = (binary_expression "uVar18 + uStack_34" identifier + identifier)) ;) (expression_statement "DAT_0009883c = uVar17;" (assignment_expression "DAT_0009883c = uVar17" identifier = identifier) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;)) (case_statement "case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;" case number_literal : (expression_statement "FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");" (call_expression "FUN_00032c40(" 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_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;" case number_literal : (expression_statement "fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);" (call_expression "fwrite(" FILL mask 0x",1,0xd,DAT_00098d50)" identifier (argument_list "(" FILL mask 0x",1,0xd,DAT_00098d50)" ( (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 "iVar20 = *piVar3;" (assignment_expression "iVar20 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "pbVar22 = (byte *)(piVar3 + 1);" (assignment_expression "pbVar22 = (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 (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }" { (do_statement "do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));" do (compound_statement "{\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      }" { (expression_statement "bVar13 = *pbVar22;" (assignment_expression "bVar13 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "fprintf(DAT_00098d50,"%02x",(uint)bVar13);" (call_expression "fprintf(DAT_00098d50,"%02x",(uint)bVar13)" identifier (argument_list "(DAT_00098d50,"%02x",(uint)bVar13)" ( identifier , (string_literal ""%02x"" " string_content ") , (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }) while (parenthesized_expression "(pbVar22 != (byte *)((int)piVar3 + iVar20 + 4))" ( (binary_expression "pbVar22 != (byte *)((int)piVar3 + iVar20 + 4)" identifier != (cast_expression "(byte *)((int)piVar3 + iVar20 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + iVar20 + 4)" ( (binary_expression "(int)piVar3 + iVar20 + 4" (binary_expression "(int)piVar3 + iVar20" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )) ;) })) (expression_statement "fputc(10,DAT_00098d50);" (call_expression "fputc(10,DAT_00098d50)" identifier (argument_list "(10,DAT_00098d50)" ( number_literal , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;" case number_literal : (expression_statement "FUN_0001f3e0();" (call_expression "FUN_0001f3e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = 0x10;" (assignment_expression "iVar20 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);" do (compound_statement "{\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    }" { (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) ;) (expression_statement "uStack_34 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uStack_34 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uStack_30 = *(int *)(param_1 + 0x20);" (assignment_expression "uStack_30 = *(int *)(param_1 + 0x20)" identifier = (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) ))))) ;) (expression_statement "iVar20 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar20 = *(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 (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" { (expression_statement "bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));" (assignment_expression "bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c))" identifier = (call_expression "CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c))" identifier (argument_list "(uStack_34,*(uint *)(iVar20 + 0x1c))" ( identifier , (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);" (assignment_expression "uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c)" identifier = (binary_expression "uStack_34 + *(uint *)(iVar20 + 0x1c)" identifier + (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;" (assignment_expression "uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23" identifier = (binary_expression "uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23" (binary_expression "uStack_30 + *(int *)(iVar20 + 0x20)" identifier + (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (switch_statement "switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\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      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }" { (case_statement "case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;" case number_literal : (expression_statement "pcVar12 = "QUAD";" (assignment_expression "pcVar12 = "QUAD"" identifier = (string_literal ""QUAD"" " string_content ")) ;) (expression_statement "uVar18 = 8;" (assignment_expression "uVar18 = 8" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;" case number_literal : (expression_statement "pcVar12 = "SQUAD";" (assignment_expression "pcVar12 = "SQUAD"" identifier = (string_literal ""SQUAD"" " string_content ")) ;) (expression_statement "uVar18 = 8;" (assignment_expression "uVar18 = 8" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;" case number_literal : (expression_statement "pcVar12 = "LONG";" (assignment_expression "pcVar12 = "LONG"" identifier = (string_literal ""LONG"" " string_content ")) ;) (expression_statement "uVar18 = 4;" (assignment_expression "uVar18 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;" case number_literal : (expression_statement "pcVar12 = "SHORT";" (assignment_expression "pcVar12 = "SHORT"" identifier = (string_literal ""SHORT"" " string_content ")) ;) (expression_statement "uVar18 = 2;" (assignment_expression "uVar18 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;" case number_literal : (expression_statement "pcVar12 = "BYTE";" (assignment_expression "pcVar12 = "BYTE"" identifier = (string_literal ""BYTE"" " string_content ")) ;) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);" default : (expression_statement "FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);" (call_expression "FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1)" identifier (argument_list "("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal , (string_literal ""print_data_statement"" " string_content ") , identifier ))) ;)) })) (expression_statement "bVar13 = (byte)DAT_000987ec;" (assignment_expression "bVar13 = (byte)DAT_000987ec" identifier = (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "local_3c = 1 << (bVar13 & 0x1f);" (assignment_expression "local_3c = 1 << (bVar13 & 0x1f)" identifier = (binary_expression "1 << (bVar13 & 0x1f)" number_literal << (parenthesized_expression "(bVar13 & 0x1f)" ( (binary_expression "bVar13 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }" if (parenthesized_expression "(local_3c < uVar18)" ( (binary_expression "local_3c < uVar18" identifier < identifier) )) (compound_statement "{\n      local_3c = uVar18;\n    }" { (expression_statement "local_3c = uVar18;" (assignment_expression "local_3c = uVar18" identifier = identifier) ;) })) (expression_statement "uVar16 = 0 >> (bVar13 & 0x1f);" (assignment_expression "uVar16 = 0 >> (bVar13 & 0x1f)" identifier = (binary_expression "0 >> (bVar13 & 0x1f)" number_literal >> (parenthesized_expression "(bVar13 & 0x1f)" ( (binary_expression "bVar13 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);" (assignment_expression "uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f)" identifier = (binary_expression "local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f)" (binary_expression "local_3c >> (bVar13 & 0x1f)" identifier >> (parenthesized_expression "(bVar13 & 0x1f)" ( (binary_expression "bVar13 & 0x1f" identifier & number_literal) ))) | (binary_expression "0 << 0x20 - (bVar13 & 0x1f)" number_literal << (binary_expression "0x20 - (bVar13 & 0x1f)" number_literal - (parenthesized_expression "(bVar13 & 0x1f)" ( (binary_expression "bVar13 & 0x1f" identifier & number_literal) )))))) ;) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" if (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" ( (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" ( (binary_expression "DAT_000987ec & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));" (call_expression "FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" identifier (argument_list "("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" ( (string_literal ""0x%V %W %s 0x%v"" " string_content ") , identifier , identifier , identifier , identifier , 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) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) ))) ;) (if_statement "if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(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_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }" { (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00030c80(*(undefined4 *)(param_1 + 0xc));" (call_expression "FUN_00030c80(*(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_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" identifier = (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f)" identifier = (binary_expression "0 >> ((byte)DAT_000987ec & 0x1f)" number_literal >> (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" ( (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;" (assignment_expression "uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13" identifier = (binary_expression "local_3c >> bVar13 | 0 << 0x20 - bVar13" (binary_expression "local_3c >> bVar13" identifier >> identifier) | (binary_expression "0 << 0x20 - bVar13" number_literal << (binary_expression "0x20 - bVar13" number_literal - identifier)))) ;) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" if (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" ( (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" ( (binary_expression "DAT_000987ec & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "DAT_00098838 = uVar18 + uStack_34;" (assignment_expression "DAT_00098838 = uVar18 + uStack_34" identifier = (binary_expression "uVar18 + uStack_34" identifier + identifier)) ;) (expression_statement "DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);" (assignment_expression "DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34)" identifier = (binary_expression "uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34)" (binary_expression "uVar17 + uStack_30" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar18,uStack_34)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar18,uStack_34)" identifier (argument_list "(uVar18,uStack_34)" ( identifier , identifier )))))) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;" case number_literal : (expression_statement "FUN_0001f3e0();" (call_expression "FUN_0001f3e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = 0x10;" (assignment_expression "iVar20 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);" do (compound_statement "{\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    }" { (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) ;) (expression_statement "local_3c = *(uint *)(param_1 + 0x28);" (assignment_expression "local_3c = *(uint *)(param_1 + 0x28)" identifier = (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uStack_38 = *(int *)(param_1 + 0x2c);" (assignment_expression "uStack_38 = *(int *)(param_1 + 0x2c)" identifier = (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar20 = *(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 (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" { (expression_statement "bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));" (assignment_expression "bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c))" identifier = (call_expression "CARRY4(local_3c,*(uint *)(iVar20 + 0x1c))" identifier (argument_list "(local_3c,*(uint *)(iVar20 + 0x1c))" ( identifier , (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "local_3c = local_3c + *(uint *)(iVar20 + 0x1c);" (assignment_expression "local_3c = local_3c + *(uint *)(iVar20 + 0x1c)" identifier = (binary_expression "local_3c + *(uint *)(iVar20 + 0x1c)" identifier + (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;" (assignment_expression "uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23" identifier = (binary_expression "uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23" (binary_expression "uStack_38 + *(int *)(iVar20 + 0x20)" identifier + (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));" (assignment_expression "uVar16 = 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 "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" identifier = (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f)" identifier = (binary_expression "0 >> ((byte)DAT_000987ec & 0x1f)" number_literal >> (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" ( (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" identifier = identifier) ;) (expression_statement "uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;" (assignment_expression "uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13" identifier = (binary_expression "uVar16 >> bVar13 | 0 << 0x20 - bVar13" (binary_expression "uVar16 >> bVar13" identifier >> identifier) | (binary_expression "0 << 0x20 - bVar13" number_literal << (binary_expression "0x20 - bVar13" number_literal - identifier)))) ;) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }" if (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" ( (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" ( (binary_expression "DAT_000987ec & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar15;" (assignment_expression "uVar18 = uVar15" identifier = identifier) ;) })) (expression_statement "FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));" (call_expression "FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20))" identifier (argument_list "("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20))" ( (string_literal ""0x%V %W RELOC %s "" " string_content ") , identifier , identifier , identifier , identifier , (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_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(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_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }" { (expression_statement "FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));" (call_expression "FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10))" identifier (argument_list "(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10))" ( (pointer_expression "&UNK_0004ce70" & 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_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }" else (compound_statement "{\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }" { (expression_statement "FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));" (call_expression "FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14))" identifier (argument_list "(&UNK_0004ce70,*(int *)(param_1 + 0x14))" ( (pointer_expression "&UNK_0004ce70" & 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_00030c80(*(undefined4 *)(param_1 + 0x18));" (call_expression "FUN_00030c80(*(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_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" identifier = (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f)" identifier = (binary_expression "0 >> ((byte)DAT_000987ec & 0x1f)" number_literal >> (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" ( (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" identifier = identifier) ;) (expression_statement "uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;" (assignment_expression "uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13" identifier = (binary_expression "uVar16 >> bVar13 | 0 << 0x20 - bVar13" (binary_expression "uVar16 >> bVar13" identifier >> identifier) | (binary_expression "0 << 0x20 - bVar13" number_literal << (binary_expression "0x20 - bVar13" number_literal - identifier)))) ;) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }" if (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" ( (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" ( (binary_expression "DAT_000987ec & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar15;" (assignment_expression "uVar18 = uVar15" identifier = identifier) ;) })) (expression_statement "DAT_00098838 = uVar18 + local_3c;" (assignment_expression "DAT_00098838 = uVar18 + local_3c" identifier = (binary_expression "uVar18 + local_3c" identifier + identifier)) ;) (expression_statement "DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);" (assignment_expression "DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c)" identifier = (binary_expression "uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c)" (binary_expression "uVar17 + uStack_38" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar18,local_3c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar18,local_3c)" identifier (argument_list "(uVar18,local_3c)" ( identifier , identifier )))))) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;" case number_literal : (expression_statement "iVar20 = *(int *)(param_1 + 8);" (assignment_expression "iVar20 = *(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 "pcVar12 = "TARGET(%s)\n";" (assignment_expression "pcVar12 = "TARGET(%s)\n"" identifier = (string_literal ""TARGET(%s)\n"" " string_content escape_sequence ")) ;) (labeled_statement "code_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);" statement_identifier : (expression_statement "fprintf(DAT_00098d50,pcVar12,iVar20);" (call_expression "fprintf(DAT_00098d50,pcVar12,iVar20)" identifier (argument_list "(DAT_00098d50,pcVar12,iVar20)" ( identifier , identifier , identifier ))) ;)) (break_statement "break;" break ;)) (case_statement "case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;" case number_literal : (expression_statement "iVar20 = *(int *)(param_1 + 8);" (assignment_expression "iVar20 = *(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_00032c40("OUTPUT(%s",iVar20);" (call_expression "FUN_00032c40("OUTPUT(%s",iVar20)" identifier (argument_list "("OUTPUT(%s",iVar20)" ( (string_literal ""OUTPUT(%s"" " string_content ") , identifier ))) ;) (if_statement "if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }" if (parenthesized_expression "(DAT_00098bbc != 0)" ( (binary_expression "DAT_00098bbc != 0" identifier != number_literal) )) (compound_statement "{\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }" { (expression_statement "iVar20 = DAT_00098bbc;" (assignment_expression "iVar20 = DAT_00098bbc" identifier = identifier) ;) (expression_statement "FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);" (call_expression "FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc)" identifier (argument_list "(&DAT_0004b5e3,DAT_00098bbc)" ( (pointer_expression "&DAT_0004b5e3" & identifier) , identifier ))) ;) })) (expression_statement "FUN_00032c40(")\n",iVar20);" (call_expression "FUN_00032c40(")\n",iVar20)" identifier (argument_list "(")\n",iVar20)" ( (string_literal "")\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;" case number_literal : (expression_statement "FUN_0001f3e0();" (call_expression "FUN_0001f3e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00032c40(&UNK_0004ce74);" (call_expression "FUN_00032c40(&UNK_0004ce74)" identifier (argument_list "(&UNK_0004ce74)" ( (pointer_expression "&UNK_0004ce74" & identifier) ))) ;) (expression_statement "iVar20 = 9;" (assignment_expression "iVar20 = 9" identifier = number_literal) ;) (do_statement "do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);" do (compound_statement "{\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    }" { (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) ;) (expression_statement "uStack_34 = *(uint *)(param_1 + 8);" (assignment_expression "uStack_34 = *(uint *)(param_1 + 8)" identifier = (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uStack_30 = *(int *)(param_1 + 0xc);" (assignment_expression "uStack_30 = *(int *)(param_1 + 0xc)" identifier = (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) ))))) ;) (expression_statement "iVar20 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar20 = *(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 (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" { (expression_statement "bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));" (assignment_expression "bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c))" identifier = (call_expression "CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c))" identifier (argument_list "(uStack_34,*(uint *)(iVar20 + 0x1c))" ( identifier , (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);" (assignment_expression "uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c)" identifier = (binary_expression "uStack_34 + *(uint *)(iVar20 + 0x1c)" identifier + (pointer_expression "*(uint *)(iVar20 + 0x1c)" * (cast_expression "(uint *)(iVar20 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;" (assignment_expression "uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23" identifier = (binary_expression "uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23" (binary_expression "uStack_30 + *(int *)(iVar20 + 0x20)" identifier + (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" identifier = (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f)" identifier = (binary_expression "*(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f)" (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" ( (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;" (assignment_expression "uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13" identifier = (binary_expression "*(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13" (binary_expression "*(uint *)(param_1 + 0x10) >> bVar13" (pointer_expression "*(uint *)(param_1 + 0x10)" * (cast_expression "(uint *)(param_1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) >> identifier) | (binary_expression "*(uint *)(param_1 + 0x14) << 0x20 - bVar13" (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) << (binary_expression "0x20 - bVar13" number_literal - identifier)))) ;) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" if (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" ( (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" ( (binary_expression "DAT_000987ec & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);" (call_expression "FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17)" identifier (argument_list "(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17)" ( (pointer_expression "&UNK_0004ce7c" & identifier) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "piVar3 = *(int **)(param_1 + 0x1c);" (assignment_expression "piVar3 = *(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 "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = *piVar3;" (assignment_expression "iVar20 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }" { (expression_statement "pbVar22 = (byte *)(piVar3 + 1);" (assignment_expression "pbVar22 = (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        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));" do (compound_statement "{\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      }" { (expression_statement "bVar13 = *pbVar22;" (assignment_expression "bVar13 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "fprintf(DAT_00098d50,"%02x",(uint)bVar13);" (call_expression "fprintf(DAT_00098d50,"%02x",(uint)bVar13)" identifier (argument_list "(DAT_00098d50,"%02x",(uint)bVar13)" ( identifier , (string_literal ""%02x"" " string_content ") , (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) }) while (parenthesized_expression "(pbVar22 != (byte *)((int)piVar3 + iVar20 + 4))" ( (binary_expression "pbVar22 != (byte *)((int)piVar3 + iVar20 + 4)" identifier != (cast_expression "(byte *)((int)piVar3 + iVar20 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + iVar20 + 4)" ( (binary_expression "(int)piVar3 + iVar20 + 4" (binary_expression "(int)piVar3 + iVar20" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )) ;) })) (expression_statement "FUN_00031cf0();" (call_expression "FUN_00031cf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" identifier = (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f)" identifier = (binary_expression "*(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f)" (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" ( (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;" (assignment_expression "uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13" identifier = (binary_expression "*(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13" (binary_expression "*(uint *)(param_1 + 0x10) >> bVar13" (pointer_expression "*(uint *)(param_1 + 0x10)" * (cast_expression "(uint *)(param_1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) >> identifier) | (binary_expression "*(uint *)(param_1 + 0x14) << 0x20 - bVar13" (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) << (binary_expression "0x20 - bVar13" number_literal - identifier)))) ;) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" if (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" ( (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" ( (binary_expression "DAT_000987ec & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "DAT_00098838 = uStack_34 + uVar18;" (assignment_expression "DAT_00098838 = uStack_34 + uVar18" identifier = (binary_expression "uStack_34 + uVar18" identifier + identifier)) ;) (expression_statement "DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);" (assignment_expression "DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18)" identifier = (binary_expression "uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18)" (binary_expression "uStack_30 + uVar17" identifier + identifier) + (cast_expression "(uint)CARRY4(uStack_34,uVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uStack_34,uVar18)" identifier (argument_list "(uStack_34,uVar18)" ( identifier , identifier )))))) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;" case number_literal : (expression_statement "fwrite("START GROUP\n",1,0xc,DAT_00098d50);" (call_expression "fwrite("START GROUP\n",1,0xc,DAT_00098d50)" identifier (argument_list "("START GROUP\n",1,0xc,DAT_00098d50)" ( (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_0001f7f0();\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_0001f7f0();\n    }" { (expression_statement "FUN_0001f7f0();" (call_expression "FUN_0001f7f0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "fwrite("END GROUP\n",1,10,DAT_00098d50);" (call_expression "fwrite("END GROUP\n",1,10,DAT_00098d50)" identifier (argument_list "("END GROUP\n",1,10,DAT_00098d50)" ( (string_literal ""END GROUP\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;" case number_literal : (expression_statement "pcVar12 = "BEFORE";" (assignment_expression "pcVar12 = "BEFORE"" identifier = (string_literal ""BEFORE"" " string_content ")) ;) (if_statement "if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "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      pcVar12 = "AFTER";\n    }" { (expression_statement "pcVar12 = "AFTER";" (assignment_expression "pcVar12 = "AFTER"" identifier = (string_literal ""AFTER"" " string_content ")) ;) })) (expression_statement "FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));" (call_expression "FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8))" identifier (argument_list "("INSERT %s %s\n",pcVar12,*(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_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;" case number_literal : (if_statement "if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }" if (parenthesized_expression "(DAT_00098bcc != (undefined4 *)0x0)" ( (binary_expression "DAT_00098bcc != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }" { (if_statement "if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }" if (parenthesized_expression "(DAT_00098bd4 == 0)" ( (binary_expression "DAT_00098bd4 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }" { (expression_statement "FUN_00032c40(" CONSTRUCTORS\n");" (call_expression "FUN_00032c40(" CONSTRUCTORS\n")" identifier (argument_list "(" CONSTRUCTORS\n")" ( (string_literal "" CONSTRUCTORS\n"" " string_content escape_sequence ") ))) ;) (expression_statement "puVar4 = DAT_00098bcc;" (assignment_expression "puVar4 = DAT_00098bcc" identifier = identifier) ;) }) (else_clause "else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }" else (compound_statement "{\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }" { (expression_statement "FUN_00032c40(" SORT (CONSTRUCTORS)\n");" (call_expression "FUN_00032c40(" SORT (CONSTRUCTORS)\n")" identifier (argument_list "(" SORT (CONSTRUCTORS)\n")" ( (string_literal "" SORT (CONSTRUCTORS)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "puVar4 = DAT_00098bcc;" (assignment_expression "puVar4 = DAT_00098bcc" identifier = identifier) ;) }))) (for_statement "for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\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_0001f7f0();\n      }" { (expression_statement "FUN_0001f7f0();" (call_expression "FUN_0001f7f0()" identifier (argument_list "()" ( ))) ;) })) })) (break_statement "break;" break ;)) (case_statement "default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../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(DAT_00098d50,pcVar12,uVar11);" (call_expression "fprintf(DAT_00098d50,pcVar12,uVar11)" identifier (argument_list "(DAT_00098d50,pcVar12,uVar11)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00032c00("../../ld/ldlang.c",0x11bc);" (call_expression "FUN_00032c00("../../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 (pointer_declarator * 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 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 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 IDENT ;) (declaration TYPE 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 = (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 (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> IDENT) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (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) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_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) )))) != 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 , 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 = 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 (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))))) ;)) (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 , IDENT ))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (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 , 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 (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (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 IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (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) , (binary_expression IDENT + (pointer_expression * IDENT)) , (binary_expression (binary_expression (binary_expression (binary_expression (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 IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (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 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) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) ))))) ))) ;) }))) }) (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 , 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 (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 (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (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 ") ))) ;)) })) (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 ( (pointer_expression & IDENT) ))) ;) })) (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 (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (subscript_expression IDENT [ LIT ]) )))))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , IDENT , IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) || (binary_expression IDENT != (subscript_expression IDENT [ LIT ]))) )) && (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) || (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 = (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 , IDENT ))) ;) })) (expression_statement (assignment_expression 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) ;) })) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> IDENT) | (binary_expression IDENT << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (binary_expression IDENT + IDENT)) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (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) ))))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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) )))) )))) ;) (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 (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (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 ")) ;) (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 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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression LIT >> (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) | (binary_expression LIT << (binary_expression LIT - (parenthesized_expression ( (binary_expression IDENT & LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT , IDENT , IDENT , IDENT , (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 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> IDENT) | (binary_expression LIT << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , 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) ))))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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) )))) )))) ;) (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 (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> IDENT) | (binary_expression LIT << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT , IDENT , 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) )))) ))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> IDENT) | (binary_expression LIT << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( 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 (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) ))))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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) )))) )))) ;) (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 (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> IDENT) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , 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) ))))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> IDENT) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (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_0001f7f0(int param_1,int param_2)\n\n{\n  uint *puVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *__base;\n  undefined4 *puVar7;\n  size_t sVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  char *pcVar12;\n  byte bVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined4 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  byte *pbVar22;\n  bool bVar23;\n  uint local_3c;\n  uint uStack_38;\n  uint uStack_34;\n  uint uStack_30;\n  size_t sStack_24;\n  \n  uVar11 = *(undefined4 *)(param_1 + 4);\n  switch(uVar11) {\n  case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;\n  case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;\n  case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;\n  case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;\n  case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;\n  case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;\n  case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;\n  case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;\n  case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;\n  case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0001f7f0(int param_1,int param_2)" (identifier "FUN_0001f7f0") (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  uint *puVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *__base;\n  undefined4 *puVar7;\n  size_t sVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  char *pcVar12;\n  byte bVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined4 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  byte *pbVar22;\n  bool bVar23;\n  uint local_3c;\n  uint uStack_38;\n  uint uStack_34;\n  uint uStack_30;\n  size_t sStack_24;\n  \n  uVar11 = *(undefined4 *)(param_1 + 4);\n  switch(uVar11) {\n  case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;\n  case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;\n  case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;\n  case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;\n  case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;\n  case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;\n  case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;\n  case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;\n  case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;\n  case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../ld/ldlang.c",0x11bc);\n  }\n  return;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (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 "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *__base;" (type_identifier "undefined4") (pointer_declarator "*__base" (* "*") (identifier "__base")) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "size_t sVar8;" (primitive_type "size_t") (identifier "sVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "byte bVar13;" (type_identifier "byte") (identifier "bVar13") (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "undefined4 *puVar19;" (type_identifier "undefined4") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "undefined *puVar21;" (type_identifier "undefined") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "byte *pbVar22;" (type_identifier "byte") (pointer_declarator "*pbVar22" (* "*") (identifier "pbVar22")) (; ";")) (declaration "bool bVar23;" (primitive_type "bool") (identifier "bVar23") (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "uint uStack_38;" (type_identifier "uint") (identifier "uStack_38") (; ";")) (declaration "uint uStack_34;" (type_identifier "uint") (identifier "uStack_34") (; ";")) (declaration "uint uStack_30;" (type_identifier "uint") (identifier "uStack_30") (; ";")) (declaration "size_t sStack_24;" (primitive_type "size_t") (identifier "sStack_24") (; ";")) (expression_statement "uVar11 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 4)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (switch_statement "switch(uVar11) {\n  case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;\n  case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;\n  case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;\n  case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;\n  case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;\n  case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;\n  case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;\n  case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;\n  case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;\n  case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../ld/ldlang.c",0x11bc);\n  }" (switch "switch") (parenthesized_expression "(uVar11)" (( "(") (identifier "uVar11") () ")")) (compound_statement "{\n  case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;\n  case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;\n  case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;\n  case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;\n  case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }\n    return;\n  case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;\n  case 7:\n    fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;\n  case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;\n  case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;\n  case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;\n  case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;\n  case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;\n  case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;\n  case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;\n  case 0xf:\n    if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;\n  default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../ld/ldlang.c",0x11bc);\n  }" ({ "{") (case_statement "case 0:\n    if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;" (case "case") (number_literal "0") (: ":") (if_statement "if (param_1 != DAT_00098bac) {\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }" (if "if") (parenthesized_expression "(param_1 != DAT_00098bac)" (( "(") (binary_expression "param_1 != DAT_00098bac" (identifier "param_1") (!= "!=") (identifier "DAT_00098bac")) () ")")) (compound_statement "{\n      iVar20 = *(int *)(param_1 + 0x1c);\n      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));\n      if (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }\n      FUN_00031cf0();\n    }" ({ "{") (expression_statement "iVar20 = *(int *)(param_1 + 0x1c);" (assignment_expression "iVar20 = *(int *)(param_1 + 0x1c)" (identifier "iVar20") (= "=") (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_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));" (call_expression "FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18))" (identifier "FUN_00032c40") (argument_list "(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18))" (( "(") (pointer_expression "&UNK_0004ce85" (& "&") (identifier "UNK_0004ce85")) (, ",") (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 (iVar20 != 0) {\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        DAT_00098838 = *(uint *)(iVar20 + 0x1c);\n        DAT_0009883c = *(uint *)(iVar20 + 0x20);\n        sVar8 = strlen(*(char **)(param_1 + 0x18));\n        if (0xe < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }\n        do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);\n        bVar13 = (byte)DAT_000987ec & 0x1f;\n        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);\n        uVar17 = uVar16;\n        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;\n        if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }\n        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);\n        iVar6 = *(int *)(iVar20 + 0x28);\n        iVar5 = *(int *)(iVar20 + 0x24);\n        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }\n        if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }\n      }" ({ "{") (expression_statement "DAT_00098838 = *(uint *)(iVar20 + 0x1c);" (assignment_expression "DAT_00098838 = *(uint *)(iVar20 + 0x1c)" (identifier "DAT_00098838") (= "=") (pointer_expression "*(uint *)(iVar20 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar20 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x1c)" (( "(") (binary_expression "iVar20 + 0x1c" (identifier "iVar20") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "DAT_0009883c = *(uint *)(iVar20 + 0x20);" (assignment_expression "DAT_0009883c = *(uint *)(iVar20 + 0x20)" (identifier "DAT_0009883c") (= "=") (pointer_expression "*(uint *)(iVar20 + 0x20)" (* "*") (cast_expression "(uint *)(iVar20 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x20)" (( "(") (binary_expression "iVar20 + 0x20" (identifier "iVar20") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "sVar8 = strlen(*(char **)(param_1 + 0x18));" (assignment_expression "sVar8 = strlen(*(char **)(param_1 + 0x18))" (identifier "sVar8") (= "=") (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 < sVar8) {\n          FUN_00031cf0();\n          sVar8 = 0;\n        }" (if "if") (parenthesized_expression "(0xe < sVar8)" (( "(") (binary_expression "0xe < sVar8" (number_literal "0xe") (< "<") (identifier "sVar8")) () ")")) (compound_statement "{\n          FUN_00031cf0();\n          sVar8 = 0;\n        }" ({ "{") (expression_statement "FUN_00031cf0();" (call_expression "FUN_00031cf0()" (identifier "FUN_00031cf0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "sVar8 = 0;" (assignment_expression "sVar8 = 0" (identifier "sVar8") (= "=") (number_literal "0")) (; ";")) (} "}"))) (do_statement "do {\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        } while (sVar8 != 0x10);" (do "do") (compound_statement "{\n          FUN_00031cc0();\n          sVar8 = sVar8 + 1;\n        }" ({ "{") (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" (identifier "FUN_00031cc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "sVar8 = sVar8 + 1;" (assignment_expression "sVar8 = sVar8 + 1" (identifier "sVar8") (= "=") (binary_expression "sVar8 + 1" (identifier "sVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(sVar8 != 0x10)" (( "(") (binary_expression "sVar8 != 0x10" (identifier "sVar8") (!= "!=") (number_literal "0x10")) () ")")) (; ";")) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" (identifier "bVar13") (= "=") (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000987ec")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f)" (identifier "uVar16") (= "=") (binary_expression "*(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f)" (pointer_expression "*(uint *)(iVar20 + 0x30)" (* "*") (cast_expression "(uint *)(iVar20 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x30)" (( "(") (binary_expression "iVar20 + 0x30" (identifier "iVar20") (+ "+") (number_literal "0x30")) () ")")))) (>> ">>") (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" (( "(") (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000987ec")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" (identifier "uVar17") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;" (assignment_expression "uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13" (identifier "uVar18") (= "=") (binary_expression "*(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13" (binary_expression "*(uint *)(iVar20 + 0x2c) >> bVar13" (pointer_expression "*(uint *)(iVar20 + 0x2c)" (* "*") (cast_expression "(uint *)(iVar20 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x2c)" (( "(") (binary_expression "iVar20 + 0x2c" (identifier "iVar20") (+ "+") (number_literal "0x2c")) () ")")))) (>> ">>") (identifier "bVar13")) (| "|") (binary_expression "*(uint *)(iVar20 + 0x30) << 0x20 - bVar13" (pointer_expression "*(uint *)(iVar20 + 0x30)" (* "*") (cast_expression "(uint *)(iVar20 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x30)" (( "(") (binary_expression "iVar20 + 0x30" (identifier "iVar20") (+ "+") (number_literal "0x30")) () ")")))) (<< "<<") (binary_expression "0x20 - bVar13" (number_literal "0x20") (- "-") (identifier "bVar13"))))) (; ";")) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }" (if "if") (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" (( "(") (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" (( "(") (binary_expression "DAT_000987ec & 0x20" (identifier "DAT_000987ec") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar17 = 0;\n          uVar18 = uVar16;\n        }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" (identifier "uVar18") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (expression_statement "FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17);" (call_expression "FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17)" (identifier "FUN_00032c40") (argument_list "(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),\n                     uVar18,uVar17)" (( "(") (pointer_expression "&UNK_0004ce89" (& "&") (identifier "UNK_0004ce89")) (, ",") (pointer_expression "*(undefined4 *)(iVar20 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x1c)" (( "(") (binary_expression "iVar20 + 0x1c" (identifier "iVar20") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar20 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x20)" (( "(") (binary_expression "iVar20 + 0x20" (identifier "iVar20") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (identifier "uVar18") (, ",") (identifier "uVar17") () ")"))) (; ";")) (expression_statement "iVar6 = *(int *)(iVar20 + 0x28);" (assignment_expression "iVar6 = *(int *)(iVar20 + 0x28)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar20 + 0x28)" (* "*") (cast_expression "(int *)(iVar20 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x28)" (( "(") (binary_expression "iVar20 + 0x28" (identifier "iVar20") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)(iVar20 + 0x24);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0x24)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar20 + 0x24)" (* "*") (cast_expression "(int *)(iVar20 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x24)" (( "(") (binary_expression "iVar20 + 0x24" (identifier "iVar20") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (if_statement "if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }" (if "if") (parenthesized_expression "(iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5)" (( "(") (binary_expression "iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5" (binary_expression "iVar6 != *(int *)(iVar20 + 0x20)" (identifier "iVar6") (!= "!=") (pointer_expression "*(int *)(iVar20 + 0x20)" (* "*") (cast_expression "(int *)(iVar20 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x20)" (( "(") (binary_expression "iVar20 + 0x20" (identifier "iVar20") (+ "+") (number_literal "0x20")) () ")"))))) (|| "||") (binary_expression "*(int *)(iVar20 + 0x1c) != iVar5" (pointer_expression "*(int *)(iVar20 + 0x1c)" (* "*") (cast_expression "(int *)(iVar20 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x1c)" (( "(") (binary_expression "iVar20 + 0x1c" (identifier "iVar20") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (identifier "iVar5"))) () ")")) (compound_statement "{\n          uVar11 = dcgettext(0," load address 0x%V",5);\n          FUN_00032c40(uVar11,iVar5,iVar6);\n        }" ({ "{") (expression_statement "uVar11 = dcgettext(0," load address 0x%V",5);" (assignment_expression "uVar11 = dcgettext(0," load address 0x%V",5)" (identifier "uVar11") (= "=") (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_00032c40(uVar11,iVar5,iVar6);" (call_expression "FUN_00032c40(uVar11,iVar5,iVar6)" (identifier "FUN_00032c40") (argument_list "(uVar11,iVar5,iVar6)" (( "(") (identifier "uVar11") (, ",") (identifier "iVar5") (, ",") (identifier "iVar6") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x34) != 0) {\n          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\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_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;\n        }" ({ "{") (expression_statement "FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)\n          ;" (call_expression "FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)" (identifier "FUN_000308e0") (argument_list "(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)" (( "(") (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_00097fd4 + 0x180" (identifier "PTR__bfd_std_section_00097fd4") (+ "+") (number_literal "0x180")) (, ",") (pointer_expression "&DAT_00098838" (& "&") (identifier "DAT_00098838")) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00031cf0();" (call_expression "FUN_00031cf0()" (identifier "FUN_00031cf0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (for_statement "for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\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_0001f7f0();\n    }" ({ "{") (expression_statement "FUN_0001f7f0();" (call_expression "FUN_0001f7f0()" (identifier "FUN_0001f7f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = *(char **)(iVar20 + 0x10);\n    puVar21 = *(undefined **)(param_2 + 0x1c);\n    if (*(int *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }\n    pcRam00098dac = (char *)0x0;\n    FUN_00032c40(&UNK_0004cece);\n    FUN_00030c80(*(undefined4 *)(param_1 + 8));\n    FUN_00031cf0();\n    break;" (case "case") (number_literal "1") (: ":") (expression_statement "iVar20 = 0x10;" (assignment_expression "iVar20 = 0x10" (identifier "iVar20") (= "=") (number_literal "0x10")) (; ";")) (do_statement "do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);" (do "do") (compound_statement "{\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    }" ({ "{") (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" (identifier "FUN_00031cc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" (identifier "iVar20") (= "=") (binary_expression "iVar20 + -1" (identifier "iVar20") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar20 = *(int *)(param_1 + 8);" (assignment_expression "iVar20 = *(int *)(param_1 + 8)" (identifier "iVar20") (= "=") (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 "pcVar12 = *(char **)(iVar20 + 0x10);" (assignment_expression "pcVar12 = *(char **)(iVar20 + 0x10)" (identifier "pcVar12") (= "=") (pointer_expression "*(char **)(iVar20 + 0x10)" (* "*") (cast_expression "(char **)(iVar20 + 0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar20 + 0x10)" (( "(") (binary_expression "iVar20 + 0x10" (identifier "iVar20") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "puVar21 = *(undefined **)(param_2 + 0x1c);" (assignment_expression "puVar21 = *(undefined **)(param_2 + 0x1c)" (identifier "puVar21") (= "=") (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 *)(iVar20 + 0xc) == 8) {\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }\n    else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar20 + 0xc) == 8)" (( "(") (binary_expression "*(int *)(iVar20 + 0xc) == 8" (pointer_expression "*(int *)(iVar20 + 0xc)" (* "*") (cast_expression "(int *)(iVar20 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "8")) () ")")) (compound_statement "{\n      bVar23 = false;\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\ncode_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);\n      uVar17 = DAT_00098db8;\n      uVar18 = DAT_00098db4;\n      iVar20 = *(int *)(param_1 + 8);\n      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;\n      if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }\n    }" ({ "{") (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (if_statement "if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }" (if "if") (parenthesized_expression "(puVar21 == (undefined *)0x0)" (( "(") (binary_expression "puVar21 == (undefined *)0x0" (identifier "puVar21") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }" ({ "{") (expression_statement "puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;" (assignment_expression "puVar21 = PTR__bfd_std_section_00097fd4 + 0x180" (identifier "puVar21") (= "=") (binary_expression "PTR__bfd_std_section_00097fd4 + 0x180" (identifier "PTR__bfd_std_section_00097fd4") (+ "+") (number_literal "0x180"))) (; ";")) (} "}"))) (labeled_statement "code_r0x000201d5:\n      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);" (statement_identifier "code_r0x000201d5") (: ":") (expression_statement "FUN_000308e0(pcVar12,puVar21,&DAT_00098838);" (call_expression "FUN_000308e0(pcVar12,puVar21,&DAT_00098838)" (identifier "FUN_000308e0") (argument_list "(pcVar12,puVar21,&DAT_00098838)" (( "(") (identifier "pcVar12") (, ",") (identifier "puVar21") (, ",") (pointer_expression "&DAT_00098838" (& "&") (identifier "DAT_00098838")) () ")"))) (; ";"))) (expression_statement "uVar17 = DAT_00098db8;" (assignment_expression "uVar17 = DAT_00098db8" (identifier "uVar17") (= "=") (identifier "DAT_00098db8")) (; ";")) (expression_statement "uVar18 = DAT_00098db4;" (assignment_expression "uVar18 = DAT_00098db4" (identifier "uVar18") (= "=") (identifier "DAT_00098db4")) (; ";")) (expression_statement "iVar20 = *(int *)(param_1 + 8);" (assignment_expression "iVar20 = *(int *)(param_1 + 8)" (identifier "iVar20") (= "=") (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_00098dc4 == 0) goto code_r0x0001f87e;" (if "if") (parenthesized_expression "(DAT_00098dc4 == 0)" (( "(") (binary_expression "DAT_00098dc4 == 0" (identifier "DAT_00098dc4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0001f87e;" (goto "goto") (statement_identifier "code_r0x0001f87e") (; ";"))) (if_statement "if (*(int *)(iVar20 + 0xc) == 8) {\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }\n      else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar20 + 0xc) == 8)" (( "(") (binary_expression "*(int *)(iVar20 + 0xc) == 8" (pointer_expression "*(int *)(iVar20 + 0xc)" (* "*") (cast_expression "(int *)(iVar20 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "8")) () ")")) (compound_statement "{\n        if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }\n        FUN_00032c40("0x%V",uVar18,uVar17);\n        if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }\n      }" ({ "{") (if_statement "if (DAT_00098dc0 != 0) {\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }" (if "if") (parenthesized_expression "(DAT_00098dc0 != 0)" (( "(") (binary_expression "DAT_00098dc0 != 0" (identifier "DAT_00098dc0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));\n          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);\n        }" ({ "{") (labeled_statement "code_r0x00020228:\n          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));" (statement_identifier "code_r0x00020228") (: ":") (expression_statement "uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));" (assignment_expression "uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c))" (identifier "uVar17") (= "=") (binary_expression "DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +\n                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c))" (binary_expression "DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20)" (identifier "DAT_00098db8") (+ "+") (pointer_expression "*(int *)(DAT_00098dc0 + 0x20)" (* "*") (cast_expression "(int *)(DAT_00098dc0 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00098dc0 + 0x20)" (( "(") (binary_expression "DAT_00098dc0 + 0x20" (identifier "DAT_00098dc0") (+ "+") (number_literal "0x20")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c))" (identifier "CARRY4") (argument_list "(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c))" (( "(") (identifier "DAT_00098db4") (, ",") (pointer_expression "*(uint *)(DAT_00098dc0 + 0x1c)" (* "*") (cast_expression "(uint *)(DAT_00098dc0 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00098dc0 + 0x1c)" (( "(") (binary_expression "DAT_00098dc0 + 0x1c" (identifier "DAT_00098dc0") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))))) (; ";"))) (expression_statement "uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);" (assignment_expression "uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c)" (identifier "uVar18") (= "=") (binary_expression "DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c)" (identifier "DAT_00098db4") (+ "+") (pointer_expression "*(uint *)(DAT_00098dc0 + 0x1c)" (* "*") (cast_expression "(uint *)(DAT_00098dc0 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00098dc0 + 0x1c)" (( "(") (binary_expression "DAT_00098dc0 + 0x1c" (identifier "DAT_00098dc0") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (} "}"))) (expression_statement "FUN_00032c40("0x%V",uVar18,uVar17);" (call_expression "FUN_00032c40("0x%V",uVar18,uVar17)" (identifier "FUN_00032c40") (argument_list "("0x%V",uVar18,uVar17)" (( "(") (string_literal ""0x%V"" (" """) (string_content "0x%V") (" """)) (, ",") (identifier "uVar18") (, ",") (identifier "uVar17") () ")"))) (; ";")) (if_statement "if (bVar23) {\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }" (if "if") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (compound_statement "{\ncode_r0x0002025d:\n          DAT_00098838 = uVar18;\n          DAT_0009883c = uVar17;\n        }" ({ "{") (labeled_statement "code_r0x0002025d:\n          DAT_00098838 = uVar18;" (statement_identifier "code_r0x0002025d") (: ":") (expression_statement "DAT_00098838 = uVar18;" (assignment_expression "DAT_00098838 = uVar18" (identifier "DAT_00098838") (= "=") (identifier "uVar18")) (; ";"))) (expression_statement "DAT_0009883c = uVar17;" (assignment_expression "DAT_0009883c = uVar17" (identifier "DAT_0009883c") (= "=") (identifier "uVar17")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }" (else "else") (compound_statement "{\n        if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }\n        if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }\n      }" ({ "{") (if_statement "if (bVar23) {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }" (if "if") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (compound_statement "{\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n          goto code_r0x0002025d;\n        }" ({ "{") (if_statement "if (DAT_00098dc0 != 0) goto code_r0x00020228;" (if "if") (parenthesized_expression "(DAT_00098dc0 != 0)" (( "(") (binary_expression "DAT_00098dc0 != 0" (identifier "DAT_00098dc0") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00020228;" (goto "goto") (statement_identifier "code_r0x00020228") (; ";"))) (expression_statement "FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);" (call_expression "FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8)" (identifier "FUN_00032c40") (argument_list "("0x%V",DAT_00098db4,DAT_00098db8)" (( "(") (string_literal ""0x%V"" (" """) (string_content "0x%V") (" """)) (, ",") (identifier "DAT_00098db4") (, ",") (identifier "DAT_00098db8") () ")"))) (; ";")) (goto_statement "goto code_r0x0002025d;" (goto "goto") (statement_identifier "code_r0x0002025d") (; ";")) (} "}"))) (if_statement "if (pcRam00098dac == (char *)0x0) {\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }\n        else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }" (if "if") (parenthesized_expression "(pcRam00098dac == (char *)0x0)" (( "(") (binary_expression "pcRam00098dac == (char *)0x0" (identifier "pcRam00098dac") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);\n          if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }\n        }" ({ "{") (expression_statement "iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);" (assignment_expression "iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1)" (identifier "iVar20") (= "=") (call_expression "bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1)" (identifier "bfd_link_hash_lookup") (argument_list "(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1)" (( "(") (identifier "DAT_00098c20") (, ",") (pointer_expression "*(undefined4 *)(iVar20 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x10)" (( "(") (binary_expression "iVar20 + 0x10" (identifier "iVar20") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar20 == 0) {\n            FUN_00032c40("[unresolved]");\n          }\n          else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }" (if "if") (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_00032c40("[unresolved]");\n          }" ({ "{") (expression_statement "FUN_00032c40("[unresolved]");" (call_expression "FUN_00032c40("[unresolved]")" (identifier "FUN_00032c40") (argument_list "("[unresolved]")" (( "(") (string_literal ""[unresolved]"" (" """) (string_content "[unresolved]") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }" (else "else") (compound_statement "{\n            iVar6 = *(int *)(iVar20 + 0x14);\n            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);\n            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);\n            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));\n          }" ({ "{") (expression_statement "iVar6 = *(int *)(iVar20 + 0x14);" (assignment_expression "iVar6 = *(int *)(iVar20 + 0x14)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar20 + 0x14)" (* "*") (cast_expression "(int *)(iVar20 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x14)" (( "(") (binary_expression "iVar20 + 0x14" (identifier "iVar20") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);" (assignment_expression "uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c)" (identifier "uVar18") (= "=") (binary_expression "*(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c)" (pointer_expression "*(uint *)(iVar20 + 0x18)" (* "*") (cast_expression "(uint *)(iVar20 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x18)" (( "(") (binary_expression "iVar20 + 0x18" (identifier "iVar20") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (pointer_expression "*(uint *)(iVar6 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar6 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x4c)" (( "(") (binary_expression "iVar6 + 0x4c" (identifier "iVar6") (+ "+") (number_literal "0x4c")) () ")")))))) (; ";")) (expression_statement "puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);" (assignment_expression "puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(*(int *)(iVar6 + 0x54) + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar6 + 0x54) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar6 + 0x54) + 0x1c" (pointer_expression "*(int *)(iVar6 + 0x54)" (* "*") (cast_expression "(int *)(iVar6 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x54)" (( "(") (binary_expression "iVar6 + 0x54" (identifier "iVar6") (+ "+") (number_literal "0x54")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))) (; ";")) (expression_statement "FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));" (call_expression "FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1))" (identifier "FUN_00032c40") (argument_list "(&UNK_0004cea4,uVar18 + *puVar1,\n                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1))" (( "(") (pointer_expression "&UNK_0004cea4" (& "&") (identifier "UNK_0004cea4")) (, ",") (binary_expression "uVar18 + *puVar1" (identifier "uVar18") (+ "+") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (, ",") (binary_expression "*(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1)" (binary_expression "*(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +\n                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20)" (binary_expression "*(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +\n                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c))" (binary_expression "*(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50)" (pointer_expression "*(int *)(iVar20 + 0x1c)" (* "*") (cast_expression "(int *)(iVar20 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x1c)" (( "(") (binary_expression "iVar20 + 0x1c" (identifier "iVar20") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (pointer_expression "*(int *)(iVar6 + 0x50)" (* "*") (cast_expression "(int *)(iVar6 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x50)" (( "(") (binary_expression "iVar6 + 0x50" (identifier "iVar6") (+ "+") (number_literal "0x50")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c))" (identifier "CARRY4") (argument_list "(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c))" (( "(") (pointer_expression "*(uint *)(iVar20 + 0x18)" (* "*") (cast_expression "(uint *)(iVar20 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x18)" (( "(") (binary_expression "iVar20 + 0x18" (identifier "iVar20") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (pointer_expression "*(uint *)(iVar6 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar6 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x4c)" (( "(") (binary_expression "iVar6 + 0x4c" (identifier "iVar6") (+ "+") (number_literal "0x4c")) () ")")))) () ")"))))) (+ "+") (pointer_expression "*(int *)(*(int *)(iVar6 + 0x54) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(iVar6 + 0x54) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar6 + 0x54) + 0x20)" (( "(") (binary_expression "*(int *)(iVar6 + 0x54) + 0x20" (pointer_expression "*(int *)(iVar6 + 0x54)" (* "*") (cast_expression "(int *)(iVar6 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x54)" (( "(") (binary_expression "iVar6 + 0x54" (identifier "iVar6") (+ "+") (number_literal "0x54")) () ")")))) (+ "+") (number_literal "0x20")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar18,*puVar1)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar18,*puVar1)" (identifier "CARRY4") (argument_list "(uVar18,*puVar1)" (( "(") (identifier "uVar18") (, ",") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) () ")"))))) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }" (else "else") (compound_statement "{\n          if (DAT_00098dc0 != 0) goto code_r0x00020228;\n          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);\n        }" ({ "{") (if_statement "if (DAT_00098dc0 != 0) goto code_r0x00020228;" (if "if") (parenthesized_expression "(DAT_00098dc0 != 0)" (( "(") (binary_expression "DAT_00098dc0 != 0" (identifier "DAT_00098dc0") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00020228;" (goto "goto") (statement_identifier "code_r0x00020228") (; ";"))) (expression_statement "FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);" (call_expression "FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8)" (identifier "FUN_00032c40") (argument_list "("0x%V",DAT_00098db4,DAT_00098db8)" (( "(") (string_literal ""0x%V"" (" """) (string_content "0x%V") (" """)) (, ",") (identifier "DAT_00098db4") (, ",") (identifier "DAT_00098db8") () ")"))) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }" (else "else") (compound_statement "{\n      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }\n      pcVar12 = *(char **)(iVar20 + 0x14);\n      if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }\n      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;\n      DAT_00098dc4 = 0;\ncode_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }\n      FUN_00032c40(&UNK_0004ced6);\n    }" ({ "{") (if_statement "if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {\n        bVar23 = true;\n      }\n      else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }" (if "if") (parenthesized_expression "((*pcVar12 == '.') && (pcVar12[1] == '\0'))" (( "(") (binary_expression "(*pcVar12 == '.') && (pcVar12[1] == '\0')" (parenthesized_expression "(*pcVar12 == '.')" (( "(") (binary_expression "*pcVar12 == '.'" (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar12[1] == '\0')" (( "(") (binary_expression "pcVar12[1] == '\0'" (subscript_expression "pcVar12[1]" (identifier "pcVar12") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        bVar23 = true;\n      }" ({ "{") (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" (identifier "bVar23") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }" (else "else") (compound_statement "{\n        bVar23 = false;\n        pcRam00098dac = pcVar12;\n      }" ({ "{") (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "pcRam00098dac = pcVar12;" (assignment_expression "pcRam00098dac = pcVar12" (identifier "pcRam00098dac") (= "=") (identifier "pcVar12")) (; ";")) (} "}")))) (expression_statement "pcVar12 = *(char **)(iVar20 + 0x14);" (assignment_expression "pcVar12 = *(char **)(iVar20 + 0x14)" (identifier "pcVar12") (= "=") (pointer_expression "*(char **)(iVar20 + 0x14)" (* "*") (cast_expression "(char **)(iVar20 + 0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar20 + 0x14)" (( "(") (binary_expression "iVar20 + 0x14" (identifier "iVar20") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (puVar21 == (undefined *)0x0) {\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }" (if "if") (parenthesized_expression "(puVar21 == (undefined *)0x0)" (( "(") (binary_expression "puVar21 == (undefined *)0x0" (identifier "puVar21") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;\n      }" ({ "{") (expression_statement "puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;" (assignment_expression "puVar21 = PTR__bfd_std_section_00097fd4 + 0x180" (identifier "puVar21") (= "=") (binary_expression "PTR__bfd_std_section_00097fd4 + 0x180" (identifier "PTR__bfd_std_section_00097fd4") (+ "+") (number_literal "0x180"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;" (if "if") (parenthesized_expression "(*(int *)(iVar20 + 0xc) != 5)" (( "(") (binary_expression "*(int *)(iVar20 + 0xc) != 5" (pointer_expression "*(int *)(iVar20 + 0xc)" (* "*") (cast_expression "(int *)(iVar20 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "5")) () ")")) (goto_statement "goto code_r0x000201d5;" (goto "goto") (statement_identifier "code_r0x000201d5") (; ";"))) (expression_statement "DAT_00098dc4 = 0;" (assignment_expression "DAT_00098dc4 = 0" (identifier "DAT_00098dc4") (= "=") (number_literal "0")) (; ";")) (labeled_statement "code_r0x0001f87e:\n      if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }" (statement_identifier "code_r0x0001f87e") (: ":") (if_statement "if (*(int *)(iVar20 + 0xc) == 5) {\n        FUN_00032c40("[!provide]");\n      }\n      else {\n        FUN_00032c40(&UNK_0004cec3);\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar20 + 0xc) == 5)" (( "(") (binary_expression "*(int *)(iVar20 + 0xc) == 5" (pointer_expression "*(int *)(iVar20 + 0xc)" (* "*") (cast_expression "(int *)(iVar20 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "5")) () ")")) (compound_statement "{\n        FUN_00032c40("[!provide]");\n      }" ({ "{") (expression_statement "FUN_00032c40("[!provide]");" (call_expression "FUN_00032c40("[!provide]")" (identifier "FUN_00032c40") (argument_list "("[!provide]")" (( "(") (string_literal ""[!provide]"" (" """) (string_content "[!provide]") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_00032c40(&UNK_0004cec3);\n      }" (else "else") (compound_statement "{\n        FUN_00032c40(&UNK_0004cec3);\n      }" ({ "{") (expression_statement "FUN_00032c40(&UNK_0004cec3);" (call_expression "FUN_00032c40(&UNK_0004cec3)" (identifier "FUN_00032c40") (argument_list "(&UNK_0004cec3)" (( "(") (pointer_expression "&UNK_0004cec3" (& "&") (identifier "UNK_0004cec3")) () ")"))) (; ";")) (} "}"))))) (expression_statement "FUN_00032c40(&UNK_0004ced6);" (call_expression "FUN_00032c40(&UNK_0004ced6)" (identifier "FUN_00032c40") (argument_list "(&UNK_0004ced6)" (( "(") (pointer_expression "&UNK_0004ced6" (& "&") (identifier "UNK_0004ced6")) () ")"))) (; ";")) (} "}")))) (expression_statement "pcRam00098dac = (char *)0x0;" (assignment_expression "pcRam00098dac = (char *)0x0" (identifier "pcRam00098dac") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_00032c40(&UNK_0004cece);" (call_expression "FUN_00032c40(&UNK_0004cece)" (identifier "FUN_00032c40") (argument_list "(&UNK_0004cece)" (( "(") (pointer_expression "&UNK_0004cece" (& "&") (identifier "UNK_0004cece")) () ")"))) (; ";")) (expression_statement "FUN_00030c80(*(undefined4 *)(param_1 + 8));" (call_expression "FUN_00030c80(*(undefined4 *)(param_1 + 8))" (identifier "FUN_00030c80") (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_00031cf0();" (call_expression "FUN_00031cf0()" (identifier "FUN_00031cf0") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n    iVar20 = *(int *)(param_1 + 8);\n    if (iVar20 == 0) {\n      return;\n    }\n    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))\n    {\n      return;\n    }\n    pcVar12 = "LOAD %s\n";\n    goto code_r0x0001fc3c;" (case "case") (number_literal "2") (: ":") (expression_statement "iVar20 = *(int *)(param_1 + 8);" (assignment_expression "iVar20 = *(int *)(param_1 + 8)" (identifier "iVar20") (= "=") (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 (iVar20 == 0) {\n      return;\n    }" (if "if") (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (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 "pcVar12 = "LOAD %s\n";" (assignment_expression "pcVar12 = "LOAD %s\n"" (identifier "pcVar12") (= "=") (string_literal ""LOAD %s\n"" (" """) (string_content "LOAD %s") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto code_r0x0001fc3c;" (goto "goto") (statement_identifier "code_r0x0001fc3c") (; ";"))) (case_statement "case 3:\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar10 = dcgettext(0,"Address of section %s set to ",5);\n    FUN_00032c40(uVar10,uVar11);\n    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    FUN_00031cf0();\n    break;" (case "case") (number_literal "3") (: ":") (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" (identifier "uVar11") (= "=") (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 "uVar10 = dcgettext(0,"Address of section %s set to ",5);" (assignment_expression "uVar10 = dcgettext(0,"Address of section %s set to ",5)" (identifier "uVar10") (= "=") (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_00032c40(uVar10,uVar11);" (call_expression "FUN_00032c40(uVar10,uVar11)" (identifier "FUN_00032c40") (argument_list "(uVar10,uVar11)" (( "(") (identifier "uVar10") (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "FUN_00030c80(*(undefined4 *)(param_1 + 0xc));" (call_expression "FUN_00030c80(*(undefined4 *)(param_1 + 0xc))" (identifier "FUN_00030c80") (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_00031cf0();" (call_expression "FUN_00031cf0()" (identifier "FUN_00031cf0") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n    FUN_00031cc0();\n    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("SORT_BY_NAME(");\n    }\n    if (*(int *)(param_1 + 8) == 0) {\n      FUN_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }\n    if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40(")");\n    }\n    FUN_00032c40("(");\n    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {\n      switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }\n    FUN_00032c40(")");\n    FUN_00031cf0();\n    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    break;" (case "case") (number_literal "4") (: ":") (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" (identifier "FUN_00031cc0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {\n      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\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      uVar11 = **(undefined4 **)(param_1 + 0x20);\n      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }\n      FUN_00032c40(&UNK_0004cdbf,uVar11);\n    }" ({ "{") (expression_statement "uVar11 = **(undefined4 **)(param_1 + 0x20);" (assignment_expression "uVar11 = **(undefined4 **)(param_1 + 0x20)" (identifier "uVar11") (= "=") (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_00032c40("EXCLUDE_FILE(%s",uVar11);" (call_expression "FUN_00032c40("EXCLUDE_FILE(%s",uVar11)" (identifier "FUN_00032c40") (argument_list "("EXCLUDE_FILE(%s",uVar11)" (( "(") (string_literal ""EXCLUDE_FILE(%s"" (" """) (string_content "EXCLUDE_FILE(%s") (" """)) (, ",") (identifier "uVar11") () ")"))) (; ";")) (for_statement "for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;\n          puVar4 = (undefined4 *)puVar4[1]) {\n        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\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        uVar11 = *puVar4;\n        FUN_00032c40(&DAT_0004b5e3,uVar11);\n      }" ({ "{") (expression_statement "uVar11 = *puVar4;" (assignment_expression "uVar11 = *puVar4" (identifier "uVar11") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "FUN_00032c40(&DAT_0004b5e3,uVar11);" (call_expression "FUN_00032c40(&DAT_0004b5e3,uVar11)" (identifier "FUN_00032c40") (argument_list "(&DAT_0004b5e3,uVar11)" (( "(") (pointer_expression "&DAT_0004b5e3" (& "&") (identifier "DAT_0004b5e3")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00032c40(&UNK_0004cdbf,uVar11);" (call_expression "FUN_00032c40(&UNK_0004cdbf,uVar11)" (identifier "FUN_00032c40") (argument_list "(&UNK_0004cdbf,uVar11)" (( "(") (pointer_expression "&UNK_0004cdbf" (& "&") (identifier "UNK_0004cdbf")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0xc) != 0) {\n      FUN_00032c40("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_00032c40("SORT_BY_NAME(");\n    }" ({ "{") (expression_statement "FUN_00032c40("SORT_BY_NAME(");" (call_expression "FUN_00032c40("SORT_BY_NAME(")" (identifier "FUN_00032c40") (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_00032c40(&DAT_0004cff4);\n    }\n    else {\n      FUN_00032c40(&DAT_0004ce86,*(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_00032c40(&DAT_0004cff4);\n    }" ({ "{") (expression_statement "FUN_00032c40(&DAT_0004cff4);" (call_expression "FUN_00032c40(&DAT_0004cff4)" (identifier "FUN_00032c40") (argument_list "(&DAT_0004cff4)" (( "(") (pointer_expression "&DAT_0004cff4" (& "&") (identifier "DAT_0004cff4")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }" (else "else") (compound_statement "{\n      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));\n    }" ({ "{") (expression_statement "FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));" (call_expression "FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8))" (identifier "FUN_00032c40") (argument_list "(&DAT_0004ce86,*(int *)(param_1 + 8))" (( "(") (pointer_expression "&DAT_0004ce86" (& "&") (identifier "DAT_0004ce86")) (, ",") (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_00032c40(")");\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_00032c40(")");\n    }" ({ "{") (expression_statement "FUN_00032c40(")");" (call_expression "FUN_00032c40(")")" (identifier "FUN_00032c40") (argument_list "(")")" (( "(") (string_literal "")"" (" """) (string_content ")") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00032c40("(");" (call_expression "FUN_00032c40("(")" (identifier "FUN_00032c40") (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        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\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        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }\n      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {\n        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }\n      if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }\n      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }\n      if (*piVar3 == 0) break;\n      FUN_00032c40(&UNK_0004cedd);\n    }" ({ "{") (switch_statement "switch(piVar3[3]) {\n      default:\n        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("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        iVar20 = 0;\n        break;\n      case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;\n      case 2:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;\n      case 3:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;\n      case 4:\n        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;\n      case 5:\n        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;\n      case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");\n      }" ({ "{") (case_statement "default:\n        iVar20 = 0;\n        break;" (default "default") (: ":") (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_NAME(");\n        break;" (case "case") (number_literal "1") (: ":") (expression_statement "iVar20 = 1;" (assignment_expression "iVar20 = 1" (identifier "iVar20") (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00032c40("SORT_BY_NAME(");" (call_expression "FUN_00032c40("SORT_BY_NAME(")" (identifier "FUN_00032c40") (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        iVar20 = 1;\n        FUN_00032c40("SORT_BY_ALIGNMENT(");\n        break;" (case "case") (number_literal "2") (: ":") (expression_statement "iVar20 = 1;" (assignment_expression "iVar20 = 1" (identifier "iVar20") (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00032c40("SORT_BY_ALIGNMENT(");" (call_expression "FUN_00032c40("SORT_BY_ALIGNMENT(")" (identifier "FUN_00032c40") (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        iVar20 = 2;\n        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");\n        break;" (case "case") (number_literal "3") (: ":") (expression_statement "iVar20 = 2;" (assignment_expression "iVar20 = 2" (identifier "iVar20") (= "=") (number_literal "2")) (; ";")) (expression_statement "FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");" (call_expression "FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(")" (identifier "FUN_00032c40") (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        iVar20 = 2;\n        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");\n        break;" (case "case") (number_literal "4") (: ":") (expression_statement "iVar20 = 2;" (assignment_expression "iVar20 = 2" (identifier "iVar20") (= "=") (number_literal "2")) (; ";")) (expression_statement "FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");" (call_expression "FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(")" (identifier "FUN_00032c40") (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        FUN_00032c40("SORT_NONE(");\n        iVar20 = 1;\n        break;" (case "case") (number_literal "5") (: ":") (expression_statement "FUN_00032c40("SORT_NONE(");" (call_expression "FUN_00032c40("SORT_NONE(")" (identifier "FUN_00032c40") (argument_list "("SORT_NONE(")" (( "(") (string_literal ""SORT_NONE("" (" """) (string_content "SORT_NONE(") (" """)) () ")"))) (; ";")) (expression_statement "iVar20 = 1;" (assignment_expression "iVar20 = 1" (identifier "iVar20") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n        iVar20 = 1;\n        FUN_00032c40("SORT_BY_INIT_PRIORITY(");" (case "case") (number_literal "6") (: ":") (expression_statement "iVar20 = 1;" (assignment_expression "iVar20 = 1" (identifier "iVar20") (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00032c40("SORT_BY_INIT_PRIORITY(");" (call_expression "FUN_00032c40("SORT_BY_INIT_PRIORITY(")" (identifier "FUN_00032c40") (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        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\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        uVar11 = *(undefined4 *)piVar3[2];\n        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);\n        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }\n        FUN_00032c40(&UNK_0004cdbf,uVar11);\n      }" ({ "{") (expression_statement "uVar11 = *(undefined4 *)piVar3[2];" (assignment_expression "uVar11 = *(undefined4 *)piVar3[2]" (identifier "uVar11") (= "=") (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_00032c40("EXCLUDE_FILE(%s",uVar11);" (call_expression "FUN_00032c40("EXCLUDE_FILE(%s",uVar11)" (identifier "FUN_00032c40") (argument_list "("EXCLUDE_FILE(%s",uVar11)" (( "(") (string_literal ""EXCLUDE_FILE(%s"" (" """) (string_content "EXCLUDE_FILE(%s") (" """)) (, ",") (identifier "uVar11") () ")"))) (; ";")) (for_statement "for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;\n            puVar4 = (undefined4 *)puVar4[1]) {\n          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\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          uVar11 = *puVar4;\n          FUN_00032c40(&DAT_0004b5e3,uVar11);\n        }" ({ "{") (expression_statement "uVar11 = *puVar4;" (assignment_expression "uVar11 = *puVar4" (identifier "uVar11") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "FUN_00032c40(&DAT_0004b5e3,uVar11);" (call_expression "FUN_00032c40(&DAT_0004b5e3,uVar11)" (identifier "FUN_00032c40") (argument_list "(&DAT_0004b5e3,uVar11)" (( "(") (pointer_expression "&DAT_0004b5e3" (& "&") (identifier "DAT_0004b5e3")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00032c40(&UNK_0004cdbf,uVar11);" (call_expression "FUN_00032c40(&UNK_0004cdbf,uVar11)" (identifier "FUN_00032c40") (argument_list "(&UNK_0004cdbf,uVar11)" (( "(") (pointer_expression "&UNK_0004cdbf" (& "&") (identifier "UNK_0004cdbf")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (if_statement "if (piVar3[1] == 0) {\n        FUN_00032c40(&DAT_0004cff4);\n      }\n      else {\n        FUN_00032c40(&DAT_0004ce86,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_00032c40(&DAT_0004cff4);\n      }" ({ "{") (expression_statement "FUN_00032c40(&DAT_0004cff4);" (call_expression "FUN_00032c40(&DAT_0004cff4)" (identifier "FUN_00032c40") (argument_list "(&DAT_0004cff4)" (( "(") (pointer_expression "&DAT_0004cff4" (& "&") (identifier "DAT_0004cff4")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }" (else "else") (compound_statement "{\n        FUN_00032c40(&DAT_0004ce86,piVar3[1]);\n      }" ({ "{") (expression_statement "FUN_00032c40(&DAT_0004ce86,piVar3[1]);" (call_expression "FUN_00032c40(&DAT_0004ce86,piVar3[1])" (identifier "FUN_00032c40") (argument_list "(&DAT_0004ce86,piVar3[1])" (( "(") (pointer_expression "&DAT_0004ce86" (& "&") (identifier "DAT_0004ce86")) (, ",") (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (} "}")))) (if_statement "if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {\n        FUN_00032c40(")");\n      }" (if "if") (parenthesized_expression "((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1))" (( "(") (binary_expression "(iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)" (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(FUN_00032c40(")"), iVar20 != 1)" (( "(") (comma_expression "FUN_00032c40(")"), iVar20 != 1" (call_expression "FUN_00032c40(")")" (identifier "FUN_00032c40") (argument_list "(")")" (( "(") (string_literal "")"" (" """) (string_content ")") (" """)) () ")"))) (, ",") (binary_expression "iVar20 != 1" (identifier "iVar20") (!= "!=") (number_literal "1"))) () ")"))) () ")")) (compound_statement "{\n        FUN_00032c40(")");\n      }" ({ "{") (expression_statement "FUN_00032c40(")");" (call_expression "FUN_00032c40(")")" (identifier "FUN_00032c40") (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_00032c40(&UNK_0004cedd);" (call_expression "FUN_00032c40(&UNK_0004cedd)" (identifier "FUN_00032c40") (argument_list "(&UNK_0004cedd)" (( "(") (pointer_expression "&UNK_0004cedd" (& "&") (identifier "UNK_0004cedd")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00032c40(")");" (call_expression "FUN_00032c40(")")" (identifier "FUN_00032c40") (argument_list "(")")" (( "(") (string_literal "")"" (" """) (string_content ")") (" """)) () ")"))) (; ";")) (expression_statement "FUN_00031cf0();" (call_expression "FUN_00031cf0()" (identifier "FUN_00031cf0") (argument_list "()" (( "(") () ")"))) (; ";")) (for_statement "for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\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_0001f7f0();\n    }" ({ "{") (expression_statement "FUN_0001f7f0();" (call_expression "FUN_0001f7f0()" (identifier "FUN_0001f7f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n    puVar4 = *(undefined4 **)(param_1 + 8);\n    uStack_38 = puVar4[0xc];\n    local_3c = puVar4[0xb];\n    FUN_0001f3e0();\n    FUN_00031cc0();\n    FUN_00032c40(&DAT_0004ce86,*puVar4);\n    sVar8 = strlen((char *)*puVar4);\n    uVar18 = sVar8 + 1;\n    if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }\n    do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);\n    iVar20 = puVar4[0x15];\n    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }\n    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);\n    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }\n    puVar19 = DAT_00098870;\n    puVar14 = DAT_0009886c;\n    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\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 "uStack_38 = puVar4[0xc];" (assignment_expression "uStack_38 = puVar4[0xc]" (identifier "uStack_38") (= "=") (subscript_expression "puVar4[0xc]" (identifier "puVar4") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "local_3c = puVar4[0xb];" (assignment_expression "local_3c = puVar4[0xb]" (identifier "local_3c") (= "=") (subscript_expression "puVar4[0xb]" (identifier "puVar4") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "FUN_0001f3e0();" (call_expression "FUN_0001f3e0()" (identifier "FUN_0001f3e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" (identifier "FUN_00031cc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00032c40(&DAT_0004ce86,*puVar4);" (call_expression "FUN_00032c40(&DAT_0004ce86,*puVar4)" (identifier "FUN_00032c40") (argument_list "(&DAT_0004ce86,*puVar4)" (( "(") (pointer_expression "&DAT_0004ce86" (& "&") (identifier "DAT_0004ce86")) (, ",") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) () ")"))) (; ";")) (expression_statement "sVar8 = strlen((char *)*puVar4);" (assignment_expression "sVar8 = strlen((char *)*puVar4)" (identifier "sVar8") (= "=") (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 "uVar18 = sVar8 + 1;" (assignment_expression "uVar18 = sVar8 + 1" (identifier "uVar18") (= "=") (binary_expression "sVar8 + 1" (identifier "sVar8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (0xe < uVar18) {\n      FUN_00031cf0();\n      uVar18 = 0;\n    }" (if "if") (parenthesized_expression "(0xe < uVar18)" (( "(") (binary_expression "0xe < uVar18" (number_literal "0xe") (< "<") (identifier "uVar18")) () ")")) (compound_statement "{\n      FUN_00031cf0();\n      uVar18 = 0;\n    }" ({ "{") (expression_statement "FUN_00031cf0();" (call_expression "FUN_00031cf0()" (identifier "FUN_00031cf0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (} "}"))) (do_statement "do {\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    } while (uVar18 != 0x10);" (do "do") (compound_statement "{\n      FUN_00031cc0();\n      uVar18 = uVar18 + 1;\n    }" ({ "{") (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" (identifier "FUN_00031cc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" (identifier "uVar18") (= "=") (binary_expression "uVar18 + 1" (identifier "uVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar18 != 0x10)" (( "(") (binary_expression "uVar18 != 0x10" (identifier "uVar18") (!= "!=") (number_literal "0x10")) () ")")) (; ";")) (expression_statement "iVar20 = puVar4[0x15];" (assignment_expression "iVar20 = puVar4[0x15]" (identifier "iVar20") (= "=") (subscript_expression "puVar4[0x15]" (identifier "puVar4") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (if_statement "if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }\n    else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }" (if "if") (parenthesized_expression "((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34))" (( "(") (binary_expression "(iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)" (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar20 + 0xac) != DAT_00098c34)" (( "(") (binary_expression "*(int *)(iVar20 + 0xac) != DAT_00098c34" (pointer_expression "*(int *)(iVar20 + 0xac)" (* "*") (cast_expression "(int *)(iVar20 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xac)" (( "(") (binary_expression "iVar20 + 0xac" (identifier "iVar20") (+ "+") (number_literal "0xac")) () ")")))) (!= "!=") (identifier "DAT_00098c34")) () ")"))) () ")")) (compound_statement "{\n      uStack_34 = DAT_00098838;\n      uStack_30 = DAT_0009883c;\n      local_3c = 0;\n      uStack_38 = 0;\n    }" ({ "{") (expression_statement "uStack_34 = DAT_00098838;" (assignment_expression "uStack_34 = DAT_00098838" (identifier "uStack_34") (= "=") (identifier "DAT_00098838")) (; ";")) (expression_statement "uStack_30 = DAT_0009883c;" (assignment_expression "uStack_30 = DAT_0009883c" (identifier "uStack_30") (= "=") (identifier "DAT_0009883c")) (; ";")) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_38 = 0;" (assignment_expression "uStack_38 = 0" (identifier "uStack_38") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }" (else "else") (compound_statement "{\n      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];\n      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);\n    }" ({ "{") (expression_statement "uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];" (assignment_expression "uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13]" (identifier "uStack_34") (= "=") (binary_expression "*(uint *)(iVar20 + 0x1c) + puVar4[0x13]" (pointer_expression "*(uint *)(iVar20 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar20 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x1c)" (( "(") (binary_expression "iVar20 + 0x1c" (identifier "iVar20") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (subscript_expression "puVar4[0x13]" (identifier "puVar4") ([ "[") (number_literal "0x13") (] "]")))) (; ";")) (expression_statement "uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);" (assignment_expression "uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13])" (identifier "uStack_30") (= "=") (binary_expression "*(int *)(iVar20 + 0x20) + puVar4[0x14] +\n                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13])" (binary_expression "*(int *)(iVar20 + 0x20) + puVar4[0x14]" (pointer_expression "*(int *)(iVar20 + 0x20)" (* "*") (cast_expression "(int *)(iVar20 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x20)" (( "(") (binary_expression "iVar20 + 0x20" (identifier "iVar20") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (subscript_expression "puVar4[0x14]" (identifier "puVar4") ([ "[") (number_literal "0x14") (] "]"))) (+ "+") (cast_expression "(uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13])" (identifier "CARRY4") (argument_list "(*(uint *)(iVar20 + 0x1c),puVar4[0x13])" (( "(") (pointer_expression "*(uint *)(iVar20 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar20 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x1c)" (( "(") (binary_expression "iVar20 + 0x1c" (identifier "iVar20") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (subscript_expression "puVar4[0x13]" (identifier "puVar4") ([ "[") (number_literal "0x13") (] "]")) () ")")))))) (; ";")) (} "}")))) (expression_statement "FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);" (call_expression "FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b])" (identifier "FUN_00032c40") (argument_list "(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b])" (( "(") (pointer_expression "&DAT_0004cd54" (& "&") (identifier "DAT_0004cd54")) (, ",") (identifier "uStack_34") (, ",") (identifier "uStack_30") (, ",") (identifier "local_3c") (, ",") (identifier "uStack_38") (, ",") (subscript_expression "puVar4[0x2b]" (identifier "puVar4") ([ "[") (number_literal "0x2b") (] "]")) () ")"))) (; ";")) (if_statement "if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }" (if "if") (parenthesized_expression "((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0))" (( "(") (binary_expression "(local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&\n       (puVar4[0xd] != 0 || puVar4[0xe] != 0)" (parenthesized_expression "(local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe])" (( "(") (binary_expression "local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]" (binary_expression "local_3c != puVar4[0xd]" (identifier "local_3c") (!= "!=") (subscript_expression "puVar4[0xd]" (identifier "puVar4") ([ "[") (number_literal "0xd") (] "]"))) (|| "||") (binary_expression "uStack_38 != puVar4[0xe]" (identifier "uStack_38") (!= "!=") (subscript_expression "puVar4[0xe]" (identifier "puVar4") ([ "[") (number_literal "0xe") (] "]")))) () ")")) (&& "&&") (parenthesized_expression "(puVar4[0xd] != 0 || puVar4[0xe] != 0)" (( "(") (binary_expression "puVar4[0xd] != 0 || puVar4[0xe] != 0" (binary_expression "puVar4[0xd] != 0" (subscript_expression "puVar4[0xd]" (identifier "puVar4") ([ "[") (number_literal "0xd") (] "]")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "puVar4[0xe] != 0" (subscript_expression "puVar4[0xe]" (identifier "puVar4") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      iVar20 = 0x23;\n      do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);\n      uVar11 = puVar4[0xd];\n      uVar10 = puVar4[0xe];\n      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);\n      FUN_00032c40(uVar9,uVar11,uVar10);\n    }" ({ "{") (expression_statement "iVar20 = 0x23;" (assignment_expression "iVar20 = 0x23" (identifier "iVar20") (= "=") (number_literal "0x23")) (; ";")) (do_statement "do {\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      } while (iVar20 != 0);" (do "do") (compound_statement "{\n        FUN_00031cc0();\n        iVar20 = iVar20 + -1;\n      }" ({ "{") (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" (identifier "FUN_00031cc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" (identifier "iVar20") (= "=") (binary_expression "iVar20 + -1" (identifier "iVar20") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "uVar11 = puVar4[0xd];" (assignment_expression "uVar11 = puVar4[0xd]" (identifier "uVar11") (= "=") (subscript_expression "puVar4[0xd]" (identifier "puVar4") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "uVar10 = puVar4[0xe];" (assignment_expression "uVar10 = puVar4[0xe]" (identifier "uVar10") (= "=") (subscript_expression "puVar4[0xe]" (identifier "puVar4") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%W (size before relaxing)\n",5)" (identifier "uVar9") (= "=") (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_00032c40(uVar9,uVar11,uVar10);" (call_expression "FUN_00032c40(uVar9,uVar11,uVar10)" (identifier "FUN_00032c40") (argument_list "(uVar9,uVar11,uVar10)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar11") (, ",") (identifier "uVar10") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar19 = DAT_00098870;" (assignment_expression "puVar19 = DAT_00098870" (identifier "puVar19") (= "=") (identifier "DAT_00098870")) (; ";")) (expression_statement "puVar14 = DAT_0009886c;" (assignment_expression "puVar14 = DAT_0009886c" (identifier "puVar14") (= "=") (identifier "DAT_0009886c")) (; ";")) (if_statement "if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }" (if "if") (parenthesized_expression "((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34))" (( "(") (binary_expression "(puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)" (parenthesized_expression "(puVar4[0x15] != 0)" (( "(") (binary_expression "puVar4[0x15] != 0" (subscript_expression "puVar4[0x15]" (identifier "puVar4") ([ "[") (number_literal "0x15") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)" (( "(") (binary_expression "*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34" (pointer_expression "*(int *)(puVar4[0x15] + 0xac)" (* "*") (cast_expression "(int *)(puVar4[0x15] + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4[0x15] + 0xac)" (( "(") (binary_expression "puVar4[0x15] + 0xac" (subscript_expression "puVar4[0x15]" (identifier "puVar4") ([ "[") (number_literal "0x15") (] "]")) (+ "+") (number_literal "0xac")) () ")")))) (== "==") (identifier "DAT_00098c34")) () ")"))) () ")")) (compound_statement "{\n      if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }\n      bVar13 = (byte)DAT_000987ec & 0x1f;\n      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);\n      uVar17 = uVar16;\n      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;\n      if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }\n      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }\n    }" ({ "{") (if_statement "if ((DAT_00098c04 & 0x10) == 0) {\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }\n      else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }" (if "if") (parenthesized_expression "((DAT_00098c04 & 0x10) == 0)" (( "(") (binary_expression "(DAT_00098c04 & 0x10) == 0" (parenthesized_expression "(DAT_00098c04 & 0x10)" (( "(") (binary_expression "DAT_00098c04 & 0x10" (identifier "DAT_00098c04") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar2 = (undefined4 *)puVar4[0x20];\n        if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }\n        }\n      }" ({ "{") (expression_statement "puVar2 = (undefined4 *)puVar4[0x20];" (assignment_expression "puVar2 = (undefined4 *)puVar4[0x20]" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)puVar4[0x20]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[0x20]" (identifier "puVar4") ([ "[") (number_literal "0x20") (] "]")))) (; ";")) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n          *(undefined4 *)puVar2[1] = 0;\n          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__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          sVar8 = puVar2[2];\n          uVar18 = sVar8 * 4;\n          uVar17 = (int)puVar19 - (int)puVar14;\n          sStack_24 = sVar8;\n          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }\n          __base = DAT_00098868;\n          if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }\n          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);\n          if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }\n          puVar14 = (undefined4 *)*puVar2;\n          puVar7 = DAT_0009886c;\n          puVar19 = DAT_00098868;\n          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }\n          qsort(__base,sStack_24,4,FUN_0001dec0);\n          if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }\n          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__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 "sVar8 = puVar2[2];" (assignment_expression "sVar8 = puVar2[2]" (identifier "sVar8") (= "=") (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar18 = sVar8 * 4;" (assignment_expression "uVar18 = sVar8 * 4" (identifier "uVar18") (= "=") (binary_expression "sVar8 * 4" (identifier "sVar8") (* "*") (number_literal "4"))) (; ";")) (expression_statement "uVar17 = (int)puVar19 - (int)puVar14;" (assignment_expression "uVar17 = (int)puVar19 - (int)puVar14" (identifier "uVar17") (= "=") (binary_expression "(int)puVar19 - (int)puVar14" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (- "-") (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")))) (; ";")) (expression_statement "sStack_24 = sVar8;" (assignment_expression "sStack_24 = sVar8" (identifier "sStack_24") (= "=") (identifier "sVar8")) (; ";")) (if_statement "if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }" (if "if") (parenthesized_expression "(uVar17 <= uVar18 && uVar18 - uVar17 != 0)" (( "(") (binary_expression "uVar17 <= uVar18 && uVar18 - uVar17 != 0" (binary_expression "uVar17 <= uVar18" (identifier "uVar17") (<= "<=") (identifier "uVar18")) (&& "&&") (binary_expression "uVar18 - uVar17 != 0" (binary_expression "uVar18 - uVar17" (identifier "uVar18") (- "-") (identifier "uVar17")) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n            _obstack_newchunk(&DAT_00098860,uVar18);\n            sStack_24 = puVar2[2];\n            puVar14 = DAT_0009886c;\n            puVar19 = DAT_00098870;\n          }" ({ "{") (expression_statement "_obstack_newchunk(&DAT_00098860,uVar18);" (call_expression "_obstack_newchunk(&DAT_00098860,uVar18)" (identifier "_obstack_newchunk") (argument_list "(&DAT_00098860,uVar18)" (( "(") (pointer_expression "&DAT_00098860" (& "&") (identifier "DAT_00098860")) (, ",") (identifier "uVar18") () ")"))) (; ";")) (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 "puVar14 = DAT_0009886c;" (assignment_expression "puVar14 = DAT_0009886c" (identifier "puVar14") (= "=") (identifier "DAT_0009886c")) (; ";")) (expression_statement "puVar19 = DAT_00098870;" (assignment_expression "puVar19 = DAT_00098870" (identifier "puVar19") (= "=") (identifier "DAT_00098870")) (; ";")) (} "}"))) (expression_statement "__base = DAT_00098868;" (assignment_expression "__base = DAT_00098868" (identifier "__base") (= "=") (identifier "DAT_00098868")) (; ";")) (if_statement "if (puVar14 + sVar8 == DAT_00098868) {\n            DAT_00098888 = DAT_00098888 | 2;\n          }" (if "if") (parenthesized_expression "(puVar14 + sVar8 == DAT_00098868)" (( "(") (binary_expression "puVar14 + sVar8 == DAT_00098868" (binary_expression "puVar14 + sVar8" (identifier "puVar14") (+ "+") (identifier "sVar8")) (== "==") (identifier "DAT_00098868")) () ")")) (compound_statement "{\n            DAT_00098888 = DAT_00098888 | 2;\n          }" ({ "{") (expression_statement "DAT_00098888 = DAT_00098888 | 2;" (assignment_expression "DAT_00098888 = DAT_00098888 | 2" (identifier "DAT_00098888") (= "=") (binary_expression "DAT_00098888 | 2" (identifier "DAT_00098888") (| "|") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);" (assignment_expression "DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878)" (identifier "DAT_0009886c") (= "=") (cast_expression "(undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878)" (( "(") (binary_expression "(int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878" (binary_expression "(int)(puVar14 + sVar8) + DAT_00098878" (cast_expression "(int)(puVar14 + sVar8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar14 + sVar8)" (( "(") (binary_expression "puVar14 + sVar8" (identifier "puVar14") (+ "+") (identifier "sVar8")) () ")"))) (+ "+") (identifier "DAT_00098878")) (& "&") (unary_expression "~DAT_00098878" (~ "~") (identifier "DAT_00098878"))) () ")")))) (; ";")) (if_statement "if ((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {\n            DAT_0009886c = puVar19;\n          }" (if "if") (parenthesized_expression "((uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864))" (( "(") (binary_expression "(uint)((int)puVar19 - (int)DAT_00098864) <\n              (uint)((int)DAT_0009886c - (int)DAT_00098864)" (call_expression "(uint)((int)puVar19 - (int)DAT_00098864)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar19 - (int)DAT_00098864)" (( "(") (binary_expression "(int)puVar19 - (int)DAT_00098864" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (- "-") (cast_expression "(int)DAT_00098864" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_00098864"))) () ")"))) (< "<") (call_expression "(uint)((int)DAT_0009886c - (int)DAT_00098864)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)DAT_0009886c - (int)DAT_00098864)" (( "(") (binary_expression "(int)DAT_0009886c - (int)DAT_00098864" (cast_expression "(int)DAT_0009886c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0009886c")) (- "-") (cast_expression "(int)DAT_00098864" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_00098864"))) () ")")))) () ")")) (compound_statement "{\n            DAT_0009886c = puVar19;\n          }" ({ "{") (expression_statement "DAT_0009886c = puVar19;" (assignment_expression "DAT_0009886c = puVar19" (identifier "DAT_0009886c") (= "=") (identifier "puVar19")) (; ";")) (} "}"))) (expression_statement "puVar14 = (undefined4 *)*puVar2;" (assignment_expression "puVar14 = (undefined4 *)*puVar2" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)*puVar2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")))) (; ";")) (expression_statement "puVar7 = DAT_0009886c;" (assignment_expression "puVar7 = DAT_0009886c" (identifier "puVar7") (= "=") (identifier "DAT_0009886c")) (; ";")) (expression_statement "puVar19 = DAT_00098868;" (assignment_expression "puVar19 = DAT_00098868" (identifier "puVar19") (= "=") (identifier "DAT_00098868")) (; ";")) (while_statement "while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }" (while "while") (parenthesized_expression "(DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0)" (( "(") (comma_expression "DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0" (assignment_expression "DAT_00098868 = puVar7" (identifier "DAT_00098868") (= "=") (identifier "puVar7")) (, ",") (binary_expression "puVar14 != (undefined4 *)0x0" (identifier "puVar14") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n            uVar11 = *puVar14;\n            puVar14 = (undefined4 *)puVar14[1];\n            *puVar19 = uVar11;\n            puVar7 = DAT_00098868;\n            puVar19 = puVar19 + 1;\n          }" ({ "{") (expression_statement "uVar11 = *puVar14;" (assignment_expression "uVar11 = *puVar14" (identifier "uVar11") (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "puVar14 = (undefined4 *)puVar14[1];" (assignment_expression "puVar14 = (undefined4 *)puVar14[1]" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)puVar14[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "*puVar19 = uVar11;" (assignment_expression "*puVar19 = uVar11" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar7 = DAT_00098868;" (assignment_expression "puVar7 = DAT_00098868" (identifier "puVar7") (= "=") (identifier "DAT_00098868")) (; ";")) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" (identifier "puVar19") (= "=") (binary_expression "puVar19 + 1" (identifier "puVar19") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "qsort(__base,sStack_24,4,FUN_0001dec0);" (call_expression "qsort(__base,sStack_24,4,FUN_0001dec0)" (identifier "qsort") (argument_list "(__base,sStack_24,4,FUN_0001dec0)" (( "(") (identifier "__base") (, ",") (identifier "sStack_24") (, ",") (number_literal "4") (, ",") (identifier "FUN_0001dec0") () ")"))) (; ";")) (if_statement "if (puVar2[2] != 0) {\n            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (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            uVar18 = 0;\n            do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);\n          }" ({ "{") (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            } while (uVar18 < (uint)puVar2[2]);" (do "do") (compound_statement "{\n              puVar14 = __base + uVar18;\n              uVar18 = uVar18 + 1;\n              FUN_0001f350(*puVar14,puVar4);\n            }" ({ "{") (expression_statement "puVar14 = __base + uVar18;" (assignment_expression "puVar14 = __base + uVar18" (identifier "puVar14") (= "=") (binary_expression "__base + uVar18" (identifier "__base") (+ "+") (identifier "uVar18"))) (; ";")) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" (identifier "uVar18") (= "=") (binary_expression "uVar18 + 1" (identifier "uVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_0001f350(*puVar14,puVar4);" (call_expression "FUN_0001f350(*puVar14,puVar4)" (identifier "FUN_0001f350") (argument_list "(*puVar14,puVar4)" (( "(") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (, ",") (identifier "puVar4") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar18 < (uint)puVar2[2])" (( "(") (binary_expression "uVar18 < (uint)puVar2[2]" (identifier "uVar18") (< "<") (cast_expression "(uint)puVar2[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")))) () ")")) (; ";")) (} "}"))) (if_statement "if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }\n          else {\n            _obstack_free(&DAT_00098860,__base);\n          }" (if "if") (parenthesized_expression "((DAT_00098864 < __base) && (__base < DAT_00098870))" (( "(") (binary_expression "(DAT_00098864 < __base) && (__base < DAT_00098870)" (parenthesized_expression "(DAT_00098864 < __base)" (( "(") (binary_expression "DAT_00098864 < __base" (identifier "DAT_00098864") (< "<") (identifier "__base")) () ")")) (&& "&&") (parenthesized_expression "(__base < DAT_00098870)" (( "(") (binary_expression "__base < DAT_00098870" (identifier "__base") (< "<") (identifier "DAT_00098870")) () ")"))) () ")")) (compound_statement "{\n            DAT_0009886c = __base;\n            DAT_00098868 = __base;\n          }" ({ "{") (expression_statement "DAT_0009886c = __base;" (assignment_expression "DAT_0009886c = __base" (identifier "DAT_0009886c") (= "=") (identifier "__base")) (; ";")) (expression_statement "DAT_00098868 = __base;" (assignment_expression "DAT_00098868 = __base" (identifier "DAT_00098868") (= "=") (identifier "__base")) (; ";")) (} "}")) (else_clause "else {\n            _obstack_free(&DAT_00098860,__base);\n          }" (else "else") (compound_statement "{\n            _obstack_free(&DAT_00098860,__base);\n          }" ({ "{") (expression_statement "_obstack_free(&DAT_00098860,__base);" (call_expression "_obstack_free(&DAT_00098860,__base)" (identifier "_obstack_free") (argument_list "(&DAT_00098860,__base)" (( "(") (pointer_expression "&DAT_00098860" (& "&") (identifier "DAT_00098860")) (, ",") (identifier "__base") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }" (else "else") (compound_statement "{\n        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);\n      }" ({ "{") (expression_statement "bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);" (call_expression "bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4)" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_00098c20,FUN_0001f350,puVar4)" (( "(") (identifier "DAT_00098c20") (, ",") (identifier "FUN_0001f350") (, ",") (identifier "puVar4") () ")"))) (; ";")) (} "}")))) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" (identifier "bVar13") (= "=") (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000987ec")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f)" (identifier "uVar16") (= "=") (binary_expression "uStack_38 >> ((byte)DAT_000987ec & 0x1f)" (identifier "uStack_38") (>> ">>") (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" (( "(") (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000987ec")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" (identifier "uVar17") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;" (assignment_expression "uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13" (identifier "uVar18") (= "=") (binary_expression "local_3c >> bVar13 | uStack_38 << 0x20 - bVar13" (binary_expression "local_3c >> bVar13" (identifier "local_3c") (>> ">>") (identifier "bVar13")) (| "|") (binary_expression "uStack_38 << 0x20 - bVar13" (identifier "uStack_38") (<< "<<") (binary_expression "0x20 - bVar13" (number_literal "0x20") (- "-") (identifier "bVar13"))))) (; ";")) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }" (if "if") (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" (( "(") (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" (( "(") (binary_expression "DAT_000987ec & 0x20" (identifier "DAT_000987ec") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar17 = 0;\n        uVar18 = uVar16;\n      }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" (identifier "uVar18") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (expression_statement "uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);" (assignment_expression "uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34)" (identifier "uVar17") (= "=") (binary_expression "uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34)" (binary_expression "uVar17 + uStack_30" (identifier "uVar17") (+ "+") (identifier "uStack_30")) (+ "+") (cast_expression "(uint)CARRY4(uVar18,uStack_34)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar18,uStack_34)" (identifier "CARRY4") (argument_list "(uVar18,uStack_34)" (( "(") (identifier "uVar18") (, ",") (identifier "uStack_34") () ")")))))) (; ";")) (if_statement "if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         ) {\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }" (if "if") (parenthesized_expression "(DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)\n         )" (( "(") (binary_expression "DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)" (binary_expression "DAT_0009883c < uVar17" (identifier "DAT_0009883c") (< "<") (identifier "uVar17")) (|| "||") (binary_expression "DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)" (binary_expression "DAT_0009883c - uVar17" (identifier "DAT_0009883c") (- "-") (identifier "uVar17")) (< "<") (call_expression "(uint)(DAT_00098838 < uVar18 + uStack_34)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(DAT_00098838 < uVar18 + uStack_34)" (( "(") (binary_expression "DAT_00098838 < uVar18 + uStack_34" (identifier "DAT_00098838") (< "<") (binary_expression "uVar18 + uStack_34" (identifier "uVar18") (+ "+") (identifier "uStack_34"))) () ")"))))) () ")")) (compound_statement "{\n        DAT_00098838 = uVar18 + uStack_34;\n        DAT_0009883c = uVar17;\n        return;\n      }" ({ "{") (expression_statement "DAT_00098838 = uVar18 + uStack_34;" (assignment_expression "DAT_00098838 = uVar18 + uStack_34" (identifier "DAT_00098838") (= "=") (binary_expression "uVar18 + uStack_34" (identifier "uVar18") (+ "+") (identifier "uStack_34"))) (; ";")) (expression_statement "DAT_0009883c = uVar17;" (assignment_expression "DAT_0009883c = uVar17" (identifier "DAT_0009883c") (= "=") (identifier "uVar17")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";"))) (case_statement "case 6:\n    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");\n    break;" (case "case") (number_literal "6") (: ":") (expression_statement "FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");" (call_expression "FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n")" (identifier "FUN_00032c40") (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_00098d50);\n    piVar3 = *(int **)(param_1 + 8);\n    iVar20 = *piVar3;\n    pbVar22 = (byte *)(piVar3 + 1);\n    if (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    fputc(10,DAT_00098d50);\n    break;" (case "case") (number_literal "7") (: ":") (expression_statement "fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);" (call_expression "fwrite(" FILL mask 0x",1,0xd,DAT_00098d50)" (identifier "fwrite") (argument_list "(" FILL mask 0x",1,0xd,DAT_00098d50)" (( "(") (string_literal "" FILL mask 0x"" (" """) (string_content " FILL mask 0x") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0xd") (, ",") (identifier "DAT_00098d50") () ")"))) (; ";")) (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 "iVar20 = *piVar3;" (assignment_expression "iVar20 = *piVar3" (identifier "iVar20") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (expression_statement "pbVar22 = (byte *)(piVar3 + 1);" (assignment_expression "pbVar22 = (byte *)(piVar3 + 1)" (identifier "pbVar22") (= "=") (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 (iVar20 != 0) {\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }" ({ "{") (do_statement "do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));" (do "do") (compound_statement "{\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      }" ({ "{") (expression_statement "bVar13 = *pbVar22;" (assignment_expression "bVar13 = *pbVar22" (identifier "bVar13") (= "=") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22"))) (; ";")) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "fprintf(DAT_00098d50,"%02x",(uint)bVar13);" (call_expression "fprintf(DAT_00098d50,"%02x",(uint)bVar13)" (identifier "fprintf") (argument_list "(DAT_00098d50,"%02x",(uint)bVar13)" (( "(") (identifier "DAT_00098d50") (, ",") (string_literal ""%02x"" (" """) (string_content "%02x") (" """)) (, ",") (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar22 != (byte *)((int)piVar3 + iVar20 + 4))" (( "(") (binary_expression "pbVar22 != (byte *)((int)piVar3 + iVar20 + 4)" (identifier "pbVar22") (!= "!=") (cast_expression "(byte *)((int)piVar3 + iVar20 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + iVar20 + 4)" (( "(") (binary_expression "(int)piVar3 + iVar20 + 4" (binary_expression "(int)piVar3 + iVar20" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (identifier "iVar20")) (+ "+") (number_literal "4")) () ")")))) () ")")) (; ";")) (} "}"))) (expression_statement "fputc(10,DAT_00098d50);" (call_expression "fputc(10,DAT_00098d50)" (identifier "fputc") (argument_list "(10,DAT_00098d50)" (( "(") (number_literal "10") (, ",") (identifier "DAT_00098d50") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 0x1c);\n    uStack_30 = *(int *)(param_1 + 0x20);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }\n    bVar13 = (byte)DAT_000987ec;\n    local_3c = 1 << (bVar13 & 0x1f);\n    if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }\n    uVar16 = 0 >> (bVar13 & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uVar18 + uStack_34;\n    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);\n    break;" (case "case") (number_literal "8") (: ":") (expression_statement "FUN_0001f3e0();" (call_expression "FUN_0001f3e0()" (identifier "FUN_0001f3e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar20 = 0x10;" (assignment_expression "iVar20 = 0x10" (identifier "iVar20") (= "=") (number_literal "0x10")) (; ";")) (do_statement "do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);" (do "do") (compound_statement "{\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    }" ({ "{") (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" (identifier "FUN_00031cc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" (identifier "iVar20") (= "=") (binary_expression "iVar20 + -1" (identifier "iVar20") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "uStack_34 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uStack_34 = *(uint *)(param_1 + 0x1c)" (identifier "uStack_34") (= "=") (pointer_expression "*(uint *)(param_1 + 0x1c)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uStack_30 = *(int *)(param_1 + 0x20);" (assignment_expression "uStack_30 = *(int *)(param_1 + 0x20)" (identifier "uStack_30") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "iVar20 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar20 = *(int *)(param_1 + 0x18)" (identifier "iVar20") (= "=") (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 (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" ({ "{") (expression_statement "bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));" (assignment_expression "bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c))" (identifier "bVar23") (= "=") (call_expression "CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c))" (identifier "CARRY4") (argument_list "(uStack_34,*(uint *)(iVar20 + 0x1c))" (( "(") (identifier "uStack_34") (, ",") (pointer_expression "*(uint *)(iVar20 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar20 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x1c)" (( "(") (binary_expression "iVar20 + 0x1c" (identifier "iVar20") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);" (assignment_expression "uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c)" (identifier "uStack_34") (= "=") (binary_expression "uStack_34 + *(uint *)(iVar20 + 0x1c)" (identifier "uStack_34") (+ "+") (pointer_expression "*(uint *)(iVar20 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar20 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x1c)" (( "(") (binary_expression "iVar20 + 0x1c" (identifier "iVar20") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (expression_statement "uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;" (assignment_expression "uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23" (identifier "uStack_30") (= "=") (binary_expression "uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23" (binary_expression "uStack_30 + *(int *)(iVar20 + 0x20)" (identifier "uStack_30") (+ "+") (pointer_expression "*(int *)(iVar20 + 0x20)" (* "*") (cast_expression "(int *)(iVar20 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x20)" (( "(") (binary_expression "iVar20 + 0x20" (identifier "iVar20") (+ "+") (number_literal "0x20")) () ")"))))) (+ "+") (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")))) (; ";")) (} "}"))) (switch_statement "switch(*(undefined4 *)(param_1 + 8)) {\n    case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\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      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;\n    case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;\n    case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;\n    case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;\n    case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;\n    default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);\n    }" ({ "{") (case_statement "case 0x11a:\n      pcVar12 = "QUAD";\n      uVar18 = 8;\n      break;" (case "case") (number_literal "0x11a") (: ":") (expression_statement "pcVar12 = "QUAD";" (assignment_expression "pcVar12 = "QUAD"" (identifier "pcVar12") (= "=") (string_literal ""QUAD"" (" """) (string_content "QUAD") (" """))) (; ";")) (expression_statement "uVar18 = 8;" (assignment_expression "uVar18 = 8" (identifier "uVar18") (= "=") (number_literal "8")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x11b:\n      pcVar12 = "SQUAD";\n      uVar18 = 8;\n      break;" (case "case") (number_literal "0x11b") (: ":") (expression_statement "pcVar12 = "SQUAD";" (assignment_expression "pcVar12 = "SQUAD"" (identifier "pcVar12") (= "=") (string_literal ""SQUAD"" (" """) (string_content "SQUAD") (" """))) (; ";")) (expression_statement "uVar18 = 8;" (assignment_expression "uVar18 = 8" (identifier "uVar18") (= "=") (number_literal "8")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x11c:\n      pcVar12 = "LONG";\n      uVar18 = 4;\n      break;" (case "case") (number_literal "0x11c") (: ":") (expression_statement "pcVar12 = "LONG";" (assignment_expression "pcVar12 = "LONG"" (identifier "pcVar12") (= "=") (string_literal ""LONG"" (" """) (string_content "LONG") (" """))) (; ";")) (expression_statement "uVar18 = 4;" (assignment_expression "uVar18 = 4" (identifier "uVar18") (= "=") (number_literal "4")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x11d:\n      pcVar12 = "SHORT";\n      uVar18 = 2;\n      break;" (case "case") (number_literal "0x11d") (: ":") (expression_statement "pcVar12 = "SHORT";" (assignment_expression "pcVar12 = "SHORT"" (identifier "pcVar12") (= "=") (string_literal ""SHORT"" (" """) (string_content "SHORT") (" """))) (; ";")) (expression_statement "uVar18 = 2;" (assignment_expression "uVar18 = 2" (identifier "uVar18") (= "=") (number_literal "2")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x11e:\n      pcVar12 = "BYTE";\n      uVar18 = 1;\n      break;" (case "case") (number_literal "0x11e") (: ":") (expression_statement "pcVar12 = "BYTE";" (assignment_expression "pcVar12 = "BYTE"" (identifier "pcVar12") (= "=") (string_literal ""BYTE"" (" """) (string_content "BYTE") (" """))) (; ";")) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" (identifier "uVar18") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                    \n      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);" (default "default") (: ":") (expression_statement "FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);" (call_expression "FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1)" (identifier "FUN_00031d20") (argument_list "("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x10c9") (, ",") (string_literal ""print_data_statement"" (" """) (string_content "print_data_statement") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";"))) (} "}"))) (expression_statement "bVar13 = (byte)DAT_000987ec;" (assignment_expression "bVar13 = (byte)DAT_000987ec" (identifier "bVar13") (= "=") (cast_expression "(byte)DAT_000987ec" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000987ec"))) (; ";")) (expression_statement "local_3c = 1 << (bVar13 & 0x1f);" (assignment_expression "local_3c = 1 << (bVar13 & 0x1f)" (identifier "local_3c") (= "=") (binary_expression "1 << (bVar13 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(bVar13 & 0x1f)" (( "(") (binary_expression "bVar13 & 0x1f" (identifier "bVar13") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if (local_3c < uVar18) {\n      local_3c = uVar18;\n    }" (if "if") (parenthesized_expression "(local_3c < uVar18)" (( "(") (binary_expression "local_3c < uVar18" (identifier "local_3c") (< "<") (identifier "uVar18")) () ")")) (compound_statement "{\n      local_3c = uVar18;\n    }" ({ "{") (expression_statement "local_3c = uVar18;" (assignment_expression "local_3c = uVar18" (identifier "local_3c") (= "=") (identifier "uVar18")) (; ";")) (} "}"))) (expression_statement "uVar16 = 0 >> (bVar13 & 0x1f);" (assignment_expression "uVar16 = 0 >> (bVar13 & 0x1f)" (identifier "uVar16") (= "=") (binary_expression "0 >> (bVar13 & 0x1f)" (number_literal "0") (>> ">>") (parenthesized_expression "(bVar13 & 0x1f)" (( "(") (binary_expression "bVar13 & 0x1f" (identifier "bVar13") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" (identifier "uVar17") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);" (assignment_expression "uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f)" (identifier "uVar18") (= "=") (binary_expression "local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f)" (binary_expression "local_3c >> (bVar13 & 0x1f)" (identifier "local_3c") (>> ">>") (parenthesized_expression "(bVar13 & 0x1f)" (( "(") (binary_expression "bVar13 & 0x1f" (identifier "bVar13") (& "&") (number_literal "0x1f")) () ")"))) (| "|") (binary_expression "0 << 0x20 - (bVar13 & 0x1f)" (number_literal "0") (<< "<<") (binary_expression "0x20 - (bVar13 & 0x1f)" (number_literal "0x20") (- "-") (parenthesized_expression "(bVar13 & 0x1f)" (( "(") (binary_expression "bVar13 & 0x1f" (identifier "bVar13") (& "&") (number_literal "0x1f")) () ")")))))) (; ";")) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" (if "if") (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" (( "(") (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" (( "(") (binary_expression "DAT_000987ec & 0x20" (identifier "DAT_000987ec") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" (identifier "uVar18") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (expression_statement "FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));" (call_expression "FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" (identifier "FUN_00032c40") (argument_list "("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,\n                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" (( "(") (string_literal ""0x%V %W %s 0x%v"" (" """) (string_content "0x%V %W %s 0x%v") (" """)) (, ",") (identifier "uStack_34") (, ",") (identifier "uStack_30") (, ",") (identifier "uVar18") (, ",") (identifier "uVar17") (, ",") (identifier "pcVar12") (, ",") (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")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x14)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) () ")"))) (; ";")) (if_statement "if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {\n      FUN_00031cc0();\n      FUN_00030c80(*(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_00031cc0();\n      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));\n    }" ({ "{") (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" (identifier "FUN_00031cc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00030c80(*(undefined4 *)(param_1 + 0xc));" (call_expression "FUN_00030c80(*(undefined4 *)(param_1 + 0xc))" (identifier "FUN_00030c80") (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_00031cf0();" (call_expression "FUN_00031cf0()" (identifier "FUN_00031cf0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" (identifier "bVar13") (= "=") (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000987ec")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f)" (identifier "uVar16") (= "=") (binary_expression "0 >> ((byte)DAT_000987ec & 0x1f)" (number_literal "0") (>> ">>") (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" (( "(") (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000987ec")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" (identifier "uVar17") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;" (assignment_expression "uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13" (identifier "uVar18") (= "=") (binary_expression "local_3c >> bVar13 | 0 << 0x20 - bVar13" (binary_expression "local_3c >> bVar13" (identifier "local_3c") (>> ">>") (identifier "bVar13")) (| "|") (binary_expression "0 << 0x20 - bVar13" (number_literal "0") (<< "<<") (binary_expression "0x20 - bVar13" (number_literal "0x20") (- "-") (identifier "bVar13"))))) (; ";")) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" (if "if") (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" (( "(") (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" (( "(") (binary_expression "DAT_000987ec & 0x20" (identifier "DAT_000987ec") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" (identifier "uVar18") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (expression_statement "DAT_00098838 = uVar18 + uStack_34;" (assignment_expression "DAT_00098838 = uVar18 + uStack_34" (identifier "DAT_00098838") (= "=") (binary_expression "uVar18 + uStack_34" (identifier "uVar18") (+ "+") (identifier "uStack_34"))) (; ";")) (expression_statement "DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);" (assignment_expression "DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34)" (identifier "DAT_0009883c") (= "=") (binary_expression "uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34)" (binary_expression "uVar17 + uStack_30" (identifier "uVar17") (+ "+") (identifier "uStack_30")) (+ "+") (cast_expression "(uint)CARRY4(uVar18,uStack_34)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar18,uStack_34)" (identifier "CARRY4") (argument_list "(uVar18,uStack_34)" (( "(") (identifier "uVar18") (, ",") (identifier "uStack_34") () ")")))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 9:\n    FUN_0001f3e0();\n    iVar20 = 0x10;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    local_3c = *(uint *)(param_1 + 0x28);\n    uStack_38 = *(int *)(param_1 + 0x2c);\n    iVar20 = *(int *)(param_1 + 0x24);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));\n    if (*(int *)(param_1 + 0x14) == 0) {\n      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }\n    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar15;\n    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }\n    DAT_00098838 = uVar18 + local_3c;\n    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);\n    break;" (case "case") (number_literal "9") (: ":") (expression_statement "FUN_0001f3e0();" (call_expression "FUN_0001f3e0()" (identifier "FUN_0001f3e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar20 = 0x10;" (assignment_expression "iVar20 = 0x10" (identifier "iVar20") (= "=") (number_literal "0x10")) (; ";")) (do_statement "do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);" (do "do") (compound_statement "{\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    }" ({ "{") (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" (identifier "FUN_00031cc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" (identifier "iVar20") (= "=") (binary_expression "iVar20 + -1" (identifier "iVar20") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "local_3c = *(uint *)(param_1 + 0x28);" (assignment_expression "local_3c = *(uint *)(param_1 + 0x28)" (identifier "local_3c") (= "=") (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uStack_38 = *(int *)(param_1 + 0x2c);" (assignment_expression "uStack_38 = *(int *)(param_1 + 0x2c)" (identifier "uStack_38") (= "=") (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "iVar20 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar20 = *(int *)(param_1 + 0x24)" (identifier "iVar20") (= "=") (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 (iVar20 != 0) {\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));\n      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);\n      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" ({ "{") (expression_statement "bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));" (assignment_expression "bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c))" (identifier "bVar23") (= "=") (call_expression "CARRY4(local_3c,*(uint *)(iVar20 + 0x1c))" (identifier "CARRY4") (argument_list "(local_3c,*(uint *)(iVar20 + 0x1c))" (( "(") (identifier "local_3c") (, ",") (pointer_expression "*(uint *)(iVar20 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar20 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x1c)" (( "(") (binary_expression "iVar20 + 0x1c" (identifier "iVar20") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "local_3c = local_3c + *(uint *)(iVar20 + 0x1c);" (assignment_expression "local_3c = local_3c + *(uint *)(iVar20 + 0x1c)" (identifier "local_3c") (= "=") (binary_expression "local_3c + *(uint *)(iVar20 + 0x1c)" (identifier "local_3c") (+ "+") (pointer_expression "*(uint *)(iVar20 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar20 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x1c)" (( "(") (binary_expression "iVar20 + 0x1c" (identifier "iVar20") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (expression_statement "uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;" (assignment_expression "uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23" (identifier "uStack_38") (= "=") (binary_expression "uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23" (binary_expression "uStack_38 + *(int *)(iVar20 + 0x20)" (identifier "uStack_38") (+ "+") (pointer_expression "*(int *)(iVar20 + 0x20)" (* "*") (cast_expression "(int *)(iVar20 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x20)" (( "(") (binary_expression "iVar20 + 0x20" (identifier "iVar20") (+ "+") (number_literal "0x20")) () ")"))))) (+ "+") (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")))) (; ";")) (} "}"))) (expression_statement "uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));" (assignment_expression "uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc))" (identifier "uVar16") (= "=") (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 "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" (identifier "bVar13") (= "=") (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000987ec")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "0 >> ((byte)DAT_000987ec & 0x1f)" (number_literal "0") (>> ">>") (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" (( "(") (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000987ec")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" (identifier "uVar17") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;" (assignment_expression "uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13" (identifier "uVar18") (= "=") (binary_expression "uVar16 >> bVar13 | 0 << 0x20 - bVar13" (binary_expression "uVar16 >> bVar13" (identifier "uVar16") (>> ">>") (identifier "bVar13")) (| "|") (binary_expression "0 << 0x20 - bVar13" (number_literal "0") (<< "<<") (binary_expression "0x20 - bVar13" (number_literal "0x20") (- "-") (identifier "bVar13"))))) (; ";")) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }" (if "if") (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" (( "(") (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" (( "(") (binary_expression "DAT_000987ec & 0x20" (identifier "DAT_000987ec") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar18 = uVar15;" (assignment_expression "uVar18 = uVar15" (identifier "uVar18") (= "=") (identifier "uVar15")) (; ";")) (} "}"))) (expression_statement "FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));" (call_expression "FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20))" (identifier "FUN_00032c40") (argument_list "("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,\n                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20))" (( "(") (string_literal ""0x%V %W RELOC %s "" (" """) (string_content "0x%V %W RELOC %s ") (" """)) (, ",") (identifier "local_3c") (, ",") (identifier "uStack_38") (, ",") (identifier "uVar18") (, ",") (identifier "uVar17") (, ",") (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_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }\n    else {\n      FUN_00032c40(&UNK_0004ce70,*(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_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));\n    }" ({ "{") (expression_statement "FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));" (call_expression "FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10))" (identifier "FUN_00032c40") (argument_list "(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10))" (( "(") (pointer_expression "&UNK_0004ce70" (& "&") (identifier "UNK_0004ce70")) (, ",") (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_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }" (else "else") (compound_statement "{\n      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));\n    }" ({ "{") (expression_statement "FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));" (call_expression "FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14))" (identifier "FUN_00032c40") (argument_list "(&UNK_0004ce70,*(int *)(param_1 + 0x14))" (( "(") (pointer_expression "&UNK_0004ce70" (& "&") (identifier "UNK_0004ce70")) (, ",") (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_00030c80(*(undefined4 *)(param_1 + 0x18));" (call_expression "FUN_00030c80(*(undefined4 *)(param_1 + 0x18))" (identifier "FUN_00030c80") (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_00031cf0();" (call_expression "FUN_00031cf0()" (identifier "FUN_00031cf0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" (identifier "bVar13") (= "=") (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000987ec")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "0 >> ((byte)DAT_000987ec & 0x1f)" (number_literal "0") (>> ">>") (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" (( "(") (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000987ec")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" (identifier "uVar17") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;" (assignment_expression "uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13" (identifier "uVar18") (= "=") (binary_expression "uVar16 >> bVar13 | 0 << 0x20 - bVar13" (binary_expression "uVar16 >> bVar13" (identifier "uVar16") (>> ">>") (identifier "bVar13")) (| "|") (binary_expression "0 << 0x20 - bVar13" (number_literal "0") (<< "<<") (binary_expression "0x20 - bVar13" (number_literal "0x20") (- "-") (identifier "bVar13"))))) (; ";")) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }" (if "if") (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" (( "(") (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" (( "(") (binary_expression "DAT_000987ec & 0x20" (identifier "DAT_000987ec") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar15;\n    }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar18 = uVar15;" (assignment_expression "uVar18 = uVar15" (identifier "uVar18") (= "=") (identifier "uVar15")) (; ";")) (} "}"))) (expression_statement "DAT_00098838 = uVar18 + local_3c;" (assignment_expression "DAT_00098838 = uVar18 + local_3c" (identifier "DAT_00098838") (= "=") (binary_expression "uVar18 + local_3c" (identifier "uVar18") (+ "+") (identifier "local_3c"))) (; ";")) (expression_statement "DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);" (assignment_expression "DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c)" (identifier "DAT_0009883c") (= "=") (binary_expression "uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c)" (binary_expression "uVar17 + uStack_38" (identifier "uVar17") (+ "+") (identifier "uStack_38")) (+ "+") (cast_expression "(uint)CARRY4(uVar18,local_3c)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar18,local_3c)" (identifier "CARRY4") (argument_list "(uVar18,local_3c)" (( "(") (identifier "uVar18") (, ",") (identifier "local_3c") () ")")))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 10:\n    iVar20 = *(int *)(param_1 + 8);\n    pcVar12 = "TARGET(%s)\n";\ncode_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);\n    break;" (case "case") (number_literal "10") (: ":") (expression_statement "iVar20 = *(int *)(param_1 + 8);" (assignment_expression "iVar20 = *(int *)(param_1 + 8)" (identifier "iVar20") (= "=") (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 "pcVar12 = "TARGET(%s)\n";" (assignment_expression "pcVar12 = "TARGET(%s)\n"" (identifier "pcVar12") (= "=") (string_literal ""TARGET(%s)\n"" (" """) (string_content "TARGET(%s)") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "code_r0x0001fc3c:\n    fprintf(DAT_00098d50,pcVar12,iVar20);" (statement_identifier "code_r0x0001fc3c") (: ":") (expression_statement "fprintf(DAT_00098d50,pcVar12,iVar20);" (call_expression "fprintf(DAT_00098d50,pcVar12,iVar20)" (identifier "fprintf") (argument_list "(DAT_00098d50,pcVar12,iVar20)" (( "(") (identifier "DAT_00098d50") (, ",") (identifier "pcVar12") (, ",") (identifier "iVar20") () ")"))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xb:\n    iVar20 = *(int *)(param_1 + 8);\n    FUN_00032c40("OUTPUT(%s",iVar20);\n    if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }\n    FUN_00032c40(")\n",iVar20);\n    break;" (case "case") (number_literal "0xb") (: ":") (expression_statement "iVar20 = *(int *)(param_1 + 8);" (assignment_expression "iVar20 = *(int *)(param_1 + 8)" (identifier "iVar20") (= "=") (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_00032c40("OUTPUT(%s",iVar20);" (call_expression "FUN_00032c40("OUTPUT(%s",iVar20)" (identifier "FUN_00032c40") (argument_list "("OUTPUT(%s",iVar20)" (( "(") (string_literal ""OUTPUT(%s"" (" """) (string_content "OUTPUT(%s") (" """)) (, ",") (identifier "iVar20") () ")"))) (; ";")) (if_statement "if (DAT_00098bbc != 0) {\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }" (if "if") (parenthesized_expression "(DAT_00098bbc != 0)" (( "(") (binary_expression "DAT_00098bbc != 0" (identifier "DAT_00098bbc") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar20 = DAT_00098bbc;\n      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);\n    }" ({ "{") (expression_statement "iVar20 = DAT_00098bbc;" (assignment_expression "iVar20 = DAT_00098bbc" (identifier "iVar20") (= "=") (identifier "DAT_00098bbc")) (; ";")) (expression_statement "FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);" (call_expression "FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc)" (identifier "FUN_00032c40") (argument_list "(&DAT_0004b5e3,DAT_00098bbc)" (( "(") (pointer_expression "&DAT_0004b5e3" (& "&") (identifier "DAT_0004b5e3")) (, ",") (identifier "DAT_00098bbc") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00032c40(")\n",iVar20);" (call_expression "FUN_00032c40(")\n",iVar20)" (identifier "FUN_00032c40") (argument_list "(")\n",iVar20)" (( "(") (string_literal "")\n"" (" """) (string_content ")") (escape_sequence "\n") (" """)) (, ",") (identifier "iVar20") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xc:\n    FUN_0001f3e0();\n    FUN_00032c40(&UNK_0004ce74);\n    iVar20 = 9;\n    do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);\n    uStack_34 = *(uint *)(param_1 + 8);\n    uStack_30 = *(int *)(param_1 + 0xc);\n    iVar20 = *(int *)(param_1 + 0x18);\n    if (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);\n    piVar3 = *(int **)(param_1 + 0x1c);\n    iVar20 = *piVar3;\n    if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }\n    FUN_00031cf0();\n    bVar13 = (byte)DAT_000987ec & 0x1f;\n    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);\n    uVar17 = uVar16;\n    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;\n    if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }\n    DAT_00098838 = uStack_34 + uVar18;\n    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);\n    break;" (case "case") (number_literal "0xc") (: ":") (expression_statement "FUN_0001f3e0();" (call_expression "FUN_0001f3e0()" (identifier "FUN_0001f3e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00032c40(&UNK_0004ce74);" (call_expression "FUN_00032c40(&UNK_0004ce74)" (identifier "FUN_00032c40") (argument_list "(&UNK_0004ce74)" (( "(") (pointer_expression "&UNK_0004ce74" (& "&") (identifier "UNK_0004ce74")) () ")"))) (; ";")) (expression_statement "iVar20 = 9;" (assignment_expression "iVar20 = 9" (identifier "iVar20") (= "=") (number_literal "9")) (; ";")) (do_statement "do {\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    } while (iVar20 != 0);" (do "do") (compound_statement "{\n      FUN_00031cc0();\n      iVar20 = iVar20 + -1;\n    }" ({ "{") (expression_statement "FUN_00031cc0();" (call_expression "FUN_00031cc0()" (identifier "FUN_00031cc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" (identifier "iVar20") (= "=") (binary_expression "iVar20 + -1" (identifier "iVar20") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "uStack_34 = *(uint *)(param_1 + 8);" (assignment_expression "uStack_34 = *(uint *)(param_1 + 8)" (identifier "uStack_34") (= "=") (pointer_expression "*(uint *)(param_1 + 8)" (* "*") (cast_expression "(uint *)(param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uStack_30 = *(int *)(param_1 + 0xc);" (assignment_expression "uStack_30 = *(int *)(param_1 + 0xc)" (identifier "uStack_30") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "iVar20 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar20 = *(int *)(param_1 + 0x18)" (identifier "iVar20") (= "=") (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 (iVar20 != 0) {\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));\n      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);\n      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;\n    }" ({ "{") (expression_statement "bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));" (assignment_expression "bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c))" (identifier "bVar23") (= "=") (call_expression "CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c))" (identifier "CARRY4") (argument_list "(uStack_34,*(uint *)(iVar20 + 0x1c))" (( "(") (identifier "uStack_34") (, ",") (pointer_expression "*(uint *)(iVar20 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar20 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x1c)" (( "(") (binary_expression "iVar20 + 0x1c" (identifier "iVar20") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);" (assignment_expression "uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c)" (identifier "uStack_34") (= "=") (binary_expression "uStack_34 + *(uint *)(iVar20 + 0x1c)" (identifier "uStack_34") (+ "+") (pointer_expression "*(uint *)(iVar20 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar20 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x1c)" (( "(") (binary_expression "iVar20 + 0x1c" (identifier "iVar20") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (expression_statement "uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;" (assignment_expression "uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23" (identifier "uStack_30") (= "=") (binary_expression "uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23" (binary_expression "uStack_30 + *(int *)(iVar20 + 0x20)" (identifier "uStack_30") (+ "+") (pointer_expression "*(int *)(iVar20 + 0x20)" (* "*") (cast_expression "(int *)(iVar20 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x20)" (( "(") (binary_expression "iVar20 + 0x20" (identifier "iVar20") (+ "+") (number_literal "0x20")) () ")"))))) (+ "+") (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")))) (; ";")) (} "}"))) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" (identifier "bVar13") (= "=") (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000987ec")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f)" (identifier "uVar16") (= "=") (binary_expression "*(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f)" (pointer_expression "*(uint *)(param_1 + 0x14)" (* "*") (cast_expression "(uint *)(param_1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (>> ">>") (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" (( "(") (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000987ec")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" (identifier "uVar17") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;" (assignment_expression "uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13" (identifier "uVar18") (= "=") (binary_expression "*(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13" (binary_expression "*(uint *)(param_1 + 0x10) >> bVar13" (pointer_expression "*(uint *)(param_1 + 0x10)" (* "*") (cast_expression "(uint *)(param_1 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (>> ">>") (identifier "bVar13")) (| "|") (binary_expression "*(uint *)(param_1 + 0x14) << 0x20 - bVar13" (pointer_expression "*(uint *)(param_1 + 0x14)" (* "*") (cast_expression "(uint *)(param_1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (<< "<<") (binary_expression "0x20 - bVar13" (number_literal "0x20") (- "-") (identifier "bVar13"))))) (; ";")) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" (if "if") (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" (( "(") (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" (( "(") (binary_expression "DAT_000987ec & 0x20" (identifier "DAT_000987ec") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" (identifier "uVar18") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (expression_statement "FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);" (call_expression "FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17)" (identifier "FUN_00032c40") (argument_list "(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17)" (( "(") (pointer_expression "&UNK_0004ce7c" (& "&") (identifier "UNK_0004ce7c")) (, ",") (identifier "uStack_34") (, ",") (identifier "uStack_30") (, ",") (identifier "uVar18") (, ",") (identifier "uVar17") () ")"))) (; ";")) (expression_statement "piVar3 = *(int **)(param_1 + 0x1c);" (assignment_expression "piVar3 = *(int **)(param_1 + 0x1c)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(param_1 + 0x1c)" (* "*") (cast_expression "(int **)(param_1 + 0x1c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "iVar20 = *piVar3;" (assignment_expression "iVar20 = *piVar3" (identifier "iVar20") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (if_statement "if (iVar20 != 0) {\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pbVar22 = (byte *)(piVar3 + 1);\n      do {\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));\n    }" ({ "{") (expression_statement "pbVar22 = (byte *)(piVar3 + 1);" (assignment_expression "pbVar22 = (byte *)(piVar3 + 1)" (identifier "pbVar22") (= "=") (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        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));" (do "do") (compound_statement "{\n        bVar13 = *pbVar22;\n        pbVar22 = pbVar22 + 1;\n        fprintf(DAT_00098d50,"%02x",(uint)bVar13);\n      }" ({ "{") (expression_statement "bVar13 = *pbVar22;" (assignment_expression "bVar13 = *pbVar22" (identifier "bVar13") (= "=") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22"))) (; ";")) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "fprintf(DAT_00098d50,"%02x",(uint)bVar13);" (call_expression "fprintf(DAT_00098d50,"%02x",(uint)bVar13)" (identifier "fprintf") (argument_list "(DAT_00098d50,"%02x",(uint)bVar13)" (( "(") (identifier "DAT_00098d50") (, ",") (string_literal ""%02x"" (" """) (string_content "%02x") (" """)) (, ",") (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar22 != (byte *)((int)piVar3 + iVar20 + 4))" (( "(") (binary_expression "pbVar22 != (byte *)((int)piVar3 + iVar20 + 4)" (identifier "pbVar22") (!= "!=") (cast_expression "(byte *)((int)piVar3 + iVar20 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + iVar20 + 4)" (( "(") (binary_expression "(int)piVar3 + iVar20 + 4" (binary_expression "(int)piVar3 + iVar20" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (identifier "iVar20")) (+ "+") (number_literal "4")) () ")")))) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_00031cf0();" (call_expression "FUN_00031cf0()" (identifier "FUN_00031cf0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar13 = (byte)DAT_000987ec & 0x1f;" (assignment_expression "bVar13 = (byte)DAT_000987ec & 0x1f" (identifier "bVar13") (= "=") (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000987ec")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);" (assignment_expression "uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f)" (identifier "uVar16") (= "=") (binary_expression "*(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f)" (pointer_expression "*(uint *)(param_1 + 0x14)" (* "*") (cast_expression "(uint *)(param_1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (>> ">>") (parenthesized_expression "((byte)DAT_000987ec & 0x1f)" (( "(") (binary_expression "(byte)DAT_000987ec & 0x1f" (cast_expression "(byte)DAT_000987ec" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000987ec")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" (identifier "uVar17") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;" (assignment_expression "uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13" (identifier "uVar18") (= "=") (binary_expression "*(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13" (binary_expression "*(uint *)(param_1 + 0x10) >> bVar13" (pointer_expression "*(uint *)(param_1 + 0x10)" (* "*") (cast_expression "(uint *)(param_1 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (>> ">>") (identifier "bVar13")) (| "|") (binary_expression "*(uint *)(param_1 + 0x14) << 0x20 - bVar13" (pointer_expression "*(uint *)(param_1 + 0x14)" (* "*") (cast_expression "(uint *)(param_1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (<< "<<") (binary_expression "0x20 - bVar13" (number_literal "0x20") (- "-") (identifier "bVar13"))))) (; ";")) (if_statement "if ((DAT_000987ec & 0x20) != 0) {\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" (if "if") (parenthesized_expression "((DAT_000987ec & 0x20) != 0)" (( "(") (binary_expression "(DAT_000987ec & 0x20) != 0" (parenthesized_expression "(DAT_000987ec & 0x20)" (( "(") (binary_expression "DAT_000987ec & 0x20" (identifier "DAT_000987ec") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar17 = 0;\n      uVar18 = uVar16;\n    }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" (identifier "uVar18") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (expression_statement "DAT_00098838 = uStack_34 + uVar18;" (assignment_expression "DAT_00098838 = uStack_34 + uVar18" (identifier "DAT_00098838") (= "=") (binary_expression "uStack_34 + uVar18" (identifier "uStack_34") (+ "+") (identifier "uVar18"))) (; ";")) (expression_statement "DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);" (assignment_expression "DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18)" (identifier "DAT_0009883c") (= "=") (binary_expression "uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18)" (binary_expression "uStack_30 + uVar17" (identifier "uStack_30") (+ "+") (identifier "uVar17")) (+ "+") (cast_expression "(uint)CARRY4(uStack_34,uVar18)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uStack_34,uVar18)" (identifier "CARRY4") (argument_list "(uStack_34,uVar18)" (( "(") (identifier "uStack_34") (, ",") (identifier "uVar18") () ")")))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xd:\n    fwrite("START GROUP\n",1,0xc,DAT_00098d50);\n    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\n    }\n    fwrite("END GROUP\n",1,10,DAT_00098d50);\n    break;" (case "case") (number_literal "0xd") (: ":") (expression_statement "fwrite("START GROUP\n",1,0xc,DAT_00098d50);" (call_expression "fwrite("START GROUP\n",1,0xc,DAT_00098d50)" (identifier "fwrite") (argument_list "("START GROUP\n",1,0xc,DAT_00098d50)" (( "(") (string_literal ""START GROUP\n"" (" """) (string_content "START GROUP") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0xc") (, ",") (identifier "DAT_00098d50") () ")"))) (; ";")) (for_statement "for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;\n        puVar4 = (undefined4 *)*puVar4) {\n      FUN_0001f7f0();\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_0001f7f0();\n    }" ({ "{") (expression_statement "FUN_0001f7f0();" (call_expression "FUN_0001f7f0()" (identifier "FUN_0001f7f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "fwrite("END GROUP\n",1,10,DAT_00098d50);" (call_expression "fwrite("END GROUP\n",1,10,DAT_00098d50)" (identifier "fwrite") (argument_list "("END GROUP\n",1,10,DAT_00098d50)" (( "(") (string_literal ""END GROUP\n"" (" """) (string_content "END GROUP") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "10") (, ",") (identifier "DAT_00098d50") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xe:\n    pcVar12 = "BEFORE";\n    if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "AFTER";\n    }\n    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));\n    break;" (case "case") (number_literal "0xe") (: ":") (expression_statement "pcVar12 = "BEFORE";" (assignment_expression "pcVar12 = "BEFORE"" (identifier "pcVar12") (= "=") (string_literal ""BEFORE"" (" """) (string_content "BEFORE") (" """))) (; ";")) (if_statement "if (*(int *)(param_1 + 0xc) == 0) {\n      pcVar12 = "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      pcVar12 = "AFTER";\n    }" ({ "{") (expression_statement "pcVar12 = "AFTER";" (assignment_expression "pcVar12 = "AFTER"" (identifier "pcVar12") (= "=") (string_literal ""AFTER"" (" """) (string_content "AFTER") (" """))) (; ";")) (} "}"))) (expression_statement "FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));" (call_expression "FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8))" (identifier "FUN_00032c40") (argument_list "("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8))" (( "(") (string_literal ""INSERT %s %s\n"" (" """) (string_content "INSERT %s %s") (escape_sequence "\n") (" """)) (, ",") (identifier "pcVar12") (, ",") (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_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }\n    break;" (case "case") (number_literal "0xf") (: ":") (if_statement "if (DAT_00098bcc != (undefined4 *)0x0) {\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }" (if "if") (parenthesized_expression "(DAT_00098bcc != (undefined4 *)0x0)" (( "(") (binary_expression "DAT_00098bcc != (undefined4 *)0x0" (identifier "DAT_00098bcc") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }\n      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\n      }\n    }" ({ "{") (if_statement "if (DAT_00098bd4 == 0) {\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }\n      else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }" (if "if") (parenthesized_expression "(DAT_00098bd4 == 0)" (( "(") (binary_expression "DAT_00098bd4 == 0" (identifier "DAT_00098bd4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00032c40(" CONSTRUCTORS\n");\n        puVar4 = DAT_00098bcc;\n      }" ({ "{") (expression_statement "FUN_00032c40(" CONSTRUCTORS\n");" (call_expression "FUN_00032c40(" CONSTRUCTORS\n")" (identifier "FUN_00032c40") (argument_list "(" CONSTRUCTORS\n")" (( "(") (string_literal "" CONSTRUCTORS\n"" (" """) (string_content " CONSTRUCTORS") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "puVar4 = DAT_00098bcc;" (assignment_expression "puVar4 = DAT_00098bcc" (identifier "puVar4") (= "=") (identifier "DAT_00098bcc")) (; ";")) (} "}")) (else_clause "else {\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }" (else "else") (compound_statement "{\n        FUN_00032c40(" SORT (CONSTRUCTORS)\n");\n        puVar4 = DAT_00098bcc;\n      }" ({ "{") (expression_statement "FUN_00032c40(" SORT (CONSTRUCTORS)\n");" (call_expression "FUN_00032c40(" SORT (CONSTRUCTORS)\n")" (identifier "FUN_00032c40") (argument_list "(" SORT (CONSTRUCTORS)\n")" (( "(") (string_literal "" SORT (CONSTRUCTORS)\n"" (" """) (string_content " SORT (CONSTRUCTORS)") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "puVar4 = DAT_00098bcc;" (assignment_expression "puVar4 = DAT_00098bcc" (identifier "puVar4") (= "=") (identifier "DAT_00098bcc")) (; ";")) (} "}")))) (for_statement "for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {\n        FUN_0001f7f0();\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_0001f7f0();\n      }" ({ "{") (expression_statement "FUN_0001f7f0();" (call_expression "FUN_0001f7f0()" (identifier "FUN_0001f7f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);\n    fprintf(DAT_00098d50,pcVar12,uVar11);\n    FUN_00032c00("../../ld/ldlang.c",0x11bc);" (default "default") (: ":") (expression_statement "pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);" (assignment_expression "pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5)" (identifier "pcVar12") (= "=") (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_00098d50,pcVar12,uVar11);" (call_expression "fprintf(DAT_00098d50,pcVar12,uVar11)" (identifier "fprintf") (argument_list "(DAT_00098d50,pcVar12,uVar11)" (( "(") (identifier "DAT_00098d50") (, ",") (identifier "pcVar12") (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "FUN_00032c00("../../ld/ldlang.c",0x11bc);" (call_expression "FUN_00032c00("../../ld/ldlang.c",0x11bc)" (identifier "FUN_00032c00") (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 *puVar1;
  type_4 sVar2;
  type_5 *var_21;
  type_6 *var_22;
  type_7 *var_34;
  type_8 *pfVar6;
  size_t var_26;
  type_1 *var_16;
  int var_12;
  type_9 *paVar10;
  char *var_20;
  size_t var_5;
  char *var_23;
  type_3 var_8;
  type_10 var_9;
  type_3 uVar16;
  type_3 var_36;
  type_3 var_33;
  type_11 *tree;
  int var_11;
  type_9 *var_3;
  type_12 *var_27;
  bool bVar22;
  type_6 *var_32;
  type_6 *local_38;
  type_13 **local_34;
  type_14 *local_30;
  
  sVar2 = (var_1->header).type;
  switch(sVar2) {
  case lang_output_section_statement_enum:
    if (var_1 != (type_1 *)abs_output_section) {
      var_3 = (var_1->output_section_statement).type_16;
      var_2("\n%s",(var_1->wild_statement).children.head);
      if (var_3 != (type_9 *)0x0) {
        print_dot._0_4_ = *(char **)&var_3->vma;
        print_dot._4_4_ = *(int *)((int)&var_3->vma + 4);
        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_8 = *(type_3 *)((int)&var_3->size + 4);
        var_9 = (type_10)var_10 & 0x1f;
        var_36 = var_8 >> ((type_10)var_10 & 0x1f);
        var_33 = var_36;
        var_8 = (type_3)var_3->size >> var_9 | var_8 << 0x20 - var_9;
        if ((var_10 & 0x20) != 0) {
          var_33 = 0;
          var_8 = var_36;
        }
        var_2("0x%V %W",(int)var_3->vma,*(type_15 *)((int)&var_3->vma + 4),var_8,var_33);
        var_11 = *(int *)((int)&var_3->lma + 4);
        var_12 = (int)var_3->lma;
        if (var_11 != *(int *)((int)&var_3->vma + 4) || (int)var_3->vma != var_12) {
          var_23 = (char *)var_13(0," load address 0x%V",5);
          var_2(var_23,var_12,var_11);
        }
        if ((var_1->output_section_statement).update_dot_tree != (type_11 *)0x0) {
          var_14((var_1->output_section_statement).update_dot_tree,
                        (type_9 *)(var_15 + 0x180),&print_dot);
        }
      }
      var_6();
    }
    for (var_16 = (var_1->output_section_statement).children.head;
        var_16 != (type_1 *)0x0; var_16 = (var_16->header).next) {
      function_1(var_16,&var_1->output_section_statement);
    }
    break;
  case lang_assignment_statement_enum:
    var_11 = 0x10;
    do {
      var_7();
      var_11 = var_11 + -1;
    } while (var_11 != 0);
    paVar10 = (var_1->input_section).section;
    tree = (type_11 *)paVar10->prev;
    var_3 = os->type_16;
    if (paVar10->next == (type_16 *)0x8) {
      bVar22 = false;
      if (var_3 == (type_9 *)0x0) {
        var_3 = (type_9 *)(var_15 + 0x180);
      }
LAB_000201d5:
      var_14(tree,var_3,&print_dot);
      var_11 = expld.result.value._4_4_;
      var_23 = (char *)expld.result.value;
      paVar10 = (var_1->input_section).section;
      if (expld.result.valid_p == 0) goto LAB_0001f87e;
      if (paVar10->next == (type_16 *)0x8) {
        if (expld.result.section != (type_9 *)0x0) {
LAB_00020228:
          var_11 = expld.result.value._4_4_ + *(int *)((int)&(expld.result.section)->vma + 4) +
                   (type_3)var_17((type_3)(char *)expld.result.value,(type_3)(expld.result.section)->vma);
          var_23 = (char *)expld.result.value + (int)(expld.result.section)->vma;
        }
        var_2("0x%V",var_23,var_11);
        if (bVar22) {
LAB_0002025d:
          print_dot._0_4_ = var_23;
          print_dot._4_4_ = var_11;
        }
      }
      else {
        if (bVar22) {
          if (expld.result.section != (type_9 *)0x0) goto LAB_00020228;
          var_2("0x%V",(char *)expld.result.value,expld.result.value._4_4_);
          goto LAB_0002025d;
        }
        if (expld.assign_name == (char *)0x0) {
          var_11 = var_18(link_info.hash,paVar10->prev,0,0,1);
          if (var_11 == 0) {
            var_2("[unresolved]");
          }
          else {
            var_12 = *(int *)(var_11 + 0x14);
            var_8 = *(type_3 *)(var_11 + 0x18) + *(type_3 *)(var_12 + 0x4c);
            puVar1 = (type_3 *)(*(int *)(var_12 + 0x54) + 0x1c);
            var_2("[0x%V]",var_8 + *puVar1,
                  *(int *)(var_11 + 0x1c) + *(int *)(var_12 + 0x50) +
                  (type_3)var_17(*(type_3 *)(var_11 + 0x18),*(type_3 *)(var_12 + 0x4c)) +
                  *(int *)(*(int *)(var_12 + 0x54) + 0x20) + (type_3)var_17(var_8,*puVar1));
          }
        }
        else {
          if (expld.result.section != (type_9 *)0x0) goto LAB_00020228;
          var_2("0x%V",(char *)expld.result.value,expld.result.value._4_4_);
        }
      }
    }
    else {
      if ((*(char *)tree == '.') && (*(char *)((int)&(tree->type).node_code + 1) == '\0')) {
        bVar22 = true;
      }
      else {
        bVar22 = false;
        expld.assign_name = (char *)tree;
      }
      tree = (type_11 *)paVar10->flags;
      if (var_3 == (type_9 *)0x0) {
        var_3 = (type_9 *)(var_15 + 0x180);
      }
      if (paVar10->next != (type_16 *)0x5) goto LAB_000201d5;
      expld.result.valid_p = 0;
LAB_0001f87e:
      if (paVar10->next == (type_16 *)0x5) {
        var_2("[!provide]");
      }
      else {
        var_2("*undef*   ");
      }
      var_2("        ");
    }
    expld.assign_name = (char *)0x0;
    var_2("                ");
    var_19((type_11 *)(var_1->output_section_statement).children.head);
    var_6();
    break;
  case lang_input_statement_enum:
    var_20 = (var_1->wild_statement).filename;
    if (var_20 == (char *)0x0) {
      return;
    }
    if (((var_1->reloc_statement).section != (type_9 *)0x0) &&
       ((((var_1->reloc_statement).section)->lma & 0x2000000000000) != 0)) {
      return;
    }
    var_23 = "LOAD %s\n";
    goto LAB_0001fc3c;
  case lang_address_statement_enum:
    var_23 = (var_1->wild_statement).filename;
    var_20 = (char *)var_13(0,"Address of section %s set to ",5);
    var_2(var_20,var_23);
    var_19((var_1->data_statement).exp);
    var_6();
    break;
  case lang_wild_statement_enum:
    var_7();
    if ((var_1->wild_statement).exclude_name_list != (type_5 *)0x0) {
      var_23 = ((var_1->wild_statement).exclude_name_list)->name;
      var_2("EXCLUDE_FILE(%s",var_23);
      for (var_21 = ((var_1->wild_statement).exclude_name_list)->next; var_21 != (type_5 *)0x0;
          var_21 = var_21->next) {
        var_23 = var_21->name;
        var_2(" %s",var_23);
      }
      var_2(") ",var_23);
    }
    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_22 = (var_1->wild_statement).section_list; var_22 != (type_6 *)0x0;
        var_22 = var_22->next) {
      switch((var_22->spec).sorted) {
      default:
        var_11 = 0;
        break;
      case by_name:
        var_11 = 1;
        var_2("SORT_BY_NAME(");
        break;
      case by_alignment:
        var_11 = 1;
        var_2("SORT_BY_ALIGNMENT(");
        break;
      case by_name_alignment:
        var_11 = 2;
        var_2("SORT_BY_NAME(SORT_BY_ALIGNMENT(");
        break;
      case by_alignment_name:
        var_11 = 2;
        var_2("SORT_BY_ALIGNMENT(SORT_BY_NAME(");
        break;
      case by_none:
        var_2("SORT_NONE(");
        var_11 = 1;
        break;
      case by_init_priority:
        var_11 = 1;
        var_2("SORT_BY_INIT_PRIORITY(");
      }
      var_21 = (var_22->spec).exclude_name_list;
      if (var_21 != (type_5 *)0x0) {
        var_23 = var_21->name;
        var_2("EXCLUDE_FILE(%s",var_23);
        for (var_21 = ((var_22->spec).exclude_name_list)->next; var_21 != (type_5 *)0x0;
            var_21 = var_21->next) {
          var_23 = var_21->name;
          var_2(" %s",var_23);
        }
        var_2(") ",var_23);
      }
      var_23 = (var_22->spec).name;
      if (var_23 == (char *)0x0) {
        var_2("*");
      }
      else {
        var_2("%s",var_23);
      }
      if ((var_11 != 0) && (var_2(")"), var_11 != 1)) {
        var_2(")");
      }
      if (var_22->next == (type_6 *)0x0) break;
      var_2(" ");
    }
    var_2(")");
    var_6();
    for (var_16 = (var_1->wild_statement).children.head; var_16 != (type_1 *)0x0;
        var_16 = (var_16->header).next) {
      function_1(var_16,os);
    }
    break;
  case lang_input_section_enum:
    var_24((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_25(" FILL mask 0x",1,0xd,(type_17 *)config.map_file);
    pfVar6 = (var_1->fill_statement).fill;
    var_26 = pfVar6->size;
    var_27 = pfVar6->data;
    if (var_26 != 0) {
      do {
        var_9 = *var_27;
        var_27 = var_27 + 1;
        var_28((type_17 *)config.map_file,"%02x",(type_3)var_9);
      } while (var_27 != pfVar6->data + var_26);
    }
    var_29(10,(type_17 *)config.map_file);
    break;
  case lang_data_statement_enum:
    var_30();
    var_11 = 0x10;
    do {
      var_7();
      var_11 = var_11 + -1;
    } while (var_11 != 0);
    local_34 = (var_1->wild_statement).children.tail;
    local_30 = (type_14 *)(var_1->wild_statement).exclude_name_list;
    var_3 = (var_1->data_statement).output_section;
    if (var_3 != (type_9 *)0x0) {
      var_8 = (type_3)var_3->vma;
      bVar22 = var_17((type_3)local_34,var_8);
      local_34 = (type_13 **)((int)local_34 + var_8);
      local_30 = (type_14 *)
                 ((int)&(local_30->type).node_code + (type_3)bVar22 + *(int *)((int)&var_3->vma + 4)
                 );
    }
    switch((var_1->data_statement).type) {
    case 0x11a:
      var_23 = "QUAD";
      var_8 = 8;
      break;
    case 0x11b:
      var_23 = "SQUAD";
      var_8 = 8;
      break;
    case 0x11c:
      var_23 = "LONG";
      var_8 = 4;
      break;
    case 0x11d:
      var_23 = "SHORT";
      var_8 = 2;
      break;
    case 0x11e:
      var_23 = "BYTE";
      var_8 = 1;
      break;
    default:
                    /* WARNING: Subroutine does not return */
      var_31("../../ld/ldlang.c",0x10c9,"print_data_statement");
    }
    var_9 = (type_10)var_10;
    var_32 = (type_6 *)(1 << (var_9 & 0x1f));
    if (var_32 < var_8) {
      var_32 = (type_6 *)var_8;
    }
    var_36 = 0 >> (var_9 & 0x1f);
    var_33 = var_36;
    var_8 = (type_3)var_32 >> (var_9 & 0x1f) | 0 << 0x20 - (var_9 & 0x1f);
    if ((var_10 & 0x20) != 0) {
      var_33 = 0;
      var_8 = var_36;
    }
    var_2("0x%V %W %s 0x%v",local_34,local_30,var_8,var_33,var_23,(var_1->wild_statement).section_list
          ,(var_1->wild_statement).keep_sections);
    if (((var_1->reloc_statement).howto)->bitsize != 7) {
      var_7();
      var_19((var_1->data_statement).exp);
    }
    var_6();
    var_9 = (type_10)var_10 & 0x1f;
    var_36 = 0 >> ((type_10)var_10 & 0x1f);
    var_33 = var_36;
    var_8 = (type_3)var_32 >> var_9 | 0 << 0x20 - var_9;
    if ((var_10 & 0x20) != 0) {
      var_33 = 0;
      var_8 = var_36;
    }
    print_dot._0_4_ = (char *)(var_8 + (int)local_34);
    print_dot._4_4_ = (int)(char **)local_30 + var_17(var_8,(type_3)local_34) + var_33;
    break;
  case lang_reloc_statement_enum:
    var_30();
    var_11 = 0x10;
    do {
      var_7();
      var_11 = var_11 + -1;
    } while (var_11 != 0);
    var_32 = (var_1->wild_statement).handler_data[0];
    local_38 = (var_1->wild_statement).handler_data[1];
    var_34 = (var_1->output_section_statement).lma_region;
    if (var_34 != (type_7 *)0x0) {
      var_8 = *(type_3 *)((int)&var_34->length + 4);
      bVar22 = var_17((type_3)var_32,var_8);
      var_32 = (type_6 *)((int)&var_32->next + var_8);
      local_38 = (type_6 *)((int)var_34->length_exp + (type_3)bVar22 + (int)&local_38->next);
    }
    var_36 = var_35((var_1->wild_statement).filenames_sorted);
    var_9 = (type_10)var_10 & 0x1f;
    uVar16 = 0 >> ((type_10)var_10 & 0x1f);
    var_33 = uVar16;
    var_8 = var_36 >> var_9 | 0 << 0x20 - var_9;
    if ((var_10 & 0x20) != 0) {
      var_33 = 0;
      var_8 = uVar16;
    }
    var_2("0x%V %W RELOC %s ",var_32,local_38,var_8,var_33,((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_19((type_11 *)(var_1->wild_statement).children.head);
    var_6();
    var_9 = (type_10)var_10 & 0x1f;
    uVar16 = 0 >> ((type_10)var_10 & 0x1f);
    var_33 = uVar16;
    var_8 = var_36 >> var_9 | 0 << 0x20 - var_9;
    if ((var_10 & 0x20) != 0) {
      var_33 = 0;
      var_8 = uVar16;
    }
    print_dot._0_4_ = (char *)((int)&var_32->next + var_8);
    print_dot._4_4_ = (int)&local_38->next + var_17(var_8,(type_3)var_32) + var_33;
    break;
  case lang_target_statement_enum:
    var_20 = (var_1->wild_statement).filename;
    var_23 = "TARGET(%s)\n";
LAB_0001fc3c:
    var_28((type_17 *)config.map_file,var_23,var_20);
    break;
  case lang_output_statement_enum:
    var_23 = (var_1->wild_statement).filename;
    var_2("OUTPUT(%s",var_23);
    if (var_37 != (char *)0x0) {
      var_23 = var_37;
      var_2(" %s",var_37);
    }
    var_2(")\n",var_23);
    break;
  case lang_padding_statement_enum:
    var_30();
    var_2(" *fill*");
    var_11 = 9;
    do {
      var_7();
      var_11 = var_11 + -1;
    } while (var_11 != 0);
    local_34 = (type_13 **)(var_1->wild_statement).filename;
    local_30 = (var_1->data_statement).exp;
    var_3 = (var_1->data_statement).output_section;
    if (var_3 != (type_9 *)0x0) {
      var_8 = (type_3)var_3->vma;
      bVar22 = var_17((type_3)local_34,var_8);
      local_34 = (type_13 **)((int)local_34 + var_8);
      local_30 = (type_14 *)((int)local_30 + (type_3)bVar22 + *(int *)((int)&var_3->vma + 4));
    }
    var_9 = (type_10)var_10 & 0x1f;
    var_36 = (type_3)(var_1->wild_statement).keep_sections >> ((type_10)var_10 & 0x1f);
    var_33 = var_36;
    var_8 = (type_3)(var_1->wild_statement).section_list >> var_9 |
             (var_1->wild_statement).keep_sections << 0x20 - var_9;
    if ((var_10 & 0x20) != 0) {
      var_33 = 0;
      var_8 = var_36;
    }
    var_2("0x%V %W ",local_34,local_30,var_8,var_33);
    pfVar6 = (var_1->padding_statement).fill;
    var_26 = pfVar6->size;
    if (var_26 != 0) {
      var_27 = pfVar6->data;
      do {
        var_9 = *var_27;
        var_27 = var_27 + 1;
        var_28((type_17 *)config.map_file,"%02x",(type_3)var_9);
      } while (var_27 != pfVar6->data + var_26);
    }
    var_6();
    var_9 = (type_10)var_10 & 0x1f;
    var_36 = (type_3)(var_1->wild_statement).keep_sections >> ((type_10)var_10 & 0x1f);
    var_33 = var_36;
    var_8 = (type_3)(var_1->wild_statement).section_list >> var_9 |
             (var_1->wild_statement).keep_sections << 0x20 - var_9;
    if ((var_10 & 0x20) != 0) {
      var_33 = 0;
      var_8 = var_36;
    }
    print_dot._0_4_ = (char *)((int)local_34 + var_8);
    print_dot._4_4_ = (int)local_30 + var_17((type_3)local_34,var_8) + var_33;
    break;
  case lang_group_statement_enum:
    var_25("START GROUP\n",1,0xc,(type_17 *)config.map_file);
    for (var_16 = (var_1->output_section_statement).children.head;
        var_16 != (type_1 *)0x0; var_16 = (var_16->header).next) {
      function_1(var_16,os);
    }
    var_25("END GROUP\n",1,10,(type_17 *)config.map_file);
    break;
  case lang_insert_statement_enum:
    var_23 = "BEFORE";
    if ((var_1->wild_statement).filenames_sorted == 0) {
      var_23 = "AFTER";
    }
    var_2("INSERT %s %s\n",var_23,(var_1->wild_statement).filename);
    break;
  case lang_constructors_statement_enum:
    if (constructor_list.head != (type_13 *)0x0) {
      if (var_38 == 0) {
        var_2(" CONSTRUCTORS\n");
        var_16 = constructor_list.head;
      }
      else {
        var_2(" SORT (CONSTRUCTORS)\n");
        var_16 = constructor_list.head;
      }
      for (; var_16 != (type_1 *)0x0; var_16 = (var_16->header).next) {
        function_1(var_16,os);
      }
    }
    break;
  default:
    var_23 = (char *)var_13(0,"Fail with %d\n",5);
    var_28((type_17 *)config.map_file,var_23,sVar2);
    var_39("../../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: (pointer_declarator 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: (primitive_type) 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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (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: (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: (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 (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (identifier)) right: (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: (binary_expression left: (number_literal) right: (identifier)))))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (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))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (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))))))) (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: (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)))))) right: (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) (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: (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: (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)))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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)))))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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 (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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) (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 (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: (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: (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: (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)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))) (binary_expression left: (binary_expression left: (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: (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: (identifier) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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))))) (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: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))))))))))) 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) (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 (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 (call_expression function: (identifier) arguments: (argument_list (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: (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 (pointer_expression argument: (identifier))))))) (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 (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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))))) (subscript_expression argument: (identifier) index: (number_literal))))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier) (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (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: (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) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) 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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (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: (type_identifier) 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)) 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)) 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: (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (binary_expression left: (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)))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (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)))) (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 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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (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 (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (number_literal) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier) (identifier) (identifier) (identifier) (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))))) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (number_literal) right: (binary_expression left: (number_literal) right: (identifier)))))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (type_identifier) 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)) 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)) 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: (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (binary_expression left: (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)))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (number_literal) right: (binary_expression left: (number_literal) right: (identifier)))))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier) (identifier) (identifier) (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (number_literal) right: (binary_expression left: (number_literal) right: (identifier)))))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (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 (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: (type_identifier) 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)) 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)) 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: (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (binary_expression left: (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)))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (identifier)) right: (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: (binary_expression left: (number_literal) right: (identifier)))))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier) (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)))) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (identifier)) right: (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: (binary_expression left: (number_literal) right: (identifier)))))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) (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)

{
  uint *puVar1;
  undefined4 *puVar2;
  int *piVar3;
  undefined4 *puVar4;
  int iVar5;
  int iVar6;
  undefined4 *__base;
  undefined4 *puVar7;
  size_t sVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  char *pcVar12;
  byte bVar13;
  undefined4 *puVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  undefined4 *puVar19;
  int iVar20;
  undefined *puVar21;
  byte *pbVar22;
  bool bVar23;
  uint local_3c;
  uint uStack_38;
  uint uStack_34;
  uint uStack_30;
  size_t sStack_24;
  
  uVar11 = *(undefined4 *)(param_1 + 4);
  switch(uVar11) {
  case 0:
    if (param_1 != DAT_00098bac) {
      iVar20 = *(int *)(param_1 + 0x1c);
      FUN_00032c40(&UNK_0004ce85,*(undefined4 *)(param_1 + 0x18));
      if (iVar20 != 0) {
        DAT_00098838 = *(uint *)(iVar20 + 0x1c);
        DAT_0009883c = *(uint *)(iVar20 + 0x20);
        sVar8 = strlen(*(char **)(param_1 + 0x18));
        if (0xe < sVar8) {
          FUN_00031cf0();
          sVar8 = 0;
        }
        do {
          FUN_00031cc0();
          sVar8 = sVar8 + 1;
        } while (sVar8 != 0x10);
        bVar13 = (byte)DAT_000987ec & 0x1f;
        uVar16 = *(uint *)(iVar20 + 0x30) >> ((byte)DAT_000987ec & 0x1f);
        uVar17 = uVar16;
        uVar18 = *(uint *)(iVar20 + 0x2c) >> bVar13 | *(uint *)(iVar20 + 0x30) << 0x20 - bVar13;
        if ((DAT_000987ec & 0x20) != 0) {
          uVar17 = 0;
          uVar18 = uVar16;
        }
        FUN_00032c40(&UNK_0004ce89,*(undefined4 *)(iVar20 + 0x1c),*(undefined4 *)(iVar20 + 0x20),
                     uVar18,uVar17);
        iVar6 = *(int *)(iVar20 + 0x28);
        iVar5 = *(int *)(iVar20 + 0x24);
        if (iVar6 != *(int *)(iVar20 + 0x20) || *(int *)(iVar20 + 0x1c) != iVar5) {
          uVar11 = dcgettext(0," load address 0x%V",5);
          FUN_00032c40(uVar11,iVar5,iVar6);
        }
        if (*(int *)(param_1 + 0x34) != 0) {
          FUN_000308e0(*(int *)(param_1 + 0x34),PTR__bfd_std_section_00097fd4 + 0x180,&DAT_00098838)
          ;
        }
      }
      FUN_00031cf0();
    }
    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;
        puVar4 = (undefined4 *)*puVar4) {
      MASKED();
    }
    break;
  case 1:
    iVar20 = 0x10;
    do {
      FUN_00031cc0();
      iVar20 = iVar20 + -1;
    } while (iVar20 != 0);
    iVar20 = *(int *)(param_1 + 8);
    pcVar12 = *(char **)(iVar20 + 0x10);
    puVar21 = *(undefined **)(param_2 + 0x1c);
    if (*(int *)(iVar20 + 0xc) == 8) {
      bVar23 = false;
      if (puVar21 == (undefined *)0x0) {
        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;
      }
code_r0x000201d5:
      FUN_000308e0(pcVar12,puVar21,&DAT_00098838);
      uVar17 = DAT_00098db8;
      uVar18 = DAT_00098db4;
      iVar20 = *(int *)(param_1 + 8);
      if (DAT_00098dc4 == 0) goto code_r0x0001f87e;
      if (*(int *)(iVar20 + 0xc) == 8) {
        if (DAT_00098dc0 != 0) {
code_r0x00020228:
          uVar17 = DAT_00098db8 + *(int *)(DAT_00098dc0 + 0x20) +
                   (uint)CARRY4(DAT_00098db4,*(uint *)(DAT_00098dc0 + 0x1c));
          uVar18 = DAT_00098db4 + *(uint *)(DAT_00098dc0 + 0x1c);
        }
        FUN_00032c40("0x%V",uVar18,uVar17);
        if (bVar23) {
code_r0x0002025d:
          DAT_00098838 = uVar18;
          DAT_0009883c = uVar17;
        }
      }
      else {
        if (bVar23) {
          if (DAT_00098dc0 != 0) goto code_r0x00020228;
          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);
          goto code_r0x0002025d;
        }
        if (pcRam00098dac == (char *)0x0) {
          iVar20 = bfd_link_hash_lookup(DAT_00098c20,*(undefined4 *)(iVar20 + 0x10),0,0,1);
          if (iVar20 == 0) {
            FUN_00032c40("[unresolved]");
          }
          else {
            iVar6 = *(int *)(iVar20 + 0x14);
            uVar18 = *(uint *)(iVar20 + 0x18) + *(uint *)(iVar6 + 0x4c);
            puVar1 = (uint *)(*(int *)(iVar6 + 0x54) + 0x1c);
            FUN_00032c40(&UNK_0004cea4,uVar18 + *puVar1,
                         *(int *)(iVar20 + 0x1c) + *(int *)(iVar6 + 0x50) +
                         (uint)CARRY4(*(uint *)(iVar20 + 0x18),*(uint *)(iVar6 + 0x4c)) +
                         *(int *)(*(int *)(iVar6 + 0x54) + 0x20) + (uint)CARRY4(uVar18,*puVar1));
          }
        }
        else {
          if (DAT_00098dc0 != 0) goto code_r0x00020228;
          FUN_00032c40("0x%V",DAT_00098db4,DAT_00098db8);
        }
      }
    }
    else {
      if ((*pcVar12 == '.') && (pcVar12[1] == '\0')) {
        bVar23 = true;
      }
      else {
        bVar23 = false;
        pcRam00098dac = pcVar12;
      }
      pcVar12 = *(char **)(iVar20 + 0x14);
      if (puVar21 == (undefined *)0x0) {
        puVar21 = PTR__bfd_std_section_00097fd4 + 0x180;
      }
      if (*(int *)(iVar20 + 0xc) != 5) goto code_r0x000201d5;
      DAT_00098dc4 = 0;
code_r0x0001f87e:
      if (*(int *)(iVar20 + 0xc) == 5) {
        FUN_00032c40("[!provide]");
      }
      else {
        FUN_00032c40(&UNK_0004cec3);
      }
      FUN_00032c40(&UNK_0004ced6);
    }
    pcRam00098dac = (char *)0x0;
    FUN_00032c40(&UNK_0004cece);
    FUN_00030c80(*(undefined4 *)(param_1 + 8));
    FUN_00031cf0();
    break;
  case 2:
    iVar20 = *(int *)(param_1 + 8);
    if (iVar20 == 0) {
      return;
    }
    if ((*(int *)(param_1 + 0x10) != 0) && ((*(byte *)(*(int *)(param_1 + 0x10) + 0x2a) & 2) != 0))
    {
      return;
    }
    pcVar12 = "LOAD %s\n";
    goto code_r0x0001fc3c;
  case 3:
    uVar11 = *(undefined4 *)(param_1 + 8);
    uVar10 = dcgettext(0,"Address of section %s set to ",5);
    FUN_00032c40(uVar10,uVar11);
    FUN_00030c80(*(undefined4 *)(param_1 + 0xc));
    FUN_00031cf0();
    break;
  case 4:
    FUN_00031cc0();
    if (*(undefined4 **)(param_1 + 0x20) != (undefined4 *)0x0) {
      uVar11 = **(undefined4 **)(param_1 + 0x20);
      FUN_00032c40("EXCLUDE_FILE(%s",uVar11);
      for (puVar4 = *(undefined4 **)(*(int *)(param_1 + 0x20) + 4); puVar4 != (undefined4 *)0x0;
          puVar4 = (undefined4 *)puVar4[1]) {
        uVar11 = *puVar4;
        FUN_00032c40(&DAT_0004b5e3,uVar11);
      }
      FUN_00032c40(&UNK_0004cdbf,uVar11);
    }
    if (*(int *)(param_1 + 0xc) != 0) {
      FUN_00032c40("SORT_BY_NAME(");
    }
    if (*(int *)(param_1 + 8) == 0) {
      FUN_00032c40(&DAT_0004cff4);
    }
    else {
      FUN_00032c40(&DAT_0004ce86,*(int *)(param_1 + 8));
    }
    if (*(int *)(param_1 + 0xc) != 0) {
      FUN_00032c40(")");
    }
    FUN_00032c40("(");
    for (piVar3 = *(int **)(param_1 + 0x10); piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) {
      switch(piVar3[3]) {
      default:
        iVar20 = 0;
        break;
      case 1:
        iVar20 = 1;
        FUN_00032c40("SORT_BY_NAME(");
        break;
      case 2:
        iVar20 = 1;
        FUN_00032c40("SORT_BY_ALIGNMENT(");
        break;
      case 3:
        iVar20 = 2;
        FUN_00032c40("SORT_BY_NAME(SORT_BY_ALIGNMENT(");
        break;
      case 4:
        iVar20 = 2;
        FUN_00032c40("SORT_BY_ALIGNMENT(SORT_BY_NAME(");
        break;
      case 5:
        FUN_00032c40("SORT_NONE(");
        iVar20 = 1;
        break;
      case 6:
        iVar20 = 1;
        FUN_00032c40("SORT_BY_INIT_PRIORITY(");
      }
      if ((undefined4 *)piVar3[2] != (undefined4 *)0x0) {
        uVar11 = *(undefined4 *)piVar3[2];
        FUN_00032c40("EXCLUDE_FILE(%s",uVar11);
        for (puVar4 = *(undefined4 **)(piVar3[2] + 4); puVar4 != (undefined4 *)0x0;
            puVar4 = (undefined4 *)puVar4[1]) {
          uVar11 = *puVar4;
          FUN_00032c40(&DAT_0004b5e3,uVar11);
        }
        FUN_00032c40(&UNK_0004cdbf,uVar11);
      }
      if (piVar3[1] == 0) {
        FUN_00032c40(&DAT_0004cff4);
      }
      else {
        FUN_00032c40(&DAT_0004ce86,piVar3[1]);
      }
      if ((iVar20 != 0) && (FUN_00032c40(")"), iVar20 != 1)) {
        FUN_00032c40(")");
      }
      if (*piVar3 == 0) break;
      FUN_00032c40(&UNK_0004cedd);
    }
    FUN_00032c40(")");
    FUN_00031cf0();
    for (puVar4 = *(undefined4 **)(param_1 + 0x18); puVar4 != (undefined4 *)0x0;
        puVar4 = (undefined4 *)*puVar4) {
      MASKED();
    }
    break;
  case 5:
    puVar4 = *(undefined4 **)(param_1 + 8);
    uStack_38 = puVar4[0xc];
    local_3c = puVar4[0xb];
    FUN_0001f3e0();
    FUN_00031cc0();
    FUN_00032c40(&DAT_0004ce86,*puVar4);
    sVar8 = strlen((char *)*puVar4);
    uVar18 = sVar8 + 1;
    if (0xe < uVar18) {
      FUN_00031cf0();
      uVar18 = 0;
    }
    do {
      FUN_00031cc0();
      uVar18 = uVar18 + 1;
    } while (uVar18 != 0x10);
    iVar20 = puVar4[0x15];
    if ((iVar20 == 0) || (*(int *)(iVar20 + 0xac) != DAT_00098c34)) {
      uStack_34 = DAT_00098838;
      uStack_30 = DAT_0009883c;
      local_3c = 0;
      uStack_38 = 0;
    }
    else {
      uStack_34 = *(uint *)(iVar20 + 0x1c) + puVar4[0x13];
      uStack_30 = *(int *)(iVar20 + 0x20) + puVar4[0x14] +
                  (uint)CARRY4(*(uint *)(iVar20 + 0x1c),puVar4[0x13]);
    }
    FUN_00032c40(&DAT_0004cd54,uStack_34,uStack_30,local_3c,uStack_38,puVar4[0x2b]);
    if ((local_3c != puVar4[0xd] || uStack_38 != puVar4[0xe]) &&
       (puVar4[0xd] != 0 || puVar4[0xe] != 0)) {
      iVar20 = 0x23;
      do {
        FUN_00031cc0();
        iVar20 = iVar20 + -1;
      } while (iVar20 != 0);
      uVar11 = puVar4[0xd];
      uVar10 = puVar4[0xe];
      uVar9 = dcgettext(0,"%W (size before relaxing)\n",5);
      FUN_00032c40(uVar9,uVar11,uVar10);
    }
    puVar19 = DAT_00098870;
    puVar14 = DAT_0009886c;
    if ((puVar4[0x15] != 0) && (*(int *)(puVar4[0x15] + 0xac) == DAT_00098c34)) {
      if ((DAT_00098c04 & 0x10) == 0) {
        puVar2 = (undefined4 *)puVar4[0x20];
        if (puVar2 != (undefined4 *)0x0) {
          *(undefined4 *)puVar2[1] = 0;
          sVar8 = puVar2[2];
          uVar18 = sVar8 * 4;
          uVar17 = (int)puVar19 - (int)puVar14;
          sStack_24 = sVar8;
          if (uVar17 <= uVar18 && uVar18 - uVar17 != 0) {
            _obstack_newchunk(&DAT_00098860,uVar18);
            sStack_24 = puVar2[2];
            puVar14 = DAT_0009886c;
            puVar19 = DAT_00098870;
          }
          __base = DAT_00098868;
          if (puVar14 + sVar8 == DAT_00098868) {
            DAT_00098888 = DAT_00098888 | 2;
          }
          DAT_0009886c = (undefined4 *)((int)(puVar14 + sVar8) + DAT_00098878 & ~DAT_00098878);
          if ((uint)((int)puVar19 - (int)DAT_00098864) <
              (uint)((int)DAT_0009886c - (int)DAT_00098864)) {
            DAT_0009886c = puVar19;
          }
          puVar14 = (undefined4 *)*puVar2;
          puVar7 = DAT_0009886c;
          puVar19 = DAT_00098868;
          while (DAT_00098868 = puVar7, puVar14 != (undefined4 *)0x0) {
            uVar11 = *puVar14;
            puVar14 = (undefined4 *)puVar14[1];
            *puVar19 = uVar11;
            puVar7 = DAT_00098868;
            puVar19 = puVar19 + 1;
          }
          qsort(__base,sStack_24,4,FUN_0001dec0);
          if (puVar2[2] != 0) {
            uVar18 = 0;
            do {
              puVar14 = __base + uVar18;
              uVar18 = uVar18 + 1;
              FUN_0001f350(*puVar14,puVar4);
            } while (uVar18 < (uint)puVar2[2]);
          }
          if ((DAT_00098864 < __base) && (__base < DAT_00098870)) {
            DAT_0009886c = __base;
            DAT_00098868 = __base;
          }
          else {
            _obstack_free(&DAT_00098860,__base);
          }
        }
      }
      else {
        bfd_link_hash_traverse(DAT_00098c20,FUN_0001f350,puVar4);
      }
      bVar13 = (byte)DAT_000987ec & 0x1f;
      uVar16 = uStack_38 >> ((byte)DAT_000987ec & 0x1f);
      uVar17 = uVar16;
      uVar18 = local_3c >> bVar13 | uStack_38 << 0x20 - bVar13;
      if ((DAT_000987ec & 0x20) != 0) {
        uVar17 = 0;
        uVar18 = uVar16;
      }
      uVar17 = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);
      if (DAT_0009883c < uVar17 || DAT_0009883c - uVar17 < (uint)(DAT_00098838 < uVar18 + uStack_34)
         ) {
        DAT_00098838 = uVar18 + uStack_34;
        DAT_0009883c = uVar17;
        return;
      }
    }
    return;
  case 6:
    FUN_00032c40(" CREATE_OBJECT_SYMBOLS\n");
    break;
  case 7:
    fwrite(" FILL mask 0x",1,0xd,DAT_00098d50);
    piVar3 = *(int **)(param_1 + 8);
    iVar20 = *piVar3;
    pbVar22 = (byte *)(piVar3 + 1);
    if (iVar20 != 0) {
      do {
        bVar13 = *pbVar22;
        pbVar22 = pbVar22 + 1;
        fprintf(DAT_00098d50,"%02x",(uint)bVar13);
      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));
    }
    fputc(10,DAT_00098d50);
    break;
  case 8:
    FUN_0001f3e0();
    iVar20 = 0x10;
    do {
      FUN_00031cc0();
      iVar20 = iVar20 + -1;
    } while (iVar20 != 0);
    uStack_34 = *(uint *)(param_1 + 0x1c);
    uStack_30 = *(int *)(param_1 + 0x20);
    iVar20 = *(int *)(param_1 + 0x18);
    if (iVar20 != 0) {
      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));
      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);
      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;
    }
    switch(*(undefined4 *)(param_1 + 8)) {
    case 0x11a:
      pcVar12 = "QUAD";
      uVar18 = 8;
      break;
    case 0x11b:
      pcVar12 = "SQUAD";
      uVar18 = 8;
      break;
    case 0x11c:
      pcVar12 = "LONG";
      uVar18 = 4;
      break;
    case 0x11d:
      pcVar12 = "SHORT";
      uVar18 = 2;
      break;
    case 0x11e:
      pcVar12 = "BYTE";
      uVar18 = 1;
      break;
    default:
                    /* WARNING: Subroutine does not return */
      FUN_00031d20("../../ld/ldlang.c",0x10c9,"print_data_statement",param_1);
    }
    bVar13 = (byte)DAT_000987ec;
    local_3c = 1 << (bVar13 & 0x1f);
    if (local_3c < uVar18) {
      local_3c = uVar18;
    }
    uVar16 = 0 >> (bVar13 & 0x1f);
    uVar17 = uVar16;
    uVar18 = local_3c >> (bVar13 & 0x1f) | 0 << 0x20 - (bVar13 & 0x1f);
    if ((DAT_000987ec & 0x20) != 0) {
      uVar17 = 0;
      uVar18 = uVar16;
    }
    FUN_00032c40("0x%V %W %s 0x%v",uStack_34,uStack_30,uVar18,uVar17,pcVar12,
                 *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));
    if (*(int *)(*(int *)(param_1 + 0xc) + 0xc) != 7) {
      FUN_00031cc0();
      FUN_00030c80(*(undefined4 *)(param_1 + 0xc));
    }
    FUN_00031cf0();
    bVar13 = (byte)DAT_000987ec & 0x1f;
    uVar16 = 0 >> ((byte)DAT_000987ec & 0x1f);
    uVar17 = uVar16;
    uVar18 = local_3c >> bVar13 | 0 << 0x20 - bVar13;
    if ((DAT_000987ec & 0x20) != 0) {
      uVar17 = 0;
      uVar18 = uVar16;
    }
    DAT_00098838 = uVar18 + uStack_34;
    DAT_0009883c = uVar17 + uStack_30 + (uint)CARRY4(uVar18,uStack_34);
    break;
  case 9:
    FUN_0001f3e0();
    iVar20 = 0x10;
    do {
      FUN_00031cc0();
      iVar20 = iVar20 + -1;
    } while (iVar20 != 0);
    local_3c = *(uint *)(param_1 + 0x28);
    uStack_38 = *(int *)(param_1 + 0x2c);
    iVar20 = *(int *)(param_1 + 0x24);
    if (iVar20 != 0) {
      bVar23 = CARRY4(local_3c,*(uint *)(iVar20 + 0x1c));
      local_3c = local_3c + *(uint *)(iVar20 + 0x1c);
      uStack_38 = uStack_38 + *(int *)(iVar20 + 0x20) + (uint)bVar23;
    }
    uVar16 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));
    bVar13 = (byte)DAT_000987ec & 0x1f;
    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);
    uVar17 = uVar15;
    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;
    if ((DAT_000987ec & 0x20) != 0) {
      uVar17 = 0;
      uVar18 = uVar15;
    }
    FUN_00032c40("0x%V %W RELOC %s ",local_3c,uStack_38,uVar18,uVar17,
                 *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x20));
    if (*(int *)(param_1 + 0x14) == 0) {
      FUN_00032c40(&UNK_0004ce70,**(undefined4 **)(param_1 + 0x10));
    }
    else {
      FUN_00032c40(&UNK_0004ce70,*(int *)(param_1 + 0x14));
    }
    FUN_00030c80(*(undefined4 *)(param_1 + 0x18));
    FUN_00031cf0();
    bVar13 = (byte)DAT_000987ec & 0x1f;
    uVar15 = 0 >> ((byte)DAT_000987ec & 0x1f);
    uVar17 = uVar15;
    uVar18 = uVar16 >> bVar13 | 0 << 0x20 - bVar13;
    if ((DAT_000987ec & 0x20) != 0) {
      uVar17 = 0;
      uVar18 = uVar15;
    }
    DAT_00098838 = uVar18 + local_3c;
    DAT_0009883c = uVar17 + uStack_38 + (uint)CARRY4(uVar18,local_3c);
    break;
  case 10:
    iVar20 = *(int *)(param_1 + 8);
    pcVar12 = "TARGET(%s)\n";
code_r0x0001fc3c:
    fprintf(DAT_00098d50,pcVar12,iVar20);
    break;
  case 0xb:
    iVar20 = *(int *)(param_1 + 8);
    FUN_00032c40("OUTPUT(%s",iVar20);
    if (DAT_00098bbc != 0) {
      iVar20 = DAT_00098bbc;
      FUN_00032c40(&DAT_0004b5e3,DAT_00098bbc);
    }
    FUN_00032c40(")\n",iVar20);
    break;
  case 0xc:
    FUN_0001f3e0();
    FUN_00032c40(&UNK_0004ce74);
    iVar20 = 9;
    do {
      FUN_00031cc0();
      iVar20 = iVar20 + -1;
    } while (iVar20 != 0);
    uStack_34 = *(uint *)(param_1 + 8);
    uStack_30 = *(int *)(param_1 + 0xc);
    iVar20 = *(int *)(param_1 + 0x18);
    if (iVar20 != 0) {
      bVar23 = CARRY4(uStack_34,*(uint *)(iVar20 + 0x1c));
      uStack_34 = uStack_34 + *(uint *)(iVar20 + 0x1c);
      uStack_30 = uStack_30 + *(int *)(iVar20 + 0x20) + (uint)bVar23;
    }
    bVar13 = (byte)DAT_000987ec & 0x1f;
    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);
    uVar17 = uVar16;
    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;
    if ((DAT_000987ec & 0x20) != 0) {
      uVar17 = 0;
      uVar18 = uVar16;
    }
    FUN_00032c40(&UNK_0004ce7c,uStack_34,uStack_30,uVar18,uVar17);
    piVar3 = *(int **)(param_1 + 0x1c);
    iVar20 = *piVar3;
    if (iVar20 != 0) {
      pbVar22 = (byte *)(piVar3 + 1);
      do {
        bVar13 = *pbVar22;
        pbVar22 = pbVar22 + 1;
        fprintf(DAT_00098d50,"%02x",(uint)bVar13);
      } while (pbVar22 != (byte *)((int)piVar3 + iVar20 + 4));
    }
    FUN_00031cf0();
    bVar13 = (byte)DAT_000987ec & 0x1f;
    uVar16 = *(uint *)(param_1 + 0x14) >> ((byte)DAT_000987ec & 0x1f);
    uVar17 = uVar16;
    uVar18 = *(uint *)(param_1 + 0x10) >> bVar13 | *(uint *)(param_1 + 0x14) << 0x20 - bVar13;
    if ((DAT_000987ec & 0x20) != 0) {
      uVar17 = 0;
      uVar18 = uVar16;
    }
    DAT_00098838 = uStack_34 + uVar18;
    DAT_0009883c = uStack_30 + uVar17 + (uint)CARRY4(uStack_34,uVar18);
    break;
  case 0xd:
    fwrite("START GROUP\n",1,0xc,DAT_00098d50);
    for (puVar4 = *(undefined4 **)(param_1 + 8); puVar4 != (undefined4 *)0x0;
        puVar4 = (undefined4 *)*puVar4) {
      MASKED();
    }
    fwrite("END GROUP\n",1,10,DAT_00098d50);
    break;
  case 0xe:
    pcVar12 = "BEFORE";
    if (*(int *)(param_1 + 0xc) == 0) {
      pcVar12 = "AFTER";
    }
    FUN_00032c40("INSERT %s %s\n",pcVar12,*(undefined4 *)(param_1 + 8));
    break;
  case 0xf:
    if (DAT_00098bcc != (undefined4 *)0x0) {
      if (DAT_00098bd4 == 0) {
        FUN_00032c40(" CONSTRUCTORS\n");
        puVar4 = DAT_00098bcc;
      }
      else {
        FUN_00032c40(" SORT (CONSTRUCTORS)\n");
        puVar4 = DAT_00098bcc;
      }
      for (; puVar4 != (undefined4 *)0x0; puVar4 = (undefined4 *)*puVar4) {
        MASKED();
      }
    }
    break;
  default:
    pcVar12 = (char *)dcgettext(0,"Fail with %d\n",5);
    fprintf(DAT_00098d50,pcVar12,uVar11);
    FUN_00032c00("../../ld/ldlang.c",0x11bc);
  }
  return;
}

