
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

bfd_vma __regparm3
lang_size_sections_1
          (lang_statement_union_type **prev,
          lang_output_section_statement_type *output_section_statement,fill_type *fill,bfd_vma dot,
          bfd_boolean *relax,bfd_boolean check_regions)

{
  flagword *pfVar1;
  bfd_section *pbVar2;
  bfd *pbVar3;
  etree_type *tree;
  lang_memory_region_type *plVar4;
  uint uVar5;
  lang_statement_union *plVar6;
  undefined *puVar7;
  lang_statement_union *plVar8;
  asection *current_section;
  int iVar9;
  uint uVar10;
  uint uVar11;
  bfd_boolean bVar12;
  lang_statement_list_type *prev_00;
  char *pcVar13;
  bfd_vma bVar14;
  char *pcVar15;
  etree_union *peVar16;
  lang_memory_region_type *plVar17;
  asection *paVar18;
  byte bVar19;
  statement_enum sVar20;
  asection *paVar21;
  undefined **extraout_ECX;
  byte *pbVar22;
  byte *pbVar23;
  bool bVar24;
  bool bVar25;
  byte bVar26;
  undefined **ppuVar27;
  lang_statement_union *local_54;
  statement_enum local_4c;
  fill_type *local_48;
  uint local_3c;
  bfd_vma local_34;
  bfd_boolean again;
  undefined4 uStack_14;
  
  bVar26 = 0;
  uStack_14 = 0x21aa9;
  current_section = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);
  plVar6 = *prev;
  local_48 = fill;
joined_r0x00021ad5:
  local_54 = plVar6;
  if (local_54 == (lang_statement_union *)0x0) {
    return dot;
  }
  local_4c = (local_54->wild_statement).header.type;
  switch(local_4c) {
  case lang_output_section_statement_enum:
    if ((local_54->output_section_statement).constraint != -1) {
      peVar16 = (local_54->output_section_statement).addr_tree;
      if (peVar16 == (etree_union *)0x0) {
        if (((link_info._0_1_ & 3) == 2) &&
           ((link_info.output_bfd)->xvec->flavour == bfd_target_coff_flavour)) {
          peVar16 = exp_intop(0);
          (local_54->output_section_statement).addr_tree = peVar16;
          if (peVar16 != (etree_type *)0x0) goto LAB_00021dcc;
        }
      }
      else {
LAB_00021dcc:
        *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) & 0xfe;
        exp_fold_tree(peVar16,(asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&dot);
        if (expld.result.valid_p == 0) {
          if (expld.phase != lang_mark_phase_enum) {
            pcVar15 = *(char **)&(local_54->wild_statement).children;
            peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];
            pcVar13 = (char *)dcgettext(0,
                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"
                                        ,5);
            einfo(pcVar13,peVar16,pcVar15);
          }
        }
        else {
          dot = expld.result.value;
          if (expld.result.section != (asection *)0x0) {
            dot = expld.result.value + (expld.result.section)->vma;
          }
        }
      }
      bVar14 = dot;
      puVar7 = PTR__bfd_std_section_000bafc4;
      paVar21 = (local_54->output_section_statement).bfd_section;
      if (paVar21 != (asection *)0x0) {
        if (((link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour < 2) &&
           (uVar10 = paVar21->flags, (uVar10 & 0x4000000) != 0)) {
          paVar18 = (local_54->input_section).section;
          if (((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)) || (paVar18->id != 5)
             ) {
            plVar6 = (local_54->wild_statement).children.head;
            pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"
                                        ,5);
            einfo(pcVar15,plVar6);
            paVar21 = (local_54->output_section_statement).bfd_section;
            paVar18 = (local_54->input_section).section;
            uVar10 = paVar21->flags;
          }
          uVar11 = paVar18->index;
          bVar14 = *(bfd_vma *)(uVar11 + 0x1c);
          paVar21->field_0x18 = paVar21->field_0x18 | 1;
          paVar21->lma = bVar14;
          paVar21->vma = bVar14;
          if ((uVar10 & 0x800) == 0) {
            paVar21->size = *(bfd_size_type *)(uVar11 + 0x24);
          }
        }
        else {
          if (paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)) {
            local_3c = 0;
            sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);
            if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=
                lang_output_section_statement_enum) {
              info_assert("../../ld/ldlang.c",0x13e5);
              sVar20 = local_4c;
            }
          }
          else {
            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {
              paVar18 = (local_54->reloc_statement).output_section;
              uVar10 = paVar21->flags;
              if (paVar18 == (asection *)0x0) {
LAB_00022925:
                paVar18 = (asection *)lang_memory_region_list;
                if ((uVar10 & 0x19) == 1) {
                  uVar10 = uVar10 | 0x20;
                }
                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {
                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))
                  goto LAB_00022989;
                }
                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);
                paVar21 = (local_54->output_section_statement).bfd_section;
LAB_00022989:
                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;
              }
              else if ((uVar10 & 3) != 0) {
                bVar19 = *paVar18->name;
                bVar24 = bVar19 < 0x2a;
                bVar25 = bVar19 == 0x2a;
                if (bVar25) {
                  iVar9 = 10;
                  pbVar22 = (byte *)paVar18->name;
                  pbVar23 = (byte *)"*default*";
                  do {
                    if (iVar9 == 0) break;
                    iVar9 = iVar9 + -1;
                    bVar24 = *pbVar22 < *pbVar23;
                    bVar25 = *pbVar22 == *pbVar23;
                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;
                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;
                  } while (bVar25);
                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;
                }
              }
              plVar17 = lang_memory_region_list;
              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&
                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {
                bVar24 = false;
                bVar25 = check_regions == 0;
                if (!bVar25) {
                  iVar9 = 10;
                  pbVar22 = (byte *)paVar18->name;
                  pbVar23 = (byte *)"*default*";
                  do {
                    if (iVar9 == 0) break;
                    iVar9 = iVar9 + -1;
                    bVar24 = *pbVar22 < *pbVar23;
                    bVar25 = *pbVar22 == *pbVar23;
                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;
                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;
                  } while (bVar25);
                  if (((((!bVar24 && !bVar25) == bVar24) &&
                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&
                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),
                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&
                     (expld.phase != lang_mark_phase_enum)) {
                    pcVar15 = paVar21->name;
                    if (command_line.check_section_addresses == '\0') {
                      pcVar13 = 
                      "%P: warning: no memory region specified for loadable section `%s\'\n";
                      ppuVar27 = extraout_ECX;
                    }
                    else {
                      pcVar13 = 
                      "%F%P: error: no memory region specified for loadable section `%s\'\n";
                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;
                    }
                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);
                    einfo(pcVar13,pcVar15);
                    paVar18 = (local_54->reloc_statement).output_section;
                    paVar21 = (local_54->output_section_statement).bfd_section;
                  }
                }
              }
              local_3c = paVar21->alignment_power;
              bVar14 = paVar18->vma;
            }
            else {
              local_3c = (local_54->output_section_statement).section_alignment;
            }
            sVar20 = local_4c;
            if (0 < (int)local_3c) {
              iVar9 = 1 << ((byte)local_3c & 0x1f);
              uVar10 = -iVar9 & iVar9 + -1 + bVar14;
              sVar20 = uVar10 - bVar14;
              bVar14 = uVar10;
              if (((sVar20 != lang_output_section_statement_enum) &&
                  ((config.warn_section_align != 0 ||
                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)
                   ))) && (expld.phase != lang_mark_phase_enum)) {
                pcVar15 = *(char **)&(local_54->wild_statement).children;
                pcVar13 = (char *)dcngettext(0,
                                             "%P: warning: changing start of section %s by %lu byte\n"
                                             ,
                                             "%P: warning: changing start of section %s by %lu bytes\n"
                                             ,sVar20,5);
                einfo(pcVar13,pcVar15,sVar20);
                paVar21 = (local_54->output_section_statement).bfd_section;
              }
            }
            paVar21->field_0x18 = paVar21->field_0x18 | 1;
            paVar21->lma = bVar14;
            paVar21->vma = bVar14;
            paVar21->output_offset = 0;
          }
          lang_size_sections_1
                    ((lang_statement_union_type **)&(local_54->assignment_statement).exp,
                     &local_54->output_section_statement,(local_54->output_section_statement).fill,
                     bVar14,relax,check_regions);
          bVar19 = *(byte *)((int)local_54 + 0x54);
          *(byte *)((int)local_54 + 0x54) = bVar19 | 1;
          paVar21 = (local_54->output_section_statement).bfd_section;
          if (paVar21 == (asection *)(puVar7 + 0x150)) {
            uVar10 = *(uint *)(puVar7 + 0x174);
LAB_000223fa:
            if (uVar10 != 0) {
              info_assert("../../ld/ldlang.c",0x1443);
            }
          }
          else {
            uVar10 = paVar21->size;
            if ((bVar19 & 8) != 0) goto LAB_000223fa;
            dot = paVar21->vma;
            if ((paVar21->flags & 0x800) == 0) {
              paVar21->size =
                   ((int)(local_54->wild_statement).section_flag_list +
                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &
                   -(local_54->output_section_statement).block_value) - dot <<
                   ((byte)opb_shift & 0x1f);
            }
          }
          plVar17 = (lang_memory_region_type *)(local_54->reloc_statement).output_section;
          if (plVar17 == (lang_memory_region_type *)0x0) {
            plVar17 = lang_memory_region_lookup("*default*",0);
          }
          if ((local_54->output_section_statement).load_base == (etree_type *)0x0) {
            paVar21 = (local_54->output_section_statement).bfd_section;
            plVar4 = (local_54->output_section_statement).lma_region;
            uVar10 = paVar21->flags;
            uVar11 = uVar10 & 1;
            if (plVar4 != (lang_memory_region_type *)0x0) {
              local_34 = plVar4->current;
              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {
                if (plVar4 != (lang_memory_region_type *)
                              (local_54->wild_statement).exclude_name_list) {
                  local_3c = (local_54->output_section_statement).section_alignment;
                }
                if (0 < (int)local_3c) {
                  iVar9 = 1 << ((byte)local_3c & 0x1f);
                  local_34 = -iVar9 & iVar9 + -1 + local_34;
                }
              }
              else {
                local_34 = local_34 + sVar20;
              }
              paVar21->lma = local_34;
              goto LAB_00022015;
            }
            if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;
            if (uVar11 != 0) {
              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;
              uVar11 = paVar18->vma;
              uVar5 = paVar18->lma;
              if (((dot < uVar11) && (paVar21->size != 0)) &&
                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {
                if (uVar11 != uVar5) {
                  plVar6 = (local_54->wild_statement).children.head;
                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,
                                              local_54);
                  einfo(pcVar15,plVar6);
                  paVar21 = (local_54->output_section_statement).bfd_section;
                  goto LAB_00022008;
                }
              }
              else {
                uVar11 = (uVar5 + dot) - uVar11;
                if ((local_54->output_section_statement).sectype == overlay_section) {
                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;
                }
                if (0 < (int)local_3c) {
                  iVar9 = 1 << ((byte)local_3c & 0x1f);
                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;
                }
                paVar21->lma = uVar11;
              }
              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;
              goto LAB_00022020;
            }
            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;
          }
          else {
            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");
            paVar21 = (local_54->output_section_statement).bfd_section;
            paVar21->lma = bVar14;
LAB_00022008:
            uVar10 = paVar21->flags;
            uVar11 = uVar10 & 1;
LAB_00022015:
            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;
            if (uVar11 != 0) {
LAB_00022020:
              if ((uVar10 & 0x402) != 0x400) {
                if (paVar21->size == 0) {
                  if (plVar17->last_os == (lang_statement_union *)0x0) {
                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;
                  }
                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)
                  goto LAB_000223c5;
                }
                else {
LAB_000223c5:
                  if (((local_54->wild_statement).walk_wild_section_handler ==
                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {
                    plVar17->last_os = local_54;
                  }
                }
              }
            }
          }
          if ((paVar21 != (asection *)(puVar7 + 0x150)) &&
             ((*(byte *)((int)local_54 + 0x54) & 8) == 0)) {
            if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {
              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);
            }
            dot = dot + local_4c;
            if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {
              exp_fold_tree((local_54->output_section_statement).update_dot_tree,
                            (asection *)(puVar7 + 0x150),&dot);
            }
            plVar17 = (local_54->output_section_statement).region;
            if ((plVar17 != (lang_memory_region_type *)0x0) &&
               (paVar21 = (local_54->output_section_statement).bfd_section,
               (paVar21->flags & 3) != 0)) {
              plVar17->current = dot;
              if (check_regions != 0) {
                os_region_check((lang_output_section_statement_type *)
                                &(local_54->wild_statement).children.tail,plVar17,
                                (local_54->output_section_statement).addr_tree,paVar21->vma);
              }
              plVar17 = (local_54->output_section_statement).lma_region;
              if (((plVar17 != (lang_memory_region_type *)0x0) &&
                  (plVar17 !=
                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&
                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||
                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {
                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;
                plVar17->current = local_4c + bVar14;
                if (check_regions != 0) {
                  os_region_check((lang_output_section_statement_type *)
                                  &(local_54->wild_statement).children.tail,plVar17,
                                  (etree_type *)0x0,bVar14);
                }
              }
            }
          }
        }
      }
    }
    break;
  case lang_assignment_statement_enum:
    tree = (etree_type *)(local_54->input_section).section;
    expld.dataseg.relro = exp_seg_relro_none;
    again = dot;
    exp_fold_tree(tree,output_section_statement->bfd_section,(bfd_vma *)&again);
    plVar6 = expld.dataseg.relro_start_stat;
    plVar8 = expld.dataseg.relro_end_stat;
    if (expld.dataseg.relro == exp_seg_relro_start) {
      plVar6 = local_54;
      if ((expld.dataseg.relro_start_stat != (lang_statement_union *)0x0) &&
         (plVar6 = expld.dataseg.relro_start_stat, expld.dataseg.relro_start_stat != local_54)) {
        uVar10 = 0x137c;
        goto LAB_000222ec;
      }
    }
    else if (((expld.dataseg.relro == exp_seg_relro_end) &&
             (plVar8 = local_54, expld.dataseg.relro_end_stat != (lang_statement_union *)0x0)) &&
            (plVar8 = expld.dataseg.relro_end_stat, expld.dataseg.relro_end_stat != local_54)) {
      uVar10 = 0x1385;
LAB_000222ec:
      info_assert("../../ld/ldlang.c",uVar10);
      plVar6 = expld.dataseg.relro_start_stat;
      plVar8 = expld.dataseg.relro_end_stat;
    }
    expld.dataseg.relro_end_stat = plVar8;
    expld.dataseg.relro_start_stat = plVar6;
    expld.dataseg.relro = exp_seg_relro_none;
    if ((((tree->type).node_class & ~etree_unary) == etree_assign) &&
       ((*(tree->assign).dst != '.' || ((tree->assign).dst[1] != '\0')))) {
      output_section_statement->field_0x54 = output_section_statement->field_0x54 | 0x10;
    }
    if ((output_section_statement->field_0x54 & 8) == 0) {
      if (abs_output_section == output_section_statement) {
        plVar17 = lang_memory_region_lookup("*default*",0);
        plVar17->current = again;
        dot = again;
      }
      else if (again != dot) {
        insert_pad((lang_statement_union_type **)local_54,local_48,
                   again - dot << ((byte)opb_shift & 0x1f),output_section_statement->bfd_section,dot
                  );
        local_54 = (local_54->header).next;
        dot = again;
        if ((output_section_statement->sectype != noalloc_section) &&
           ((output_section_statement->sectype != noload_section ||
            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)))) {
          pfVar1 = &output_section_statement->bfd_section->flags;
          *pfVar1 = *pfVar1 | 1;
        }
      }
    }
    break;
  case lang_input_statement_enum:
  case lang_address_statement_enum:
  case lang_target_statement_enum:
  case lang_output_statement_enum:
  case lang_insert_statement_enum:
    goto _L1363;
  case lang_wild_statement_enum:
    prev_00 = (lang_statement_list_type *)&(local_54->reloc_statement).addend_exp;
    goto LAB_00021d85;
  case lang_input_section_enum:
    if (relax != (bfd_boolean *)0x0) {
      pbVar2 = (bfd_section *)((lang_statement_list_type *)&(local_54->input_section).section)->head
      ;
      pbVar3 = pbVar2->owner;
      bVar12 = (*pbVar3->xvec->_bfd_relax_section)
                         (pbVar3,pbVar2,(bfd_link_info *)PTR_link_info_000bafb8,&again);
      if (bVar12 == 0) {
        pcVar15 = (char *)dcgettext(0,"%F%P: can\'t relax section: %E\n",5);
        einfo(pcVar15);
      }
      if (again != 0) {
        *relax = 1;
      }
    }
    paVar21 = output_section_statement->bfd_section;
    paVar18 = (((lang_statement_header_type *)prev)->next->input_section).section;
    if ((*(ushort *)&paVar18->field_0x18 & 0x380) == 0x200) {
      paVar18->output_offset = paVar18->vma - paVar21->vma;
    }
    else if (((paVar18->flags & 0x8000) == 0) && ((output_section_statement->field_0x54 & 8) == 0))
    {
      uVar10 = output_section_statement->subsection_alignment;
      if (uVar10 == 0xffffffff) {
        uVar10 = paVar18->alignment_power;
      }
      else {
        paVar18->alignment_power = uVar10;
      }
      if (paVar21->alignment_power < uVar10) {
        paVar21->alignment_power = uVar10;
        uVar10 = paVar18->alignment_power;
      }
      iVar9 = 1 << ((byte)uVar10 & 0x1f);
      uVar10 = (dot - 1) + iVar9 & -iVar9;
      iVar9 = uVar10 - dot;
      if (iVar9 != 0) {
        local_4c._0_1_ = (undefined1)opb_shift;
        insert_pad(prev,local_48,iVar9 << ((undefined1)local_4c & 0x1f),paVar21,dot);
        dot = uVar10;
      }
      uVar10 = opb_shift;
      bVar14 = paVar21->vma;
      paVar18->output_offset = dot - bVar14;
      dot = dot + (paVar18->size >> ((byte)uVar10 & 0x1f));
      if ((paVar21->flags & 0x800) == 0) {
        paVar21->size = dot - bVar14 << ((byte)uVar10 & 0x1f);
      }
    }
    else {
      paVar18->output_offset = dot - paVar21->vma;
    }
    break;
  case lang_object_symbols_statement_enum:
    link_info.create_object_symbols_section = output_section_statement->bfd_section;
    goto _L1363;
  case lang_fill_statement_enum:
    (local_54->wild_statement).section_list = (wildcard_list *)output_section_statement->bfd_section
    ;
    local_48 = (fill_type *)((lang_statement_list_type *)&(local_54->fill_statement).fill)->head;
    break;
  case lang_data_statement_enum:
    *(char **)&(local_54->wild_statement).children =
         (char *)(dot - output_section_statement->bfd_section->vma);
    (local_54->wild_statement).keep_sections = (bfd_boolean)output_section_statement->bfd_section;
    exp_fold_tree((local_54->data_statement).exp,current_section,&dot);
    uVar10 = (int)((lang_statement_list_type *)&(local_54->data_statement).type)->head - 0x11a;
    if (4 < uVar10) {
                    /* WARNING: Subroutine does not return */
      ld_abort("../../ld/ldlang.c",0x14f8,"lang_size_sections_1");
    }
    bVar19 = (byte)opb_shift;
    uVar11 = 1 << (bVar19 & 0x1f);
    if (uVar11 < *(uint *)(CSWTCH_329 + uVar10 * 4)) {
      uVar11 = *(uint *)(CSWTCH_329 + uVar10 * 4);
    }
    paVar21 = output_section_statement->bfd_section;
    dot = (uVar11 >> (bVar19 & 0x1f)) + dot;
    if ((paVar21->flags & 0x800) == 0) {
      paVar21->size = dot - paVar21->vma << (bVar19 & 0x1f);
    }
    break;
  case lang_reloc_statement_enum:
    (local_54->wild_statement).walk_wild_section_handler =
         (walk_wild_section_handler_t)(dot - output_section_statement->bfd_section->vma);
    (local_54->wild_statement).exclude_name_list =
         (name_list *)output_section_statement->bfd_section;
    iVar9 = bfd_get_reloc_size((lang_statement_union **)(local_54->wild_statement).filenames_sorted)
    ;
    paVar21 = output_section_statement->bfd_section;
    dot = (iVar9 >> ((byte)opb_shift & 0x1f)) + dot;
    if ((paVar21->flags & 0x800) == 0) {
      paVar21->size = dot - paVar21->vma << ((byte)opb_shift & 0x1f);
    }
    break;
  case lang_padding_statement_enum:
    (local_54->wild_statement).filenames_sorted = 0;
    (local_54->wild_statement).filename = (char *)(dot - output_section_statement->bfd_section->vma)
    ;
    break;
  case lang_group_statement_enum:
    prev_00 = (lang_statement_list_type *)&(local_54->assignment_statement).exp;
    goto LAB_00021d85;
  case lang_constructors_statement_enum:
    prev_00 = &constructor_list;
LAB_00021d85:
    dot = lang_size_sections_1
                    (&prev_00->head,output_section_statement,local_48,dot,relax,check_regions);
    break;
  default:
    info_assert("../../ld/ldlang.c",0x15a7);
  }
LAB_00021b28:
  plVar6 = (local_54->header).next;
  prev = (lang_statement_union_type **)local_54;
  goto joined_r0x00021ad5;
_L1363:
  goto LAB_00021b28;
}



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

uint __regparm2 FUN_00021aa0(int *param_1,int param_2,uint param_3,undefined4 *param_4,int param_5)

{
  uint *puVar1;
  undefined *puVar2;
  undefined4 *puVar3;
  int *piVar4;
  undefined *puVar5;
  int iVar6;
  uint uVar7;
  int iVar8;
  undefined4 uVar9;
  char *pcVar10;
  undefined4 uVar11;
  undefined4 *puVar12;
  byte bVar13;
  undefined4 extraout_ECX;
  uint uVar14;
  undefined4 *puVar15;
  undefined **extraout_ECX_00;
  int iVar16;
  undefined *puVar17;
  int *piVar18;
  uint uVar19;
  byte *pbVar20;
  byte *pbVar21;
  bool bVar22;
  bool bVar23;
  byte bVar24;
  undefined **ppuVar25;
  int *local_54;
  uint local_4c;
  int iStack_3c;
  uint uStack_34;
  uint auStack_20 [3];
  undefined4 uStack_14;
  
  bVar24 = 0;
  uStack_14 = 0x21aa9;
  puVar5 = PTR__bfd_std_section_000bafc4 + 0x150;
  piVar18 = (int *)*param_1;
joined_r0x00021ad5:
  local_54 = piVar18;
  if (local_54 == (int *)0x0) {
    return param_3;
  }
  local_4c = local_54[1];
  switch(local_4c) {
  case 0:
    if (local_54[0x12] != -1) {
      iVar8 = local_54[0xb];
      if (iVar8 == 0) {
        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {
          iVar8 = FUN_0002f390(0);
          local_54[0xb] = iVar8;
          if (iVar8 != 0) goto code_r0x00021dcc;
        }
      }
      else {
code_r0x00021dcc:
        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;
        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);
        if (DAT_000bbfa0 == 0) {
          if (DAT_000bbf80 != 1) {
            iVar8 = local_54[6];
            iVar6 = local_54[0xb];
            uVar9 = dcgettext(0,
                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"
                              ,5);
            FUN_00031730(uVar9,iVar6,iVar8);
          }
        }
        else {
          param_3 = DAT_000bbf94;
          if (DAT_000bbf9c != 0) {
            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);
          }
        }
      }
      uVar7 = param_3;
      puVar2 = PTR__bfd_std_section_000bafc4;
      puVar15 = (undefined4 *)local_54[7];
      if (puVar15 != (undefined4 *)0x0) {
        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&
           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {
          piVar18 = (int *)local_54[2];
          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {
            iVar8 = local_54[6];
            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);
            FUN_00031730(uVar9,iVar8);
            puVar15 = (undefined4 *)local_54[7];
            piVar18 = (int *)local_54[2];
            uVar14 = puVar15[5];
          }
          iVar8 = piVar18[2];
          uVar9 = *(undefined4 *)(iVar8 + 0x1c);
          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;
          puVar15[8] = uVar9;
          puVar15[7] = uVar9;
          if ((uVar14 & 0x800) == 0) {
            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);
          }
        }
        else {
          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {
            iStack_3c = 0;
            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);
            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {
              FUN_00031780("../../ld/ldlang.c",0x13e5);
              uVar14 = local_4c;
            }
          }
          else {
            if (local_54[0xb] == 0) {
              puVar12 = (undefined4 *)local_54[8];
              uVar7 = puVar15[5];
              if (puVar12 == (undefined4 *)0x0) {
code_r0x00022925:
                puVar12 = DAT_000bb92c;
                if ((uVar7 & 0x19) == 1) {
                  uVar7 = uVar7 | 0x20;
                }
                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {
                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))
                  goto code_r0x00022989;
                }
                puVar12 = (undefined4 *)FUN_00021940("*default*",0);
                puVar15 = (undefined4 *)local_54[7];
code_r0x00022989:
                local_54[8] = (int)puVar12;
              }
              else if ((uVar7 & 3) != 0) {
                bVar13 = *(byte *)*puVar12;
                bVar22 = bVar13 < 0x2a;
                bVar23 = bVar13 == 0x2a;
                if (bVar23) {
                  iVar8 = 10;
                  pbVar20 = (byte *)*puVar12;
                  pbVar21 = (byte *)"*default*";
                  do {
                    if (iVar8 == 0) break;
                    iVar8 = iVar8 + -1;
                    bVar22 = *pbVar20 < *pbVar21;
                    bVar23 = *pbVar20 == *pbVar21;
                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;
                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;
                  } while (bVar23);
                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;
                }
              }
              puVar3 = DAT_000bb92c;
              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&
                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {
                bVar22 = false;
                bVar23 = param_5 == 0;
                if (!bVar23) {
                  iVar8 = 10;
                  pbVar20 = (byte *)*puVar12;
                  pbVar21 = (byte *)"*default*";
                  do {
                    if (iVar8 == 0) break;
                    iVar8 = iVar8 + -1;
                    bVar22 = *pbVar20 < *pbVar21;
                    bVar23 = *pbVar20 == *pbVar21;
                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;
                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;
                  } while (bVar23);
                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&
                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||
                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {
                    uVar9 = *puVar15;
                    if (DAT_000bbeb8 == '\0') {
                      pcVar10 = 
                      "%P: warning: no memory region specified for loadable section `%s\'\n";
                      ppuVar25 = extraout_ECX_00;
                    }
                    else {
                      pcVar10 = 
                      "%F%P: error: no memory region specified for loadable section `%s\'\n";
                      ppuVar25 = &__DT_PLTGOT;
                    }
                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);
                    FUN_00031730(uVar11,uVar9);
                    puVar12 = (undefined4 *)local_54[8];
                    puVar15 = (undefined4 *)local_54[7];
                  }
                }
              }
              iStack_3c = puVar15[0x10];
              uVar7 = puVar12[7];
            }
            else {
              iStack_3c = local_54[0x11];
            }
            uVar14 = local_4c;
            if (0 < iStack_3c) {
              iVar8 = 1 << ((byte)iStack_3c & 0x1f);
              uVar19 = -iVar8 & iVar8 + -1 + uVar7;
              uVar14 = uVar19 - uVar7;
              uVar7 = uVar19;
              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&
                 (DAT_000bbf80 != 1)) {
                iVar8 = local_54[6];
                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",
                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14
                                   ,5);
                FUN_00031730(uVar9,iVar8,uVar14);
                puVar15 = (undefined4 *)local_54[7];
              }
            }
            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;
            puVar15[8] = uVar7;
            puVar15[7] = uVar7;
            puVar15[0xe] = 0;
          }
          FUN_00021aa0(uVar7,param_4,param_5);
          bVar13 = *(byte *)(local_54 + 0x15);
          *(byte *)(local_54 + 0x15) = bVar13 | 1;
          puVar17 = (undefined *)local_54[7];
          if (puVar17 == puVar2 + 0x150) {
            uVar7 = *(uint *)(puVar2 + 0x174);
code_r0x000223fa:
            if (uVar7 != 0) {
              FUN_00031780("../../ld/ldlang.c",0x1443);
            }
          }
          else {
            uVar7 = *(uint *)(puVar17 + 0x24);
            if ((bVar13 & 8) != 0) goto code_r0x000223fa;
            param_3 = *(uint *)(puVar17 + 0x1c);
            if ((puVar17[0x15] & 8) == 0) {
              *(uint *)(puVar17 + 0x24) =
                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &
                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);
            }
          }
          iVar8 = local_54[8];
          if (iVar8 == 0) {
            iVar8 = FUN_00021940("*default*",0);
          }
          if (local_54[0xc] == 0) {
            puVar17 = (undefined *)local_54[7];
            iVar6 = local_54[9];
            uVar7 = *(uint *)(puVar17 + 0x14);
            uVar19 = uVar7 & 1;
            if (iVar6 != 0) {
              uStack_34 = *(uint *)(iVar6 + 0x1c);
              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {
                if (iVar6 != local_54[8]) {
                  iStack_3c = local_54[0x11];
                }
                if (0 < iStack_3c) {
                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);
                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;
                }
              }
              else {
                uStack_34 = uStack_34 + uVar14;
              }
              *(uint *)(puVar17 + 0x20) = uStack_34;
              goto code_r0x00022015;
            }
            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;
            if (uVar19 != 0) {
              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);
              uVar14 = *(uint *)(iVar6 + 0x1c);
              uVar19 = *(uint *)(iVar6 + 0x20);
              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&
                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {
                if (uVar14 != uVar19) {
                  iVar6 = local_54[6];
                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);
                  FUN_00031730(uVar9,iVar6);
                  puVar17 = (undefined *)local_54[7];
                  goto code_r0x00022008;
                }
              }
              else {
                uVar14 = (uVar19 + param_3) - uVar14;
                if (local_54[0x14] == 1) {
                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;
                }
                if (0 < iStack_3c) {
                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);
                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;
                }
                *(uint *)(puVar17 + 0x20) = uVar14;
              }
              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;
              goto code_r0x00022020;
            }
            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;
          }
          else {
            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");
            puVar17 = (undefined *)local_54[7];
            *(undefined4 *)(puVar17 + 0x20) = uVar9;
code_r0x00022008:
            uVar7 = *(uint *)(puVar17 + 0x14);
            uVar19 = uVar7 & 1;
code_r0x00022015:
            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;
            if (uVar19 != 0) {
code_r0x00022020:
              if ((uVar7 & 0x402) != 0x400) {
                if (*(int *)(puVar17 + 0x24) == 0) {
                  if (*(int *)(iVar8 + 0x20) == 0) {
                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;
                  }
                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)
                  goto code_r0x000223c5;
                }
                else {
code_r0x000223c5:
                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {
                    *(int **)(iVar8 + 0x20) = local_54;
                  }
                }
              }
            }
          }
          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {
            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {
              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);
            }
            param_3 = param_3 + local_4c;
            if (local_54[0xd] != 0) {
              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);
            }
            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {
              *(uint *)(local_54[8] + 0x1c) = param_3;
              if (param_5 != 0) {
                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));
              }
              iVar8 = local_54[9];
              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&
                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||
                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {
                iVar6 = *(int *)(local_54[7] + 0x20);
                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;
                if (param_5 != 0) {
                  FUN_0001f080(iVar6);
                }
              }
            }
          }
        }
      }
    }
    break;
  case 1:
    iVar8 = local_54[2];
    iRam000bbfcc = 0;
    auStack_20[0] = param_3;
    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);
    piVar18 = DAT_000bbfd0;
    piVar4 = DAT_000bbfd4;
    if (iRam000bbfcc == 1) {
      piVar18 = local_54;
      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {
        uVar9 = 0x137c;
        goto code_r0x000222ec;
      }
    }
    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&
            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {
      uVar9 = 0x1385;
code_r0x000222ec:
      FUN_00031780("../../ld/ldlang.c",uVar9);
      piVar18 = DAT_000bbfd0;
      piVar4 = DAT_000bbfd4;
    }
    DAT_000bbfd4 = piVar4;
    DAT_000bbfd0 = piVar18;
    iRam000bbfcc = 0;
    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&
       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {
      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;
    }
    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {
      if (DAT_000bbdac == param_2) {
        iVar8 = FUN_00021940("*default*",0);
        *(uint *)(iVar8 + 0x1c) = auStack_20[0];
        param_3 = auStack_20[0];
      }
      else if (auStack_20[0] != param_3) {
        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);
        local_54 = (int *)*local_54;
        param_3 = auStack_20[0];
        if ((*(int *)(param_2 + 0x50) != 3) &&
           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {
          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);
          *puVar1 = *puVar1 | 1;
        }
      }
    }
    break;
  case 2:
  case 3:
  case 10:
  case 0xb:
  case 0xe:
    goto code_r0x00021b1c;
  case 4:
    goto code_r0x00021d85;
  case 5:
    if (param_4 != (undefined4 *)0x0) {
      iVar8 = *(int *)(local_54[2] + 0x94);
      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))
                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);
      if (iVar8 == 0) {
        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);
        FUN_00031730(uVar9);
      }
      if (auStack_20[0] != 0) {
        *param_4 = 1;
      }
    }
    iVar8 = *(int *)(param_2 + 0x1c);
    iVar6 = *(int *)(*param_1 + 8);
    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {
      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);
    }
    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {
      uVar7 = *(uint *)(param_2 + 0x40);
      if (uVar7 == 0xffffffff) {
        uVar7 = *(uint *)(iVar6 + 0x40);
      }
      else {
        *(uint *)(iVar6 + 0x40) = uVar7;
      }
      if (*(uint *)(iVar8 + 0x40) < uVar7) {
        *(uint *)(iVar8 + 0x40) = uVar7;
        uVar7 = *(uint *)(iVar6 + 0x40);
      }
      iVar16 = 1 << ((byte)uVar7 & 0x1f);
      uVar7 = (param_3 - 1) + iVar16 & -iVar16;
      if (uVar7 != param_3) {
        FUN_00021400(iVar8,param_3);
        param_3 = uVar7;
      }
      uVar9 = DAT_000bb94c;
      iVar16 = *(int *)(iVar8 + 0x1c);
      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;
      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));
      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {
        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);
      }
    }
    else {
      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);
    }
    break;
  case 6:
    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);
    goto code_r0x00021b1c;
  case 7:
    local_54[4] = *(int *)(param_2 + 0x1c);
    break;
  case 8:
    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);
    local_54[5] = *(int *)(param_2 + 0x1c);
    FUN_0002f480(local_54[3],puVar5,&param_3);
    if (4 < local_54[2] - 0x11aU) {
                    /* WARNING: Subroutine does not return */
      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);
    }
    bVar13 = (byte)DAT_000bb94c;
    uVar7 = 1 << (bVar13 & 0x1f);
    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {
      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);
    }
    iVar8 = *(int *)(param_2 + 0x1c);
    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;
    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {
      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);
    }
    break;
  case 9:
    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);
    local_54[8] = *(int *)(param_2 + 0x1c);
    iVar6 = bfd_get_reloc_size(local_54[3]);
    iVar8 = *(int *)(param_2 + 0x1c);
    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;
    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {
      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);
    }
    break;
  case 0xc:
    local_54[3] = 0;
    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);
    break;
  case 0xd:
    goto code_r0x00021d85;
  case 0xf:
code_r0x00021d85:
    param_3 = FUN_00021aa0(param_3,param_4,param_5);
    break;
  default:
    FUN_00031780("../../ld/ldlang.c",0x15a7);
  }
LAB_00021b28:
  piVar18 = (int *)*local_54;
  param_1 = local_54;
  goto joined_r0x00021ad5;
code_r0x00021b1c:
  goto LAB_00021b28;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00015a10
ADD EBX,0x99557
SUB ESP,0x4c
MOV EBP,dword ptr [EAX]
MOV dword ptr [ESP + 0x8],EAX
MOV dword ptr [ESP + 0xc],EDX
MOV dword ptr [ESP + 0x14],ECX
MOV EAX,dword ptr [EBX + 0xffffffc4]
MOV dword ptr [ESP + 0x4],EBX
ADD EAX,0x150
MOV dword ptr [ESP + 0x18],EAX
TEST EBP,EBP
JZ 0x00021b34
MOV dword ptr [ESP],EBP
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x10],EAX
CMP EAX,0xf
JA 0x00022280
MOV EDI,EAX
MOV EAX,dword ptr [ESP + 0x4]
ADD EAX,dword ptr [EAX + EDI*0x4 + 0xfff93ad8]
JMP EAX
MOV EAX,dword ptr [ESP]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP],EAX
TEST EAX,EAX
JNZ 0x00021ae0
MOV EAX,dword ptr [ESP + 0x60]
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
PUSH 0x15a7
MOV EAX,dword ptr [ESP + 0x10]
LEA EAX,[EAX + 0xfff93db6]
PUSH EAX
MOV EBX,dword ptr [ESP + 0x14]
CALL 0x00031780
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
JMP 0x00021b28
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nuint __regparm2 FUN_00021aa0(int *param_1,int param_2,uint param_3,undefined4 *param_4,int param_5)\n\n{\n  uint *puVar1;\n  undefined *puVar2;\n  undefined4 *puVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  undefined4 uVar11;\n  undefined4 *puVar12;\n  byte bVar13;\n  undefined4 extraout_ECX;\n  uint uVar14;\n  undefined4 *puVar15;\n  undefined **extraout_ECX_00;\n  int iVar16;\n  undefined *puVar17;\n  int *piVar18;\n  uint uVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  undefined **ppuVar25;\n  int *local_54;\n  uint local_4c;\n  int iStack_3c;\n  uint uStack_34;\n  uint auStack_20 [3];\n  undefined4 uStack_14;\n  \n  bVar24 = 0;\n  uStack_14 = 0x21aa9;\n  puVar5 = PTR__bfd_std_section_000bafc4 + 0x150;\n  piVar18 = (int *)*param_1;\njoined_r0x00021ad5:\n  local_54 = piVar18;\n  if (local_54 == (int *)0x0) {\n    return param_3;\n  }\n  local_4c = local_54[1];\n  switch(local_4c) {\n  case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;\n  case 2:\n  case 3:\n  case 10:\n  case 0xb:\n  case 0xe:\n    goto code_r0x00021b1c;\n  case 4:\n    goto code_r0x00021d85;\n  case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;\n  case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;\n  case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;\n  case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;\n  case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;\n  case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;\n  case 0xd:\n    goto code_r0x00021d85;\n  case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;\n  default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);\n  }\nLAB_00021b28:\n  piVar18 = (int *)*local_54;\n  param_1 = local_54;\n  goto joined_r0x00021ad5;\ncode_r0x00021b1c:\n  goto LAB_00021b28;\n}\n\n" comment (function_definition "uint __regparm2 FUN_00021aa0(int *param_1,int param_2,uint param_3,undefined4 *param_4,int param_5)\n\n{\n  uint *puVar1;\n  undefined *puVar2;\n  undefined4 *puVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  undefined4 uVar11;\n  undefined4 *puVar12;\n  byte bVar13;\n  undefined4 extraout_ECX;\n  uint uVar14;\n  undefined4 *puVar15;\n  undefined **extraout_ECX_00;\n  int iVar16;\n  undefined *puVar17;\n  int *piVar18;\n  uint uVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  undefined **ppuVar25;\n  int *local_54;\n  uint local_4c;\n  int iStack_3c;\n  uint uStack_34;\n  uint auStack_20 [3];\n  undefined4 uStack_14;\n  \n  bVar24 = 0;\n  uStack_14 = 0x21aa9;\n  puVar5 = PTR__bfd_std_section_000bafc4 + 0x150;\n  piVar18 = (int *)*param_1;\njoined_r0x00021ad5:\n  local_54 = piVar18;\n  if (local_54 == (int *)0x0) {\n    return param_3;\n  }\n  local_4c = local_54[1];\n  switch(local_4c) {\n  case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;\n  case 2:\n  case 3:\n  case 10:\n  case 0xb:\n  case 0xe:\n    goto code_r0x00021b1c;\n  case 4:\n    goto code_r0x00021d85;\n  case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;\n  case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;\n  case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;\n  case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;\n  case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;\n  case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;\n  case 0xd:\n    goto code_r0x00021d85;\n  case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;\n  default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);\n  }\nLAB_00021b28:\n  piVar18 = (int *)*local_54;\n  param_1 = local_54;\n  goto joined_r0x00021ad5;\ncode_r0x00021b1c:\n  goto LAB_00021b28;\n}" type_identifier (ERROR "__regparm2" identifier) (function_declarator "FUN_00021aa0(int *param_1,int param_2,uint param_3,undefined4 *param_4,int param_5)" identifier (parameter_list "(int *param_1,int param_2,uint param_3,undefined4 *param_4,int param_5)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  uint *puVar1;\n  undefined *puVar2;\n  undefined4 *puVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  undefined4 uVar11;\n  undefined4 *puVar12;\n  byte bVar13;\n  undefined4 extraout_ECX;\n  uint uVar14;\n  undefined4 *puVar15;\n  undefined **extraout_ECX_00;\n  int iVar16;\n  undefined *puVar17;\n  int *piVar18;\n  uint uVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  undefined **ppuVar25;\n  int *local_54;\n  uint local_4c;\n  int iStack_3c;\n  uint uStack_34;\n  uint auStack_20 [3];\n  undefined4 uStack_14;\n  \n  bVar24 = 0;\n  uStack_14 = 0x21aa9;\n  puVar5 = PTR__bfd_std_section_000bafc4 + 0x150;\n  piVar18 = (int *)*param_1;\njoined_r0x00021ad5:\n  local_54 = piVar18;\n  if (local_54 == (int *)0x0) {\n    return param_3;\n  }\n  local_4c = local_54[1];\n  switch(local_4c) {\n  case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;\n  case 2:\n  case 3:\n  case 10:\n  case 0xb:\n  case 0xe:\n    goto code_r0x00021b1c;\n  case 4:\n    goto code_r0x00021d85;\n  case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;\n  case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;\n  case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;\n  case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;\n  case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;\n  case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;\n  case 0xd:\n    goto code_r0x00021d85;\n  case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;\n  default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);\n  }\nLAB_00021b28:\n  piVar18 = (int *)*local_54;\n  param_1 = local_54;\n  goto joined_r0x00021ad5;\ncode_r0x00021b1c:\n  goto LAB_00021b28;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined **extraout_ECX_00;" type_identifier (pointer_declarator "**extraout_ECX_00" * (pointer_declarator "*extraout_ECX_00" * identifier)) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "byte bVar24;" type_identifier identifier ;) (declaration "undefined **ppuVar25;" type_identifier (pointer_declarator "**ppuVar25" * (pointer_declarator "*ppuVar25" * identifier)) ;) (declaration "int *local_54;" primitive_type (pointer_declarator "*local_54" * identifier) ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "int iStack_3c;" primitive_type identifier ;) (declaration "uint uStack_34;" type_identifier identifier ;) (declaration "uint auStack_20 [3];" type_identifier (array_declarator "auStack_20 [3]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x21aa9;" (assignment_expression "uStack_14 = 0x21aa9" identifier = number_literal) ;) (expression_statement "puVar5 = PTR__bfd_std_section_000bafc4 + 0x150;" (assignment_expression "puVar5 = PTR__bfd_std_section_000bafc4 + 0x150" identifier = (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal)) ;) (expression_statement "piVar18 = (int *)*param_1;" (assignment_expression "piVar18 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (labeled_statement "joined_r0x00021ad5:\n  local_54 = piVar18;" statement_identifier : (expression_statement "local_54 = piVar18;" (assignment_expression "local_54 = piVar18" identifier = identifier) ;)) (if_statement "if (local_54 == (int *)0x0) {\n    return param_3;\n  }" if (parenthesized_expression "(local_54 == (int *)0x0)" ( (binary_expression "local_54 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return param_3;\n  }" { (return_statement "return param_3;" return identifier ;) })) (expression_statement "local_4c = local_54[1];" (assignment_expression "local_4c = local_54[1]" identifier = (subscript_expression "local_54[1]" identifier [ number_literal ])) ;) (switch_statement "switch(local_4c) {\n  case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;\n  case 2:\n  case 3:\n  case 10:\n  case 0xb:\n  case 0xe:\n    goto code_r0x00021b1c;\n  case 4:\n    goto code_r0x00021d85;\n  case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;\n  case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;\n  case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;\n  case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;\n  case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;\n  case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;\n  case 0xd:\n    goto code_r0x00021d85;\n  case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;\n  default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);\n  }" switch (parenthesized_expression "(local_4c)" ( identifier )) (compound_statement "{\n  case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;\n  case 2:\n  case 3:\n  case 10:\n  case 0xb:\n  case 0xe:\n    goto code_r0x00021b1c;\n  case 4:\n    goto code_r0x00021d85;\n  case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;\n  case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;\n  case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;\n  case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;\n  case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;\n  case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;\n  case 0xd:\n    goto code_r0x00021d85;\n  case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;\n  default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);\n  }" { (case_statement "case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;" case number_literal : (if_statement "if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(local_54[0x12] != -1)" ( (binary_expression "local_54[0x12] != -1" (subscript_expression "local_54[0x12]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "iVar8 = local_54[0xb];" (assignment_expression "iVar8 = local_54[0xb]" identifier = (subscript_expression "local_54[0xb]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }" { (if_statement "if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }" if (parenthesized_expression "((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2))" ( (binary_expression "(((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)" (parenthesized_expression "(((byte)DAT_000bbe00 & 3) == 2)" ( (binary_expression "((byte)DAT_000bbe00 & 3) == 2" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" ( (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)" ( (binary_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2" (pointer_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" * (cast_expression "(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_000bbe30 + 4) + 4)" ( (binary_expression "*(int *)(DAT_000bbe30 + 4) + 4" (pointer_expression "*(int *)(DAT_000bbe30 + 4)" * (cast_expression "(int *)(DAT_000bbe30 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000bbe30 + 4)" ( (binary_expression "DAT_000bbe30 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }" { (expression_statement "iVar8 = FUN_0002f390(0);" (assignment_expression "iVar8 = FUN_0002f390(0)" identifier = (call_expression "FUN_0002f390(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "local_54[0xb] = iVar8;" (assignment_expression "local_54[0xb] = iVar8" (subscript_expression "local_54[0xb]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar8 != 0) goto code_r0x00021dcc;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00021dcc;" goto statement_identifier ;)) })) }) (else_clause "else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }" else (compound_statement "{\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }" { (labeled_statement "code_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;" statement_identifier : (expression_statement "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;" (assignment_expression "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_54 + 0x15) & 0xfe" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) & number_literal)) ;)) (expression_statement "FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);" (call_expression "FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3)" identifier (argument_list "(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3)" ( identifier , (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal) , (pointer_expression "&param_3" & identifier) ))) ;) (if_statement "if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }" if (parenthesized_expression "(DAT_000bbfa0 == 0)" ( (binary_expression "DAT_000bbfa0 == 0" identifier == number_literal) )) (compound_statement "{\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }" { (if_statement "if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }" if (parenthesized_expression "(DAT_000bbf80 != 1)" ( (binary_expression "DAT_000bbf80 != 1" identifier != number_literal) )) (compound_statement "{\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }" { (expression_statement "iVar8 = local_54[6];" (assignment_expression "iVar8 = local_54[6]" identifier = (subscript_expression "local_54[6]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = local_54[0xb];" (assignment_expression "iVar6 = local_54[0xb]" identifier = (subscript_expression "local_54[0xb]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);" (assignment_expression "uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5)" identifier = (call_expression "dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5)" identifier (argument_list "(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5)" ( number_literal , (string_literal ""%F%P:%pS: non constant or forward reference address expression for section %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031730(uVar9,iVar6,iVar8);" (call_expression "FUN_00031730(uVar9,iVar6,iVar8)" identifier (argument_list "(uVar9,iVar6,iVar8)" ( identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }" else (compound_statement "{\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }" { (expression_statement "param_3 = DAT_000bbf94;" (assignment_expression "param_3 = DAT_000bbf94" identifier = identifier) ;) (if_statement "if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }" if (parenthesized_expression "(DAT_000bbf9c != 0)" ( (binary_expression "DAT_000bbf9c != 0" identifier != number_literal) )) (compound_statement "{\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }" { (expression_statement "param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);" (assignment_expression "param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c)" identifier = (binary_expression "DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c)" identifier + (pointer_expression "*(int *)(DAT_000bbf9c + 0x1c)" * (cast_expression "(int *)(DAT_000bbf9c + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000bbf9c + 0x1c)" ( (binary_expression "DAT_000bbf9c + 0x1c" identifier + number_literal) )))))) ;) })) }))) }))) (expression_statement "uVar7 = param_3;" (assignment_expression "uVar7 = param_3" identifier = identifier) ;) (expression_statement "puVar2 = PTR__bfd_std_section_000bafc4;" (assignment_expression "puVar2 = PTR__bfd_std_section_000bafc4" identifier = identifier) ;) (expression_statement "puVar15 = (undefined4 *)local_54[7];" (assignment_expression "puVar15 = (undefined4 *)local_54[7]" identifier = (cast_expression "(undefined4 *)local_54[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) (if_statement "if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }" { (if_statement "if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0))" ( (binary_expression "(*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)" (parenthesized_expression "(*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2)" ( (binary_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2" (binary_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U" (pointer_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" * (cast_expression "(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_000bbe30 + 4) + 4)" ( (binary_expression "*(int *)(DAT_000bbe30 + 4) + 4" (pointer_expression "*(int *)(DAT_000bbe30 + 4)" * (cast_expression "(int *)(DAT_000bbe30 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000bbe30 + 4)" ( (binary_expression "DAT_000bbe30 + 4" identifier + number_literal) )))) + number_literal) )))) - number_literal) < number_literal) )) && (parenthesized_expression "(uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)" ( (comma_expression "uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0" (assignment_expression "uVar14 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) , (binary_expression "(uVar14 & 0x4000000) != 0" (parenthesized_expression "(uVar14 & 0x4000000)" ( (binary_expression "uVar14 & 0x4000000" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }" { (expression_statement "piVar18 = (int *)local_54[2];" (assignment_expression "piVar18 = (int *)local_54[2]" identifier = (cast_expression "(int *)local_54[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[2]" identifier [ number_literal ]))) ;) (if_statement "if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }" if (parenthesized_expression "(((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5))" ( (binary_expression "((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)" (parenthesized_expression "((piVar18 == (int *)0x0) || (*piVar18 != 0))" ( (binary_expression "(piVar18 == (int *)0x0) || (*piVar18 != 0)" (parenthesized_expression "(piVar18 == (int *)0x0)" ( (binary_expression "piVar18 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*piVar18 != 0)" ( (binary_expression "*piVar18 != 0" (pointer_expression "*piVar18" * identifier) != number_literal) ))) )) || (parenthesized_expression "(piVar18[1] != 5)" ( (binary_expression "piVar18[1] != 5" (subscript_expression "piVar18[1]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }" { (expression_statement "iVar8 = local_54[6];" (assignment_expression "iVar8 = local_54[6]" identifier = (subscript_expression "local_54[6]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5)" identifier (argument_list "(0,"%X%P: internal error on COFF shared library section %s\n",5)" ( number_literal , (string_literal ""%X%P: internal error on COFF shared library section %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031730(uVar9,iVar8);" (call_expression "FUN_00031730(uVar9,iVar8)" identifier (argument_list "(uVar9,iVar8)" ( identifier , identifier ))) ;) (expression_statement "puVar15 = (undefined4 *)local_54[7];" (assignment_expression "puVar15 = (undefined4 *)local_54[7]" identifier = (cast_expression "(undefined4 *)local_54[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) (expression_statement "piVar18 = (int *)local_54[2];" (assignment_expression "piVar18 = (int *)local_54[2]" identifier = (cast_expression "(int *)local_54[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = puVar15[5];" (assignment_expression "uVar14 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) })) (expression_statement "iVar8 = piVar18[2];" (assignment_expression "iVar8 = piVar18[2]" identifier = (subscript_expression "piVar18[2]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = *(undefined4 *)(iVar8 + 0x1c);" (assignment_expression "uVar9 = *(undefined4 *)(iVar8 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;" (assignment_expression "*(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1" (pointer_expression "*(byte *)(puVar15 + 6)" * (cast_expression "(byte *)(puVar15 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 6)" ( (binary_expression "puVar15 + 6" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar15 + 6) | 1" (pointer_expression "*(byte *)(puVar15 + 6)" * (cast_expression "(byte *)(puVar15 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 6)" ( (binary_expression "puVar15 + 6" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "puVar15[8] = uVar9;" (assignment_expression "puVar15[8] = uVar9" (subscript_expression "puVar15[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[7] = uVar9;" (assignment_expression "puVar15[7] = uVar9" (subscript_expression "puVar15[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }" if (parenthesized_expression "((uVar14 & 0x800) == 0)" ( (binary_expression "(uVar14 & 0x800) == 0" (parenthesized_expression "(uVar14 & 0x800)" ( (binary_expression "uVar14 & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }" { (expression_statement "puVar15[9] = *(undefined4 *)(iVar8 + 0x24);" (assignment_expression "puVar15[9] = *(undefined4 *)(iVar8 + 0x24)" (subscript_expression "puVar15[9]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(iVar8 + 0x24)" * (cast_expression "(undefined4 *)(iVar8 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24)" ( (binary_expression "iVar8 + 0x24" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }" else (compound_statement "{\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }" { (if_statement "if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }" if (parenthesized_expression "(puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150))" ( (binary_expression "puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)" identifier == (cast_expression "(undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x150)" ( (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal) )))) )) (compound_statement "{\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }" { (expression_statement "iStack_3c = 0;" (assignment_expression "iStack_3c = 0" identifier = number_literal) ;) (expression_statement "uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);" (assignment_expression "uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c)" identifier = (pointer_expression "*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c)" * (cast_expression "(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x16c)" ( (binary_expression "PTR__bfd_std_section_000bafc4 + 0x16c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }" if (parenthesized_expression "(*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0)" ( (binary_expression "*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0" (pointer_expression "*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c)" * (cast_expression "(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x16c)" ( (binary_expression "PTR__bfd_std_section_000bafc4 + 0x16c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }" { (expression_statement "FUN_00031780("../../ld/ldlang.c",0x13e5);" (call_expression "FUN_00031780("../../ld/ldlang.c",0x13e5)" identifier (argument_list "("../../ld/ldlang.c",0x13e5)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "uVar14 = local_4c;" (assignment_expression "uVar14 = local_4c" identifier = identifier) ;) })) }) (else_clause "else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }" else (compound_statement "{\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }" { (if_statement "if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }" if (parenthesized_expression "(local_54[0xb] == 0)" ( (binary_expression "local_54[0xb] == 0" (subscript_expression "local_54[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }" { (expression_statement "puVar12 = (undefined4 *)local_54[8];" (assignment_expression "puVar12 = (undefined4 *)local_54[8]" identifier = (cast_expression "(undefined4 *)local_54[8]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar7 = puVar15[5];" (assignment_expression "uVar7 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (if_statement "if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }" if (parenthesized_expression "(puVar12 == (undefined4 *)0x0)" ( (binary_expression "puVar12 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }" { (labeled_statement "code_r0x00022925:\n                puVar12 = DAT_000bb92c;" statement_identifier : (expression_statement "puVar12 = DAT_000bb92c;" (assignment_expression "puVar12 = DAT_000bb92c" identifier = identifier) ;)) (if_statement "if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }" if (parenthesized_expression "((uVar7 & 0x19) == 1)" ( (binary_expression "(uVar7 & 0x19) == 1" (parenthesized_expression "(uVar7 & 0x19)" ( (binary_expression "uVar7 & 0x19" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  uVar7 = uVar7 | 0x20;\n                }" { (expression_statement "uVar7 = uVar7 | 0x20;" (assignment_expression "uVar7 = uVar7 | 0x20" identifier = (binary_expression "uVar7 | 0x20" identifier | number_literal)) ;) })) (for_statement "for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }" for ( ; (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar12 = (undefined4 *)puVar12[2]" identifier = (cast_expression "(undefined4 *)puVar12[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[2]" identifier [ number_literal ]))) ) (compound_statement "{\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }" { (if_statement "if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;" if (parenthesized_expression "(((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))" ( (binary_expression "((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0)" (parenthesized_expression "((puVar12[9] & uVar7) != 0)" ( (binary_expression "(puVar12[9] & uVar7) != 0" (parenthesized_expression "(puVar12[9] & uVar7)" ( (binary_expression "puVar12[9] & uVar7" (subscript_expression "puVar12[9]" identifier [ number_literal ]) & identifier) )) != number_literal) )) && (parenthesized_expression "((puVar12[10] & uVar7) == 0)" ( (binary_expression "(puVar12[10] & uVar7) == 0" (parenthesized_expression "(puVar12[10] & uVar7)" ( (binary_expression "puVar12[10] & uVar7" (subscript_expression "puVar12[10]" identifier [ number_literal ]) & identifier) )) == number_literal) ))) )) (goto_statement "goto code_r0x00022989;" goto statement_identifier ;)) })) (expression_statement "puVar12 = (undefined4 *)FUN_00021940("*default*",0);" (assignment_expression "puVar12 = (undefined4 *)FUN_00021940("*default*",0)" identifier = (cast_expression "(undefined4 *)FUN_00021940("*default*",0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00021940("*default*",0)" identifier (argument_list "("*default*",0)" ( (string_literal ""*default*"" " string_content ") , number_literal ))))) ;) (expression_statement "puVar15 = (undefined4 *)local_54[7];" (assignment_expression "puVar15 = (undefined4 *)local_54[7]" identifier = (cast_expression "(undefined4 *)local_54[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) (labeled_statement "code_r0x00022989:\n                local_54[8] = (int)puVar12;" statement_identifier : (expression_statement "local_54[8] = (int)puVar12;" (assignment_expression "local_54[8] = (int)puVar12" (subscript_expression "local_54[8]" identifier [ number_literal ]) = (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) }) (else_clause "else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }" else (if_statement "if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }" if (parenthesized_expression "((uVar7 & 3) != 0)" ( (binary_expression "(uVar7 & 3) != 0" (parenthesized_expression "(uVar7 & 3)" ( (binary_expression "uVar7 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }" { (expression_statement "bVar13 = *(byte *)*puVar12;" (assignment_expression "bVar13 = *(byte *)*puVar12" identifier = (pointer_expression "*(byte *)*puVar12" * (cast_expression "(byte *)*puVar12" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar12" * identifier)))) ;) (expression_statement "bVar22 = bVar13 < 0x2a;" (assignment_expression "bVar22 = bVar13 < 0x2a" identifier = (binary_expression "bVar13 < 0x2a" identifier < number_literal)) ;) (expression_statement "bVar23 = bVar13 == 0x2a;" (assignment_expression "bVar23 = bVar13 == 0x2a" identifier = (binary_expression "bVar13 == 0x2a" identifier == number_literal)) ;) (if_statement "if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }" { (expression_statement "iVar8 = 10;" (assignment_expression "iVar8 = 10" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)*puVar12;" (assignment_expression "pbVar20 = (byte *)*puVar12" identifier = (cast_expression "(byte *)*puVar12" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar12" * identifier))) ;) (expression_statement "pbVar21 = (byte *)"*default*";" (assignment_expression "pbVar21 = (byte *)"*default*"" identifier = (cast_expression "(byte *)"*default*"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""*default*"" " string_content "))) ;) (do_statement "do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);" do (compound_statement "{\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar20 < *pbVar21;" (assignment_expression "bVar22 = *pbVar20 < *pbVar21" identifier = (binary_expression "*pbVar20 < *pbVar21" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar23 = *pbVar20 == *pbVar21;" (assignment_expression "bVar23 = *pbVar20 == *pbVar21" identifier = (binary_expression "*pbVar20 == *pbVar21" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;" if (parenthesized_expression "((!bVar22 && !bVar23) == bVar22)" ( (binary_expression "(!bVar22 && !bVar23) == bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" ( (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier) )) (goto_statement "goto code_r0x00022925;" goto statement_identifier ;)) })) })))) (expression_statement "puVar3 = DAT_000bb92c;" (assignment_expression "puVar3 = DAT_000bb92c" identifier = identifier) ;) (if_statement "if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }" if (parenthesized_expression "(((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2))" ( (binary_expression "((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)" (parenthesized_expression "((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400))" ( (binary_expression "(((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)" (parenthesized_expression "(((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0))" ( (binary_expression "((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)" (parenthesized_expression "((*(byte *)(local_54 + 0x15) & 8) == 0)" ( (binary_expression "(*(byte *)(local_54 + 0x15) & 8) == 0" (parenthesized_expression "(*(byte *)(local_54 + 0x15) & 8)" ( (binary_expression "*(byte *)(local_54 + 0x15) & 8" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((puVar15[5] & 1) != 0)" ( (binary_expression "(puVar15[5] & 1) != 0" (parenthesized_expression "(puVar15[5] & 1)" ( (binary_expression "puVar15[5] & 1" (subscript_expression "puVar15[5]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((puVar15[5] & 0x402) != 0x400)" ( (binary_expression "(puVar15[5] & 0x402) != 0x400" (parenthesized_expression "(puVar15[5] & 0x402)" ( (binary_expression "puVar15[5] & 0x402" (subscript_expression "puVar15[5]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(((byte)DAT_000bbe00 & 3) != 2)" ( (binary_expression "((byte)DAT_000bbe00 & 3) != 2" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" ( (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar23 = param_5 == 0;" (assignment_expression "bVar23 = param_5 == 0" identifier = (binary_expression "param_5 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }" { (expression_statement "iVar8 = 10;" (assignment_expression "iVar8 = 10" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)*puVar12;" (assignment_expression "pbVar20 = (byte *)*puVar12" identifier = (cast_expression "(byte *)*puVar12" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar12" * identifier))) ;) (expression_statement "pbVar21 = (byte *)"*default*";" (assignment_expression "pbVar21 = (byte *)"*default*"" identifier = (cast_expression "(byte *)"*default*"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""*default*"" " string_content "))) ;) (do_statement "do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);" do (compound_statement "{\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar20 < *pbVar21;" (assignment_expression "bVar22 = *pbVar20 < *pbVar21" identifier = (binary_expression "*pbVar20 < *pbVar21" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar23 = *pbVar20 == *pbVar21;" (assignment_expression "bVar23 = *pbVar20 == *pbVar21" identifier = (binary_expression "*pbVar20 == *pbVar21" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }" if (parenthesized_expression "(((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1))" ( (binary_expression "((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)" (parenthesized_expression "((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0))))" ( (binary_expression "(((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))" (parenthesized_expression "(((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0))" ( (binary_expression "((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)" (parenthesized_expression "((!bVar22 && !bVar23) == bVar22)" ( (binary_expression "(!bVar22 && !bVar23) == bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" ( (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier) )) && (parenthesized_expression "(DAT_000bb92c != (undefined4 *)0x0)" ( (binary_expression "DAT_000bb92c != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))" ( (parenthesized_expression "(iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0))" ( (comma_expression "iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)" (assignment_expression "iVar8 = strcmp((char *)*DAT_000bb92c,"*default*")" identifier = (call_expression "strcmp((char *)*DAT_000bb92c,"*default*")" identifier (argument_list "((char *)*DAT_000bb92c,"*default*")" ( (cast_expression "(char *)*DAT_000bb92c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_000bb92c" * identifier)) , (string_literal ""*default*"" " string_content ") )))) , (binary_expression "iVar8 != 0 ||\n                       (puVar3[2] != 0)" (binary_expression "iVar8 != 0" identifier != number_literal) || (parenthesized_expression "(puVar3[2] != 0)" ( (binary_expression "puVar3[2] != 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) != number_literal) )))) )) ))) )) && (parenthesized_expression "(DAT_000bbf80 != 1)" ( (binary_expression "DAT_000bbf80 != 1" identifier != number_literal) ))) )) (compound_statement "{\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }" { (expression_statement "uVar9 = *puVar15;" (assignment_expression "uVar9 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (if_statement "if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }" if (parenthesized_expression "(DAT_000bbeb8 == '\0')" ( (binary_expression "DAT_000bbeb8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }" { (expression_statement "pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";" (assignment_expression "pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n"" identifier = (string_literal ""%P: warning: no memory region specified for loadable section `%s\'\n"" " string_content escape_sequence escape_sequence ")) ;) (expression_statement "ppuVar25 = extraout_ECX_00;" (assignment_expression "ppuVar25 = extraout_ECX_00" identifier = identifier) ;) }) (else_clause "else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }" else (compound_statement "{\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }" { (expression_statement "pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";" (assignment_expression "pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n"" identifier = (string_literal ""%F%P: error: no memory region specified for loadable section `%s\'\n"" " string_content escape_sequence escape_sequence ")) ;) (expression_statement "ppuVar25 = &__DT_PLTGOT;" (assignment_expression "ppuVar25 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) }))) (expression_statement "uVar11 = dcgettext(0,pcVar10,5,ppuVar25);" (assignment_expression "uVar11 = dcgettext(0,pcVar10,5,ppuVar25)" identifier = (call_expression "dcgettext(0,pcVar10,5,ppuVar25)" identifier (argument_list "(0,pcVar10,5,ppuVar25)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "FUN_00031730(uVar11,uVar9);" (call_expression "FUN_00031730(uVar11,uVar9)" identifier (argument_list "(uVar11,uVar9)" ( identifier , identifier ))) ;) (expression_statement "puVar12 = (undefined4 *)local_54[8];" (assignment_expression "puVar12 = (undefined4 *)local_54[8]" identifier = (cast_expression "(undefined4 *)local_54[8]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[8]" identifier [ number_literal ]))) ;) (expression_statement "puVar15 = (undefined4 *)local_54[7];" (assignment_expression "puVar15 = (undefined4 *)local_54[7]" identifier = (cast_expression "(undefined4 *)local_54[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) })) })) })) (expression_statement "iStack_3c = puVar15[0x10];" (assignment_expression "iStack_3c = puVar15[0x10]" identifier = (subscript_expression "puVar15[0x10]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar12[7];" (assignment_expression "uVar7 = puVar12[7]" identifier = (subscript_expression "puVar12[7]" identifier [ number_literal ])) ;) }) (else_clause "else {\n              iStack_3c = local_54[0x11];\n            }" else (compound_statement "{\n              iStack_3c = local_54[0x11];\n            }" { (expression_statement "iStack_3c = local_54[0x11];" (assignment_expression "iStack_3c = local_54[0x11]" identifier = (subscript_expression "local_54[0x11]" identifier [ number_literal ])) ;) }))) (expression_statement "uVar14 = local_4c;" (assignment_expression "uVar14 = local_4c" identifier = identifier) ;) (if_statement "if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }" if (parenthesized_expression "(0 < iStack_3c)" ( (binary_expression "0 < iStack_3c" number_literal < identifier) )) (compound_statement "{\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }" { (expression_statement "iVar8 = 1 << ((byte)iStack_3c & 0x1f);" (assignment_expression "iVar8 = 1 << ((byte)iStack_3c & 0x1f)" identifier = (binary_expression "1 << ((byte)iStack_3c & 0x1f)" number_literal << (parenthesized_expression "((byte)iStack_3c & 0x1f)" ( (binary_expression "(byte)iStack_3c & 0x1f" (cast_expression "(byte)iStack_3c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar19 = -iVar8 & iVar8 + -1 + uVar7;" (assignment_expression "uVar19 = -iVar8 & iVar8 + -1 + uVar7" identifier = (binary_expression "-iVar8 & iVar8 + -1 + uVar7" (unary_expression "-iVar8" - identifier) & (binary_expression "iVar8 + -1 + uVar7" (binary_expression "iVar8 + -1" identifier + number_literal) + identifier))) ;) (expression_statement "uVar14 = uVar19 - uVar7;" (assignment_expression "uVar14 = uVar19 - uVar7" identifier = (binary_expression "uVar19 - uVar7" identifier - identifier)) ;) (expression_statement "uVar7 = uVar19;" (assignment_expression "uVar7 = uVar19" identifier = identifier) ;) (if_statement "if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }" if (parenthesized_expression "(((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1))" ( (binary_expression "((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)" (parenthesized_expression "((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0))))" ( (binary_expression "(uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))" (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) && (parenthesized_expression "((iRam000bbf24 != 0 || (local_54[0xb] != 0)))" ( (parenthesized_expression "(iRam000bbf24 != 0 || (local_54[0xb] != 0))" ( (binary_expression "iRam000bbf24 != 0 || (local_54[0xb] != 0)" (binary_expression "iRam000bbf24 != 0" identifier != number_literal) || (parenthesized_expression "(local_54[0xb] != 0)" ( (binary_expression "local_54[0xb] != 0" (subscript_expression "local_54[0xb]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) && (parenthesized_expression "(DAT_000bbf80 != 1)" ( (binary_expression "DAT_000bbf80 != 1" identifier != number_literal) ))) )) (compound_statement "{\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }" { (expression_statement "iVar8 = local_54[6];" (assignment_expression "iVar8 = local_54[6]" identifier = (subscript_expression "local_54[6]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);" (assignment_expression "uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5)" identifier = (call_expression "dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5)" identifier (argument_list "(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5)" ( number_literal , (string_literal ""%P: warning: changing start of section %s by %lu byte\n"" " string_content escape_sequence ") , (string_literal ""%P: warning: changing start of section %s by %lu bytes\n"" " string_content escape_sequence ") , identifier , number_literal )))) ;) (expression_statement "FUN_00031730(uVar9,iVar8,uVar14);" (call_expression "FUN_00031730(uVar9,iVar8,uVar14)" identifier (argument_list "(uVar9,iVar8,uVar14)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar15 = (undefined4 *)local_54[7];" (assignment_expression "puVar15 = (undefined4 *)local_54[7]" identifier = (cast_expression "(undefined4 *)local_54[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) })) })) (expression_statement "*(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;" (assignment_expression "*(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1" (pointer_expression "*(byte *)(puVar15 + 6)" * (cast_expression "(byte *)(puVar15 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 6)" ( (binary_expression "puVar15 + 6" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar15 + 6) | 1" (pointer_expression "*(byte *)(puVar15 + 6)" * (cast_expression "(byte *)(puVar15 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 6)" ( (binary_expression "puVar15 + 6" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "puVar15[8] = uVar7;" (assignment_expression "puVar15[8] = uVar7" (subscript_expression "puVar15[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[7] = uVar7;" (assignment_expression "puVar15[7] = uVar7" (subscript_expression "puVar15[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[0xe] = 0;" (assignment_expression "puVar15[0xe] = 0" (subscript_expression "puVar15[0xe]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "FUN_00021aa0(uVar7,param_4,param_5);" (call_expression "FUN_00021aa0(uVar7,param_4,param_5)" identifier (argument_list "(uVar7,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "bVar13 = *(byte *)(local_54 + 0x15);" (assignment_expression "bVar13 = *(byte *)(local_54 + 0x15)" identifier = (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(local_54 + 0x15) = bVar13 | 1;" (assignment_expression "*(byte *)(local_54 + 0x15) = bVar13 | 1" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) = (binary_expression "bVar13 | 1" identifier | number_literal)) ;) (expression_statement "puVar17 = (undefined *)local_54[7];" (assignment_expression "puVar17 = (undefined *)local_54[7]" identifier = (cast_expression "(undefined *)local_54[7]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) (if_statement "if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }" if (parenthesized_expression "(puVar17 == puVar2 + 0x150)" ( (binary_expression "puVar17 == puVar2 + 0x150" identifier == (binary_expression "puVar2 + 0x150" identifier + number_literal)) )) (compound_statement "{\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }" { (expression_statement "uVar7 = *(uint *)(puVar2 + 0x174);" (assignment_expression "uVar7 = *(uint *)(puVar2 + 0x174)" identifier = (pointer_expression "*(uint *)(puVar2 + 0x174)" * (cast_expression "(uint *)(puVar2 + 0x174)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x174)" ( (binary_expression "puVar2 + 0x174" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }" statement_identifier : (if_statement "if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }" { (expression_statement "FUN_00031780("../../ld/ldlang.c",0x1443);" (call_expression "FUN_00031780("../../ld/ldlang.c",0x1443)" identifier (argument_list "("../../ld/ldlang.c",0x1443)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) }))) }) (else_clause "else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }" else (compound_statement "{\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }" { (expression_statement "uVar7 = *(uint *)(puVar17 + 0x24);" (assignment_expression "uVar7 = *(uint *)(puVar17 + 0x24)" identifier = (pointer_expression "*(uint *)(puVar17 + 0x24)" * (cast_expression "(uint *)(puVar17 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x24)" ( (binary_expression "puVar17 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if ((bVar13 & 8) != 0) goto code_r0x000223fa;" if (parenthesized_expression "((bVar13 & 8) != 0)" ( (binary_expression "(bVar13 & 8) != 0" (parenthesized_expression "(bVar13 & 8)" ( (binary_expression "bVar13 & 8" identifier & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x000223fa;" goto statement_identifier ;)) (expression_statement "param_3 = *(uint *)(puVar17 + 0x1c);" (assignment_expression "param_3 = *(uint *)(puVar17 + 0x1c)" identifier = (pointer_expression "*(uint *)(puVar17 + 0x1c)" * (cast_expression "(uint *)(puVar17 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x1c)" ( (binary_expression "puVar17 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }" if (parenthesized_expression "((puVar17[0x15] & 8) == 0)" ( (binary_expression "(puVar17[0x15] & 8) == 0" (parenthesized_expression "(puVar17[0x15] & 8)" ( (binary_expression "puVar17[0x15] & 8" (subscript_expression "puVar17[0x15]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }" { (expression_statement "*(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);" (assignment_expression "*(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(puVar17 + 0x24)" * (cast_expression "(uint *)(puVar17 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x24)" ( (binary_expression "puVar17 + 0x24" identifier + number_literal) )))) = (binary_expression "((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f)" (binary_expression "((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3" (parenthesized_expression "((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf])" ( (binary_expression "(uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]" (binary_expression "(uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf]" (binary_expression "(uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1)" (parenthesized_expression "(uVar7 >> ((byte)DAT_000bb94c & 0x1f))" ( (binary_expression "uVar7 >> ((byte)DAT_000bb94c & 0x1f)" identifier >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )) + (parenthesized_expression "(param_3 - 1)" ( (binary_expression "param_3 - 1" identifier - number_literal) ))) + (subscript_expression "local_54[0xf]" identifier [ number_literal ])) & (unary_expression "-local_54[0xf]" - (subscript_expression "local_54[0xf]" identifier [ number_literal ]))) )) - identifier) << (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) }))) (expression_statement "iVar8 = local_54[8];" (assignment_expression "iVar8 = local_54[8]" identifier = (subscript_expression "local_54[8]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar8 = FUN_00021940("*default*",0);\n          }" { (expression_statement "iVar8 = FUN_00021940("*default*",0);" (assignment_expression "iVar8 = FUN_00021940("*default*",0)" identifier = (call_expression "FUN_00021940("*default*",0)" identifier (argument_list "("*default*",0)" ( (string_literal ""*default*"" " string_content ") , number_literal )))) ;) })) (if_statement "if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(local_54[0xc] == 0)" ( (binary_expression "local_54[0xc] == 0" (subscript_expression "local_54[0xc]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }" { (expression_statement "puVar17 = (undefined *)local_54[7];" (assignment_expression "puVar17 = (undefined *)local_54[7]" identifier = (cast_expression "(undefined *)local_54[7]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) (expression_statement "iVar6 = local_54[9];" (assignment_expression "iVar6 = local_54[9]" identifier = (subscript_expression "local_54[9]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = *(uint *)(puVar17 + 0x14);" (assignment_expression "uVar7 = *(uint *)(puVar17 + 0x14)" identifier = (pointer_expression "*(uint *)(puVar17 + 0x14)" * (cast_expression "(uint *)(puVar17 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x14)" ( (binary_expression "puVar17 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = uVar7 & 1;" (assignment_expression "uVar19 = uVar7 & 1" identifier = (binary_expression "uVar7 & 1" identifier & number_literal)) ;) (if_statement "if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }" { (expression_statement "uStack_34 = *(uint *)(iVar6 + 0x1c);" (assignment_expression "uStack_34 = *(uint *)(iVar6 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x1c)" * (cast_expression "(uint *)(iVar6 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }" if (parenthesized_expression "((*(byte *)(local_54 + 0x15) & 0x40) == 0)" ( (binary_expression "(*(byte *)(local_54 + 0x15) & 0x40) == 0" (parenthesized_expression "(*(byte *)(local_54 + 0x15) & 0x40)" ( (binary_expression "*(byte *)(local_54 + 0x15) & 0x40" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }" { (if_statement "if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }" if (parenthesized_expression "(iVar6 != local_54[8])" ( (binary_expression "iVar6 != local_54[8]" identifier != (subscript_expression "local_54[8]" identifier [ number_literal ])) )) (compound_statement "{\n                  iStack_3c = local_54[0x11];\n                }" { (expression_statement "iStack_3c = local_54[0x11];" (assignment_expression "iStack_3c = local_54[0x11]" identifier = (subscript_expression "local_54[0x11]" identifier [ number_literal ])) ;) })) (if_statement "if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }" if (parenthesized_expression "(0 < iStack_3c)" ( (binary_expression "0 < iStack_3c" number_literal < identifier) )) (compound_statement "{\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }" { (expression_statement "iVar6 = 1 << ((byte)iStack_3c & 0x1f);" (assignment_expression "iVar6 = 1 << ((byte)iStack_3c & 0x1f)" identifier = (binary_expression "1 << ((byte)iStack_3c & 0x1f)" number_literal << (parenthesized_expression "((byte)iStack_3c & 0x1f)" ( (binary_expression "(byte)iStack_3c & 0x1f" (cast_expression "(byte)iStack_3c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;" (assignment_expression "uStack_34 = -iVar6 & iVar6 + -1 + uStack_34" identifier = (binary_expression "-iVar6 & iVar6 + -1 + uStack_34" (unary_expression "-iVar6" - identifier) & (binary_expression "iVar6 + -1 + uStack_34" (binary_expression "iVar6 + -1" identifier + number_literal) + identifier))) ;) })) }) (else_clause "else {\n                uStack_34 = uStack_34 + uVar14;\n              }" else (compound_statement "{\n                uStack_34 = uStack_34 + uVar14;\n              }" { (expression_statement "uStack_34 = uStack_34 + uVar14;" (assignment_expression "uStack_34 = uStack_34 + uVar14" identifier = (binary_expression "uStack_34 + uVar14" identifier + identifier)) ;) }))) (expression_statement "*(uint *)(puVar17 + 0x20) = uStack_34;" (assignment_expression "*(uint *)(puVar17 + 0x20) = uStack_34" (pointer_expression "*(uint *)(puVar17 + 0x20)" * (cast_expression "(uint *)(puVar17 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x20)" ( (binary_expression "puVar17 + 0x20" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto code_r0x00022015;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;" if (parenthesized_expression "(*(int *)(iVar8 + 0x20) == 0)" ( (binary_expression "*(int *)(iVar8 + 0x20) == 0" (pointer_expression "*(int *)(iVar8 + 0x20)" * (cast_expression "(int *)(iVar8 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto code_r0x00022015;" goto statement_identifier ;)) (if_statement "if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }" { (expression_statement "iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);" (assignment_expression "iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar8 + 0x20) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar8 + 0x20) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0x20) + 0x1c)" ( (binary_expression "*(int *)(iVar8 + 0x20) + 0x1c" (pointer_expression "*(int *)(iVar8 + 0x20)" * (cast_expression "(int *)(iVar8 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar14 = *(uint *)(iVar6 + 0x1c);" (assignment_expression "uVar14 = *(uint *)(iVar6 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x1c)" * (cast_expression "(uint *)(iVar6 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = *(uint *)(iVar6 + 0x20);" (assignment_expression "uVar19 = *(uint *)(iVar6 + 0x20)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x20)" * (cast_expression "(uint *)(iVar6 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }" if (parenthesized_expression "(((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14))" ( (binary_expression "((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)" (parenthesized_expression "((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0))" ( (binary_expression "(param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)" (parenthesized_expression "(param_3 < uVar14)" ( (binary_expression "param_3 < uVar14" identifier < identifier) )) && (parenthesized_expression "(*(uint *)(puVar17 + 0x24) != 0)" ( (binary_expression "*(uint *)(puVar17 + 0x24) != 0" (pointer_expression "*(uint *)(puVar17 + 0x24)" * (cast_expression "(uint *)(puVar17 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x24)" ( (binary_expression "puVar17 + 0x24" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)" ( (binary_expression "(*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14" (binary_expression "(*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3" (parenthesized_expression "(*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f))" ( (binary_expression "*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(puVar17 + 0x24)" * (cast_expression "(uint *)(puVar17 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x24)" ( (binary_expression "puVar17 + 0x24" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )) + identifier) <= identifier) ))) )) (compound_statement "{\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }" { (if_statement "if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }" if (parenthesized_expression "(uVar14 != uVar19)" ( (binary_expression "uVar14 != uVar19" identifier != identifier) )) (compound_statement "{\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }" { (expression_statement "iVar6 = local_54[6];" (assignment_expression "iVar6 = local_54[6]" identifier = (subscript_expression "local_54[6]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);" (assignment_expression "uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54)" identifier = (call_expression "dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54)" identifier (argument_list "(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54)" ( number_literal , (string_literal ""%P: warning: dot moved backwards before `%s\'\n"" " string_content escape_sequence escape_sequence ") , number_literal , identifier )))) ;) (expression_statement "FUN_00031730(uVar9,iVar6);" (call_expression "FUN_00031730(uVar9,iVar6)" identifier (argument_list "(uVar9,iVar6)" ( identifier , identifier ))) ;) (expression_statement "puVar17 = (undefined *)local_54[7];" (assignment_expression "puVar17 = (undefined *)local_54[7]" identifier = (cast_expression "(undefined *)local_54[7]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) (goto_statement "goto code_r0x00022008;" goto statement_identifier ;) })) }) (else_clause "else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }" else (compound_statement "{\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }" { (expression_statement "uVar14 = (uVar19 + param_3) - uVar14;" (assignment_expression "uVar14 = (uVar19 + param_3) - uVar14" identifier = (binary_expression "(uVar19 + param_3) - uVar14" (parenthesized_expression "(uVar19 + param_3)" ( (binary_expression "uVar19 + param_3" identifier + identifier) )) - identifier)) ;) (if_statement "if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }" if (parenthesized_expression "(local_54[0x14] == 1)" ( (binary_expression "local_54[0x14] == 1" (subscript_expression "local_54[0x14]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }" { (expression_statement "uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;" (assignment_expression "uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19" identifier = (binary_expression "(*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19" (parenthesized_expression "(*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f))" ( (binary_expression "*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(iVar6 + 0x24)" * (cast_expression "(uint *)(iVar6 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x24)" ( (binary_expression "iVar6 + 0x24" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )) + identifier)) ;) })) (if_statement "if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }" if (parenthesized_expression "(0 < iStack_3c)" ( (binary_expression "0 < iStack_3c" number_literal < identifier) )) (compound_statement "{\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }" { (expression_statement "iVar6 = 1 << ((byte)iStack_3c & 0x1f);" (assignment_expression "iVar6 = 1 << ((byte)iStack_3c & 0x1f)" identifier = (binary_expression "1 << ((byte)iStack_3c & 0x1f)" number_literal << (parenthesized_expression "((byte)iStack_3c & 0x1f)" ( (binary_expression "(byte)iStack_3c & 0x1f" (cast_expression "(byte)iStack_3c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar14 = -iVar6 & iVar6 + -1 + uVar14;" (assignment_expression "uVar14 = -iVar6 & iVar6 + -1 + uVar14" identifier = (binary_expression "-iVar6 & iVar6 + -1 + uVar14" (unary_expression "-iVar6" - identifier) & (binary_expression "iVar6 + -1 + uVar14" (binary_expression "iVar6 + -1" identifier + number_literal) + identifier))) ;) })) (expression_statement "*(uint *)(puVar17 + 0x20) = uVar14;" (assignment_expression "*(uint *)(puVar17 + 0x20) = uVar14" (pointer_expression "*(uint *)(puVar17 + 0x20)" * (cast_expression "(uint *)(puVar17 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x20)" ( (binary_expression "puVar17 + 0x20" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;" (assignment_expression "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) | number_literal)) ;) (goto_statement "goto code_r0x00022020;" goto statement_identifier ;) })) (expression_statement "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;" (assignment_expression "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) | number_literal)) ;) }) (else_clause "else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }" else (compound_statement "{\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");" (assignment_expression "uVar9 = FUN_0002fd60(local_54[0xc],0,"load base")" identifier = (call_expression "FUN_0002fd60(local_54[0xc],0,"load base")" identifier (argument_list "(local_54[0xc],0,"load base")" ( (subscript_expression "local_54[0xc]" identifier [ number_literal ]) , number_literal , (string_literal ""load base"" " string_content ") )))) ;) (expression_statement "puVar17 = (undefined *)local_54[7];" (assignment_expression "puVar17 = (undefined *)local_54[7]" identifier = (cast_expression "(undefined *)local_54[7]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(puVar17 + 0x20) = uVar9;" (assignment_expression "*(undefined4 *)(puVar17 + 0x20) = uVar9" (pointer_expression "*(undefined4 *)(puVar17 + 0x20)" * (cast_expression "(undefined4 *)(puVar17 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x20)" ( (binary_expression "puVar17 + 0x20" identifier + number_literal) )))) = identifier) ;) (labeled_statement "code_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);" statement_identifier : (expression_statement "uVar7 = *(uint *)(puVar17 + 0x14);" (assignment_expression "uVar7 = *(uint *)(puVar17 + 0x14)" identifier = (pointer_expression "*(uint *)(puVar17 + 0x14)" * (cast_expression "(uint *)(puVar17 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x14)" ( (binary_expression "puVar17 + 0x14" identifier + number_literal) ))))) ;)) (expression_statement "uVar19 = uVar7 & 1;" (assignment_expression "uVar19 = uVar7 & 1" identifier = (binary_expression "uVar7 & 1" identifier & number_literal)) ;) (labeled_statement "code_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;" statement_identifier : (expression_statement "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;" (assignment_expression "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) | number_literal)) ;)) (if_statement "if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }" { (labeled_statement "code_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }" statement_identifier : (if_statement "if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }" if (parenthesized_expression "((uVar7 & 0x402) != 0x400)" ( (binary_expression "(uVar7 & 0x402) != 0x400" (parenthesized_expression "(uVar7 & 0x402)" ( (binary_expression "uVar7 & 0x402" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }" { (if_statement "if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }" if (parenthesized_expression "(*(int *)(puVar17 + 0x24) == 0)" ( (binary_expression "*(int *)(puVar17 + 0x24) == 0" (pointer_expression "*(int *)(puVar17 + 0x24)" * (cast_expression "(int *)(puVar17 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x24)" ( (binary_expression "puVar17 + 0x24" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }" { (if_statement "if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;" if (parenthesized_expression "(*(int *)(iVar8 + 0x20) == 0)" ( (binary_expression "*(int *)(iVar8 + 0x20) == 0" (pointer_expression "*(int *)(iVar8 + 0x20)" * (cast_expression "(int *)(iVar8 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }" { (if_statement "if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;" if (parenthesized_expression "(*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20))" ( (binary_expression "*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)" (pointer_expression "*(int *)(puVar17 + 0x1c)" * (cast_expression "(int *)(puVar17 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x1c)" ( (binary_expression "puVar17 + 0x1c" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar17 + 0x20)" * (cast_expression "(int *)(puVar17 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x20)" ( (binary_expression "puVar17 + 0x20" identifier + number_literal) ))))) )) (goto_statement "goto code_r0x000223c5;" goto statement_identifier ;)) }) (else_clause "else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;" else (if_statement "if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;" if (parenthesized_expression "(*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)" ( (binary_expression "*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3" (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c)" ( (binary_expression "*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c" (pointer_expression "*(int *)(*(int *)(iVar8 + 0x20) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar8 + 0x20) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0x20) + 0x1c)" ( (binary_expression "*(int *)(iVar8 + 0x20) + 0x1c" (pointer_expression "*(int *)(iVar8 + 0x20)" * (cast_expression "(int *)(iVar8 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) <= identifier) )) (goto_statement "goto code_r0x000223c5;" goto statement_identifier ;)))) }) (else_clause "else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }" else (compound_statement "{\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }" { (labeled_statement "code_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }" statement_identifier : (if_statement "if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }" if (parenthesized_expression "((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2))" ( (binary_expression "(local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)" (parenthesized_expression "(local_54[9] == 0)" ( (binary_expression "local_54[9] == 0" (subscript_expression "local_54[9]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(((byte)DAT_000bbe00 & 3) != 2)" ( (binary_expression "((byte)DAT_000bbe00 & 3) != 2" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" ( (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }" { (expression_statement "*(int **)(iVar8 + 0x20) = local_54;" (assignment_expression "*(int **)(iVar8 + 0x20) = local_54" (pointer_expression "*(int **)(iVar8 + 0x20)" * (cast_expression "(int **)(iVar8 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) )))) = identifier) ;) }))) }))) }))) })) }))) (if_statement "if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }" if (parenthesized_expression "((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0))" ( (binary_expression "(puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)" (parenthesized_expression "(puVar17 != puVar2 + 0x150)" ( (binary_expression "puVar17 != puVar2 + 0x150" identifier != (binary_expression "puVar2 + 0x150" identifier + number_literal)) )) && (parenthesized_expression "((*(byte *)(local_54 + 0x15) & 8) == 0)" ( (binary_expression "(*(byte *)(local_54 + 0x15) & 8) == 0" (parenthesized_expression "(*(byte *)(local_54 + 0x15) & 8)" ( (binary_expression "*(byte *)(local_54 + 0x15) & 8" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }" { (if_statement "if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }" if (parenthesized_expression "(((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2))" ( (binary_expression "((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)" (parenthesized_expression "((uVar7 & 0x402) != 0x400)" ( (binary_expression "(uVar7 & 0x402) != 0x400" (parenthesized_expression "(uVar7 & 0x402)" ( (binary_expression "uVar7 & 0x402" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(((byte)DAT_000bbe00 & 3) == 2)" ( (binary_expression "((byte)DAT_000bbe00 & 3) == 2" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" ( (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }" { (expression_statement "local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);" (assignment_expression "local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)" identifier = (binary_expression "*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(puVar17 + 0x24)" * (cast_expression "(uint *)(puVar17 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x24)" ( (binary_expression "puVar17 + 0x24" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "param_3 = param_3 + local_4c;" (assignment_expression "param_3 = param_3 + local_4c" identifier = (binary_expression "param_3 + local_4c" identifier + identifier)) ;) (if_statement "if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }" if (parenthesized_expression "(local_54[0xd] != 0)" ( (binary_expression "local_54[0xd] != 0" (subscript_expression "local_54[0xd]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }" { (expression_statement "FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);" (call_expression "FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3)" identifier (argument_list "(local_54[0xd],puVar2 + 0x150,&param_3)" ( (subscript_expression "local_54[0xd]" identifier [ number_literal ]) , (binary_expression "puVar2 + 0x150" identifier + number_literal) , (pointer_expression "&param_3" & identifier) ))) ;) })) (if_statement "if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }" if (parenthesized_expression "((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0))" ( (binary_expression "(local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)" (parenthesized_expression "(local_54[8] != 0)" ( (binary_expression "local_54[8] != 0" (subscript_expression "local_54[8]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)" ( (comma_expression "iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0" (assignment_expression "iVar8 = local_54[7]" identifier = (subscript_expression "local_54[7]" identifier [ number_literal ])) , (binary_expression "(*(byte *)(iVar8 + 0x14) & 3) != 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x14) & 3)" ( (binary_expression "*(byte *)(iVar8 + 0x14) & 3" (pointer_expression "*(byte *)(iVar8 + 0x14)" * (cast_expression "(byte *)(iVar8 + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }" { (expression_statement "*(uint *)(local_54[8] + 0x1c) = param_3;" (assignment_expression "*(uint *)(local_54[8] + 0x1c) = param_3" (pointer_expression "*(uint *)(local_54[8] + 0x1c)" * (cast_expression "(uint *)(local_54[8] + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54[8] + 0x1c)" ( (binary_expression "local_54[8] + 0x1c" (subscript_expression "local_54[8]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) (if_statement "if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }" { (expression_statement "FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));" (call_expression "FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(*(undefined4 *)(iVar8 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar8 = local_54[9];" (assignment_expression "iVar8 = local_54[9]" identifier = (subscript_expression "local_54[9]" identifier [ number_literal ])) ;) (if_statement "if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }" if (parenthesized_expression "(((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0))))" ( (binary_expression "((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))" (parenthesized_expression "((iVar8 != 0) && (iVar8 != local_54[8]))" ( (binary_expression "(iVar8 != 0) && (iVar8 != local_54[8])" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar8 != local_54[8])" ( (binary_expression "iVar8 != local_54[8]" identifier != (subscript_expression "local_54[8]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))" ( (parenthesized_expression "((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0))" ( (binary_expression "(*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)" (binary_expression "(*(byte *)(local_54[7] + 0x14) & 2) != 0" (parenthesized_expression "(*(byte *)(local_54[7] + 0x14) & 2)" ( (binary_expression "*(byte *)(local_54[7] + 0x14) & 2" (pointer_expression "*(byte *)(local_54[7] + 0x14)" * (cast_expression "(byte *)(local_54[7] + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54[7] + 0x14)" ( (binary_expression "local_54[7] + 0x14" (subscript_expression "local_54[7]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)(local_54 + 0x15) & 0x40) != 0)" ( (binary_expression "(*(byte *)(local_54 + 0x15) & 0x40) != 0" (parenthesized_expression "(*(byte *)(local_54 + 0x15) & 0x40)" ( (binary_expression "*(byte *)(local_54 + 0x15) & 0x40" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }" { (expression_statement "iVar6 = *(int *)(local_54[7] + 0x20);" (assignment_expression "iVar6 = *(int *)(local_54[7] + 0x20)" identifier = (pointer_expression "*(int *)(local_54[7] + 0x20)" * (cast_expression "(int *)(local_54[7] + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54[7] + 0x20)" ( (binary_expression "local_54[7] + 0x20" (subscript_expression "local_54[7]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar8 + 0x1c) = local_4c + iVar6;" (assignment_expression "*(uint *)(iVar8 + 0x1c) = local_4c + iVar6" (pointer_expression "*(uint *)(iVar8 + 0x1c)" * (cast_expression "(uint *)(iVar8 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) = (binary_expression "local_4c + iVar6" identifier + identifier)) ;) (if_statement "if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n                  FUN_0001f080(iVar6);\n                }" { (expression_statement "FUN_0001f080(iVar6);" (call_expression "FUN_0001f080(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) })) })) })) })) }))) })) })) (break_statement "break;" break ;)) (case_statement "case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;" case number_literal : (expression_statement "iVar8 = local_54[2];" (assignment_expression "iVar8 = local_54[2]" identifier = (subscript_expression "local_54[2]" identifier [ number_literal ])) ;) (expression_statement "iRam000bbfcc = 0;" (assignment_expression "iRam000bbfcc = 0" identifier = number_literal) ;) (expression_statement "auStack_20[0] = param_3;" (assignment_expression "auStack_20[0] = param_3" (subscript_expression "auStack_20[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);" (call_expression "FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20)" identifier (argument_list "(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20)" ( identifier , (pointer_expression "*(undefined4 *)(param_2 + 0x1c)" * (cast_expression "(undefined4 *)(param_2 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "piVar18 = DAT_000bbfd0;" (assignment_expression "piVar18 = DAT_000bbfd0" identifier = identifier) ;) (expression_statement "piVar4 = DAT_000bbfd4;" (assignment_expression "piVar4 = DAT_000bbfd4" identifier = identifier) ;) (if_statement "if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }" if (parenthesized_expression "(iRam000bbfcc == 1)" ( (binary_expression "iRam000bbfcc == 1" identifier == number_literal) )) (compound_statement "{\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }" { (expression_statement "piVar18 = local_54;" (assignment_expression "piVar18 = local_54" identifier = identifier) ;) (if_statement "if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }" if (parenthesized_expression "((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54))" ( (binary_expression "(DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)" (parenthesized_expression "(DAT_000bbfd0 != (int *)0x0)" ( (binary_expression "DAT_000bbfd0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)" ( (comma_expression "piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54" (assignment_expression "piVar18 = DAT_000bbfd0" identifier = identifier) , (binary_expression "DAT_000bbfd0 != local_54" identifier != identifier)) ))) )) (compound_statement "{\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }" { (expression_statement "uVar9 = 0x137c;" (assignment_expression "uVar9 = 0x137c" identifier = number_literal) ;) (goto_statement "goto code_r0x000222ec;" goto statement_identifier ;) })) }) (else_clause "else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }" else (if_statement "if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }" if (parenthesized_expression "(((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54))" ( (binary_expression "((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)" (parenthesized_expression "((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0))" ( (binary_expression "(iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)" (parenthesized_expression "(iRam000bbfcc == 2)" ( (binary_expression "iRam000bbfcc == 2" identifier == number_literal) )) && (parenthesized_expression "(piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)" ( (comma_expression "piVar4 = local_54, DAT_000bbfd4 != (int *)0x0" (assignment_expression "piVar4 = local_54" identifier = identifier) , (binary_expression "DAT_000bbfd4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)" ( (comma_expression "piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54" (assignment_expression "piVar4 = DAT_000bbfd4" identifier = identifier) , (binary_expression "DAT_000bbfd4 != local_54" identifier != identifier)) ))) )) (compound_statement "{\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }" { (expression_statement "uVar9 = 0x1385;" (assignment_expression "uVar9 = 0x1385" identifier = number_literal) ;) (labeled_statement "code_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);" statement_identifier : (expression_statement "FUN_00031780("../../ld/ldlang.c",uVar9);" (call_expression "FUN_00031780("../../ld/ldlang.c",uVar9)" identifier (argument_list "("../../ld/ldlang.c",uVar9)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , identifier ))) ;)) (expression_statement "piVar18 = DAT_000bbfd0;" (assignment_expression "piVar18 = DAT_000bbfd0" identifier = identifier) ;) (expression_statement "piVar4 = DAT_000bbfd4;" (assignment_expression "piVar4 = DAT_000bbfd4" identifier = identifier) ;) })))) (expression_statement "DAT_000bbfd4 = piVar4;" (assignment_expression "DAT_000bbfd4 = piVar4" identifier = identifier) ;) (expression_statement "DAT_000bbfd0 = piVar18;" (assignment_expression "DAT_000bbfd0 = piVar18" identifier = identifier) ;) (expression_statement "iRam000bbfcc = 0;" (assignment_expression "iRam000bbfcc = 0" identifier = number_literal) ;) (if_statement "if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }" if (parenthesized_expression "(((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0'))))" ( (binary_expression "((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))" (parenthesized_expression "((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4)" ( (binary_expression "(*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4" (parenthesized_expression "(*(uint *)(iVar8 + 0xc) & 0xfffffffd)" ( (binary_expression "*(uint *)(iVar8 + 0xc) & 0xfffffffd" (pointer_expression "*(uint *)(iVar8 + 0xc)" * (cast_expression "(uint *)(iVar8 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))" ( (parenthesized_expression "(**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0'))" ( (binary_expression "**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')" (binary_expression "**(char **)(iVar8 + 0x10) != '.'" (pointer_expression "**(char **)(iVar8 + 0x10)" * (pointer_expression "*(char **)(iVar8 + 0x10)" * (cast_expression "(char **)(iVar8 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) ))))) != (char_literal "'.'" ' character ')) || (parenthesized_expression "((*(char **)(iVar8 + 0x10))[1] != '\0')" ( (binary_expression "(*(char **)(iVar8 + 0x10))[1] != '\0'" (subscript_expression "(*(char **)(iVar8 + 0x10))[1]" (parenthesized_expression "(*(char **)(iVar8 + 0x10))" ( (pointer_expression "*(char **)(iVar8 + 0x10)" * (cast_expression "(char **)(iVar8 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) )) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }" { (expression_statement "*(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;" (assignment_expression "*(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10" (pointer_expression "*(byte *)(param_2 + 0x54)" * (cast_expression "(byte *)(param_2 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_2 + 0x54) | 0x10" (pointer_expression "*(byte *)(param_2 + 0x54)" * (cast_expression "(byte *)(param_2 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }" if (parenthesized_expression "((*(byte *)(param_2 + 0x54) & 8) == 0)" ( (binary_expression "(*(byte *)(param_2 + 0x54) & 8) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x54) & 8)" ( (binary_expression "*(byte *)(param_2 + 0x54) & 8" (pointer_expression "*(byte *)(param_2 + 0x54)" * (cast_expression "(byte *)(param_2 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }" { (if_statement "if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }" if (parenthesized_expression "(DAT_000bbdac == param_2)" ( (binary_expression "DAT_000bbdac == param_2" identifier == identifier) )) (compound_statement "{\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }" { (expression_statement "iVar8 = FUN_00021940("*default*",0);" (assignment_expression "iVar8 = FUN_00021940("*default*",0)" identifier = (call_expression "FUN_00021940("*default*",0)" identifier (argument_list "("*default*",0)" ( (string_literal ""*default*"" " string_content ") , number_literal )))) ;) (expression_statement "*(uint *)(iVar8 + 0x1c) = auStack_20[0];" (assignment_expression "*(uint *)(iVar8 + 0x1c) = auStack_20[0]" (pointer_expression "*(uint *)(iVar8 + 0x1c)" * (cast_expression "(uint *)(iVar8 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) = (subscript_expression "auStack_20[0]" identifier [ number_literal ])) ;) (expression_statement "param_3 = auStack_20[0];" (assignment_expression "param_3 = auStack_20[0]" identifier = (subscript_expression "auStack_20[0]" identifier [ number_literal ])) ;) }) (else_clause "else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }" else (if_statement "if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }" if (parenthesized_expression "(auStack_20[0] != param_3)" ( (binary_expression "auStack_20[0] != param_3" (subscript_expression "auStack_20[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }" { (expression_statement "FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);" (call_expression "FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x1c),param_3)" ( (pointer_expression "*(undefined4 *)(param_2 + 0x1c)" * (cast_expression "(undefined4 *)(param_2 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "local_54 = (int *)*local_54;" (assignment_expression "local_54 = (int *)*local_54" identifier = (cast_expression "(int *)*local_54" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_54" * identifier))) ;) (expression_statement "param_3 = auStack_20[0];" (assignment_expression "param_3 = auStack_20[0]" identifier = (subscript_expression "auStack_20[0]" identifier [ number_literal ])) ;) (if_statement "if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }" if (parenthesized_expression "((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5))))" ( (binary_expression "(*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))" (parenthesized_expression "(*(int *)(param_2 + 0x50) != 3)" ( (binary_expression "*(int *)(param_2 + 0x50) != 3" (pointer_expression "*(int *)(param_2 + 0x50)" * (cast_expression "(int *)(param_2 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))" ( (parenthesized_expression "(*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5))" ( (binary_expression "*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)" (binary_expression "*(int *)(param_2 + 0x50) != 2" (pointer_expression "*(int *)(param_2 + 0x50)" * (cast_expression "(int *)(param_2 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) )))) != number_literal) || (parenthesized_expression "(*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)" ( (binary_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" * (cast_expression "(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_000bbe30 + 4) + 4)" ( (binary_expression "*(int *)(DAT_000bbe30 + 4) + 4" (pointer_expression "*(int *)(DAT_000bbe30 + 4)" * (cast_expression "(int *)(DAT_000bbe30 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000bbe30 + 4)" ( (binary_expression "DAT_000bbe30 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) ))) )) (compound_statement "{\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }" { (expression_statement "puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);" (assignment_expression "puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14)" identifier = (cast_expression "(uint *)(*(int *)(param_2 + 0x1c) + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x1c) + 0x14)" ( (binary_expression "*(int *)(param_2 + 0x1c) + 0x14" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 | 1;" (assignment_expression "*puVar1 = *puVar1 | 1" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 1" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) })) })))) })) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:" case number_literal :) (case_statement "case 10:" case number_literal :) (case_statement "case 0xb:" case number_literal :) (case_statement "case 0xe:\n    goto code_r0x00021b1c;" case number_literal : (goto_statement "goto code_r0x00021b1c;" goto statement_identifier ;)) (case_statement "case 4:\n    goto code_r0x00021d85;" case number_literal : (goto_statement "goto code_r0x00021d85;" goto statement_identifier ;)) (case_statement "case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;" case number_literal : (if_statement "if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }" { (expression_statement "iVar8 = *(int *)(local_54[2] + 0x94);" (assignment_expression "iVar8 = *(int *)(local_54[2] + 0x94)" identifier = (pointer_expression "*(int *)(local_54[2] + 0x94)" * (cast_expression "(int *)(local_54[2] + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54[2] + 0x94)" ( (binary_expression "local_54[2] + 0x94" (subscript_expression "local_54[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);" (assignment_expression "iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20)" identifier = (call_expression "(**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20)" (parenthesized_expression "(**(code **)(*(int *)(iVar8 + 4) + 0x164))" ( (pointer_expression "**(code **)(*(int *)(iVar8 + 4) + 0x164)" * (pointer_expression "*(code **)(*(int *)(iVar8 + 4) + 0x164)" * (cast_expression "(code **)(*(int *)(iVar8 + 4) + 0x164)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar8 + 4) + 0x164)" ( (binary_expression "*(int *)(iVar8 + 4) + 0x164" (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20)" ( identifier , (subscript_expression "local_54[2]" identifier [ number_literal ]) , identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }" { (expression_statement "uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: can\'t relax section: %E\n",5)" identifier (argument_list "(0,"%F%P: can\'t relax section: %E\n",5)" ( number_literal , (string_literal ""%F%P: can\'t relax section: %E\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031730(uVar9);" (call_expression "FUN_00031730(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })) (if_statement "if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }" if (parenthesized_expression "(auStack_20[0] != 0)" ( (binary_expression "auStack_20[0] != 0" (subscript_expression "auStack_20[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        *param_4 = 1;\n      }" { (expression_statement "*param_4 = 1;" (assignment_expression "*param_4 = 1" (pointer_expression "*param_4" * identifier) = number_literal) ;) })) })) (expression_statement "iVar8 = *(int *)(param_2 + 0x1c);" (assignment_expression "iVar8 = *(int *)(param_2 + 0x1c)" identifier = (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(*param_1 + 8);" (assignment_expression "iVar6 = *(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" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }" if (parenthesized_expression "((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200)" ( (binary_expression "(*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200" (parenthesized_expression "(*(ushort *)(iVar6 + 0x18) & 0x380)" ( (binary_expression "*(ushort *)(iVar6 + 0x18) & 0x380" (pointer_expression "*(ushort *)(iVar6 + 0x18)" * (cast_expression "(ushort *)(iVar6 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }" { (expression_statement "*(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);" (assignment_expression "*(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c)" (pointer_expression "*(int *)(iVar6 + 0x38)" * (cast_expression "(int *)(iVar6 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x38)" ( (binary_expression "iVar6 + 0x38" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c)" (pointer_expression "*(int *)(iVar6 + 0x1c)" * (cast_expression "(int *)(iVar6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))))) ;) }) (else_clause "else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }" else (if_statement "if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }" if (parenthesized_expression "(((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0))" ( (binary_expression "((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)" (parenthesized_expression "((*(byte *)(iVar6 + 0x15) & 0x80) == 0)" ( (binary_expression "(*(byte *)(iVar6 + 0x15) & 0x80) == 0" (parenthesized_expression "(*(byte *)(iVar6 + 0x15) & 0x80)" ( (binary_expression "*(byte *)(iVar6 + 0x15) & 0x80" (pointer_expression "*(byte *)(iVar6 + 0x15)" * (cast_expression "(byte *)(iVar6 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x15)" ( (binary_expression "iVar6 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(byte *)(param_2 + 0x54) & 8) == 0)" ( (binary_expression "(*(byte *)(param_2 + 0x54) & 8) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x54) & 8)" ( (binary_expression "*(byte *)(param_2 + 0x54) & 8" (pointer_expression "*(byte *)(param_2 + 0x54)" * (cast_expression "(byte *)(param_2 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }" { (expression_statement "uVar7 = *(uint *)(param_2 + 0x40);" (assignment_expression "uVar7 = *(uint *)(param_2 + 0x40)" identifier = (pointer_expression "*(uint *)(param_2 + 0x40)" * (cast_expression "(uint *)(param_2 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;) (if_statement "if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }" if (parenthesized_expression "(uVar7 == 0xffffffff)" ( (binary_expression "uVar7 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }" { (expression_statement "uVar7 = *(uint *)(iVar6 + 0x40);" (assignment_expression "uVar7 = *(uint *)(iVar6 + 0x40)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x40)" * (cast_expression "(uint *)(iVar6 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x40)" ( (binary_expression "iVar6 + 0x40" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }" else (compound_statement "{\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }" { (expression_statement "*(uint *)(iVar6 + 0x40) = uVar7;" (assignment_expression "*(uint *)(iVar6 + 0x40) = uVar7" (pointer_expression "*(uint *)(iVar6 + 0x40)" * (cast_expression "(uint *)(iVar6 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x40)" ( (binary_expression "iVar6 + 0x40" identifier + number_literal) )))) = identifier) ;) }))) (if_statement "if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }" if (parenthesized_expression "(*(uint *)(iVar8 + 0x40) < uVar7)" ( (binary_expression "*(uint *)(iVar8 + 0x40) < uVar7" (pointer_expression "*(uint *)(iVar8 + 0x40)" * (cast_expression "(uint *)(iVar8 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x40)" ( (binary_expression "iVar8 + 0x40" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }" { (expression_statement "*(uint *)(iVar8 + 0x40) = uVar7;" (assignment_expression "*(uint *)(iVar8 + 0x40) = uVar7" (pointer_expression "*(uint *)(iVar8 + 0x40)" * (cast_expression "(uint *)(iVar8 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x40)" ( (binary_expression "iVar8 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = *(uint *)(iVar6 + 0x40);" (assignment_expression "uVar7 = *(uint *)(iVar6 + 0x40)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x40)" * (cast_expression "(uint *)(iVar6 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x40)" ( (binary_expression "iVar6 + 0x40" identifier + number_literal) ))))) ;) })) (expression_statement "iVar16 = 1 << ((byte)uVar7 & 0x1f);" (assignment_expression "iVar16 = 1 << ((byte)uVar7 & 0x1f)" identifier = (binary_expression "1 << ((byte)uVar7 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar7 & 0x1f)" ( (binary_expression "(byte)uVar7 & 0x1f" (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar7 = (param_3 - 1) + iVar16 & -iVar16;" (assignment_expression "uVar7 = (param_3 - 1) + iVar16 & -iVar16" identifier = (binary_expression "(param_3 - 1) + iVar16 & -iVar16" (binary_expression "(param_3 - 1) + iVar16" (parenthesized_expression "(param_3 - 1)" ( (binary_expression "param_3 - 1" identifier - number_literal) )) + identifier) & (unary_expression "-iVar16" - identifier))) ;) (if_statement "if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }" if (parenthesized_expression "(uVar7 != param_3)" ( (binary_expression "uVar7 != param_3" identifier != identifier) )) (compound_statement "{\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }" { (expression_statement "FUN_00021400(iVar8,param_3);" (call_expression "FUN_00021400(iVar8,param_3)" identifier (argument_list "(iVar8,param_3)" ( identifier , identifier ))) ;) (expression_statement "param_3 = uVar7;" (assignment_expression "param_3 = uVar7" identifier = identifier) ;) })) (expression_statement "uVar9 = DAT_000bb94c;" (assignment_expression "uVar9 = DAT_000bb94c" identifier = identifier) ;) (expression_statement "iVar16 = *(int *)(iVar8 + 0x1c);" (assignment_expression "iVar16 = *(int *)(iVar8 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar6 + 0x38) = param_3 - iVar16;" (assignment_expression "*(uint *)(iVar6 + 0x38) = param_3 - iVar16" (pointer_expression "*(uint *)(iVar6 + 0x38)" * (cast_expression "(uint *)(iVar6 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x38)" ( (binary_expression "iVar6 + 0x38" identifier + number_literal) )))) = (binary_expression "param_3 - iVar16" identifier - identifier)) ;) (expression_statement "param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));" (assignment_expression "param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f))" identifier = (binary_expression "param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f))" identifier + (parenthesized_expression "(*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f))" ( (binary_expression "*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f)" (pointer_expression "*(uint *)(iVar6 + 0x24)" * (cast_expression "(uint *)(iVar6 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x24)" ( (binary_expression "iVar6 + 0x24" identifier + number_literal) )))) >> (parenthesized_expression "((byte)uVar9 & 0x1f)" ( (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }" if (parenthesized_expression "((*(byte *)(iVar8 + 0x15) & 8) == 0)" ( (binary_expression "(*(byte *)(iVar8 + 0x15) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x15) & 8)" ( (binary_expression "*(byte *)(iVar8 + 0x15) & 8" (pointer_expression "*(byte *)(iVar8 + 0x15)" * (cast_expression "(byte *)(iVar8 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x15)" ( (binary_expression "iVar8 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }" { (expression_statement "*(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);" (assignment_expression "*(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f)" (pointer_expression "*(uint *)(iVar8 + 0x24)" * (cast_expression "(uint *)(iVar8 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24)" ( (binary_expression "iVar8 + 0x24" identifier + number_literal) )))) = (binary_expression "param_3 - iVar16 << ((byte)uVar9 & 0x1f)" (binary_expression "param_3 - iVar16" identifier - identifier) << (parenthesized_expression "((byte)uVar9 & 0x1f)" ( (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) }) (else_clause "else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }" else (compound_statement "{\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }" { (expression_statement "*(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);" (assignment_expression "*(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c)" (pointer_expression "*(uint *)(iVar6 + 0x38)" * (cast_expression "(uint *)(iVar6 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x38)" ( (binary_expression "iVar6 + 0x38" identifier + number_literal) )))) = (binary_expression "param_3 - *(int *)(iVar8 + 0x1c)" identifier - (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))))) ;) }))))) (break_statement "break;" break ;)) (case_statement "case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;" case number_literal : (expression_statement "uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);" (assignment_expression "uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x1c)" * (cast_expression "(undefined4 *)(param_2 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (goto_statement "goto code_r0x00021b1c;" goto statement_identifier ;)) (case_statement "case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;" case number_literal : (expression_statement "local_54[4] = *(int *)(param_2 + 0x1c);" (assignment_expression "local_54[4] = *(int *)(param_2 + 0x1c)" (subscript_expression "local_54[4]" identifier [ number_literal ]) = (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;" case number_literal : (expression_statement "local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);" (assignment_expression "local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (subscript_expression "local_54[6]" identifier [ number_literal ]) = (binary_expression "param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" identifier - (pointer_expression "*(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" * (cast_expression "(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x1c) + 0x1c)" ( (binary_expression "*(int *)(param_2 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "local_54[5] = *(int *)(param_2 + 0x1c);" (assignment_expression "local_54[5] = *(int *)(param_2 + 0x1c)" (subscript_expression "local_54[5]" identifier [ number_literal ]) = (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "FUN_0002f480(local_54[3],puVar5,&param_3);" (call_expression "FUN_0002f480(local_54[3],puVar5,&param_3)" identifier (argument_list "(local_54[3],puVar5,&param_3)" ( (subscript_expression "local_54[3]" identifier [ number_literal ]) , identifier , (pointer_expression "&param_3" & identifier) ))) ;) (if_statement "if (4 < local_54[2] - 0x11aU) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }" if (parenthesized_expression "(4 < local_54[2] - 0x11aU)" ( (binary_expression "4 < local_54[2] - 0x11aU" number_literal < (binary_expression "local_54[2] - 0x11aU" (subscript_expression "local_54[2]" identifier [ number_literal ]) - number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }" { comment (expression_statement "FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);" (call_expression "FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX)" identifier (argument_list "("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal , (string_literal ""lang_size_sections_1"" " string_content ") , identifier ))) ;) })) (expression_statement "bVar13 = (byte)DAT_000bb94c;" (assignment_expression "bVar13 = (byte)DAT_000bb94c" identifier = (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar7 = 1 << (bVar13 & 0x1f);" (assignment_expression "uVar7 = 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 (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }" if (parenthesized_expression "(uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4))" ( (binary_expression "uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" identifier < (pointer_expression "*(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" * (cast_expression "(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" ( (binary_expression "&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4" (pointer_expression "&UNK_0004ed1c" & identifier) + (binary_expression "(local_54[2] - 0x11aU) * 4" (parenthesized_expression "(local_54[2] - 0x11aU)" ( (binary_expression "local_54[2] - 0x11aU" (subscript_expression "local_54[2]" identifier [ number_literal ]) - number_literal) )) * number_literal)) ))))) )) (compound_statement "{\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }" { (expression_statement "uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);" (assignment_expression "uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" identifier = (pointer_expression "*(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" * (cast_expression "(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" ( (binary_expression "&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4" (pointer_expression "&UNK_0004ed1c" & identifier) + (binary_expression "(local_54[2] - 0x11aU) * 4" (parenthesized_expression "(local_54[2] - 0x11aU)" ( (binary_expression "local_54[2] - 0x11aU" (subscript_expression "local_54[2]" identifier [ number_literal ]) - number_literal) )) * number_literal)) ))))) ;) })) (expression_statement "iVar8 = *(int *)(param_2 + 0x1c);" (assignment_expression "iVar8 = *(int *)(param_2 + 0x1c)" identifier = (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;" (assignment_expression "param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3" identifier = (binary_expression "(uVar7 >> (bVar13 & 0x1f)) + param_3" (parenthesized_expression "(uVar7 >> (bVar13 & 0x1f))" ( (binary_expression "uVar7 >> (bVar13 & 0x1f)" identifier >> (parenthesized_expression "(bVar13 & 0x1f)" ( (binary_expression "bVar13 & 0x1f" identifier & number_literal) ))) )) + identifier)) ;) (if_statement "if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }" if (parenthesized_expression "((*(byte *)(iVar8 + 0x15) & 8) == 0)" ( (binary_expression "(*(byte *)(iVar8 + 0x15) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x15) & 8)" ( (binary_expression "*(byte *)(iVar8 + 0x15) & 8" (pointer_expression "*(byte *)(iVar8 + 0x15)" * (cast_expression "(byte *)(iVar8 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x15)" ( (binary_expression "iVar8 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }" { (expression_statement "*(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);" (assignment_expression "*(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f)" (pointer_expression "*(uint *)(iVar8 + 0x24)" * (cast_expression "(uint *)(iVar8 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24)" ( (binary_expression "iVar8 + 0x24" identifier + number_literal) )))) = (binary_expression "param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f)" (binary_expression "param_3 - *(int *)(iVar8 + 0x1c)" identifier - (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) << (parenthesized_expression "(bVar13 & 0x1f)" ( (binary_expression "bVar13 & 0x1f" identifier & number_literal) )))) ;) })) (break_statement "break;" break ;)) (case_statement "case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;" case number_literal : (expression_statement "local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);" (assignment_expression "local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (subscript_expression "local_54[9]" identifier [ number_literal ]) = (binary_expression "param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" identifier - (pointer_expression "*(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" * (cast_expression "(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x1c) + 0x1c)" ( (binary_expression "*(int *)(param_2 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "local_54[8] = *(int *)(param_2 + 0x1c);" (assignment_expression "local_54[8] = *(int *)(param_2 + 0x1c)" (subscript_expression "local_54[8]" identifier [ number_literal ]) = (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = bfd_get_reloc_size(local_54[3]);" (assignment_expression "iVar6 = bfd_get_reloc_size(local_54[3])" identifier = (call_expression "bfd_get_reloc_size(local_54[3])" identifier (argument_list "(local_54[3])" ( (subscript_expression "local_54[3]" identifier [ number_literal ]) )))) ;) (expression_statement "iVar8 = *(int *)(param_2 + 0x1c);" (assignment_expression "iVar8 = *(int *)(param_2 + 0x1c)" identifier = (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;" (assignment_expression "param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3" identifier = (binary_expression "(iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3" (parenthesized_expression "(iVar6 >> ((byte)DAT_000bb94c & 0x1f))" ( (binary_expression "iVar6 >> ((byte)DAT_000bb94c & 0x1f)" identifier >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )) + identifier)) ;) (if_statement "if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }" if (parenthesized_expression "((*(byte *)(iVar8 + 0x15) & 8) == 0)" ( (binary_expression "(*(byte *)(iVar8 + 0x15) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x15) & 8)" ( (binary_expression "*(byte *)(iVar8 + 0x15) & 8" (pointer_expression "*(byte *)(iVar8 + 0x15)" * (cast_expression "(byte *)(iVar8 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x15)" ( (binary_expression "iVar8 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }" { (expression_statement "*(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);" (assignment_expression "*(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(iVar8 + 0x24)" * (cast_expression "(uint *)(iVar8 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24)" ( (binary_expression "iVar8 + 0x24" identifier + number_literal) )))) = (binary_expression "param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f)" (binary_expression "param_3 - *(int *)(iVar8 + 0x1c)" identifier - (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) << (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (break_statement "break;" break ;)) (case_statement "case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;" case number_literal : (expression_statement "local_54[3] = 0;" (assignment_expression "local_54[3] = 0" (subscript_expression "local_54[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);" (assignment_expression "local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (subscript_expression "local_54[2]" identifier [ number_literal ]) = (binary_expression "param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" identifier - (pointer_expression "*(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" * (cast_expression "(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x1c) + 0x1c)" ( (binary_expression "*(int *)(param_2 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) + number_literal) )))))) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n    goto code_r0x00021d85;" case number_literal : (goto_statement "goto code_r0x00021d85;" goto statement_identifier ;)) (case_statement "case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;" case number_literal : (labeled_statement "code_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);" statement_identifier : (expression_statement "param_3 = FUN_00021aa0(param_3,param_4,param_5);" (assignment_expression "param_3 = FUN_00021aa0(param_3,param_4,param_5)" identifier = (call_expression "FUN_00021aa0(param_3,param_4,param_5)" identifier (argument_list "(param_3,param_4,param_5)" ( identifier , identifier , identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);" default : (expression_statement "FUN_00031780("../../ld/ldlang.c",0x15a7);" (call_expression "FUN_00031780("../../ld/ldlang.c",0x15a7)" identifier (argument_list "("../../ld/ldlang.c",0x15a7)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;)) })) (labeled_statement "LAB_00021b28:\n  piVar18 = (int *)*local_54;" statement_identifier : (expression_statement "piVar18 = (int *)*local_54;" (assignment_expression "piVar18 = (int *)*local_54" identifier = (cast_expression "(int *)*local_54" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_54" * identifier))) ;)) (expression_statement "param_1 = local_54;" (assignment_expression "param_1 = local_54" identifier = identifier) ;) (goto_statement "goto joined_r0x00021ad5;" goto statement_identifier ;) (labeled_statement "code_r0x00021b1c:\n  goto LAB_00021b28;" statement_identifier : (goto_statement "goto LAB_00021b28;" goto statement_identifier ;)) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\nbfd_vma __regparm3\nlang_size_sections_1\n          (lang_statement_union_type **prev,\n          lang_output_section_statement_type *output_section_statement,fill_type *fill,bfd_vma dot,\n          bfd_boolean *relax,bfd_boolean check_regions)\n\n{\n  flagword *pfVar1;\n  bfd_section *pbVar2;\n  bfd *pbVar3;\n  etree_type *tree;\n  lang_memory_region_type *plVar4;\n  uint uVar5;\n  lang_statement_union *plVar6;\n  undefined *puVar7;\n  lang_statement_union *plVar8;\n  asection *current_section;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  bfd_boolean bVar12;\n  lang_statement_list_type *prev_00;\n  char *pcVar13;\n  bfd_vma bVar14;\n  char *pcVar15;\n  etree_union *peVar16;\n  lang_memory_region_type *plVar17;\n  asection *paVar18;\n  byte bVar19;\n  statement_enum sVar20;\n  asection *paVar21;\n  undefined **extraout_ECX;\n  byte *pbVar22;\n  byte *pbVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  undefined **ppuVar27;\n  lang_statement_union *local_54;\n  statement_enum local_4c;\n  fill_type *local_48;\n  uint local_3c;\n  bfd_vma local_34;\n  bfd_boolean again;\n  undefined4 uStack_14;\n  \n  bVar26 = 0;\n  uStack_14 = 0x21aa9;\n  current_section = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n  plVar6 = *prev;\n  local_48 = fill;\njoined_r0x00021ad5:\n  local_54 = plVar6;\n  if (local_54 == (lang_statement_union *)0x0) {\n    return dot;\n  }\n  local_4c = (local_54->wild_statement).header.type;\n  switch(local_4c) {\n  case lang_output_section_statement_enum:\n    if ((local_54->output_section_statement).constraint != -1) {\n      peVar16 = (local_54->output_section_statement).addr_tree;\n      if (peVar16 == (etree_union *)0x0) {\n        if (((link_info._0_1_ & 3) == 2) &&\n           ((link_info.output_bfd)->xvec->flavour == bfd_target_coff_flavour)) {\n          peVar16 = exp_intop(0);\n          (local_54->output_section_statement).addr_tree = peVar16;\n          if (peVar16 != (etree_type *)0x0) goto LAB_00021dcc;\n        }\n      }\n      else {\nLAB_00021dcc:\n        *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) & 0xfe;\n        exp_fold_tree(peVar16,(asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&dot);\n        if (expld.result.valid_p == 0) {\n          if (expld.phase != lang_mark_phase_enum) {\n            pcVar15 = *(char **)&(local_54->wild_statement).children;\n            peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];\n            pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5);\n            einfo(pcVar13,peVar16,pcVar15);\n          }\n        }\n        else {\n          dot = expld.result.value;\n          if (expld.result.section != (asection *)0x0) {\n            dot = expld.result.value + (expld.result.section)->vma;\n          }\n        }\n      }\n      bVar14 = dot;\n      puVar7 = PTR__bfd_std_section_000bafc4;\n      paVar21 = (local_54->output_section_statement).bfd_section;\n      if (paVar21 != (asection *)0x0) {\n        if (((link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour < 2) &&\n           (uVar10 = paVar21->flags, (uVar10 & 0x4000000) != 0)) {\n          paVar18 = (local_54->input_section).section;\n          if (((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)) || (paVar18->id != 5)\n             ) {\n            plVar6 = (local_54->wild_statement).children.head;\n            pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5);\n            einfo(pcVar15,plVar6);\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar18 = (local_54->input_section).section;\n            uVar10 = paVar21->flags;\n          }\n          uVar11 = paVar18->index;\n          bVar14 = *(bfd_vma *)(uVar11 + 0x1c);\n          paVar21->field_0x18 = paVar21->field_0x18 | 1;\n          paVar21->lma = bVar14;\n          paVar21->vma = bVar14;\n          if ((uVar10 & 0x800) == 0) {\n            paVar21->size = *(bfd_size_type *)(uVar11 + 0x24);\n          }\n        }\n        else {\n          if (paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            local_3c = 0;\n            sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum) {\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }\n          }\n          else {\n            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }\n            sVar20 = local_4c;\n            if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }\n            paVar21->field_0x18 = paVar21->field_0x18 | 1;\n            paVar21->lma = bVar14;\n            paVar21->vma = bVar14;\n            paVar21->output_offset = 0;\n          }\n          lang_size_sections_1\n                    ((lang_statement_union_type **)&(local_54->assignment_statement).exp,\n                     &local_54->output_section_statement,(local_54->output_section_statement).fill,\n                     bVar14,relax,check_regions);\n          bVar19 = *(byte *)((int)local_54 + 0x54);\n          *(byte *)((int)local_54 + 0x54) = bVar19 | 1;\n          paVar21 = (local_54->output_section_statement).bfd_section;\n          if (paVar21 == (asection *)(puVar7 + 0x150)) {\n            uVar10 = *(uint *)(puVar7 + 0x174);\nLAB_000223fa:\n            if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar10 = paVar21->size;\n            if ((bVar19 & 8) != 0) goto LAB_000223fa;\n            dot = paVar21->vma;\n            if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }\n          }\n          plVar17 = (lang_memory_region_type *)(local_54->reloc_statement).output_section;\n          if (plVar17 == (lang_memory_region_type *)0x0) {\n            plVar17 = lang_memory_region_lookup("*default*",0);\n          }\n          if ((local_54->output_section_statement).load_base == (etree_type *)0x0) {\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            plVar4 = (local_54->output_section_statement).lma_region;\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\n            if (plVar4 != (lang_memory_region_type *)0x0) {\n              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }\n            if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;\n            if (uVar11 != 0) {\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n          }\n          else {\n            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar21->lma = bVar14;\nLAB_00022008:\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\nLAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n            if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((paVar21 != (asection *)(puVar7 + 0x150)) &&\n             ((*(byte *)((int)local_54 + 0x54) & 8) == 0)) {\n            if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }\n            dot = dot + local_4c;\n            if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n              exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }\n            plVar17 = (local_54->output_section_statement).region;\n            if ((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)) {\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case lang_assignment_statement_enum:\n    tree = (etree_type *)(local_54->input_section).section;\n    expld.dataseg.relro = exp_seg_relro_none;\n    again = dot;\n    exp_fold_tree(tree,output_section_statement->bfd_section,(bfd_vma *)&again);\n    plVar6 = expld.dataseg.relro_start_stat;\n    plVar8 = expld.dataseg.relro_end_stat;\n    if (expld.dataseg.relro == exp_seg_relro_start) {\n      plVar6 = local_54;\n      if ((expld.dataseg.relro_start_stat != (lang_statement_union *)0x0) &&\n         (plVar6 = expld.dataseg.relro_start_stat, expld.dataseg.relro_start_stat != local_54)) {\n        uVar10 = 0x137c;\n        goto LAB_000222ec;\n      }\n    }\n    else if (((expld.dataseg.relro == exp_seg_relro_end) &&\n             (plVar8 = local_54, expld.dataseg.relro_end_stat != (lang_statement_union *)0x0)) &&\n            (plVar8 = expld.dataseg.relro_end_stat, expld.dataseg.relro_end_stat != local_54)) {\n      uVar10 = 0x1385;\nLAB_000222ec:\n      info_assert("../../ld/ldlang.c",uVar10);\n      plVar6 = expld.dataseg.relro_start_stat;\n      plVar8 = expld.dataseg.relro_end_stat;\n    }\n    expld.dataseg.relro_end_stat = plVar8;\n    expld.dataseg.relro_start_stat = plVar6;\n    expld.dataseg.relro = exp_seg_relro_none;\n    if ((((tree->type).node_class & ~etree_unary) == etree_assign) &&\n       ((*(tree->assign).dst != '.' || ((tree->assign).dst[1] != '\0')))) {\n      output_section_statement->field_0x54 = output_section_statement->field_0x54 | 0x10;\n    }\n    if ((output_section_statement->field_0x54 & 8) == 0) {\n      if (abs_output_section == output_section_statement) {\n        plVar17 = lang_memory_region_lookup("*default*",0);\n        plVar17->current = again;\n        dot = again;\n      }\n      else if (again != dot) {\n        insert_pad((lang_statement_union_type **)local_54,local_48,\n                   again - dot << ((byte)opb_shift & 0x1f),output_section_statement->bfd_section,dot\n                  );\n        local_54 = (local_54->header).next;\n        dot = again;\n        if ((output_section_statement->sectype != noalloc_section) &&\n           ((output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)))) {\n          pfVar1 = &output_section_statement->bfd_section->flags;\n          *pfVar1 = *pfVar1 | 1;\n        }\n      }\n    }\n    break;\n  case lang_input_statement_enum:\n  case lang_address_statement_enum:\n  case lang_target_statement_enum:\n  case lang_output_statement_enum:\n  case lang_insert_statement_enum:\n    goto _L1363;\n  case lang_wild_statement_enum:\n    prev_00 = (lang_statement_list_type *)&(local_54->reloc_statement).addend_exp;\n    goto LAB_00021d85;\n  case lang_input_section_enum:\n    if (relax != (bfd_boolean *)0x0) {\n      pbVar2 = (bfd_section *)((lang_statement_list_type *)&(local_54->input_section).section)->head\n      ;\n      pbVar3 = pbVar2->owner;\n      bVar12 = (*pbVar3->xvec->_bfd_relax_section)\n                         (pbVar3,pbVar2,(bfd_link_info *)PTR_link_info_000bafb8,&again);\n      if (bVar12 == 0) {\n        pcVar15 = (char *)dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        einfo(pcVar15);\n      }\n      if (again != 0) {\n        *relax = 1;\n      }\n    }\n    paVar21 = output_section_statement->bfd_section;\n    paVar18 = (((lang_statement_header_type *)prev)->next->input_section).section;\n    if ((*(ushort *)&paVar18->field_0x18 & 0x380) == 0x200) {\n      paVar18->output_offset = paVar18->vma - paVar21->vma;\n    }\n    else if (((paVar18->flags & 0x8000) == 0) && ((output_section_statement->field_0x54 & 8) == 0))\n    {\n      uVar10 = output_section_statement->subsection_alignment;\n      if (uVar10 == 0xffffffff) {\n        uVar10 = paVar18->alignment_power;\n      }\n      else {\n        paVar18->alignment_power = uVar10;\n      }\n      if (paVar21->alignment_power < uVar10) {\n        paVar21->alignment_power = uVar10;\n        uVar10 = paVar18->alignment_power;\n      }\n      iVar9 = 1 << ((byte)uVar10 & 0x1f);\n      uVar10 = (dot - 1) + iVar9 & -iVar9;\n      iVar9 = uVar10 - dot;\n      if (iVar9 != 0) {\n        local_4c._0_1_ = (undefined1)opb_shift;\n        insert_pad(prev,local_48,iVar9 << ((undefined1)local_4c & 0x1f),paVar21,dot);\n        dot = uVar10;\n      }\n      uVar10 = opb_shift;\n      bVar14 = paVar21->vma;\n      paVar18->output_offset = dot - bVar14;\n      dot = dot + (paVar18->size >> ((byte)uVar10 & 0x1f));\n      if ((paVar21->flags & 0x800) == 0) {\n        paVar21->size = dot - bVar14 << ((byte)uVar10 & 0x1f);\n      }\n    }\n    else {\n      paVar18->output_offset = dot - paVar21->vma;\n    }\n    break;\n  case lang_object_symbols_statement_enum:\n    link_info.create_object_symbols_section = output_section_statement->bfd_section;\n    goto _L1363;\n  case lang_fill_statement_enum:\n    (local_54->wild_statement).section_list = (wildcard_list *)output_section_statement->bfd_section\n    ;\n    local_48 = (fill_type *)((lang_statement_list_type *)&(local_54->fill_statement).fill)->head;\n    break;\n  case lang_data_statement_enum:\n    *(char **)&(local_54->wild_statement).children =\n         (char *)(dot - output_section_statement->bfd_section->vma);\n    (local_54->wild_statement).keep_sections = (bfd_boolean)output_section_statement->bfd_section;\n    exp_fold_tree((local_54->data_statement).exp,current_section,&dot);\n    uVar10 = (int)((lang_statement_list_type *)&(local_54->data_statement).type)->head - 0x11a;\n    if (4 < uVar10) {\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x14f8,"lang_size_sections_1");\n    }\n    bVar19 = (byte)opb_shift;\n    uVar11 = 1 << (bVar19 & 0x1f);\n    if (uVar11 < *(uint *)(CSWTCH_329 + uVar10 * 4)) {\n      uVar11 = *(uint *)(CSWTCH_329 + uVar10 * 4);\n    }\n    paVar21 = output_section_statement->bfd_section;\n    dot = (uVar11 >> (bVar19 & 0x1f)) + dot;\n    if ((paVar21->flags & 0x800) == 0) {\n      paVar21->size = dot - paVar21->vma << (bVar19 & 0x1f);\n    }\n    break;\n  case lang_reloc_statement_enum:\n    (local_54->wild_statement).walk_wild_section_handler =\n         (walk_wild_section_handler_t)(dot - output_section_statement->bfd_section->vma);\n    (local_54->wild_statement).exclude_name_list =\n         (name_list *)output_section_statement->bfd_section;\n    iVar9 = bfd_get_reloc_size((lang_statement_union **)(local_54->wild_statement).filenames_sorted)\n    ;\n    paVar21 = output_section_statement->bfd_section;\n    dot = (iVar9 >> ((byte)opb_shift & 0x1f)) + dot;\n    if ((paVar21->flags & 0x800) == 0) {\n      paVar21->size = dot - paVar21->vma << ((byte)opb_shift & 0x1f);\n    }\n    break;\n  case lang_padding_statement_enum:\n    (local_54->wild_statement).filenames_sorted = 0;\n    (local_54->wild_statement).filename = (char *)(dot - output_section_statement->bfd_section->vma)\n    ;\n    break;\n  case lang_group_statement_enum:\n    prev_00 = (lang_statement_list_type *)&(local_54->assignment_statement).exp;\n    goto LAB_00021d85;\n  case lang_constructors_statement_enum:\n    prev_00 = &constructor_list;\nLAB_00021d85:\n    dot = lang_size_sections_1\n                    (&prev_00->head,output_section_statement,local_48,dot,relax,check_regions);\n    break;\n  default:\n    info_assert("../../ld/ldlang.c",0x15a7);\n  }\nLAB_00021b28:\n  plVar6 = (local_54->header).next;\n  prev = (lang_statement_union_type **)local_54;\n  goto joined_r0x00021ad5;\n_L1363:\n  goto LAB_00021b28;\n}\n\n" comment comment (function_definition "bfd_vma __regparm3\nlang_size_sections_1\n          (lang_statement_union_type **prev,\n          lang_output_section_statement_type *output_section_statement,fill_type *fill,bfd_vma dot,\n          bfd_boolean *relax,bfd_boolean check_regions)\n\n{\n  flagword *pfVar1;\n  bfd_section *pbVar2;\n  bfd *pbVar3;\n  etree_type *tree;\n  lang_memory_region_type *plVar4;\n  uint uVar5;\n  lang_statement_union *plVar6;\n  undefined *puVar7;\n  lang_statement_union *plVar8;\n  asection *current_section;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  bfd_boolean bVar12;\n  lang_statement_list_type *prev_00;\n  char *pcVar13;\n  bfd_vma bVar14;\n  char *pcVar15;\n  etree_union *peVar16;\n  lang_memory_region_type *plVar17;\n  asection *paVar18;\n  byte bVar19;\n  statement_enum sVar20;\n  asection *paVar21;\n  undefined **extraout_ECX;\n  byte *pbVar22;\n  byte *pbVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  undefined **ppuVar27;\n  lang_statement_union *local_54;\n  statement_enum local_4c;\n  fill_type *local_48;\n  uint local_3c;\n  bfd_vma local_34;\n  bfd_boolean again;\n  undefined4 uStack_14;\n  \n  bVar26 = 0;\n  uStack_14 = 0x21aa9;\n  current_section = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n  plVar6 = *prev;\n  local_48 = fill;\njoined_r0x00021ad5:\n  local_54 = plVar6;\n  if (local_54 == (lang_statement_union *)0x0) {\n    return dot;\n  }\n  local_4c = (local_54->wild_statement).header.type;\n  switch(local_4c) {\n  case lang_output_section_statement_enum:\n    if ((local_54->output_section_statement).constraint != -1) {\n      peVar16 = (local_54->output_section_statement).addr_tree;\n      if (peVar16 == (etree_union *)0x0) {\n        if (((link_info._0_1_ & 3) == 2) &&\n           ((link_info.output_bfd)->xvec->flavour == bfd_target_coff_flavour)) {\n          peVar16 = exp_intop(0);\n          (local_54->output_section_statement).addr_tree = peVar16;\n          if (peVar16 != (etree_type *)0x0) goto LAB_00021dcc;\n        }\n      }\n      else {\nLAB_00021dcc:\n        *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) & 0xfe;\n        exp_fold_tree(peVar16,(asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&dot);\n        if (expld.result.valid_p == 0) {\n          if (expld.phase != lang_mark_phase_enum) {\n            pcVar15 = *(char **)&(local_54->wild_statement).children;\n            peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];\n            pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5);\n            einfo(pcVar13,peVar16,pcVar15);\n          }\n        }\n        else {\n          dot = expld.result.value;\n          if (expld.result.section != (asection *)0x0) {\n            dot = expld.result.value + (expld.result.section)->vma;\n          }\n        }\n      }\n      bVar14 = dot;\n      puVar7 = PTR__bfd_std_section_000bafc4;\n      paVar21 = (local_54->output_section_statement).bfd_section;\n      if (paVar21 != (asection *)0x0) {\n        if (((link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour < 2) &&\n           (uVar10 = paVar21->flags, (uVar10 & 0x4000000) != 0)) {\n          paVar18 = (local_54->input_section).section;\n          if (((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)) || (paVar18->id != 5)\n             ) {\n            plVar6 = (local_54->wild_statement).children.head;\n            pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5);\n            einfo(pcVar15,plVar6);\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar18 = (local_54->input_section).section;\n            uVar10 = paVar21->flags;\n          }\n          uVar11 = paVar18->index;\n          bVar14 = *(bfd_vma *)(uVar11 + 0x1c);\n          paVar21->field_0x18 = paVar21->field_0x18 | 1;\n          paVar21->lma = bVar14;\n          paVar21->vma = bVar14;\n          if ((uVar10 & 0x800) == 0) {\n            paVar21->size = *(bfd_size_type *)(uVar11 + 0x24);\n          }\n        }\n        else {\n          if (paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            local_3c = 0;\n            sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum) {\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }\n          }\n          else {\n            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }\n            sVar20 = local_4c;\n            if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }\n            paVar21->field_0x18 = paVar21->field_0x18 | 1;\n            paVar21->lma = bVar14;\n            paVar21->vma = bVar14;\n            paVar21->output_offset = 0;\n          }\n          lang_size_sections_1\n                    ((lang_statement_union_type **)&(local_54->assignment_statement).exp,\n                     &local_54->output_section_statement,(local_54->output_section_statement).fill,\n                     bVar14,relax,check_regions);\n          bVar19 = *(byte *)((int)local_54 + 0x54);\n          *(byte *)((int)local_54 + 0x54) = bVar19 | 1;\n          paVar21 = (local_54->output_section_statement).bfd_section;\n          if (paVar21 == (asection *)(puVar7 + 0x150)) {\n            uVar10 = *(uint *)(puVar7 + 0x174);\nLAB_000223fa:\n            if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar10 = paVar21->size;\n            if ((bVar19 & 8) != 0) goto LAB_000223fa;\n            dot = paVar21->vma;\n            if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }\n          }\n          plVar17 = (lang_memory_region_type *)(local_54->reloc_statement).output_section;\n          if (plVar17 == (lang_memory_region_type *)0x0) {\n            plVar17 = lang_memory_region_lookup("*default*",0);\n          }\n          if ((local_54->output_section_statement).load_base == (etree_type *)0x0) {\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            plVar4 = (local_54->output_section_statement).lma_region;\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\n            if (plVar4 != (lang_memory_region_type *)0x0) {\n              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }\n            if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;\n            if (uVar11 != 0) {\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n          }\n          else {\n            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar21->lma = bVar14;\nLAB_00022008:\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\nLAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n            if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((paVar21 != (asection *)(puVar7 + 0x150)) &&\n             ((*(byte *)((int)local_54 + 0x54) & 8) == 0)) {\n            if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }\n            dot = dot + local_4c;\n            if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n              exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }\n            plVar17 = (local_54->output_section_statement).region;\n            if ((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)) {\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case lang_assignment_statement_enum:\n    tree = (etree_type *)(local_54->input_section).section;\n    expld.dataseg.relro = exp_seg_relro_none;\n    again = dot;\n    exp_fold_tree(tree,output_section_statement->bfd_section,(bfd_vma *)&again);\n    plVar6 = expld.dataseg.relro_start_stat;\n    plVar8 = expld.dataseg.relro_end_stat;\n    if (expld.dataseg.relro == exp_seg_relro_start) {\n      plVar6 = local_54;\n      if ((expld.dataseg.relro_start_stat != (lang_statement_union *)0x0) &&\n         (plVar6 = expld.dataseg.relro_start_stat, expld.dataseg.relro_start_stat != local_54)) {\n        uVar10 = 0x137c;\n        goto LAB_000222ec;\n      }\n    }\n    else if (((expld.dataseg.relro == exp_seg_relro_end) &&\n             (plVar8 = local_54, expld.dataseg.relro_end_stat != (lang_statement_union *)0x0)) &&\n            (plVar8 = expld.dataseg.relro_end_stat, expld.dataseg.relro_end_stat != local_54)) {\n      uVar10 = 0x1385;\nLAB_000222ec:\n      info_assert("../../ld/ldlang.c",uVar10);\n      plVar6 = expld.dataseg.relro_start_stat;\n      plVar8 = expld.dataseg.relro_end_stat;\n    }\n    expld.dataseg.relro_end_stat = plVar8;\n    expld.dataseg.relro_start_stat = plVar6;\n    expld.dataseg.relro = exp_seg_relro_none;\n    if ((((tree->type).node_class & ~etree_unary) == etree_assign) &&\n       ((*(tree->assign).dst != '.' || ((tree->assign).dst[1] != '\0')))) {\n      output_section_statement->field_0x54 = output_section_statement->field_0x54 | 0x10;\n    }\n    if ((output_section_statement->field_0x54 & 8) == 0) {\n      if (abs_output_section == output_section_statement) {\n        plVar17 = lang_memory_region_lookup("*default*",0);\n        plVar17->current = again;\n        dot = again;\n      }\n      else if (again != dot) {\n        insert_pad((lang_statement_union_type **)local_54,local_48,\n                   again - dot << ((byte)opb_shift & 0x1f),output_section_statement->bfd_section,dot\n                  );\n        local_54 = (local_54->header).next;\n        dot = again;\n        if ((output_section_statement->sectype != noalloc_section) &&\n           ((output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)))) {\n          pfVar1 = &output_section_statement->bfd_section->flags;\n          *pfVar1 = *pfVar1 | 1;\n        }\n      }\n    }\n    break;\n  case lang_input_statement_enum:\n  case lang_address_statement_enum:\n  case lang_target_statement_enum:\n  case lang_output_statement_enum:\n  case lang_insert_statement_enum:\n    goto _L1363;\n  case lang_wild_statement_enum:\n    prev_00 = (lang_statement_list_type *)&(local_54->reloc_statement).addend_exp;\n    goto LAB_00021d85;\n  case lang_input_section_enum:\n    if (relax != (bfd_boolean *)0x0) {\n      pbVar2 = (bfd_section *)((lang_statement_list_type *)&(local_54->input_section).section)->head\n      ;\n      pbVar3 = pbVar2->owner;\n      bVar12 = (*pbVar3->xvec->_bfd_relax_section)\n                         (pbVar3,pbVar2,(bfd_link_info *)PTR_link_info_000bafb8,&again);\n      if (bVar12 == 0) {\n        pcVar15 = (char *)dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        einfo(pcVar15);\n      }\n      if (again != 0) {\n        *relax = 1;\n      }\n    }\n    paVar21 = output_section_statement->bfd_section;\n    paVar18 = (((lang_statement_header_type *)prev)->next->input_section).section;\n    if ((*(ushort *)&paVar18->field_0x18 & 0x380) == 0x200) {\n      paVar18->output_offset = paVar18->vma - paVar21->vma;\n    }\n    else if (((paVar18->flags & 0x8000) == 0) && ((output_section_statement->field_0x54 & 8) == 0))\n    {\n      uVar10 = output_section_statement->subsection_alignment;\n      if (uVar10 == 0xffffffff) {\n        uVar10 = paVar18->alignment_power;\n      }\n      else {\n        paVar18->alignment_power = uVar10;\n      }\n      if (paVar21->alignment_power < uVar10) {\n        paVar21->alignment_power = uVar10;\n        uVar10 = paVar18->alignment_power;\n      }\n      iVar9 = 1 << ((byte)uVar10 & 0x1f);\n      uVar10 = (dot - 1) + iVar9 & -iVar9;\n      iVar9 = uVar10 - dot;\n      if (iVar9 != 0) {\n        local_4c._0_1_ = (undefined1)opb_shift;\n        insert_pad(prev,local_48,iVar9 << ((undefined1)local_4c & 0x1f),paVar21,dot);\n        dot = uVar10;\n      }\n      uVar10 = opb_shift;\n      bVar14 = paVar21->vma;\n      paVar18->output_offset = dot - bVar14;\n      dot = dot + (paVar18->size >> ((byte)uVar10 & 0x1f));\n      if ((paVar21->flags & 0x800) == 0) {\n        paVar21->size = dot - bVar14 << ((byte)uVar10 & 0x1f);\n      }\n    }\n    else {\n      paVar18->output_offset = dot - paVar21->vma;\n    }\n    break;\n  case lang_object_symbols_statement_enum:\n    link_info.create_object_symbols_section = output_section_statement->bfd_section;\n    goto _L1363;\n  case lang_fill_statement_enum:\n    (local_54->wild_statement).section_list = (wildcard_list *)output_section_statement->bfd_section\n    ;\n    local_48 = (fill_type *)((lang_statement_list_type *)&(local_54->fill_statement).fill)->head;\n    break;\n  case lang_data_statement_enum:\n    *(char **)&(local_54->wild_statement).children =\n         (char *)(dot - output_section_statement->bfd_section->vma);\n    (local_54->wild_statement).keep_sections = (bfd_boolean)output_section_statement->bfd_section;\n    exp_fold_tree((local_54->data_statement).exp,current_section,&dot);\n    uVar10 = (int)((lang_statement_list_type *)&(local_54->data_statement).type)->head - 0x11a;\n    if (4 < uVar10) {\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x14f8,"lang_size_sections_1");\n    }\n    bVar19 = (byte)opb_shift;\n    uVar11 = 1 << (bVar19 & 0x1f);\n    if (uVar11 < *(uint *)(CSWTCH_329 + uVar10 * 4)) {\n      uVar11 = *(uint *)(CSWTCH_329 + uVar10 * 4);\n    }\n    paVar21 = output_section_statement->bfd_section;\n    dot = (uVar11 >> (bVar19 & 0x1f)) + dot;\n    if ((paVar21->flags & 0x800) == 0) {\n      paVar21->size = dot - paVar21->vma << (bVar19 & 0x1f);\n    }\n    break;\n  case lang_reloc_statement_enum:\n    (local_54->wild_statement).walk_wild_section_handler =\n         (walk_wild_section_handler_t)(dot - output_section_statement->bfd_section->vma);\n    (local_54->wild_statement).exclude_name_list =\n         (name_list *)output_section_statement->bfd_section;\n    iVar9 = bfd_get_reloc_size((lang_statement_union **)(local_54->wild_statement).filenames_sorted)\n    ;\n    paVar21 = output_section_statement->bfd_section;\n    dot = (iVar9 >> ((byte)opb_shift & 0x1f)) + dot;\n    if ((paVar21->flags & 0x800) == 0) {\n      paVar21->size = dot - paVar21->vma << ((byte)opb_shift & 0x1f);\n    }\n    break;\n  case lang_padding_statement_enum:\n    (local_54->wild_statement).filenames_sorted = 0;\n    (local_54->wild_statement).filename = (char *)(dot - output_section_statement->bfd_section->vma)\n    ;\n    break;\n  case lang_group_statement_enum:\n    prev_00 = (lang_statement_list_type *)&(local_54->assignment_statement).exp;\n    goto LAB_00021d85;\n  case lang_constructors_statement_enum:\n    prev_00 = &constructor_list;\nLAB_00021d85:\n    dot = lang_size_sections_1\n                    (&prev_00->head,output_section_statement,local_48,dot,relax,check_regions);\n    break;\n  default:\n    info_assert("../../ld/ldlang.c",0x15a7);\n  }\nLAB_00021b28:\n  plVar6 = (local_54->header).next;\n  prev = (lang_statement_union_type **)local_54;\n  goto joined_r0x00021ad5;\n_L1363:\n  goto LAB_00021b28;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "lang_size_sections_1\n          (lang_statement_union_type **prev,\n          lang_output_section_statement_type *output_section_statement,fill_type *fill,bfd_vma dot,\n          bfd_boolean *relax,bfd_boolean check_regions)" identifier (parameter_list "(lang_statement_union_type **prev,\n          lang_output_section_statement_type *output_section_statement,fill_type *fill,bfd_vma dot,\n          bfd_boolean *relax,bfd_boolean check_regions)" ( (parameter_declaration "lang_statement_union_type **prev" type_identifier (pointer_declarator "**prev" * (pointer_declarator "*prev" * identifier))) , (parameter_declaration "lang_output_section_statement_type *output_section_statement" type_identifier (pointer_declarator "*output_section_statement" * identifier)) , (parameter_declaration "fill_type *fill" type_identifier (pointer_declarator "*fill" * identifier)) , (parameter_declaration "bfd_vma dot" type_identifier identifier) , (parameter_declaration "bfd_boolean *relax" type_identifier (pointer_declarator "*relax" * identifier)) , (parameter_declaration "bfd_boolean check_regions" type_identifier identifier) ))) (compound_statement "{\n  flagword *pfVar1;\n  bfd_section *pbVar2;\n  bfd *pbVar3;\n  etree_type *tree;\n  lang_memory_region_type *plVar4;\n  uint uVar5;\n  lang_statement_union *plVar6;\n  undefined *puVar7;\n  lang_statement_union *plVar8;\n  asection *current_section;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  bfd_boolean bVar12;\n  lang_statement_list_type *prev_00;\n  char *pcVar13;\n  bfd_vma bVar14;\n  char *pcVar15;\n  etree_union *peVar16;\n  lang_memory_region_type *plVar17;\n  asection *paVar18;\n  byte bVar19;\n  statement_enum sVar20;\n  asection *paVar21;\n  undefined **extraout_ECX;\n  byte *pbVar22;\n  byte *pbVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  undefined **ppuVar27;\n  lang_statement_union *local_54;\n  statement_enum local_4c;\n  fill_type *local_48;\n  uint local_3c;\n  bfd_vma local_34;\n  bfd_boolean again;\n  undefined4 uStack_14;\n  \n  bVar26 = 0;\n  uStack_14 = 0x21aa9;\n  current_section = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);\n  plVar6 = *prev;\n  local_48 = fill;\njoined_r0x00021ad5:\n  local_54 = plVar6;\n  if (local_54 == (lang_statement_union *)0x0) {\n    return dot;\n  }\n  local_4c = (local_54->wild_statement).header.type;\n  switch(local_4c) {\n  case lang_output_section_statement_enum:\n    if ((local_54->output_section_statement).constraint != -1) {\n      peVar16 = (local_54->output_section_statement).addr_tree;\n      if (peVar16 == (etree_union *)0x0) {\n        if (((link_info._0_1_ & 3) == 2) &&\n           ((link_info.output_bfd)->xvec->flavour == bfd_target_coff_flavour)) {\n          peVar16 = exp_intop(0);\n          (local_54->output_section_statement).addr_tree = peVar16;\n          if (peVar16 != (etree_type *)0x0) goto LAB_00021dcc;\n        }\n      }\n      else {\nLAB_00021dcc:\n        *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) & 0xfe;\n        exp_fold_tree(peVar16,(asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&dot);\n        if (expld.result.valid_p == 0) {\n          if (expld.phase != lang_mark_phase_enum) {\n            pcVar15 = *(char **)&(local_54->wild_statement).children;\n            peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];\n            pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5);\n            einfo(pcVar13,peVar16,pcVar15);\n          }\n        }\n        else {\n          dot = expld.result.value;\n          if (expld.result.section != (asection *)0x0) {\n            dot = expld.result.value + (expld.result.section)->vma;\n          }\n        }\n      }\n      bVar14 = dot;\n      puVar7 = PTR__bfd_std_section_000bafc4;\n      paVar21 = (local_54->output_section_statement).bfd_section;\n      if (paVar21 != (asection *)0x0) {\n        if (((link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour < 2) &&\n           (uVar10 = paVar21->flags, (uVar10 & 0x4000000) != 0)) {\n          paVar18 = (local_54->input_section).section;\n          if (((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)) || (paVar18->id != 5)\n             ) {\n            plVar6 = (local_54->wild_statement).children.head;\n            pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5);\n            einfo(pcVar15,plVar6);\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar18 = (local_54->input_section).section;\n            uVar10 = paVar21->flags;\n          }\n          uVar11 = paVar18->index;\n          bVar14 = *(bfd_vma *)(uVar11 + 0x1c);\n          paVar21->field_0x18 = paVar21->field_0x18 | 1;\n          paVar21->lma = bVar14;\n          paVar21->vma = bVar14;\n          if ((uVar10 & 0x800) == 0) {\n            paVar21->size = *(bfd_size_type *)(uVar11 + 0x24);\n          }\n        }\n        else {\n          if (paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            local_3c = 0;\n            sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum) {\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }\n          }\n          else {\n            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }\n            sVar20 = local_4c;\n            if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }\n            paVar21->field_0x18 = paVar21->field_0x18 | 1;\n            paVar21->lma = bVar14;\n            paVar21->vma = bVar14;\n            paVar21->output_offset = 0;\n          }\n          lang_size_sections_1\n                    ((lang_statement_union_type **)&(local_54->assignment_statement).exp,\n                     &local_54->output_section_statement,(local_54->output_section_statement).fill,\n                     bVar14,relax,check_regions);\n          bVar19 = *(byte *)((int)local_54 + 0x54);\n          *(byte *)((int)local_54 + 0x54) = bVar19 | 1;\n          paVar21 = (local_54->output_section_statement).bfd_section;\n          if (paVar21 == (asection *)(puVar7 + 0x150)) {\n            uVar10 = *(uint *)(puVar7 + 0x174);\nLAB_000223fa:\n            if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar10 = paVar21->size;\n            if ((bVar19 & 8) != 0) goto LAB_000223fa;\n            dot = paVar21->vma;\n            if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }\n          }\n          plVar17 = (lang_memory_region_type *)(local_54->reloc_statement).output_section;\n          if (plVar17 == (lang_memory_region_type *)0x0) {\n            plVar17 = lang_memory_region_lookup("*default*",0);\n          }\n          if ((local_54->output_section_statement).load_base == (etree_type *)0x0) {\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            plVar4 = (local_54->output_section_statement).lma_region;\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\n            if (plVar4 != (lang_memory_region_type *)0x0) {\n              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }\n            if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;\n            if (uVar11 != 0) {\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n          }\n          else {\n            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar21->lma = bVar14;\nLAB_00022008:\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\nLAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n            if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((paVar21 != (asection *)(puVar7 + 0x150)) &&\n             ((*(byte *)((int)local_54 + 0x54) & 8) == 0)) {\n            if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }\n            dot = dot + local_4c;\n            if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n              exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }\n            plVar17 = (local_54->output_section_statement).region;\n            if ((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)) {\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case lang_assignment_statement_enum:\n    tree = (etree_type *)(local_54->input_section).section;\n    expld.dataseg.relro = exp_seg_relro_none;\n    again = dot;\n    exp_fold_tree(tree,output_section_statement->bfd_section,(bfd_vma *)&again);\n    plVar6 = expld.dataseg.relro_start_stat;\n    plVar8 = expld.dataseg.relro_end_stat;\n    if (expld.dataseg.relro == exp_seg_relro_start) {\n      plVar6 = local_54;\n      if ((expld.dataseg.relro_start_stat != (lang_statement_union *)0x0) &&\n         (plVar6 = expld.dataseg.relro_start_stat, expld.dataseg.relro_start_stat != local_54)) {\n        uVar10 = 0x137c;\n        goto LAB_000222ec;\n      }\n    }\n    else if (((expld.dataseg.relro == exp_seg_relro_end) &&\n             (plVar8 = local_54, expld.dataseg.relro_end_stat != (lang_statement_union *)0x0)) &&\n            (plVar8 = expld.dataseg.relro_end_stat, expld.dataseg.relro_end_stat != local_54)) {\n      uVar10 = 0x1385;\nLAB_000222ec:\n      info_assert("../../ld/ldlang.c",uVar10);\n      plVar6 = expld.dataseg.relro_start_stat;\n      plVar8 = expld.dataseg.relro_end_stat;\n    }\n    expld.dataseg.relro_end_stat = plVar8;\n    expld.dataseg.relro_start_stat = plVar6;\n    expld.dataseg.relro = exp_seg_relro_none;\n    if ((((tree->type).node_class & ~etree_unary) == etree_assign) &&\n       ((*(tree->assign).dst != '.' || ((tree->assign).dst[1] != '\0')))) {\n      output_section_statement->field_0x54 = output_section_statement->field_0x54 | 0x10;\n    }\n    if ((output_section_statement->field_0x54 & 8) == 0) {\n      if (abs_output_section == output_section_statement) {\n        plVar17 = lang_memory_region_lookup("*default*",0);\n        plVar17->current = again;\n        dot = again;\n      }\n      else if (again != dot) {\n        insert_pad((lang_statement_union_type **)local_54,local_48,\n                   again - dot << ((byte)opb_shift & 0x1f),output_section_statement->bfd_section,dot\n                  );\n        local_54 = (local_54->header).next;\n        dot = again;\n        if ((output_section_statement->sectype != noalloc_section) &&\n           ((output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)))) {\n          pfVar1 = &output_section_statement->bfd_section->flags;\n          *pfVar1 = *pfVar1 | 1;\n        }\n      }\n    }\n    break;\n  case lang_input_statement_enum:\n  case lang_address_statement_enum:\n  case lang_target_statement_enum:\n  case lang_output_statement_enum:\n  case lang_insert_statement_enum:\n    goto _L1363;\n  case lang_wild_statement_enum:\n    prev_00 = (lang_statement_list_type *)&(local_54->reloc_statement).addend_exp;\n    goto LAB_00021d85;\n  case lang_input_section_enum:\n    if (relax != (bfd_boolean *)0x0) {\n      pbVar2 = (bfd_section *)((lang_statement_list_type *)&(local_54->input_section).section)->head\n      ;\n      pbVar3 = pbVar2->owner;\n      bVar12 = (*pbVar3->xvec->_bfd_relax_section)\n                         (pbVar3,pbVar2,(bfd_link_info *)PTR_link_info_000bafb8,&again);\n      if (bVar12 == 0) {\n        pcVar15 = (char *)dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        einfo(pcVar15);\n      }\n      if (again != 0) {\n        *relax = 1;\n      }\n    }\n    paVar21 = output_section_statement->bfd_section;\n    paVar18 = (((lang_statement_header_type *)prev)->next->input_section).section;\n    if ((*(ushort *)&paVar18->field_0x18 & 0x380) == 0x200) {\n      paVar18->output_offset = paVar18->vma - paVar21->vma;\n    }\n    else if (((paVar18->flags & 0x8000) == 0) && ((output_section_statement->field_0x54 & 8) == 0))\n    {\n      uVar10 = output_section_statement->subsection_alignment;\n      if (uVar10 == 0xffffffff) {\n        uVar10 = paVar18->alignment_power;\n      }\n      else {\n        paVar18->alignment_power = uVar10;\n      }\n      if (paVar21->alignment_power < uVar10) {\n        paVar21->alignment_power = uVar10;\n        uVar10 = paVar18->alignment_power;\n      }\n      iVar9 = 1 << ((byte)uVar10 & 0x1f);\n      uVar10 = (dot - 1) + iVar9 & -iVar9;\n      iVar9 = uVar10 - dot;\n      if (iVar9 != 0) {\n        local_4c._0_1_ = (undefined1)opb_shift;\n        insert_pad(prev,local_48,iVar9 << ((undefined1)local_4c & 0x1f),paVar21,dot);\n        dot = uVar10;\n      }\n      uVar10 = opb_shift;\n      bVar14 = paVar21->vma;\n      paVar18->output_offset = dot - bVar14;\n      dot = dot + (paVar18->size >> ((byte)uVar10 & 0x1f));\n      if ((paVar21->flags & 0x800) == 0) {\n        paVar21->size = dot - bVar14 << ((byte)uVar10 & 0x1f);\n      }\n    }\n    else {\n      paVar18->output_offset = dot - paVar21->vma;\n    }\n    break;\n  case lang_object_symbols_statement_enum:\n    link_info.create_object_symbols_section = output_section_statement->bfd_section;\n    goto _L1363;\n  case lang_fill_statement_enum:\n    (local_54->wild_statement).section_list = (wildcard_list *)output_section_statement->bfd_section\n    ;\n    local_48 = (fill_type *)((lang_statement_list_type *)&(local_54->fill_statement).fill)->head;\n    break;\n  case lang_data_statement_enum:\n    *(char **)&(local_54->wild_statement).children =\n         (char *)(dot - output_section_statement->bfd_section->vma);\n    (local_54->wild_statement).keep_sections = (bfd_boolean)output_section_statement->bfd_section;\n    exp_fold_tree((local_54->data_statement).exp,current_section,&dot);\n    uVar10 = (int)((lang_statement_list_type *)&(local_54->data_statement).type)->head - 0x11a;\n    if (4 < uVar10) {\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x14f8,"lang_size_sections_1");\n    }\n    bVar19 = (byte)opb_shift;\n    uVar11 = 1 << (bVar19 & 0x1f);\n    if (uVar11 < *(uint *)(CSWTCH_329 + uVar10 * 4)) {\n      uVar11 = *(uint *)(CSWTCH_329 + uVar10 * 4);\n    }\n    paVar21 = output_section_statement->bfd_section;\n    dot = (uVar11 >> (bVar19 & 0x1f)) + dot;\n    if ((paVar21->flags & 0x800) == 0) {\n      paVar21->size = dot - paVar21->vma << (bVar19 & 0x1f);\n    }\n    break;\n  case lang_reloc_statement_enum:\n    (local_54->wild_statement).walk_wild_section_handler =\n         (walk_wild_section_handler_t)(dot - output_section_statement->bfd_section->vma);\n    (local_54->wild_statement).exclude_name_list =\n         (name_list *)output_section_statement->bfd_section;\n    iVar9 = bfd_get_reloc_size((lang_statement_union **)(local_54->wild_statement).filenames_sorted)\n    ;\n    paVar21 = output_section_statement->bfd_section;\n    dot = (iVar9 >> ((byte)opb_shift & 0x1f)) + dot;\n    if ((paVar21->flags & 0x800) == 0) {\n      paVar21->size = dot - paVar21->vma << ((byte)opb_shift & 0x1f);\n    }\n    break;\n  case lang_padding_statement_enum:\n    (local_54->wild_statement).filenames_sorted = 0;\n    (local_54->wild_statement).filename = (char *)(dot - output_section_statement->bfd_section->vma)\n    ;\n    break;\n  case lang_group_statement_enum:\n    prev_00 = (lang_statement_list_type *)&(local_54->assignment_statement).exp;\n    goto LAB_00021d85;\n  case lang_constructors_statement_enum:\n    prev_00 = &constructor_list;\nLAB_00021d85:\n    dot = lang_size_sections_1\n                    (&prev_00->head,output_section_statement,local_48,dot,relax,check_regions);\n    break;\n  default:\n    info_assert("../../ld/ldlang.c",0x15a7);\n  }\nLAB_00021b28:\n  plVar6 = (local_54->header).next;\n  prev = (lang_statement_union_type **)local_54;\n  goto joined_r0x00021ad5;\n_L1363:\n  goto LAB_00021b28;\n}" { (declaration "flagword *pfVar1;" type_identifier (pointer_declarator "*pfVar1" * identifier) ;) (declaration "bfd_section *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "bfd *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "etree_type *tree;" type_identifier (pointer_declarator "*tree" * identifier) ;) (declaration "lang_memory_region_type *plVar4;" type_identifier (pointer_declarator "*plVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "lang_statement_union *plVar6;" type_identifier (pointer_declarator "*plVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "lang_statement_union *plVar8;" type_identifier (pointer_declarator "*plVar8" * identifier) ;) (declaration "asection *current_section;" type_identifier (pointer_declarator "*current_section" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "bfd_boolean bVar12;" type_identifier identifier ;) (declaration "lang_statement_list_type *prev_00;" type_identifier (pointer_declarator "*prev_00" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "bfd_vma bVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "etree_union *peVar16;" type_identifier (pointer_declarator "*peVar16" * identifier) ;) (declaration "lang_memory_region_type *plVar17;" type_identifier (pointer_declarator "*plVar17" * identifier) ;) (declaration "asection *paVar18;" type_identifier (pointer_declarator "*paVar18" * identifier) ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "statement_enum sVar20;" type_identifier identifier ;) (declaration "asection *paVar21;" type_identifier (pointer_declarator "*paVar21" * identifier) ;) (declaration "undefined **extraout_ECX;" type_identifier (pointer_declarator "**extraout_ECX" * (pointer_declarator "*extraout_ECX" * identifier)) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "byte bVar26;" type_identifier identifier ;) (declaration "undefined **ppuVar27;" type_identifier (pointer_declarator "**ppuVar27" * (pointer_declarator "*ppuVar27" * identifier)) ;) (declaration "lang_statement_union *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "statement_enum local_4c;" type_identifier identifier ;) (declaration "fill_type *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "bfd_vma local_34;" type_identifier identifier ;) (declaration "bfd_boolean again;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar26 = 0;" (assignment_expression "bVar26 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x21aa9;" (assignment_expression "uStack_14 = 0x21aa9" identifier = number_literal) ;) (expression_statement "current_section = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150);" (assignment_expression "current_section = (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)" identifier = (cast_expression "(asection *)(PTR__bfd_std_section_000bafc4 + 0x150)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x150)" ( (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal) )))) ;) (expression_statement "plVar6 = *prev;" (assignment_expression "plVar6 = *prev" identifier = (pointer_expression "*prev" * identifier)) ;) (expression_statement "local_48 = fill;" (assignment_expression "local_48 = fill" identifier = identifier) ;) (labeled_statement "joined_r0x00021ad5:\n  local_54 = plVar6;" statement_identifier : (expression_statement "local_54 = plVar6;" (assignment_expression "local_54 = plVar6" identifier = identifier) ;)) (if_statement "if (local_54 == (lang_statement_union *)0x0) {\n    return dot;\n  }" if (parenthesized_expression "(local_54 == (lang_statement_union *)0x0)" ( (binary_expression "local_54 == (lang_statement_union *)0x0" identifier == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return dot;\n  }" { (return_statement "return dot;" return identifier ;) })) (expression_statement "local_4c = (local_54->wild_statement).header.type;" (assignment_expression "local_4c = (local_54->wild_statement).header.type" identifier = (field_expression "(local_54->wild_statement).header.type" (field_expression "(local_54->wild_statement).header" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (switch_statement "switch(local_4c) {\n  case lang_output_section_statement_enum:\n    if ((local_54->output_section_statement).constraint != -1) {\n      peVar16 = (local_54->output_section_statement).addr_tree;\n      if (peVar16 == (etree_union *)0x0) {\n        if (((link_info._0_1_ & 3) == 2) &&\n           ((link_info.output_bfd)->xvec->flavour == bfd_target_coff_flavour)) {\n          peVar16 = exp_intop(0);\n          (local_54->output_section_statement).addr_tree = peVar16;\n          if (peVar16 != (etree_type *)0x0) goto LAB_00021dcc;\n        }\n      }\n      else {\nLAB_00021dcc:\n        *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) & 0xfe;\n        exp_fold_tree(peVar16,(asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&dot);\n        if (expld.result.valid_p == 0) {\n          if (expld.phase != lang_mark_phase_enum) {\n            pcVar15 = *(char **)&(local_54->wild_statement).children;\n            peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];\n            pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5);\n            einfo(pcVar13,peVar16,pcVar15);\n          }\n        }\n        else {\n          dot = expld.result.value;\n          if (expld.result.section != (asection *)0x0) {\n            dot = expld.result.value + (expld.result.section)->vma;\n          }\n        }\n      }\n      bVar14 = dot;\n      puVar7 = PTR__bfd_std_section_000bafc4;\n      paVar21 = (local_54->output_section_statement).bfd_section;\n      if (paVar21 != (asection *)0x0) {\n        if (((link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour < 2) &&\n           (uVar10 = paVar21->flags, (uVar10 & 0x4000000) != 0)) {\n          paVar18 = (local_54->input_section).section;\n          if (((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)) || (paVar18->id != 5)\n             ) {\n            plVar6 = (local_54->wild_statement).children.head;\n            pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5);\n            einfo(pcVar15,plVar6);\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar18 = (local_54->input_section).section;\n            uVar10 = paVar21->flags;\n          }\n          uVar11 = paVar18->index;\n          bVar14 = *(bfd_vma *)(uVar11 + 0x1c);\n          paVar21->field_0x18 = paVar21->field_0x18 | 1;\n          paVar21->lma = bVar14;\n          paVar21->vma = bVar14;\n          if ((uVar10 & 0x800) == 0) {\n            paVar21->size = *(bfd_size_type *)(uVar11 + 0x24);\n          }\n        }\n        else {\n          if (paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            local_3c = 0;\n            sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum) {\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }\n          }\n          else {\n            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }\n            sVar20 = local_4c;\n            if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }\n            paVar21->field_0x18 = paVar21->field_0x18 | 1;\n            paVar21->lma = bVar14;\n            paVar21->vma = bVar14;\n            paVar21->output_offset = 0;\n          }\n          lang_size_sections_1\n                    ((lang_statement_union_type **)&(local_54->assignment_statement).exp,\n                     &local_54->output_section_statement,(local_54->output_section_statement).fill,\n                     bVar14,relax,check_regions);\n          bVar19 = *(byte *)((int)local_54 + 0x54);\n          *(byte *)((int)local_54 + 0x54) = bVar19 | 1;\n          paVar21 = (local_54->output_section_statement).bfd_section;\n          if (paVar21 == (asection *)(puVar7 + 0x150)) {\n            uVar10 = *(uint *)(puVar7 + 0x174);\nLAB_000223fa:\n            if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar10 = paVar21->size;\n            if ((bVar19 & 8) != 0) goto LAB_000223fa;\n            dot = paVar21->vma;\n            if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }\n          }\n          plVar17 = (lang_memory_region_type *)(local_54->reloc_statement).output_section;\n          if (plVar17 == (lang_memory_region_type *)0x0) {\n            plVar17 = lang_memory_region_lookup("*default*",0);\n          }\n          if ((local_54->output_section_statement).load_base == (etree_type *)0x0) {\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            plVar4 = (local_54->output_section_statement).lma_region;\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\n            if (plVar4 != (lang_memory_region_type *)0x0) {\n              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }\n            if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;\n            if (uVar11 != 0) {\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n          }\n          else {\n            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar21->lma = bVar14;\nLAB_00022008:\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\nLAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n            if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((paVar21 != (asection *)(puVar7 + 0x150)) &&\n             ((*(byte *)((int)local_54 + 0x54) & 8) == 0)) {\n            if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }\n            dot = dot + local_4c;\n            if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n              exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }\n            plVar17 = (local_54->output_section_statement).region;\n            if ((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)) {\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case lang_assignment_statement_enum:\n    tree = (etree_type *)(local_54->input_section).section;\n    expld.dataseg.relro = exp_seg_relro_none;\n    again = dot;\n    exp_fold_tree(tree,output_section_statement->bfd_section,(bfd_vma *)&again);\n    plVar6 = expld.dataseg.relro_start_stat;\n    plVar8 = expld.dataseg.relro_end_stat;\n    if (expld.dataseg.relro == exp_seg_relro_start) {\n      plVar6 = local_54;\n      if ((expld.dataseg.relro_start_stat != (lang_statement_union *)0x0) &&\n         (plVar6 = expld.dataseg.relro_start_stat, expld.dataseg.relro_start_stat != local_54)) {\n        uVar10 = 0x137c;\n        goto LAB_000222ec;\n      }\n    }\n    else if (((expld.dataseg.relro == exp_seg_relro_end) &&\n             (plVar8 = local_54, expld.dataseg.relro_end_stat != (lang_statement_union *)0x0)) &&\n            (plVar8 = expld.dataseg.relro_end_stat, expld.dataseg.relro_end_stat != local_54)) {\n      uVar10 = 0x1385;\nLAB_000222ec:\n      info_assert("../../ld/ldlang.c",uVar10);\n      plVar6 = expld.dataseg.relro_start_stat;\n      plVar8 = expld.dataseg.relro_end_stat;\n    }\n    expld.dataseg.relro_end_stat = plVar8;\n    expld.dataseg.relro_start_stat = plVar6;\n    expld.dataseg.relro = exp_seg_relro_none;\n    if ((((tree->type).node_class & ~etree_unary) == etree_assign) &&\n       ((*(tree->assign).dst != '.' || ((tree->assign).dst[1] != '\0')))) {\n      output_section_statement->field_0x54 = output_section_statement->field_0x54 | 0x10;\n    }\n    if ((output_section_statement->field_0x54 & 8) == 0) {\n      if (abs_output_section == output_section_statement) {\n        plVar17 = lang_memory_region_lookup("*default*",0);\n        plVar17->current = again;\n        dot = again;\n      }\n      else if (again != dot) {\n        insert_pad((lang_statement_union_type **)local_54,local_48,\n                   again - dot << ((byte)opb_shift & 0x1f),output_section_statement->bfd_section,dot\n                  );\n        local_54 = (local_54->header).next;\n        dot = again;\n        if ((output_section_statement->sectype != noalloc_section) &&\n           ((output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)))) {\n          pfVar1 = &output_section_statement->bfd_section->flags;\n          *pfVar1 = *pfVar1 | 1;\n        }\n      }\n    }\n    break;\n  case lang_input_statement_enum:\n  case lang_address_statement_enum:\n  case lang_target_statement_enum:\n  case lang_output_statement_enum:\n  case lang_insert_statement_enum:\n    goto _L1363;\n  case lang_wild_statement_enum:\n    prev_00 = (lang_statement_list_type *)&(local_54->reloc_statement).addend_exp;\n    goto LAB_00021d85;\n  case lang_input_section_enum:\n    if (relax != (bfd_boolean *)0x0) {\n      pbVar2 = (bfd_section *)((lang_statement_list_type *)&(local_54->input_section).section)->head\n      ;\n      pbVar3 = pbVar2->owner;\n      bVar12 = (*pbVar3->xvec->_bfd_relax_section)\n                         (pbVar3,pbVar2,(bfd_link_info *)PTR_link_info_000bafb8,&again);\n      if (bVar12 == 0) {\n        pcVar15 = (char *)dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        einfo(pcVar15);\n      }\n      if (again != 0) {\n        *relax = 1;\n      }\n    }\n    paVar21 = output_section_statement->bfd_section;\n    paVar18 = (((lang_statement_header_type *)prev)->next->input_section).section;\n    if ((*(ushort *)&paVar18->field_0x18 & 0x380) == 0x200) {\n      paVar18->output_offset = paVar18->vma - paVar21->vma;\n    }\n    else if (((paVar18->flags & 0x8000) == 0) && ((output_section_statement->field_0x54 & 8) == 0))\n    {\n      uVar10 = output_section_statement->subsection_alignment;\n      if (uVar10 == 0xffffffff) {\n        uVar10 = paVar18->alignment_power;\n      }\n      else {\n        paVar18->alignment_power = uVar10;\n      }\n      if (paVar21->alignment_power < uVar10) {\n        paVar21->alignment_power = uVar10;\n        uVar10 = paVar18->alignment_power;\n      }\n      iVar9 = 1 << ((byte)uVar10 & 0x1f);\n      uVar10 = (dot - 1) + iVar9 & -iVar9;\n      iVar9 = uVar10 - dot;\n      if (iVar9 != 0) {\n        local_4c._0_1_ = (undefined1)opb_shift;\n        insert_pad(prev,local_48,iVar9 << ((undefined1)local_4c & 0x1f),paVar21,dot);\n        dot = uVar10;\n      }\n      uVar10 = opb_shift;\n      bVar14 = paVar21->vma;\n      paVar18->output_offset = dot - bVar14;\n      dot = dot + (paVar18->size >> ((byte)uVar10 & 0x1f));\n      if ((paVar21->flags & 0x800) == 0) {\n        paVar21->size = dot - bVar14 << ((byte)uVar10 & 0x1f);\n      }\n    }\n    else {\n      paVar18->output_offset = dot - paVar21->vma;\n    }\n    break;\n  case lang_object_symbols_statement_enum:\n    link_info.create_object_symbols_section = output_section_statement->bfd_section;\n    goto _L1363;\n  case lang_fill_statement_enum:\n    (local_54->wild_statement).section_list = (wildcard_list *)output_section_statement->bfd_section\n    ;\n    local_48 = (fill_type *)((lang_statement_list_type *)&(local_54->fill_statement).fill)->head;\n    break;\n  case lang_data_statement_enum:\n    *(char **)&(local_54->wild_statement).children =\n         (char *)(dot - output_section_statement->bfd_section->vma);\n    (local_54->wild_statement).keep_sections = (bfd_boolean)output_section_statement->bfd_section;\n    exp_fold_tree((local_54->data_statement).exp,current_section,&dot);\n    uVar10 = (int)((lang_statement_list_type *)&(local_54->data_statement).type)->head - 0x11a;\n    if (4 < uVar10) {\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x14f8,"lang_size_sections_1");\n    }\n    bVar19 = (byte)opb_shift;\n    uVar11 = 1 << (bVar19 & 0x1f);\n    if (uVar11 < *(uint *)(CSWTCH_329 + uVar10 * 4)) {\n      uVar11 = *(uint *)(CSWTCH_329 + uVar10 * 4);\n    }\n    paVar21 = output_section_statement->bfd_section;\n    dot = (uVar11 >> (bVar19 & 0x1f)) + dot;\n    if ((paVar21->flags & 0x800) == 0) {\n      paVar21->size = dot - paVar21->vma << (bVar19 & 0x1f);\n    }\n    break;\n  case lang_reloc_statement_enum:\n    (local_54->wild_statement).walk_wild_section_handler =\n         (walk_wild_section_handler_t)(dot - output_section_statement->bfd_section->vma);\n    (local_54->wild_statement).exclude_name_list =\n         (name_list *)output_section_statement->bfd_section;\n    iVar9 = bfd_get_reloc_size((lang_statement_union **)(local_54->wild_statement).filenames_sorted)\n    ;\n    paVar21 = output_section_statement->bfd_section;\n    dot = (iVar9 >> ((byte)opb_shift & 0x1f)) + dot;\n    if ((paVar21->flags & 0x800) == 0) {\n      paVar21->size = dot - paVar21->vma << ((byte)opb_shift & 0x1f);\n    }\n    break;\n  case lang_padding_statement_enum:\n    (local_54->wild_statement).filenames_sorted = 0;\n    (local_54->wild_statement).filename = (char *)(dot - output_section_statement->bfd_section->vma)\n    ;\n    break;\n  case lang_group_statement_enum:\n    prev_00 = (lang_statement_list_type *)&(local_54->assignment_statement).exp;\n    goto LAB_00021d85;\n  case lang_constructors_statement_enum:\n    prev_00 = &constructor_list;\nLAB_00021d85:\n    dot = lang_size_sections_1\n                    (&prev_00->head,output_section_statement,local_48,dot,relax,check_regions);\n    break;\n  default:\n    info_assert("../../ld/ldlang.c",0x15a7);\n  }" switch (parenthesized_expression "(local_4c)" ( identifier )) (compound_statement "{\n  case lang_output_section_statement_enum:\n    if ((local_54->output_section_statement).constraint != -1) {\n      peVar16 = (local_54->output_section_statement).addr_tree;\n      if (peVar16 == (etree_union *)0x0) {\n        if (((link_info._0_1_ & 3) == 2) &&\n           ((link_info.output_bfd)->xvec->flavour == bfd_target_coff_flavour)) {\n          peVar16 = exp_intop(0);\n          (local_54->output_section_statement).addr_tree = peVar16;\n          if (peVar16 != (etree_type *)0x0) goto LAB_00021dcc;\n        }\n      }\n      else {\nLAB_00021dcc:\n        *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) & 0xfe;\n        exp_fold_tree(peVar16,(asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&dot);\n        if (expld.result.valid_p == 0) {\n          if (expld.phase != lang_mark_phase_enum) {\n            pcVar15 = *(char **)&(local_54->wild_statement).children;\n            peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];\n            pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5);\n            einfo(pcVar13,peVar16,pcVar15);\n          }\n        }\n        else {\n          dot = expld.result.value;\n          if (expld.result.section != (asection *)0x0) {\n            dot = expld.result.value + (expld.result.section)->vma;\n          }\n        }\n      }\n      bVar14 = dot;\n      puVar7 = PTR__bfd_std_section_000bafc4;\n      paVar21 = (local_54->output_section_statement).bfd_section;\n      if (paVar21 != (asection *)0x0) {\n        if (((link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour < 2) &&\n           (uVar10 = paVar21->flags, (uVar10 & 0x4000000) != 0)) {\n          paVar18 = (local_54->input_section).section;\n          if (((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)) || (paVar18->id != 5)\n             ) {\n            plVar6 = (local_54->wild_statement).children.head;\n            pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5);\n            einfo(pcVar15,plVar6);\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar18 = (local_54->input_section).section;\n            uVar10 = paVar21->flags;\n          }\n          uVar11 = paVar18->index;\n          bVar14 = *(bfd_vma *)(uVar11 + 0x1c);\n          paVar21->field_0x18 = paVar21->field_0x18 | 1;\n          paVar21->lma = bVar14;\n          paVar21->vma = bVar14;\n          if ((uVar10 & 0x800) == 0) {\n            paVar21->size = *(bfd_size_type *)(uVar11 + 0x24);\n          }\n        }\n        else {\n          if (paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            local_3c = 0;\n            sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum) {\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }\n          }\n          else {\n            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }\n            sVar20 = local_4c;\n            if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }\n            paVar21->field_0x18 = paVar21->field_0x18 | 1;\n            paVar21->lma = bVar14;\n            paVar21->vma = bVar14;\n            paVar21->output_offset = 0;\n          }\n          lang_size_sections_1\n                    ((lang_statement_union_type **)&(local_54->assignment_statement).exp,\n                     &local_54->output_section_statement,(local_54->output_section_statement).fill,\n                     bVar14,relax,check_regions);\n          bVar19 = *(byte *)((int)local_54 + 0x54);\n          *(byte *)((int)local_54 + 0x54) = bVar19 | 1;\n          paVar21 = (local_54->output_section_statement).bfd_section;\n          if (paVar21 == (asection *)(puVar7 + 0x150)) {\n            uVar10 = *(uint *)(puVar7 + 0x174);\nLAB_000223fa:\n            if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar10 = paVar21->size;\n            if ((bVar19 & 8) != 0) goto LAB_000223fa;\n            dot = paVar21->vma;\n            if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }\n          }\n          plVar17 = (lang_memory_region_type *)(local_54->reloc_statement).output_section;\n          if (plVar17 == (lang_memory_region_type *)0x0) {\n            plVar17 = lang_memory_region_lookup("*default*",0);\n          }\n          if ((local_54->output_section_statement).load_base == (etree_type *)0x0) {\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            plVar4 = (local_54->output_section_statement).lma_region;\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\n            if (plVar4 != (lang_memory_region_type *)0x0) {\n              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }\n            if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;\n            if (uVar11 != 0) {\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n          }\n          else {\n            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar21->lma = bVar14;\nLAB_00022008:\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\nLAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n            if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((paVar21 != (asection *)(puVar7 + 0x150)) &&\n             ((*(byte *)((int)local_54 + 0x54) & 8) == 0)) {\n            if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }\n            dot = dot + local_4c;\n            if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n              exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }\n            plVar17 = (local_54->output_section_statement).region;\n            if ((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)) {\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case lang_assignment_statement_enum:\n    tree = (etree_type *)(local_54->input_section).section;\n    expld.dataseg.relro = exp_seg_relro_none;\n    again = dot;\n    exp_fold_tree(tree,output_section_statement->bfd_section,(bfd_vma *)&again);\n    plVar6 = expld.dataseg.relro_start_stat;\n    plVar8 = expld.dataseg.relro_end_stat;\n    if (expld.dataseg.relro == exp_seg_relro_start) {\n      plVar6 = local_54;\n      if ((expld.dataseg.relro_start_stat != (lang_statement_union *)0x0) &&\n         (plVar6 = expld.dataseg.relro_start_stat, expld.dataseg.relro_start_stat != local_54)) {\n        uVar10 = 0x137c;\n        goto LAB_000222ec;\n      }\n    }\n    else if (((expld.dataseg.relro == exp_seg_relro_end) &&\n             (plVar8 = local_54, expld.dataseg.relro_end_stat != (lang_statement_union *)0x0)) &&\n            (plVar8 = expld.dataseg.relro_end_stat, expld.dataseg.relro_end_stat != local_54)) {\n      uVar10 = 0x1385;\nLAB_000222ec:\n      info_assert("../../ld/ldlang.c",uVar10);\n      plVar6 = expld.dataseg.relro_start_stat;\n      plVar8 = expld.dataseg.relro_end_stat;\n    }\n    expld.dataseg.relro_end_stat = plVar8;\n    expld.dataseg.relro_start_stat = plVar6;\n    expld.dataseg.relro = exp_seg_relro_none;\n    if ((((tree->type).node_class & ~etree_unary) == etree_assign) &&\n       ((*(tree->assign).dst != '.' || ((tree->assign).dst[1] != '\0')))) {\n      output_section_statement->field_0x54 = output_section_statement->field_0x54 | 0x10;\n    }\n    if ((output_section_statement->field_0x54 & 8) == 0) {\n      if (abs_output_section == output_section_statement) {\n        plVar17 = lang_memory_region_lookup("*default*",0);\n        plVar17->current = again;\n        dot = again;\n      }\n      else if (again != dot) {\n        insert_pad((lang_statement_union_type **)local_54,local_48,\n                   again - dot << ((byte)opb_shift & 0x1f),output_section_statement->bfd_section,dot\n                  );\n        local_54 = (local_54->header).next;\n        dot = again;\n        if ((output_section_statement->sectype != noalloc_section) &&\n           ((output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)))) {\n          pfVar1 = &output_section_statement->bfd_section->flags;\n          *pfVar1 = *pfVar1 | 1;\n        }\n      }\n    }\n    break;\n  case lang_input_statement_enum:\n  case lang_address_statement_enum:\n  case lang_target_statement_enum:\n  case lang_output_statement_enum:\n  case lang_insert_statement_enum:\n    goto _L1363;\n  case lang_wild_statement_enum:\n    prev_00 = (lang_statement_list_type *)&(local_54->reloc_statement).addend_exp;\n    goto LAB_00021d85;\n  case lang_input_section_enum:\n    if (relax != (bfd_boolean *)0x0) {\n      pbVar2 = (bfd_section *)((lang_statement_list_type *)&(local_54->input_section).section)->head\n      ;\n      pbVar3 = pbVar2->owner;\n      bVar12 = (*pbVar3->xvec->_bfd_relax_section)\n                         (pbVar3,pbVar2,(bfd_link_info *)PTR_link_info_000bafb8,&again);\n      if (bVar12 == 0) {\n        pcVar15 = (char *)dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        einfo(pcVar15);\n      }\n      if (again != 0) {\n        *relax = 1;\n      }\n    }\n    paVar21 = output_section_statement->bfd_section;\n    paVar18 = (((lang_statement_header_type *)prev)->next->input_section).section;\n    if ((*(ushort *)&paVar18->field_0x18 & 0x380) == 0x200) {\n      paVar18->output_offset = paVar18->vma - paVar21->vma;\n    }\n    else if (((paVar18->flags & 0x8000) == 0) && ((output_section_statement->field_0x54 & 8) == 0))\n    {\n      uVar10 = output_section_statement->subsection_alignment;\n      if (uVar10 == 0xffffffff) {\n        uVar10 = paVar18->alignment_power;\n      }\n      else {\n        paVar18->alignment_power = uVar10;\n      }\n      if (paVar21->alignment_power < uVar10) {\n        paVar21->alignment_power = uVar10;\n        uVar10 = paVar18->alignment_power;\n      }\n      iVar9 = 1 << ((byte)uVar10 & 0x1f);\n      uVar10 = (dot - 1) + iVar9 & -iVar9;\n      iVar9 = uVar10 - dot;\n      if (iVar9 != 0) {\n        local_4c._0_1_ = (undefined1)opb_shift;\n        insert_pad(prev,local_48,iVar9 << ((undefined1)local_4c & 0x1f),paVar21,dot);\n        dot = uVar10;\n      }\n      uVar10 = opb_shift;\n      bVar14 = paVar21->vma;\n      paVar18->output_offset = dot - bVar14;\n      dot = dot + (paVar18->size >> ((byte)uVar10 & 0x1f));\n      if ((paVar21->flags & 0x800) == 0) {\n        paVar21->size = dot - bVar14 << ((byte)uVar10 & 0x1f);\n      }\n    }\n    else {\n      paVar18->output_offset = dot - paVar21->vma;\n    }\n    break;\n  case lang_object_symbols_statement_enum:\n    link_info.create_object_symbols_section = output_section_statement->bfd_section;\n    goto _L1363;\n  case lang_fill_statement_enum:\n    (local_54->wild_statement).section_list = (wildcard_list *)output_section_statement->bfd_section\n    ;\n    local_48 = (fill_type *)((lang_statement_list_type *)&(local_54->fill_statement).fill)->head;\n    break;\n  case lang_data_statement_enum:\n    *(char **)&(local_54->wild_statement).children =\n         (char *)(dot - output_section_statement->bfd_section->vma);\n    (local_54->wild_statement).keep_sections = (bfd_boolean)output_section_statement->bfd_section;\n    exp_fold_tree((local_54->data_statement).exp,current_section,&dot);\n    uVar10 = (int)((lang_statement_list_type *)&(local_54->data_statement).type)->head - 0x11a;\n    if (4 < uVar10) {\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x14f8,"lang_size_sections_1");\n    }\n    bVar19 = (byte)opb_shift;\n    uVar11 = 1 << (bVar19 & 0x1f);\n    if (uVar11 < *(uint *)(CSWTCH_329 + uVar10 * 4)) {\n      uVar11 = *(uint *)(CSWTCH_329 + uVar10 * 4);\n    }\n    paVar21 = output_section_statement->bfd_section;\n    dot = (uVar11 >> (bVar19 & 0x1f)) + dot;\n    if ((paVar21->flags & 0x800) == 0) {\n      paVar21->size = dot - paVar21->vma << (bVar19 & 0x1f);\n    }\n    break;\n  case lang_reloc_statement_enum:\n    (local_54->wild_statement).walk_wild_section_handler =\n         (walk_wild_section_handler_t)(dot - output_section_statement->bfd_section->vma);\n    (local_54->wild_statement).exclude_name_list =\n         (name_list *)output_section_statement->bfd_section;\n    iVar9 = bfd_get_reloc_size((lang_statement_union **)(local_54->wild_statement).filenames_sorted)\n    ;\n    paVar21 = output_section_statement->bfd_section;\n    dot = (iVar9 >> ((byte)opb_shift & 0x1f)) + dot;\n    if ((paVar21->flags & 0x800) == 0) {\n      paVar21->size = dot - paVar21->vma << ((byte)opb_shift & 0x1f);\n    }\n    break;\n  case lang_padding_statement_enum:\n    (local_54->wild_statement).filenames_sorted = 0;\n    (local_54->wild_statement).filename = (char *)(dot - output_section_statement->bfd_section->vma)\n    ;\n    break;\n  case lang_group_statement_enum:\n    prev_00 = (lang_statement_list_type *)&(local_54->assignment_statement).exp;\n    goto LAB_00021d85;\n  case lang_constructors_statement_enum:\n    prev_00 = &constructor_list;\nLAB_00021d85:\n    dot = lang_size_sections_1\n                    (&prev_00->head,output_section_statement,local_48,dot,relax,check_regions);\n    break;\n  default:\n    info_assert("../../ld/ldlang.c",0x15a7);\n  }" { (case_statement "case lang_output_section_statement_enum:\n    if ((local_54->output_section_statement).constraint != -1) {\n      peVar16 = (local_54->output_section_statement).addr_tree;\n      if (peVar16 == (etree_union *)0x0) {\n        if (((link_info._0_1_ & 3) == 2) &&\n           ((link_info.output_bfd)->xvec->flavour == bfd_target_coff_flavour)) {\n          peVar16 = exp_intop(0);\n          (local_54->output_section_statement).addr_tree = peVar16;\n          if (peVar16 != (etree_type *)0x0) goto LAB_00021dcc;\n        }\n      }\n      else {\nLAB_00021dcc:\n        *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) & 0xfe;\n        exp_fold_tree(peVar16,(asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&dot);\n        if (expld.result.valid_p == 0) {\n          if (expld.phase != lang_mark_phase_enum) {\n            pcVar15 = *(char **)&(local_54->wild_statement).children;\n            peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];\n            pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5);\n            einfo(pcVar13,peVar16,pcVar15);\n          }\n        }\n        else {\n          dot = expld.result.value;\n          if (expld.result.section != (asection *)0x0) {\n            dot = expld.result.value + (expld.result.section)->vma;\n          }\n        }\n      }\n      bVar14 = dot;\n      puVar7 = PTR__bfd_std_section_000bafc4;\n      paVar21 = (local_54->output_section_statement).bfd_section;\n      if (paVar21 != (asection *)0x0) {\n        if (((link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour < 2) &&\n           (uVar10 = paVar21->flags, (uVar10 & 0x4000000) != 0)) {\n          paVar18 = (local_54->input_section).section;\n          if (((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)) || (paVar18->id != 5)\n             ) {\n            plVar6 = (local_54->wild_statement).children.head;\n            pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5);\n            einfo(pcVar15,plVar6);\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar18 = (local_54->input_section).section;\n            uVar10 = paVar21->flags;\n          }\n          uVar11 = paVar18->index;\n          bVar14 = *(bfd_vma *)(uVar11 + 0x1c);\n          paVar21->field_0x18 = paVar21->field_0x18 | 1;\n          paVar21->lma = bVar14;\n          paVar21->vma = bVar14;\n          if ((uVar10 & 0x800) == 0) {\n            paVar21->size = *(bfd_size_type *)(uVar11 + 0x24);\n          }\n        }\n        else {\n          if (paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            local_3c = 0;\n            sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum) {\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }\n          }\n          else {\n            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }\n            sVar20 = local_4c;\n            if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }\n            paVar21->field_0x18 = paVar21->field_0x18 | 1;\n            paVar21->lma = bVar14;\n            paVar21->vma = bVar14;\n            paVar21->output_offset = 0;\n          }\n          lang_size_sections_1\n                    ((lang_statement_union_type **)&(local_54->assignment_statement).exp,\n                     &local_54->output_section_statement,(local_54->output_section_statement).fill,\n                     bVar14,relax,check_regions);\n          bVar19 = *(byte *)((int)local_54 + 0x54);\n          *(byte *)((int)local_54 + 0x54) = bVar19 | 1;\n          paVar21 = (local_54->output_section_statement).bfd_section;\n          if (paVar21 == (asection *)(puVar7 + 0x150)) {\n            uVar10 = *(uint *)(puVar7 + 0x174);\nLAB_000223fa:\n            if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar10 = paVar21->size;\n            if ((bVar19 & 8) != 0) goto LAB_000223fa;\n            dot = paVar21->vma;\n            if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }\n          }\n          plVar17 = (lang_memory_region_type *)(local_54->reloc_statement).output_section;\n          if (plVar17 == (lang_memory_region_type *)0x0) {\n            plVar17 = lang_memory_region_lookup("*default*",0);\n          }\n          if ((local_54->output_section_statement).load_base == (etree_type *)0x0) {\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            plVar4 = (local_54->output_section_statement).lma_region;\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\n            if (plVar4 != (lang_memory_region_type *)0x0) {\n              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }\n            if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;\n            if (uVar11 != 0) {\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n          }\n          else {\n            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar21->lma = bVar14;\nLAB_00022008:\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\nLAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n            if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((paVar21 != (asection *)(puVar7 + 0x150)) &&\n             ((*(byte *)((int)local_54 + 0x54) & 8) == 0)) {\n            if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }\n            dot = dot + local_4c;\n            if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n              exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }\n            plVar17 = (local_54->output_section_statement).region;\n            if ((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)) {\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;" case identifier : (if_statement "if ((local_54->output_section_statement).constraint != -1) {\n      peVar16 = (local_54->output_section_statement).addr_tree;\n      if (peVar16 == (etree_union *)0x0) {\n        if (((link_info._0_1_ & 3) == 2) &&\n           ((link_info.output_bfd)->xvec->flavour == bfd_target_coff_flavour)) {\n          peVar16 = exp_intop(0);\n          (local_54->output_section_statement).addr_tree = peVar16;\n          if (peVar16 != (etree_type *)0x0) goto LAB_00021dcc;\n        }\n      }\n      else {\nLAB_00021dcc:\n        *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) & 0xfe;\n        exp_fold_tree(peVar16,(asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&dot);\n        if (expld.result.valid_p == 0) {\n          if (expld.phase != lang_mark_phase_enum) {\n            pcVar15 = *(char **)&(local_54->wild_statement).children;\n            peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];\n            pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5);\n            einfo(pcVar13,peVar16,pcVar15);\n          }\n        }\n        else {\n          dot = expld.result.value;\n          if (expld.result.section != (asection *)0x0) {\n            dot = expld.result.value + (expld.result.section)->vma;\n          }\n        }\n      }\n      bVar14 = dot;\n      puVar7 = PTR__bfd_std_section_000bafc4;\n      paVar21 = (local_54->output_section_statement).bfd_section;\n      if (paVar21 != (asection *)0x0) {\n        if (((link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour < 2) &&\n           (uVar10 = paVar21->flags, (uVar10 & 0x4000000) != 0)) {\n          paVar18 = (local_54->input_section).section;\n          if (((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)) || (paVar18->id != 5)\n             ) {\n            plVar6 = (local_54->wild_statement).children.head;\n            pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5);\n            einfo(pcVar15,plVar6);\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar18 = (local_54->input_section).section;\n            uVar10 = paVar21->flags;\n          }\n          uVar11 = paVar18->index;\n          bVar14 = *(bfd_vma *)(uVar11 + 0x1c);\n          paVar21->field_0x18 = paVar21->field_0x18 | 1;\n          paVar21->lma = bVar14;\n          paVar21->vma = bVar14;\n          if ((uVar10 & 0x800) == 0) {\n            paVar21->size = *(bfd_size_type *)(uVar11 + 0x24);\n          }\n        }\n        else {\n          if (paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            local_3c = 0;\n            sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum) {\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }\n          }\n          else {\n            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }\n            sVar20 = local_4c;\n            if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }\n            paVar21->field_0x18 = paVar21->field_0x18 | 1;\n            paVar21->lma = bVar14;\n            paVar21->vma = bVar14;\n            paVar21->output_offset = 0;\n          }\n          lang_size_sections_1\n                    ((lang_statement_union_type **)&(local_54->assignment_statement).exp,\n                     &local_54->output_section_statement,(local_54->output_section_statement).fill,\n                     bVar14,relax,check_regions);\n          bVar19 = *(byte *)((int)local_54 + 0x54);\n          *(byte *)((int)local_54 + 0x54) = bVar19 | 1;\n          paVar21 = (local_54->output_section_statement).bfd_section;\n          if (paVar21 == (asection *)(puVar7 + 0x150)) {\n            uVar10 = *(uint *)(puVar7 + 0x174);\nLAB_000223fa:\n            if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar10 = paVar21->size;\n            if ((bVar19 & 8) != 0) goto LAB_000223fa;\n            dot = paVar21->vma;\n            if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }\n          }\n          plVar17 = (lang_memory_region_type *)(local_54->reloc_statement).output_section;\n          if (plVar17 == (lang_memory_region_type *)0x0) {\n            plVar17 = lang_memory_region_lookup("*default*",0);\n          }\n          if ((local_54->output_section_statement).load_base == (etree_type *)0x0) {\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            plVar4 = (local_54->output_section_statement).lma_region;\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\n            if (plVar4 != (lang_memory_region_type *)0x0) {\n              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }\n            if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;\n            if (uVar11 != 0) {\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n          }\n          else {\n            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar21->lma = bVar14;\nLAB_00022008:\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\nLAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n            if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((paVar21 != (asection *)(puVar7 + 0x150)) &&\n             ((*(byte *)((int)local_54 + 0x54) & 8) == 0)) {\n            if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }\n            dot = dot + local_4c;\n            if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n              exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }\n            plVar17 = (local_54->output_section_statement).region;\n            if ((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)) {\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "((local_54->output_section_statement).constraint != -1)" ( (binary_expression "(local_54->output_section_statement).constraint != -1" (field_expression "(local_54->output_section_statement).constraint" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n      peVar16 = (local_54->output_section_statement).addr_tree;\n      if (peVar16 == (etree_union *)0x0) {\n        if (((link_info._0_1_ & 3) == 2) &&\n           ((link_info.output_bfd)->xvec->flavour == bfd_target_coff_flavour)) {\n          peVar16 = exp_intop(0);\n          (local_54->output_section_statement).addr_tree = peVar16;\n          if (peVar16 != (etree_type *)0x0) goto LAB_00021dcc;\n        }\n      }\n      else {\nLAB_00021dcc:\n        *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) & 0xfe;\n        exp_fold_tree(peVar16,(asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&dot);\n        if (expld.result.valid_p == 0) {\n          if (expld.phase != lang_mark_phase_enum) {\n            pcVar15 = *(char **)&(local_54->wild_statement).children;\n            peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];\n            pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5);\n            einfo(pcVar13,peVar16,pcVar15);\n          }\n        }\n        else {\n          dot = expld.result.value;\n          if (expld.result.section != (asection *)0x0) {\n            dot = expld.result.value + (expld.result.section)->vma;\n          }\n        }\n      }\n      bVar14 = dot;\n      puVar7 = PTR__bfd_std_section_000bafc4;\n      paVar21 = (local_54->output_section_statement).bfd_section;\n      if (paVar21 != (asection *)0x0) {\n        if (((link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour < 2) &&\n           (uVar10 = paVar21->flags, (uVar10 & 0x4000000) != 0)) {\n          paVar18 = (local_54->input_section).section;\n          if (((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)) || (paVar18->id != 5)\n             ) {\n            plVar6 = (local_54->wild_statement).children.head;\n            pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5);\n            einfo(pcVar15,plVar6);\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar18 = (local_54->input_section).section;\n            uVar10 = paVar21->flags;\n          }\n          uVar11 = paVar18->index;\n          bVar14 = *(bfd_vma *)(uVar11 + 0x1c);\n          paVar21->field_0x18 = paVar21->field_0x18 | 1;\n          paVar21->lma = bVar14;\n          paVar21->vma = bVar14;\n          if ((uVar10 & 0x800) == 0) {\n            paVar21->size = *(bfd_size_type *)(uVar11 + 0x24);\n          }\n        }\n        else {\n          if (paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            local_3c = 0;\n            sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum) {\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }\n          }\n          else {\n            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }\n            sVar20 = local_4c;\n            if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }\n            paVar21->field_0x18 = paVar21->field_0x18 | 1;\n            paVar21->lma = bVar14;\n            paVar21->vma = bVar14;\n            paVar21->output_offset = 0;\n          }\n          lang_size_sections_1\n                    ((lang_statement_union_type **)&(local_54->assignment_statement).exp,\n                     &local_54->output_section_statement,(local_54->output_section_statement).fill,\n                     bVar14,relax,check_regions);\n          bVar19 = *(byte *)((int)local_54 + 0x54);\n          *(byte *)((int)local_54 + 0x54) = bVar19 | 1;\n          paVar21 = (local_54->output_section_statement).bfd_section;\n          if (paVar21 == (asection *)(puVar7 + 0x150)) {\n            uVar10 = *(uint *)(puVar7 + 0x174);\nLAB_000223fa:\n            if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar10 = paVar21->size;\n            if ((bVar19 & 8) != 0) goto LAB_000223fa;\n            dot = paVar21->vma;\n            if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }\n          }\n          plVar17 = (lang_memory_region_type *)(local_54->reloc_statement).output_section;\n          if (plVar17 == (lang_memory_region_type *)0x0) {\n            plVar17 = lang_memory_region_lookup("*default*",0);\n          }\n          if ((local_54->output_section_statement).load_base == (etree_type *)0x0) {\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            plVar4 = (local_54->output_section_statement).lma_region;\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\n            if (plVar4 != (lang_memory_region_type *)0x0) {\n              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }\n            if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;\n            if (uVar11 != 0) {\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n          }\n          else {\n            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar21->lma = bVar14;\nLAB_00022008:\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\nLAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n            if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((paVar21 != (asection *)(puVar7 + 0x150)) &&\n             ((*(byte *)((int)local_54 + 0x54) & 8) == 0)) {\n            if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }\n            dot = dot + local_4c;\n            if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n              exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }\n            plVar17 = (local_54->output_section_statement).region;\n            if ((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)) {\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "peVar16 = (local_54->output_section_statement).addr_tree;" (assignment_expression "peVar16 = (local_54->output_section_statement).addr_tree" identifier = (field_expression "(local_54->output_section_statement).addr_tree" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (peVar16 == (etree_union *)0x0) {\n        if (((link_info._0_1_ & 3) == 2) &&\n           ((link_info.output_bfd)->xvec->flavour == bfd_target_coff_flavour)) {\n          peVar16 = exp_intop(0);\n          (local_54->output_section_statement).addr_tree = peVar16;\n          if (peVar16 != (etree_type *)0x0) goto LAB_00021dcc;\n        }\n      }\n      else {\nLAB_00021dcc:\n        *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) & 0xfe;\n        exp_fold_tree(peVar16,(asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&dot);\n        if (expld.result.valid_p == 0) {\n          if (expld.phase != lang_mark_phase_enum) {\n            pcVar15 = *(char **)&(local_54->wild_statement).children;\n            peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];\n            pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5);\n            einfo(pcVar13,peVar16,pcVar15);\n          }\n        }\n        else {\n          dot = expld.result.value;\n          if (expld.result.section != (asection *)0x0) {\n            dot = expld.result.value + (expld.result.section)->vma;\n          }\n        }\n      }" if (parenthesized_expression "(peVar16 == (etree_union *)0x0)" ( (binary_expression "peVar16 == (etree_union *)0x0" identifier == (cast_expression "(etree_union *)0x0" ( (type_descriptor "etree_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (((link_info._0_1_ & 3) == 2) &&\n           ((link_info.output_bfd)->xvec->flavour == bfd_target_coff_flavour)) {\n          peVar16 = exp_intop(0);\n          (local_54->output_section_statement).addr_tree = peVar16;\n          if (peVar16 != (etree_type *)0x0) goto LAB_00021dcc;\n        }\n      }" { (if_statement "if (((link_info._0_1_ & 3) == 2) &&\n           ((link_info.output_bfd)->xvec->flavour == bfd_target_coff_flavour)) {\n          peVar16 = exp_intop(0);\n          (local_54->output_section_statement).addr_tree = peVar16;\n          if (peVar16 != (etree_type *)0x0) goto LAB_00021dcc;\n        }" if (parenthesized_expression "(((link_info._0_1_ & 3) == 2) &&\n           ((link_info.output_bfd)->xvec->flavour == bfd_target_coff_flavour))" ( (binary_expression "((link_info._0_1_ & 3) == 2) &&\n           ((link_info.output_bfd)->xvec->flavour == bfd_target_coff_flavour)" (parenthesized_expression "((link_info._0_1_ & 3) == 2)" ( (binary_expression "(link_info._0_1_ & 3) == 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((link_info.output_bfd)->xvec->flavour == bfd_target_coff_flavour)" ( (binary_expression "(link_info.output_bfd)->xvec->flavour == bfd_target_coff_flavour" (field_expression "(link_info.output_bfd)->xvec->flavour" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier) == identifier) ))) )) (compound_statement "{\n          peVar16 = exp_intop(0);\n          (local_54->output_section_statement).addr_tree = peVar16;\n          if (peVar16 != (etree_type *)0x0) goto LAB_00021dcc;\n        }" { (expression_statement "peVar16 = exp_intop(0);" (assignment_expression "peVar16 = exp_intop(0)" identifier = (call_expression "exp_intop(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(local_54->output_section_statement).addr_tree = peVar16;" (assignment_expression "(local_54->output_section_statement).addr_tree = peVar16" (field_expression "(local_54->output_section_statement).addr_tree" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if (peVar16 != (etree_type *)0x0) goto LAB_00021dcc;" if (parenthesized_expression "(peVar16 != (etree_type *)0x0)" ( (binary_expression "peVar16 != (etree_type *)0x0" identifier != (cast_expression "(etree_type *)0x0" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00021dcc;" goto statement_identifier ;)) })) }) (else_clause "else {\nLAB_00021dcc:\n        *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) & 0xfe;\n        exp_fold_tree(peVar16,(asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&dot);\n        if (expld.result.valid_p == 0) {\n          if (expld.phase != lang_mark_phase_enum) {\n            pcVar15 = *(char **)&(local_54->wild_statement).children;\n            peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];\n            pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5);\n            einfo(pcVar13,peVar16,pcVar15);\n          }\n        }\n        else {\n          dot = expld.result.value;\n          if (expld.result.section != (asection *)0x0) {\n            dot = expld.result.value + (expld.result.section)->vma;\n          }\n        }\n      }" else (compound_statement "{\nLAB_00021dcc:\n        *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) & 0xfe;\n        exp_fold_tree(peVar16,(asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&dot);\n        if (expld.result.valid_p == 0) {\n          if (expld.phase != lang_mark_phase_enum) {\n            pcVar15 = *(char **)&(local_54->wild_statement).children;\n            peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];\n            pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5);\n            einfo(pcVar13,peVar16,pcVar15);\n          }\n        }\n        else {\n          dot = expld.result.value;\n          if (expld.result.section != (asection *)0x0) {\n            dot = expld.result.value + (expld.result.section)->vma;\n          }\n        }\n      }" { (labeled_statement "LAB_00021dcc:\n        *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) & 0xfe;" statement_identifier : (expression_statement "*(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) & 0xfe;" (assignment_expression "*(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) & 0xfe" (pointer_expression "*(byte *)((int)local_54 + 0x54)" * (cast_expression "(byte *)((int)local_54 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x54)" ( (binary_expression "(int)local_54 + 0x54" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)local_54 + 0x54) & 0xfe" (pointer_expression "*(byte *)((int)local_54 + 0x54)" * (cast_expression "(byte *)((int)local_54 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x54)" ( (binary_expression "(int)local_54 + 0x54" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;)) (expression_statement "exp_fold_tree(peVar16,(asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&dot);" (call_expression "exp_fold_tree(peVar16,(asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&dot)" identifier (argument_list "(peVar16,(asection *)(PTR__bfd_std_section_000bafc4 + 0x150),&dot)" ( identifier , (cast_expression "(asection *)(PTR__bfd_std_section_000bafc4 + 0x150)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x150)" ( (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal) ))) , (pointer_expression "&dot" & identifier) ))) ;) (if_statement "if (expld.result.valid_p == 0) {\n          if (expld.phase != lang_mark_phase_enum) {\n            pcVar15 = *(char **)&(local_54->wild_statement).children;\n            peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];\n            pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5);\n            einfo(pcVar13,peVar16,pcVar15);\n          }\n        }\n        else {\n          dot = expld.result.value;\n          if (expld.result.section != (asection *)0x0) {\n            dot = expld.result.value + (expld.result.section)->vma;\n          }\n        }" 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) )) (compound_statement "{\n          if (expld.phase != lang_mark_phase_enum) {\n            pcVar15 = *(char **)&(local_54->wild_statement).children;\n            peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];\n            pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5);\n            einfo(pcVar13,peVar16,pcVar15);\n          }\n        }" { (if_statement "if (expld.phase != lang_mark_phase_enum) {\n            pcVar15 = *(char **)&(local_54->wild_statement).children;\n            peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];\n            pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5);\n            einfo(pcVar13,peVar16,pcVar15);\n          }" if (parenthesized_expression "(expld.phase != lang_mark_phase_enum)" ( (binary_expression "expld.phase != lang_mark_phase_enum" (field_expression "expld.phase" identifier . field_identifier) != identifier) )) (compound_statement "{\n            pcVar15 = *(char **)&(local_54->wild_statement).children;\n            peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];\n            pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5);\n            einfo(pcVar13,peVar16,pcVar15);\n          }" { (expression_statement "pcVar15 = *(char **)&(local_54->wild_statement).children;" (assignment_expression "pcVar15 = *(char **)&(local_54->wild_statement).children" identifier = (pointer_expression "*(char **)&(local_54->wild_statement).children" * (cast_expression "(char **)&(local_54->wild_statement).children" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(local_54->wild_statement).children" & (field_expression "(local_54->wild_statement).children" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1];" (assignment_expression "peVar16 = (etree_union *)(local_54->wild_statement).handler_data[1]" identifier = (cast_expression "(etree_union *)(local_54->wild_statement).handler_data[1]" ( (type_descriptor "etree_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(local_54->wild_statement).handler_data[1]" (field_expression "(local_54->wild_statement).handler_data" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier) [ number_literal ]))) ;) (expression_statement "pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5);" (assignment_expression "pcVar13 = (char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5)" identifier (argument_list "(0,\n                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                                        ,5)" ( number_literal , (string_literal ""%F%P:%pS: non constant or forward reference address expression for section %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar13,peVar16,pcVar15);" (call_expression "einfo(pcVar13,peVar16,pcVar15)" identifier (argument_list "(pcVar13,peVar16,pcVar15)" ( identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n          dot = expld.result.value;\n          if (expld.result.section != (asection *)0x0) {\n            dot = expld.result.value + (expld.result.section)->vma;\n          }\n        }" else (compound_statement "{\n          dot = expld.result.value;\n          if (expld.result.section != (asection *)0x0) {\n            dot = expld.result.value + (expld.result.section)->vma;\n          }\n        }" { (expression_statement "dot = expld.result.value;" (assignment_expression "dot = expld.result.value" identifier = (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier)) ;) (if_statement "if (expld.result.section != (asection *)0x0) {\n            dot = expld.result.value + (expld.result.section)->vma;\n          }" if (parenthesized_expression "(expld.result.section != (asection *)0x0)" ( (binary_expression "expld.result.section != (asection *)0x0" (field_expression "expld.result.section" (field_expression "expld.result" identifier . field_identifier) . field_identifier) != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            dot = expld.result.value + (expld.result.section)->vma;\n          }" { (expression_statement "dot = expld.result.value + (expld.result.section)->vma;" (assignment_expression "dot = expld.result.value + (expld.result.section)->vma" identifier = (binary_expression "expld.result.value + (expld.result.section)->vma" (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier) + (field_expression "(expld.result.section)->vma" (parenthesized_expression "(expld.result.section)" ( (field_expression "expld.result.section" (field_expression "expld.result" identifier . field_identifier) . field_identifier) )) -> field_identifier))) ;) })) }))) }))) (expression_statement "bVar14 = dot;" (assignment_expression "bVar14 = dot" identifier = identifier) ;) (expression_statement "puVar7 = PTR__bfd_std_section_000bafc4;" (assignment_expression "puVar7 = PTR__bfd_std_section_000bafc4" identifier = identifier) ;) (expression_statement "paVar21 = (local_54->output_section_statement).bfd_section;" (assignment_expression "paVar21 = (local_54->output_section_statement).bfd_section" identifier = (field_expression "(local_54->output_section_statement).bfd_section" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (paVar21 != (asection *)0x0) {\n        if (((link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour < 2) &&\n           (uVar10 = paVar21->flags, (uVar10 & 0x4000000) != 0)) {\n          paVar18 = (local_54->input_section).section;\n          if (((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)) || (paVar18->id != 5)\n             ) {\n            plVar6 = (local_54->wild_statement).children.head;\n            pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5);\n            einfo(pcVar15,plVar6);\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar18 = (local_54->input_section).section;\n            uVar10 = paVar21->flags;\n          }\n          uVar11 = paVar18->index;\n          bVar14 = *(bfd_vma *)(uVar11 + 0x1c);\n          paVar21->field_0x18 = paVar21->field_0x18 | 1;\n          paVar21->lma = bVar14;\n          paVar21->vma = bVar14;\n          if ((uVar10 & 0x800) == 0) {\n            paVar21->size = *(bfd_size_type *)(uVar11 + 0x24);\n          }\n        }\n        else {\n          if (paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            local_3c = 0;\n            sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum) {\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }\n          }\n          else {\n            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }\n            sVar20 = local_4c;\n            if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }\n            paVar21->field_0x18 = paVar21->field_0x18 | 1;\n            paVar21->lma = bVar14;\n            paVar21->vma = bVar14;\n            paVar21->output_offset = 0;\n          }\n          lang_size_sections_1\n                    ((lang_statement_union_type **)&(local_54->assignment_statement).exp,\n                     &local_54->output_section_statement,(local_54->output_section_statement).fill,\n                     bVar14,relax,check_regions);\n          bVar19 = *(byte *)((int)local_54 + 0x54);\n          *(byte *)((int)local_54 + 0x54) = bVar19 | 1;\n          paVar21 = (local_54->output_section_statement).bfd_section;\n          if (paVar21 == (asection *)(puVar7 + 0x150)) {\n            uVar10 = *(uint *)(puVar7 + 0x174);\nLAB_000223fa:\n            if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar10 = paVar21->size;\n            if ((bVar19 & 8) != 0) goto LAB_000223fa;\n            dot = paVar21->vma;\n            if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }\n          }\n          plVar17 = (lang_memory_region_type *)(local_54->reloc_statement).output_section;\n          if (plVar17 == (lang_memory_region_type *)0x0) {\n            plVar17 = lang_memory_region_lookup("*default*",0);\n          }\n          if ((local_54->output_section_statement).load_base == (etree_type *)0x0) {\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            plVar4 = (local_54->output_section_statement).lma_region;\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\n            if (plVar4 != (lang_memory_region_type *)0x0) {\n              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }\n            if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;\n            if (uVar11 != 0) {\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n          }\n          else {\n            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar21->lma = bVar14;\nLAB_00022008:\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\nLAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n            if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((paVar21 != (asection *)(puVar7 + 0x150)) &&\n             ((*(byte *)((int)local_54 + 0x54) & 8) == 0)) {\n            if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }\n            dot = dot + local_4c;\n            if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n              exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }\n            plVar17 = (local_54->output_section_statement).region;\n            if ((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)) {\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(paVar21 != (asection *)0x0)" ( (binary_expression "paVar21 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (((link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour < 2) &&\n           (uVar10 = paVar21->flags, (uVar10 & 0x4000000) != 0)) {\n          paVar18 = (local_54->input_section).section;\n          if (((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)) || (paVar18->id != 5)\n             ) {\n            plVar6 = (local_54->wild_statement).children.head;\n            pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5);\n            einfo(pcVar15,plVar6);\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar18 = (local_54->input_section).section;\n            uVar10 = paVar21->flags;\n          }\n          uVar11 = paVar18->index;\n          bVar14 = *(bfd_vma *)(uVar11 + 0x1c);\n          paVar21->field_0x18 = paVar21->field_0x18 | 1;\n          paVar21->lma = bVar14;\n          paVar21->vma = bVar14;\n          if ((uVar10 & 0x800) == 0) {\n            paVar21->size = *(bfd_size_type *)(uVar11 + 0x24);\n          }\n        }\n        else {\n          if (paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            local_3c = 0;\n            sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum) {\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }\n          }\n          else {\n            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }\n            sVar20 = local_4c;\n            if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }\n            paVar21->field_0x18 = paVar21->field_0x18 | 1;\n            paVar21->lma = bVar14;\n            paVar21->vma = bVar14;\n            paVar21->output_offset = 0;\n          }\n          lang_size_sections_1\n                    ((lang_statement_union_type **)&(local_54->assignment_statement).exp,\n                     &local_54->output_section_statement,(local_54->output_section_statement).fill,\n                     bVar14,relax,check_regions);\n          bVar19 = *(byte *)((int)local_54 + 0x54);\n          *(byte *)((int)local_54 + 0x54) = bVar19 | 1;\n          paVar21 = (local_54->output_section_statement).bfd_section;\n          if (paVar21 == (asection *)(puVar7 + 0x150)) {\n            uVar10 = *(uint *)(puVar7 + 0x174);\nLAB_000223fa:\n            if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar10 = paVar21->size;\n            if ((bVar19 & 8) != 0) goto LAB_000223fa;\n            dot = paVar21->vma;\n            if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }\n          }\n          plVar17 = (lang_memory_region_type *)(local_54->reloc_statement).output_section;\n          if (plVar17 == (lang_memory_region_type *)0x0) {\n            plVar17 = lang_memory_region_lookup("*default*",0);\n          }\n          if ((local_54->output_section_statement).load_base == (etree_type *)0x0) {\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            plVar4 = (local_54->output_section_statement).lma_region;\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\n            if (plVar4 != (lang_memory_region_type *)0x0) {\n              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }\n            if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;\n            if (uVar11 != 0) {\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n          }\n          else {\n            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar21->lma = bVar14;\nLAB_00022008:\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\nLAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n            if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((paVar21 != (asection *)(puVar7 + 0x150)) &&\n             ((*(byte *)((int)local_54 + 0x54) & 8) == 0)) {\n            if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }\n            dot = dot + local_4c;\n            if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n              exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }\n            plVar17 = (local_54->output_section_statement).region;\n            if ((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)) {\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }\n          }\n        }\n      }" { (if_statement "if (((link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour < 2) &&\n           (uVar10 = paVar21->flags, (uVar10 & 0x4000000) != 0)) {\n          paVar18 = (local_54->input_section).section;\n          if (((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)) || (paVar18->id != 5)\n             ) {\n            plVar6 = (local_54->wild_statement).children.head;\n            pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5);\n            einfo(pcVar15,plVar6);\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar18 = (local_54->input_section).section;\n            uVar10 = paVar21->flags;\n          }\n          uVar11 = paVar18->index;\n          bVar14 = *(bfd_vma *)(uVar11 + 0x1c);\n          paVar21->field_0x18 = paVar21->field_0x18 | 1;\n          paVar21->lma = bVar14;\n          paVar21->vma = bVar14;\n          if ((uVar10 & 0x800) == 0) {\n            paVar21->size = *(bfd_size_type *)(uVar11 + 0x24);\n          }\n        }\n        else {\n          if (paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            local_3c = 0;\n            sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum) {\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }\n          }\n          else {\n            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }\n            sVar20 = local_4c;\n            if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }\n            paVar21->field_0x18 = paVar21->field_0x18 | 1;\n            paVar21->lma = bVar14;\n            paVar21->vma = bVar14;\n            paVar21->output_offset = 0;\n          }\n          lang_size_sections_1\n                    ((lang_statement_union_type **)&(local_54->assignment_statement).exp,\n                     &local_54->output_section_statement,(local_54->output_section_statement).fill,\n                     bVar14,relax,check_regions);\n          bVar19 = *(byte *)((int)local_54 + 0x54);\n          *(byte *)((int)local_54 + 0x54) = bVar19 | 1;\n          paVar21 = (local_54->output_section_statement).bfd_section;\n          if (paVar21 == (asection *)(puVar7 + 0x150)) {\n            uVar10 = *(uint *)(puVar7 + 0x174);\nLAB_000223fa:\n            if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar10 = paVar21->size;\n            if ((bVar19 & 8) != 0) goto LAB_000223fa;\n            dot = paVar21->vma;\n            if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }\n          }\n          plVar17 = (lang_memory_region_type *)(local_54->reloc_statement).output_section;\n          if (plVar17 == (lang_memory_region_type *)0x0) {\n            plVar17 = lang_memory_region_lookup("*default*",0);\n          }\n          if ((local_54->output_section_statement).load_base == (etree_type *)0x0) {\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            plVar4 = (local_54->output_section_statement).lma_region;\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\n            if (plVar4 != (lang_memory_region_type *)0x0) {\n              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }\n            if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;\n            if (uVar11 != 0) {\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n          }\n          else {\n            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar21->lma = bVar14;\nLAB_00022008:\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\nLAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n            if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((paVar21 != (asection *)(puVar7 + 0x150)) &&\n             ((*(byte *)((int)local_54 + 0x54) & 8) == 0)) {\n            if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }\n            dot = dot + local_4c;\n            if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n              exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }\n            plVar17 = (local_54->output_section_statement).region;\n            if ((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)) {\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(((link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour < 2) &&\n           (uVar10 = paVar21->flags, (uVar10 & 0x4000000) != 0))" ( (binary_expression "((link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour < 2) &&\n           (uVar10 = paVar21->flags, (uVar10 & 0x4000000) != 0)" (parenthesized_expression "((link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour < 2)" ( (binary_expression "(link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour < 2" (binary_expression "(link_info.output_bfd)->xvec->flavour - bfd_target_coff_flavour" (field_expression "(link_info.output_bfd)->xvec->flavour" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier) - identifier) < number_literal) )) && (parenthesized_expression "(uVar10 = paVar21->flags, (uVar10 & 0x4000000) != 0)" ( (comma_expression "uVar10 = paVar21->flags, (uVar10 & 0x4000000) != 0" (assignment_expression "uVar10 = paVar21->flags" identifier = (field_expression "paVar21->flags" identifier -> field_identifier)) , (binary_expression "(uVar10 & 0x4000000) != 0" (parenthesized_expression "(uVar10 & 0x4000000)" ( (binary_expression "uVar10 & 0x4000000" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          paVar18 = (local_54->input_section).section;\n          if (((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)) || (paVar18->id != 5)\n             ) {\n            plVar6 = (local_54->wild_statement).children.head;\n            pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5);\n            einfo(pcVar15,plVar6);\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar18 = (local_54->input_section).section;\n            uVar10 = paVar21->flags;\n          }\n          uVar11 = paVar18->index;\n          bVar14 = *(bfd_vma *)(uVar11 + 0x1c);\n          paVar21->field_0x18 = paVar21->field_0x18 | 1;\n          paVar21->lma = bVar14;\n          paVar21->vma = bVar14;\n          if ((uVar10 & 0x800) == 0) {\n            paVar21->size = *(bfd_size_type *)(uVar11 + 0x24);\n          }\n        }" { (expression_statement "paVar18 = (local_54->input_section).section;" (assignment_expression "paVar18 = (local_54->input_section).section" identifier = (field_expression "(local_54->input_section).section" (parenthesized_expression "(local_54->input_section)" ( (field_expression "local_54->input_section" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)) || (paVar18->id != 5)\n             ) {\n            plVar6 = (local_54->wild_statement).children.head;\n            pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5);\n            einfo(pcVar15,plVar6);\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar18 = (local_54->input_section).section;\n            uVar10 = paVar21->flags;\n          }" if (parenthesized_expression "(((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)) || (paVar18->id != 5)\n             )" ( (binary_expression "((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)) || (paVar18->id != 5)" (parenthesized_expression "((paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0))" ( (binary_expression "(paVar18 == (asection *)0x0) || (paVar18->name != (char *)0x0)" (parenthesized_expression "(paVar18 == (asection *)0x0)" ( (binary_expression "paVar18 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(paVar18->name != (char *)0x0)" ( (binary_expression "paVar18->name != (char *)0x0" (field_expression "paVar18->name" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "(paVar18->id != 5)" ( (binary_expression "paVar18->id != 5" (field_expression "paVar18->id" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n            plVar6 = (local_54->wild_statement).children.head;\n            pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5);\n            einfo(pcVar15,plVar6);\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar18 = (local_54->input_section).section;\n            uVar10 = paVar21->flags;\n          }" { (expression_statement "plVar6 = (local_54->wild_statement).children.head;" (assignment_expression "plVar6 = (local_54->wild_statement).children.head" identifier = (field_expression "(local_54->wild_statement).children.head" (field_expression "(local_54->wild_statement).children" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5);" (assignment_expression "pcVar15 = (char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5)" identifier = (cast_expression "(char *)dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5)" identifier (argument_list "(0,"%X%P: internal error on COFF shared library section %s\n"\n                                        ,5)" ( number_literal , (string_literal ""%X%P: internal error on COFF shared library section %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar15,plVar6);" (call_expression "einfo(pcVar15,plVar6)" identifier (argument_list "(pcVar15,plVar6)" ( identifier , identifier ))) ;) (expression_statement "paVar21 = (local_54->output_section_statement).bfd_section;" (assignment_expression "paVar21 = (local_54->output_section_statement).bfd_section" identifier = (field_expression "(local_54->output_section_statement).bfd_section" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "paVar18 = (local_54->input_section).section;" (assignment_expression "paVar18 = (local_54->input_section).section" identifier = (field_expression "(local_54->input_section).section" (parenthesized_expression "(local_54->input_section)" ( (field_expression "local_54->input_section" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar10 = paVar21->flags;" (assignment_expression "uVar10 = paVar21->flags" identifier = (field_expression "paVar21->flags" identifier -> field_identifier)) ;) })) (expression_statement "uVar11 = paVar18->index;" (assignment_expression "uVar11 = paVar18->index" identifier = (field_expression "paVar18->index" identifier -> field_identifier)) ;) (expression_statement "bVar14 = *(bfd_vma *)(uVar11 + 0x1c);" (assignment_expression "bVar14 = *(bfd_vma *)(uVar11 + 0x1c)" identifier = (pointer_expression "*(bfd_vma *)(uVar11 + 0x1c)" * (cast_expression "(bfd_vma *)(uVar11 + 0x1c)" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar11 + 0x1c)" ( (binary_expression "uVar11 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "paVar21->field_0x18 = paVar21->field_0x18 | 1;" (assignment_expression "paVar21->field_0x18 = paVar21->field_0x18 | 1" (field_expression "paVar21->field_0x18" identifier -> field_identifier) = (binary_expression "paVar21->field_0x18 | 1" (field_expression "paVar21->field_0x18" identifier -> field_identifier) | number_literal)) ;) (expression_statement "paVar21->lma = bVar14;" (assignment_expression "paVar21->lma = bVar14" (field_expression "paVar21->lma" identifier -> field_identifier) = identifier) ;) (expression_statement "paVar21->vma = bVar14;" (assignment_expression "paVar21->vma = bVar14" (field_expression "paVar21->vma" identifier -> field_identifier) = identifier) ;) (if_statement "if ((uVar10 & 0x800) == 0) {\n            paVar21->size = *(bfd_size_type *)(uVar11 + 0x24);\n          }" if (parenthesized_expression "((uVar10 & 0x800) == 0)" ( (binary_expression "(uVar10 & 0x800) == 0" (parenthesized_expression "(uVar10 & 0x800)" ( (binary_expression "uVar10 & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            paVar21->size = *(bfd_size_type *)(uVar11 + 0x24);\n          }" { (expression_statement "paVar21->size = *(bfd_size_type *)(uVar11 + 0x24);" (assignment_expression "paVar21->size = *(bfd_size_type *)(uVar11 + 0x24)" (field_expression "paVar21->size" identifier -> field_identifier) = (pointer_expression "*(bfd_size_type *)(uVar11 + 0x24)" * (cast_expression "(bfd_size_type *)(uVar11 + 0x24)" ( (type_descriptor "bfd_size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar11 + 0x24)" ( (binary_expression "uVar11 + 0x24" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n          if (paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            local_3c = 0;\n            sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum) {\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }\n          }\n          else {\n            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }\n            sVar20 = local_4c;\n            if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }\n            paVar21->field_0x18 = paVar21->field_0x18 | 1;\n            paVar21->lma = bVar14;\n            paVar21->vma = bVar14;\n            paVar21->output_offset = 0;\n          }\n          lang_size_sections_1\n                    ((lang_statement_union_type **)&(local_54->assignment_statement).exp,\n                     &local_54->output_section_statement,(local_54->output_section_statement).fill,\n                     bVar14,relax,check_regions);\n          bVar19 = *(byte *)((int)local_54 + 0x54);\n          *(byte *)((int)local_54 + 0x54) = bVar19 | 1;\n          paVar21 = (local_54->output_section_statement).bfd_section;\n          if (paVar21 == (asection *)(puVar7 + 0x150)) {\n            uVar10 = *(uint *)(puVar7 + 0x174);\nLAB_000223fa:\n            if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar10 = paVar21->size;\n            if ((bVar19 & 8) != 0) goto LAB_000223fa;\n            dot = paVar21->vma;\n            if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }\n          }\n          plVar17 = (lang_memory_region_type *)(local_54->reloc_statement).output_section;\n          if (plVar17 == (lang_memory_region_type *)0x0) {\n            plVar17 = lang_memory_region_lookup("*default*",0);\n          }\n          if ((local_54->output_section_statement).load_base == (etree_type *)0x0) {\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            plVar4 = (local_54->output_section_statement).lma_region;\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\n            if (plVar4 != (lang_memory_region_type *)0x0) {\n              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }\n            if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;\n            if (uVar11 != 0) {\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n          }\n          else {\n            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar21->lma = bVar14;\nLAB_00022008:\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\nLAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n            if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((paVar21 != (asection *)(puVar7 + 0x150)) &&\n             ((*(byte *)((int)local_54 + 0x54) & 8) == 0)) {\n            if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }\n            dot = dot + local_4c;\n            if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n              exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }\n            plVar17 = (local_54->output_section_statement).region;\n            if ((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)) {\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }\n          }\n        }" else (compound_statement "{\n          if (paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            local_3c = 0;\n            sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum) {\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }\n          }\n          else {\n            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }\n            sVar20 = local_4c;\n            if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }\n            paVar21->field_0x18 = paVar21->field_0x18 | 1;\n            paVar21->lma = bVar14;\n            paVar21->vma = bVar14;\n            paVar21->output_offset = 0;\n          }\n          lang_size_sections_1\n                    ((lang_statement_union_type **)&(local_54->assignment_statement).exp,\n                     &local_54->output_section_statement,(local_54->output_section_statement).fill,\n                     bVar14,relax,check_regions);\n          bVar19 = *(byte *)((int)local_54 + 0x54);\n          *(byte *)((int)local_54 + 0x54) = bVar19 | 1;\n          paVar21 = (local_54->output_section_statement).bfd_section;\n          if (paVar21 == (asection *)(puVar7 + 0x150)) {\n            uVar10 = *(uint *)(puVar7 + 0x174);\nLAB_000223fa:\n            if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar10 = paVar21->size;\n            if ((bVar19 & 8) != 0) goto LAB_000223fa;\n            dot = paVar21->vma;\n            if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }\n          }\n          plVar17 = (lang_memory_region_type *)(local_54->reloc_statement).output_section;\n          if (plVar17 == (lang_memory_region_type *)0x0) {\n            plVar17 = lang_memory_region_lookup("*default*",0);\n          }\n          if ((local_54->output_section_statement).load_base == (etree_type *)0x0) {\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            plVar4 = (local_54->output_section_statement).lma_region;\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\n            if (plVar4 != (lang_memory_region_type *)0x0) {\n              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }\n            if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;\n            if (uVar11 != 0) {\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n          }\n          else {\n            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar21->lma = bVar14;\nLAB_00022008:\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\nLAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n            if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((paVar21 != (asection *)(puVar7 + 0x150)) &&\n             ((*(byte *)((int)local_54 + 0x54) & 8) == 0)) {\n            if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }\n            dot = dot + local_4c;\n            if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n              exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }\n            plVar17 = (local_54->output_section_statement).region;\n            if ((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)) {\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }\n          }\n        }" { (if_statement "if (paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            local_3c = 0;\n            sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum) {\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }\n          }\n          else {\n            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }\n            sVar20 = local_4c;\n            if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }\n            paVar21->field_0x18 = paVar21->field_0x18 | 1;\n            paVar21->lma = bVar14;\n            paVar21->vma = bVar14;\n            paVar21->output_offset = 0;\n          }" if (parenthesized_expression "(paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150))" ( (binary_expression "paVar21 == (asection *)(PTR__bfd_std_section_000bafc4 + 0x150)" identifier == (cast_expression "(asection *)(PTR__bfd_std_section_000bafc4 + 0x150)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x150)" ( (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal) )))) )) (compound_statement "{\n            local_3c = 0;\n            sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum) {\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }\n          }" { (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c);" (assignment_expression "sVar20 = *(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c)" identifier = (pointer_expression "*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c)" * (cast_expression "(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c)" ( (type_descriptor "statement_enum *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x16c)" ( (binary_expression "PTR__bfd_std_section_000bafc4 + 0x16c" identifier + number_literal) ))))) ;) (if_statement "if (*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum) {\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }" if (parenthesized_expression "(*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum)" ( (binary_expression "*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c) !=\n                lang_output_section_statement_enum" (pointer_expression "*(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c)" * (cast_expression "(statement_enum *)(PTR__bfd_std_section_000bafc4 + 0x16c)" ( (type_descriptor "statement_enum *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x16c)" ( (binary_expression "PTR__bfd_std_section_000bafc4 + 0x16c" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n              info_assert("../../ld/ldlang.c",0x13e5);\n              sVar20 = local_4c;\n            }" { (expression_statement "info_assert("../../ld/ldlang.c",0x13e5);" (call_expression "info_assert("../../ld/ldlang.c",0x13e5)" identifier (argument_list "("../../ld/ldlang.c",0x13e5)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "sVar20 = local_4c;" (assignment_expression "sVar20 = local_4c" identifier = identifier) ;) })) }) (else_clause "else {\n            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }\n            sVar20 = local_4c;\n            if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }\n            paVar21->field_0x18 = paVar21->field_0x18 | 1;\n            paVar21->lma = bVar14;\n            paVar21->vma = bVar14;\n            paVar21->output_offset = 0;\n          }" else (compound_statement "{\n            if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }\n            sVar20 = local_4c;\n            if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }\n            paVar21->field_0x18 = paVar21->field_0x18 | 1;\n            paVar21->lma = bVar14;\n            paVar21->vma = bVar14;\n            paVar21->output_offset = 0;\n          }" { (if_statement "if ((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0) {\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }\n            else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }" if (parenthesized_expression "((etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0)" ( (binary_expression "(etree_union *)(local_54->wild_statement).handler_data[1] == (etree_union *)0x0" (cast_expression "(etree_union *)(local_54->wild_statement).handler_data[1]" ( (type_descriptor "etree_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(local_54->wild_statement).handler_data[1]" (field_expression "(local_54->wild_statement).handler_data" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) == (cast_expression "(etree_union *)0x0" ( (type_descriptor "etree_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              paVar18 = (local_54->reloc_statement).output_section;\n              uVar10 = paVar21->flags;\n              if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }\n              plVar17 = lang_memory_region_list;\n              if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }\n              local_3c = paVar21->alignment_power;\n              bVar14 = paVar18->vma;\n            }" { (expression_statement "paVar18 = (local_54->reloc_statement).output_section;" (assignment_expression "paVar18 = (local_54->reloc_statement).output_section" identifier = (field_expression "(local_54->reloc_statement).output_section" (parenthesized_expression "(local_54->reloc_statement)" ( (field_expression "local_54->reloc_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar10 = paVar21->flags;" (assignment_expression "uVar10 = paVar21->flags" identifier = (field_expression "paVar21->flags" identifier -> field_identifier)) ;) (if_statement "if (paVar18 == (asection *)0x0) {\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }\n              else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }" if (parenthesized_expression "(paVar18 == (asection *)0x0)" ( (binary_expression "paVar18 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;\n                if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }\n                for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }\n                paVar18 = (asection *)lang_memory_region_lookup("*default*",0);\n                paVar21 = (local_54->output_section_statement).bfd_section;\nLAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;\n              }" { (labeled_statement "LAB_00022925:\n                paVar18 = (asection *)lang_memory_region_list;" statement_identifier : (expression_statement "paVar18 = (asection *)lang_memory_region_list;" (assignment_expression "paVar18 = (asection *)lang_memory_region_list" identifier = (cast_expression "(asection *)lang_memory_region_list" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if ((uVar10 & 0x19) == 1) {\n                  uVar10 = uVar10 | 0x20;\n                }" if (parenthesized_expression "((uVar10 & 0x19) == 1)" ( (binary_expression "(uVar10 & 0x19) == 1" (parenthesized_expression "(uVar10 & 0x19)" ( (binary_expression "uVar10 & 0x19" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  uVar10 = uVar10 | 0x20;\n                }" { (expression_statement "uVar10 = uVar10 | 0x20;" (assignment_expression "uVar10 = uVar10 | 0x20" identifier = (binary_expression "uVar10 | 0x20" identifier | number_literal)) ;) })) (for_statement "for (; paVar18 != (asection *)0x0; paVar18 = (asection *)paVar18->index) {\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }" for ( ; (binary_expression "paVar18 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "paVar18 = (asection *)paVar18->index" identifier = (cast_expression "(asection *)paVar18->index" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar18->index" identifier -> field_identifier))) ) (compound_statement "{\n                  if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;\n                }" { (if_statement "if (((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))\n                  goto LAB_00022989;" if (parenthesized_expression "(((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0))" ( (binary_expression "((paVar18->size & uVar10) != 0) && ((paVar18->rawsize & uVar10) == 0)" (parenthesized_expression "((paVar18->size & uVar10) != 0)" ( (binary_expression "(paVar18->size & uVar10) != 0" (parenthesized_expression "(paVar18->size & uVar10)" ( (binary_expression "paVar18->size & uVar10" (field_expression "paVar18->size" identifier -> field_identifier) & identifier) )) != number_literal) )) && (parenthesized_expression "((paVar18->rawsize & uVar10) == 0)" ( (binary_expression "(paVar18->rawsize & uVar10) == 0" (parenthesized_expression "(paVar18->rawsize & uVar10)" ( (binary_expression "paVar18->rawsize & uVar10" (field_expression "paVar18->rawsize" identifier -> field_identifier) & identifier) )) == number_literal) ))) )) (goto_statement "goto LAB_00022989;" goto statement_identifier ;)) })) (expression_statement "paVar18 = (asection *)lang_memory_region_lookup("*default*",0);" (assignment_expression "paVar18 = (asection *)lang_memory_region_lookup("*default*",0)" identifier = (cast_expression "(asection *)lang_memory_region_lookup("*default*",0)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "lang_memory_region_lookup("*default*",0)" identifier (argument_list "("*default*",0)" ( (string_literal ""*default*"" " string_content ") , number_literal ))))) ;) (expression_statement "paVar21 = (local_54->output_section_statement).bfd_section;" (assignment_expression "paVar21 = (local_54->output_section_statement).bfd_section" identifier = (field_expression "(local_54->output_section_statement).bfd_section" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (labeled_statement "LAB_00022989:\n                (local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;" statement_identifier : (expression_statement "(local_54->output_section_statement).region = (lang_memory_region_type *)paVar18;" (assignment_expression "(local_54->output_section_statement).region = (lang_memory_region_type *)paVar18" (field_expression "(local_54->output_section_statement).region" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(lang_memory_region_type *)paVar18" ( (type_descriptor "lang_memory_region_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) }) (else_clause "else if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }" else (if_statement "if ((uVar10 & 3) != 0) {\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }" if (parenthesized_expression "((uVar10 & 3) != 0)" ( (binary_expression "(uVar10 & 3) != 0" (parenthesized_expression "(uVar10 & 3)" ( (binary_expression "uVar10 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                bVar19 = *paVar18->name;\n                bVar24 = bVar19 < 0x2a;\n                bVar25 = bVar19 == 0x2a;\n                if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }\n              }" { (expression_statement "bVar19 = *paVar18->name;" (assignment_expression "bVar19 = *paVar18->name" identifier = (pointer_expression "*paVar18->name" * (field_expression "paVar18->name" identifier -> field_identifier))) ;) (expression_statement "bVar24 = bVar19 < 0x2a;" (assignment_expression "bVar24 = bVar19 < 0x2a" identifier = (binary_expression "bVar19 < 0x2a" identifier < number_literal)) ;) (expression_statement "bVar25 = bVar19 == 0x2a;" (assignment_expression "bVar25 = bVar19 == 0x2a" identifier = (binary_expression "bVar19 == 0x2a" identifier == number_literal)) ;) (if_statement "if (bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;\n                }" { (expression_statement "iVar9 = 10;" (assignment_expression "iVar9 = 10" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)paVar18->name;" (assignment_expression "pbVar22 = (byte *)paVar18->name" identifier = (cast_expression "(byte *)paVar18->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar18->name" identifier -> field_identifier))) ;) (expression_statement "pbVar23 = (byte *)"*default*";" (assignment_expression "pbVar23 = (byte *)"*default*"" identifier = (cast_expression "(byte *)"*default*"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""*default*"" " string_content "))) ;) (do_statement "do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);" do (compound_statement "{\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar22 < *pbVar23;" (assignment_expression "bVar24 = *pbVar22 < *pbVar23" identifier = (binary_expression "*pbVar22 < *pbVar23" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "bVar25 = *pbVar22 == *pbVar23;" (assignment_expression "bVar25 = *pbVar22 == *pbVar23" identifier = (binary_expression "*pbVar22 == *pbVar23" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar25) == bVar24) goto LAB_00022925;" if (parenthesized_expression "((!bVar24 && !bVar25) == bVar24)" ( (binary_expression "(!bVar24 && !bVar25) == bVar24" (parenthesized_expression "(!bVar24 && !bVar25)" ( (binary_expression "!bVar24 && !bVar25" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_00022925;" goto statement_identifier ;)) })) })))) (expression_statement "plVar17 = lang_memory_region_list;" (assignment_expression "plVar17 = lang_memory_region_list" identifier = identifier) ;) (if_statement "if (((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }" if (parenthesized_expression "(((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2))" ( (binary_expression "((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)" (parenthesized_expression "((((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400))" ( (binary_expression "(((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)) &&\n                  ((paVar21->flags & 0x402) != 0x400)" (parenthesized_expression "(((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0))" ( (binary_expression "((*(byte *)((int)local_54 + 0x54) & 8) == 0) && ((paVar21->flags & 1) != 0)" (parenthesized_expression "((*(byte *)((int)local_54 + 0x54) & 8) == 0)" ( (binary_expression "(*(byte *)((int)local_54 + 0x54) & 8) == 0" (parenthesized_expression "(*(byte *)((int)local_54 + 0x54) & 8)" ( (binary_expression "*(byte *)((int)local_54 + 0x54) & 8" (pointer_expression "*(byte *)((int)local_54 + 0x54)" * (cast_expression "(byte *)((int)local_54 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x54)" ( (binary_expression "(int)local_54 + 0x54" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((paVar21->flags & 1) != 0)" ( (binary_expression "(paVar21->flags & 1) != 0" (parenthesized_expression "(paVar21->flags & 1)" ( (binary_expression "paVar21->flags & 1" (field_expression "paVar21->flags" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((paVar21->flags & 0x402) != 0x400)" ( (binary_expression "(paVar21->flags & 0x402) != 0x400" (parenthesized_expression "(paVar21->flags & 0x402)" ( (binary_expression "paVar21->flags & 0x402" (field_expression "paVar21->flags" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((link_info._0_1_ & 3) != 2)" ( (binary_expression "(link_info._0_1_ & 3) != 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                bVar24 = false;\n                bVar25 = check_regions == 0;\n                if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }\n              }" { (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar25 = check_regions == 0;" (assignment_expression "bVar25 = check_regions == 0" identifier = (binary_expression "check_regions == 0" identifier == number_literal)) ;) (if_statement "if (!bVar25) {\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n                  iVar9 = 10;\n                  pbVar22 = (byte *)paVar18->name;\n                  pbVar23 = (byte *)"*default*";\n                  do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);\n                  if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }\n                }" { (expression_statement "iVar9 = 10;" (assignment_expression "iVar9 = 10" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)paVar18->name;" (assignment_expression "pbVar22 = (byte *)paVar18->name" identifier = (cast_expression "(byte *)paVar18->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar18->name" identifier -> field_identifier))) ;) (expression_statement "pbVar23 = (byte *)"*default*";" (assignment_expression "pbVar23 = (byte *)"*default*"" identifier = (cast_expression "(byte *)"*default*"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""*default*"" " string_content "))) ;) (do_statement "do {\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  } while (bVar25);" do (compound_statement "{\n                    if (iVar9 == 0) break;\n                    iVar9 = iVar9 + -1;\n                    bVar24 = *pbVar22 < *pbVar23;\n                    bVar25 = *pbVar22 == *pbVar23;\n                    pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                    pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;\n                  }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar22 < *pbVar23;" (assignment_expression "bVar24 = *pbVar22 < *pbVar23" identifier = (binary_expression "*pbVar22 < *pbVar23" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "bVar25 = *pbVar22 == *pbVar23;" (assignment_expression "bVar25 = *pbVar22 == *pbVar23" identifier = (binary_expression "*pbVar22 == *pbVar23" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if (((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)) {\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }" if (parenthesized_expression "(((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum))" ( (binary_expression "((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))) &&\n                     (expld.phase != lang_mark_phase_enum)" (parenthesized_expression "((((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0))))" ( (binary_expression "(((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)) &&\n                      ((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))" (parenthesized_expression "(((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0))" ( (binary_expression "((!bVar24 && !bVar25) == bVar24) &&\n                       (lang_memory_region_list != (lang_memory_region_type *)0x0)" (parenthesized_expression "((!bVar24 && !bVar25) == bVar24)" ( (binary_expression "(!bVar24 && !bVar25) == bVar24" (parenthesized_expression "(!bVar24 && !bVar25)" ( (binary_expression "!bVar24 && !bVar25" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier) )) && (parenthesized_expression "(lang_memory_region_list != (lang_memory_region_type *)0x0)" ( (binary_expression "lang_memory_region_list != (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)) ))) )) && (parenthesized_expression "((iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)))" ( (parenthesized_expression "(iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0))" ( (comma_expression "iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*"),\n                       iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)" (assignment_expression "iVar9 = strcmp((lang_memory_region_list->name_list).name,"*default*")" identifier = (call_expression "strcmp((lang_memory_region_list->name_list).name,"*default*")" identifier (argument_list "((lang_memory_region_list->name_list).name,"*default*")" ( (field_expression "(lang_memory_region_list->name_list).name" (parenthesized_expression "(lang_memory_region_list->name_list)" ( (field_expression "lang_memory_region_list->name_list" identifier -> field_identifier) )) . field_identifier) , (string_literal ""*default*"" " string_content ") )))) , (binary_expression "iVar9 != 0 || (plVar17->next != (memory_region_struct *)0x0)" (binary_expression "iVar9 != 0" identifier != number_literal) || (parenthesized_expression "(plVar17->next != (memory_region_struct *)0x0)" ( (binary_expression "plVar17->next != (memory_region_struct *)0x0" (field_expression "plVar17->next" identifier -> field_identifier) != (cast_expression "(memory_region_struct *)0x0" ( (type_descriptor "memory_region_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) )) ))) )) && (parenthesized_expression "(expld.phase != lang_mark_phase_enum)" ( (binary_expression "expld.phase != lang_mark_phase_enum" (field_expression "expld.phase" identifier . field_identifier) != identifier) ))) )) (compound_statement "{\n                    pcVar15 = paVar21->name;\n                    if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }\n                    pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);\n                    einfo(pcVar13,pcVar15);\n                    paVar18 = (local_54->reloc_statement).output_section;\n                    paVar21 = (local_54->output_section_statement).bfd_section;\n                  }" { (expression_statement "pcVar15 = paVar21->name;" (assignment_expression "pcVar15 = paVar21->name" identifier = (field_expression "paVar21->name" identifier -> field_identifier)) ;) (if_statement "if (command_line.check_section_addresses == '\0') {\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }\n                    else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }" if (parenthesized_expression "(command_line.check_section_addresses == '\0')" ( (binary_expression "command_line.check_section_addresses == '\0'" (field_expression "command_line.check_section_addresses" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = extraout_ECX;\n                    }" { (expression_statement "pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";" (assignment_expression "pcVar13 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n"" identifier = (string_literal ""%P: warning: no memory region specified for loadable section `%s\'\n"" " string_content escape_sequence escape_sequence ")) ;) (expression_statement "ppuVar27 = extraout_ECX;" (assignment_expression "ppuVar27 = extraout_ECX" identifier = identifier) ;) }) (else_clause "else {\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }" else (compound_statement "{\n                      pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;\n                    }" { (expression_statement "pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";" (assignment_expression "pcVar13 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n"" identifier = (string_literal ""%F%P: error: no memory region specified for loadable section `%s\'\n"" " string_content escape_sequence escape_sequence ")) ;) (expression_statement "ppuVar27 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "ppuVar27 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) }))) (expression_statement "pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27);" (assignment_expression "pcVar13 = (char *)dcgettext(0,pcVar13,5,ppuVar27)" identifier = (cast_expression "(char *)dcgettext(0,pcVar13,5,ppuVar27)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar13,5,ppuVar27)" identifier (argument_list "(0,pcVar13,5,ppuVar27)" ( number_literal , identifier , number_literal , identifier ))))) ;) (expression_statement "einfo(pcVar13,pcVar15);" (call_expression "einfo(pcVar13,pcVar15)" identifier (argument_list "(pcVar13,pcVar15)" ( identifier , identifier ))) ;) (expression_statement "paVar18 = (local_54->reloc_statement).output_section;" (assignment_expression "paVar18 = (local_54->reloc_statement).output_section" identifier = (field_expression "(local_54->reloc_statement).output_section" (parenthesized_expression "(local_54->reloc_statement)" ( (field_expression "local_54->reloc_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "paVar21 = (local_54->output_section_statement).bfd_section;" (assignment_expression "paVar21 = (local_54->output_section_statement).bfd_section" identifier = (field_expression "(local_54->output_section_statement).bfd_section" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) })) })) })) (expression_statement "local_3c = paVar21->alignment_power;" (assignment_expression "local_3c = paVar21->alignment_power" identifier = (field_expression "paVar21->alignment_power" identifier -> field_identifier)) ;) (expression_statement "bVar14 = paVar18->vma;" (assignment_expression "bVar14 = paVar18->vma" identifier = (field_expression "paVar18->vma" identifier -> field_identifier)) ;) }) (else_clause "else {\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }" else (compound_statement "{\n              local_3c = (local_54->output_section_statement).section_alignment;\n            }" { (expression_statement "local_3c = (local_54->output_section_statement).section_alignment;" (assignment_expression "local_3c = (local_54->output_section_statement).section_alignment" identifier = (field_expression "(local_54->output_section_statement).section_alignment" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) }))) (expression_statement "sVar20 = local_4c;" (assignment_expression "sVar20 = local_4c" identifier = identifier) ;) (if_statement "if (0 < (int)local_3c) {\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }" if (parenthesized_expression "(0 < (int)local_3c)" ( (binary_expression "0 < (int)local_3c" number_literal < (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              iVar9 = 1 << ((byte)local_3c & 0x1f);\n              uVar10 = -iVar9 & iVar9 + -1 + bVar14;\n              sVar20 = uVar10 - bVar14;\n              bVar14 = uVar10;\n              if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }\n            }" { (expression_statement "iVar9 = 1 << ((byte)local_3c & 0x1f);" (assignment_expression "iVar9 = 1 << ((byte)local_3c & 0x1f)" identifier = (binary_expression "1 << ((byte)local_3c & 0x1f)" number_literal << (parenthesized_expression "((byte)local_3c & 0x1f)" ( (binary_expression "(byte)local_3c & 0x1f" (cast_expression "(byte)local_3c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar10 = -iVar9 & iVar9 + -1 + bVar14;" (assignment_expression "uVar10 = -iVar9 & iVar9 + -1 + bVar14" identifier = (binary_expression "-iVar9 & iVar9 + -1 + bVar14" (unary_expression "-iVar9" - identifier) & (binary_expression "iVar9 + -1 + bVar14" (binary_expression "iVar9 + -1" identifier + number_literal) + identifier))) ;) (expression_statement "sVar20 = uVar10 - bVar14;" (assignment_expression "sVar20 = uVar10 - bVar14" identifier = (binary_expression "uVar10 - bVar14" identifier - identifier)) ;) (expression_statement "bVar14 = uVar10;" (assignment_expression "bVar14 = uVar10" identifier = identifier) ;) (if_statement "if (((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)) {\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }" if (parenthesized_expression "(((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum))" ( (binary_expression "((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))) && (expld.phase != lang_mark_phase_enum)" (parenthesized_expression "((sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   )))" ( (binary_expression "(sVar20 != lang_output_section_statement_enum) &&\n                  ((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))" (parenthesized_expression "(sVar20 != lang_output_section_statement_enum)" ( (binary_expression "sVar20 != lang_output_section_statement_enum" identifier != identifier) )) && (parenthesized_expression "((config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   ))" ( (parenthesized_expression "(config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)\n                   )" ( (binary_expression "config.warn_section_align != 0 ||\n                   ((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)" (binary_expression "config.warn_section_align != 0" (field_expression "config.warn_section_align" identifier . field_identifier) != number_literal) || (parenthesized_expression "((etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0)" ( (binary_expression "(etree_union *)(local_54->wild_statement).handler_data[1] != (etree_union *)0x0" (cast_expression "(etree_union *)(local_54->wild_statement).handler_data[1]" ( (type_descriptor "etree_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(local_54->wild_statement).handler_data[1]" (field_expression "(local_54->wild_statement).handler_data" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) != (cast_expression "(etree_union *)0x0" ( (type_descriptor "etree_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) && (parenthesized_expression "(expld.phase != lang_mark_phase_enum)" ( (binary_expression "expld.phase != lang_mark_phase_enum" (field_expression "expld.phase" identifier . field_identifier) != identifier) ))) )) (compound_statement "{\n                pcVar15 = *(char **)&(local_54->wild_statement).children;\n                pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);\n                einfo(pcVar13,pcVar15,sVar20);\n                paVar21 = (local_54->output_section_statement).bfd_section;\n              }" { (expression_statement "pcVar15 = *(char **)&(local_54->wild_statement).children;" (assignment_expression "pcVar15 = *(char **)&(local_54->wild_statement).children" identifier = (pointer_expression "*(char **)&(local_54->wild_statement).children" * (cast_expression "(char **)&(local_54->wild_statement).children" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(local_54->wild_statement).children" & (field_expression "(local_54->wild_statement).children" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5);" (assignment_expression "pcVar13 = (char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5)" identifier = (cast_expression "(char *)dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcngettext(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5)" identifier (argument_list "(0,\n                                             "%P: warning: changing start of section %s by %lu byte\n"\n                                             ,\n                                             "%P: warning: changing start of section %s by %lu bytes\n"\n                                             ,sVar20,5)" ( number_literal , (string_literal ""%P: warning: changing start of section %s by %lu byte\n"" " string_content escape_sequence ") , (string_literal ""%P: warning: changing start of section %s by %lu bytes\n"" " string_content escape_sequence ") , identifier , number_literal ))))) ;) (expression_statement "einfo(pcVar13,pcVar15,sVar20);" (call_expression "einfo(pcVar13,pcVar15,sVar20)" identifier (argument_list "(pcVar13,pcVar15,sVar20)" ( identifier , identifier , identifier ))) ;) (expression_statement "paVar21 = (local_54->output_section_statement).bfd_section;" (assignment_expression "paVar21 = (local_54->output_section_statement).bfd_section" identifier = (field_expression "(local_54->output_section_statement).bfd_section" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) })) })) (expression_statement "paVar21->field_0x18 = paVar21->field_0x18 | 1;" (assignment_expression "paVar21->field_0x18 = paVar21->field_0x18 | 1" (field_expression "paVar21->field_0x18" identifier -> field_identifier) = (binary_expression "paVar21->field_0x18 | 1" (field_expression "paVar21->field_0x18" identifier -> field_identifier) | number_literal)) ;) (expression_statement "paVar21->lma = bVar14;" (assignment_expression "paVar21->lma = bVar14" (field_expression "paVar21->lma" identifier -> field_identifier) = identifier) ;) (expression_statement "paVar21->vma = bVar14;" (assignment_expression "paVar21->vma = bVar14" (field_expression "paVar21->vma" identifier -> field_identifier) = identifier) ;) (expression_statement "paVar21->output_offset = 0;" (assignment_expression "paVar21->output_offset = 0" (field_expression "paVar21->output_offset" identifier -> field_identifier) = number_literal) ;) }))) (expression_statement "lang_size_sections_1\n                    ((lang_statement_union_type **)&(local_54->assignment_statement).exp,\n                     &local_54->output_section_statement,(local_54->output_section_statement).fill,\n                     bVar14,relax,check_regions);" (call_expression "lang_size_sections_1\n                    ((lang_statement_union_type **)&(local_54->assignment_statement).exp,\n                     &local_54->output_section_statement,(local_54->output_section_statement).fill,\n                     bVar14,relax,check_regions)" identifier (argument_list "((lang_statement_union_type **)&(local_54->assignment_statement).exp,\n                     &local_54->output_section_statement,(local_54->output_section_statement).fill,\n                     bVar14,relax,check_regions)" ( (cast_expression "(lang_statement_union_type **)&(local_54->assignment_statement).exp" ( (type_descriptor "lang_statement_union_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(local_54->assignment_statement).exp" & (field_expression "(local_54->assignment_statement).exp" (parenthesized_expression "(local_54->assignment_statement)" ( (field_expression "local_54->assignment_statement" identifier -> field_identifier) )) . field_identifier))) , (pointer_expression "&local_54->output_section_statement" & (field_expression "local_54->output_section_statement" identifier -> field_identifier)) , (field_expression "(local_54->output_section_statement).fill" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier) , identifier , identifier , identifier ))) ;) (expression_statement "bVar19 = *(byte *)((int)local_54 + 0x54);" (assignment_expression "bVar19 = *(byte *)((int)local_54 + 0x54)" identifier = (pointer_expression "*(byte *)((int)local_54 + 0x54)" * (cast_expression "(byte *)((int)local_54 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x54)" ( (binary_expression "(int)local_54 + 0x54" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(byte *)((int)local_54 + 0x54) = bVar19 | 1;" (assignment_expression "*(byte *)((int)local_54 + 0x54) = bVar19 | 1" (pointer_expression "*(byte *)((int)local_54 + 0x54)" * (cast_expression "(byte *)((int)local_54 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x54)" ( (binary_expression "(int)local_54 + 0x54" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar19 | 1" identifier | number_literal)) ;) (expression_statement "paVar21 = (local_54->output_section_statement).bfd_section;" (assignment_expression "paVar21 = (local_54->output_section_statement).bfd_section" identifier = (field_expression "(local_54->output_section_statement).bfd_section" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (paVar21 == (asection *)(puVar7 + 0x150)) {\n            uVar10 = *(uint *)(puVar7 + 0x174);\nLAB_000223fa:\n            if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar10 = paVar21->size;\n            if ((bVar19 & 8) != 0) goto LAB_000223fa;\n            dot = paVar21->vma;\n            if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }\n          }" if (parenthesized_expression "(paVar21 == (asection *)(puVar7 + 0x150))" ( (binary_expression "paVar21 == (asection *)(puVar7 + 0x150)" identifier == (cast_expression "(asection *)(puVar7 + 0x150)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x150)" ( (binary_expression "puVar7 + 0x150" identifier + number_literal) )))) )) (compound_statement "{\n            uVar10 = *(uint *)(puVar7 + 0x174);\nLAB_000223fa:\n            if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }\n          }" { (expression_statement "uVar10 = *(uint *)(puVar7 + 0x174);" (assignment_expression "uVar10 = *(uint *)(puVar7 + 0x174)" identifier = (pointer_expression "*(uint *)(puVar7 + 0x174)" * (cast_expression "(uint *)(puVar7 + 0x174)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x174)" ( (binary_expression "puVar7 + 0x174" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000223fa:\n            if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }" statement_identifier : (if_statement "if (uVar10 != 0) {\n              info_assert("../../ld/ldlang.c",0x1443);\n            }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n              info_assert("../../ld/ldlang.c",0x1443);\n            }" { (expression_statement "info_assert("../../ld/ldlang.c",0x1443);" (call_expression "info_assert("../../ld/ldlang.c",0x1443)" identifier (argument_list "("../../ld/ldlang.c",0x1443)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) }))) }) (else_clause "else {\n            uVar10 = paVar21->size;\n            if ((bVar19 & 8) != 0) goto LAB_000223fa;\n            dot = paVar21->vma;\n            if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }\n          }" else (compound_statement "{\n            uVar10 = paVar21->size;\n            if ((bVar19 & 8) != 0) goto LAB_000223fa;\n            dot = paVar21->vma;\n            if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }\n          }" { (expression_statement "uVar10 = paVar21->size;" (assignment_expression "uVar10 = paVar21->size" identifier = (field_expression "paVar21->size" identifier -> field_identifier)) ;) (if_statement "if ((bVar19 & 8) != 0) goto LAB_000223fa;" if (parenthesized_expression "((bVar19 & 8) != 0)" ( (binary_expression "(bVar19 & 8) != 0" (parenthesized_expression "(bVar19 & 8)" ( (binary_expression "bVar19 & 8" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000223fa;" goto statement_identifier ;)) (expression_statement "dot = paVar21->vma;" (assignment_expression "dot = paVar21->vma" identifier = (field_expression "paVar21->vma" identifier -> field_identifier)) ;) (if_statement "if ((paVar21->flags & 0x800) == 0) {\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }" if (parenthesized_expression "((paVar21->flags & 0x800) == 0)" ( (binary_expression "(paVar21->flags & 0x800) == 0" (parenthesized_expression "(paVar21->flags & 0x800)" ( (binary_expression "paVar21->flags & 0x800" (field_expression "paVar21->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);\n            }" { (expression_statement "paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f);" (assignment_expression "paVar21->size =\n                   ((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f)" (field_expression "paVar21->size" identifier -> field_identifier) = (binary_expression "((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot <<\n                   ((byte)opb_shift & 0x1f)" (binary_expression "((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value) - dot" (parenthesized_expression "((int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value)" ( (binary_expression "(int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1) &\n                   -(local_54->output_section_statement).block_value" (binary_expression "(int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f)) + (dot - 1)" (binary_expression "(int)(local_54->wild_statement).section_flag_list +\n                    (uVar10 >> ((byte)opb_shift & 0x1f))" (cast_expression "(int)(local_54->wild_statement).section_flag_list" ( (type_descriptor "int" primitive_type) ) (field_expression "(local_54->wild_statement).section_flag_list" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier)) + (parenthesized_expression "(uVar10 >> ((byte)opb_shift & 0x1f))" ( (binary_expression "uVar10 >> ((byte)opb_shift & 0x1f)" identifier >> (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) + (parenthesized_expression "(dot - 1)" ( (binary_expression "dot - 1" identifier - number_literal) ))) & (unary_expression "-(local_54->output_section_statement).block_value" - (field_expression "(local_54->output_section_statement).block_value" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier))) )) - 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 "plVar17 = (lang_memory_region_type *)(local_54->reloc_statement).output_section;" (assignment_expression "plVar17 = (lang_memory_region_type *)(local_54->reloc_statement).output_section" identifier = (cast_expression "(lang_memory_region_type *)(local_54->reloc_statement).output_section" ( (type_descriptor "lang_memory_region_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(local_54->reloc_statement).output_section" (parenthesized_expression "(local_54->reloc_statement)" ( (field_expression "local_54->reloc_statement" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (plVar17 == (lang_memory_region_type *)0x0) {\n            plVar17 = lang_memory_region_lookup("*default*",0);\n          }" if (parenthesized_expression "(plVar17 == (lang_memory_region_type *)0x0)" ( (binary_expression "plVar17 == (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            plVar17 = lang_memory_region_lookup("*default*",0);\n          }" { (expression_statement "plVar17 = lang_memory_region_lookup("*default*",0);" (assignment_expression "plVar17 = lang_memory_region_lookup("*default*",0)" identifier = (call_expression "lang_memory_region_lookup("*default*",0)" identifier (argument_list "("*default*",0)" ( (string_literal ""*default*"" " string_content ") , number_literal )))) ;) })) (if_statement "if ((local_54->output_section_statement).load_base == (etree_type *)0x0) {\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            plVar4 = (local_54->output_section_statement).lma_region;\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\n            if (plVar4 != (lang_memory_region_type *)0x0) {\n              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }\n            if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;\n            if (uVar11 != 0) {\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n          }\n          else {\n            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar21->lma = bVar14;\nLAB_00022008:\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\nLAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n            if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "((local_54->output_section_statement).load_base == (etree_type *)0x0)" ( (binary_expression "(local_54->output_section_statement).load_base == (etree_type *)0x0" (field_expression "(local_54->output_section_statement).load_base" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->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            paVar21 = (local_54->output_section_statement).bfd_section;\n            plVar4 = (local_54->output_section_statement).lma_region;\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\n            if (plVar4 != (lang_memory_region_type *)0x0) {\n              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }\n            if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;\n            if (uVar11 != 0) {\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n          }" { (expression_statement "paVar21 = (local_54->output_section_statement).bfd_section;" (assignment_expression "paVar21 = (local_54->output_section_statement).bfd_section" identifier = (field_expression "(local_54->output_section_statement).bfd_section" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "plVar4 = (local_54->output_section_statement).lma_region;" (assignment_expression "plVar4 = (local_54->output_section_statement).lma_region" identifier = (field_expression "(local_54->output_section_statement).lma_region" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar10 = paVar21->flags;" (assignment_expression "uVar10 = paVar21->flags" identifier = (field_expression "paVar21->flags" identifier -> field_identifier)) ;) (expression_statement "uVar11 = uVar10 & 1;" (assignment_expression "uVar11 = uVar10 & 1" identifier = (binary_expression "uVar10 & 1" identifier & number_literal)) ;) (if_statement "if (plVar4 != (lang_memory_region_type *)0x0) {\n              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }" if (parenthesized_expression "(plVar4 != (lang_memory_region_type *)0x0)" ( (binary_expression "plVar4 != (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              local_34 = plVar4->current;\n              if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }\n              paVar21->lma = local_34;\n              goto LAB_00022015;\n            }" { (expression_statement "local_34 = plVar4->current;" (assignment_expression "local_34 = plVar4->current" identifier = (field_expression "plVar4->current" identifier -> field_identifier)) ;) (if_statement "if ((*(byte *)((int)local_54 + 0x54) & 0x40) == 0) {\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }\n              else {\n                local_34 = local_34 + sVar20;\n              }" if (parenthesized_expression "((*(byte *)((int)local_54 + 0x54) & 0x40) == 0)" ( (binary_expression "(*(byte *)((int)local_54 + 0x54) & 0x40) == 0" (parenthesized_expression "(*(byte *)((int)local_54 + 0x54) & 0x40)" ( (binary_expression "*(byte *)((int)local_54 + 0x54) & 0x40" (pointer_expression "*(byte *)((int)local_54 + 0x54)" * (cast_expression "(byte *)((int)local_54 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x54)" ( (binary_expression "(int)local_54 + 0x54" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }\n              }" { (if_statement "if (plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list) {\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }" if (parenthesized_expression "(plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list)" ( (binary_expression "plVar4 != (lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list" identifier != (cast_expression "(lang_memory_region_type *)\n                              (local_54->wild_statement).exclude_name_list" ( (type_descriptor "lang_memory_region_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(local_54->wild_statement).exclude_name_list" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier))) )) (compound_statement "{\n                  local_3c = (local_54->output_section_statement).section_alignment;\n                }" { (expression_statement "local_3c = (local_54->output_section_statement).section_alignment;" (assignment_expression "local_3c = (local_54->output_section_statement).section_alignment" identifier = (field_expression "(local_54->output_section_statement).section_alignment" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) })) (if_statement "if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }" if (parenthesized_expression "(0 < (int)local_3c)" ( (binary_expression "0 < (int)local_3c" number_literal < (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  local_34 = -iVar9 & iVar9 + -1 + local_34;\n                }" { (expression_statement "iVar9 = 1 << ((byte)local_3c & 0x1f);" (assignment_expression "iVar9 = 1 << ((byte)local_3c & 0x1f)" identifier = (binary_expression "1 << ((byte)local_3c & 0x1f)" number_literal << (parenthesized_expression "((byte)local_3c & 0x1f)" ( (binary_expression "(byte)local_3c & 0x1f" (cast_expression "(byte)local_3c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "local_34 = -iVar9 & iVar9 + -1 + local_34;" (assignment_expression "local_34 = -iVar9 & iVar9 + -1 + local_34" identifier = (binary_expression "-iVar9 & iVar9 + -1 + local_34" (unary_expression "-iVar9" - identifier) & (binary_expression "iVar9 + -1 + local_34" (binary_expression "iVar9 + -1" identifier + number_literal) + identifier))) ;) })) }) (else_clause "else {\n                local_34 = local_34 + sVar20;\n              }" else (compound_statement "{\n                local_34 = local_34 + sVar20;\n              }" { (expression_statement "local_34 = local_34 + sVar20;" (assignment_expression "local_34 = local_34 + sVar20" identifier = (binary_expression "local_34 + sVar20" identifier + identifier)) ;) }))) (expression_statement "paVar21->lma = local_34;" (assignment_expression "paVar21->lma = local_34" (field_expression "paVar21->lma" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_00022015;" goto statement_identifier ;) })) (if_statement "if (plVar17->last_os == (lang_statement_union *)0x0) goto LAB_00022015;" if (parenthesized_expression "(plVar17->last_os == (lang_statement_union *)0x0)" ( (binary_expression "plVar17->last_os == (lang_statement_union *)0x0" (field_expression "plVar17->last_os" identifier -> field_identifier) == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00022015;" goto statement_identifier ;)) (if_statement "if (uVar11 != 0) {\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (compound_statement "{\n              paVar18 = (plVar17->last_os->output_section_statement).bfd_section;\n              uVar11 = paVar18->vma;\n              uVar5 = paVar18->lma;\n              if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }\n              *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n              goto LAB_00022020;\n            }" { (expression_statement "paVar18 = (plVar17->last_os->output_section_statement).bfd_section;" (assignment_expression "paVar18 = (plVar17->last_os->output_section_statement).bfd_section" identifier = (field_expression "(plVar17->last_os->output_section_statement).bfd_section" (parenthesized_expression "(plVar17->last_os->output_section_statement)" ( (field_expression "plVar17->last_os->output_section_statement" (field_expression "plVar17->last_os" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar11 = paVar18->vma;" (assignment_expression "uVar11 = paVar18->vma" identifier = (field_expression "paVar18->vma" identifier -> field_identifier)) ;) (expression_statement "uVar5 = paVar18->lma;" (assignment_expression "uVar5 = paVar18->lma" identifier = (field_expression "paVar18->lma" identifier -> field_identifier)) ;) (if_statement "if (((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)) {\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }\n              else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }" if (parenthesized_expression "(((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11))" ( (binary_expression "((dot < uVar11) && (paVar21->size != 0)) &&\n                 ((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)" (parenthesized_expression "((dot < uVar11) && (paVar21->size != 0))" ( (binary_expression "(dot < uVar11) && (paVar21->size != 0)" (parenthesized_expression "(dot < uVar11)" ( (binary_expression "dot < uVar11" identifier < identifier) )) && (parenthesized_expression "(paVar21->size != 0)" ( (binary_expression "paVar21->size != 0" (field_expression "paVar21->size" identifier -> field_identifier) != number_literal) ))) )) && (parenthesized_expression "((paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11)" ( (binary_expression "(paVar21->size >> ((byte)opb_shift & 0x1f)) + dot <= uVar11" (binary_expression "(paVar21->size >> ((byte)opb_shift & 0x1f)) + dot" (parenthesized_expression "(paVar21->size >> ((byte)opb_shift & 0x1f))" ( (binary_expression "paVar21->size >> ((byte)opb_shift & 0x1f)" (field_expression "paVar21->size" identifier -> field_identifier) >> (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )) + identifier) <= identifier) ))) )) (compound_statement "{\n                if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }\n              }" { (if_statement "if (uVar11 != uVar5) {\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }" if (parenthesized_expression "(uVar11 != uVar5)" ( (binary_expression "uVar11 != uVar5" identifier != identifier) )) (compound_statement "{\n                  plVar6 = (local_54->wild_statement).children.head;\n                  pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);\n                  einfo(pcVar15,plVar6);\n                  paVar21 = (local_54->output_section_statement).bfd_section;\n                  goto LAB_00022008;\n                }" { (expression_statement "plVar6 = (local_54->wild_statement).children.head;" (assignment_expression "plVar6 = (local_54->wild_statement).children.head" identifier = (field_expression "(local_54->wild_statement).children.head" (field_expression "(local_54->wild_statement).children" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54);" (assignment_expression "pcVar15 = (char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54)" identifier = (cast_expression "(char *)dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54)" identifier (argument_list "(0,"%P: warning: dot moved backwards before `%s\'\n",5,\n                                              local_54)" ( number_literal , (string_literal ""%P: warning: dot moved backwards before `%s\'\n"" " string_content escape_sequence escape_sequence ") , number_literal , identifier ))))) ;) (expression_statement "einfo(pcVar15,plVar6);" (call_expression "einfo(pcVar15,plVar6)" identifier (argument_list "(pcVar15,plVar6)" ( identifier , identifier ))) ;) (expression_statement "paVar21 = (local_54->output_section_statement).bfd_section;" (assignment_expression "paVar21 = (local_54->output_section_statement).bfd_section" identifier = (field_expression "(local_54->output_section_statement).bfd_section" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (goto_statement "goto LAB_00022008;" goto statement_identifier ;) })) }) (else_clause "else {\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }" else (compound_statement "{\n                uVar11 = (uVar5 + dot) - uVar11;\n                if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }\n                if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }\n                paVar21->lma = uVar11;\n              }" { (expression_statement "uVar11 = (uVar5 + dot) - uVar11;" (assignment_expression "uVar11 = (uVar5 + dot) - uVar11" identifier = (binary_expression "(uVar5 + dot) - uVar11" (parenthesized_expression "(uVar5 + dot)" ( (binary_expression "uVar5 + dot" identifier + identifier) )) - identifier)) ;) (if_statement "if ((local_54->output_section_statement).sectype == overlay_section) {\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }" if (parenthesized_expression "((local_54->output_section_statement).sectype == overlay_section)" ( (binary_expression "(local_54->output_section_statement).sectype == overlay_section" (field_expression "(local_54->output_section_statement).sectype" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier) == identifier) )) (compound_statement "{\n                  uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;\n                }" { (expression_statement "uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5;" (assignment_expression "uVar11 = (paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5" identifier = (binary_expression "(paVar18->size >> ((byte)opb_shift & 0x1f)) + uVar5" (parenthesized_expression "(paVar18->size >> ((byte)opb_shift & 0x1f))" ( (binary_expression "paVar18->size >> ((byte)opb_shift & 0x1f)" (field_expression "paVar18->size" identifier -> field_identifier) >> (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )) + identifier)) ;) })) (if_statement "if (0 < (int)local_3c) {\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }" if (parenthesized_expression "(0 < (int)local_3c)" ( (binary_expression "0 < (int)local_3c" number_literal < (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  iVar9 = 1 << ((byte)local_3c & 0x1f);\n                  uVar11 = -iVar9 & iVar9 + -1 + uVar11;\n                }" { (expression_statement "iVar9 = 1 << ((byte)local_3c & 0x1f);" (assignment_expression "iVar9 = 1 << ((byte)local_3c & 0x1f)" identifier = (binary_expression "1 << ((byte)local_3c & 0x1f)" number_literal << (parenthesized_expression "((byte)local_3c & 0x1f)" ( (binary_expression "(byte)local_3c & 0x1f" (cast_expression "(byte)local_3c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar11 = -iVar9 & iVar9 + -1 + uVar11;" (assignment_expression "uVar11 = -iVar9 & iVar9 + -1 + uVar11" identifier = (binary_expression "-iVar9 & iVar9 + -1 + uVar11" (unary_expression "-iVar9" - identifier) & (binary_expression "iVar9 + -1 + uVar11" (binary_expression "iVar9 + -1" identifier + number_literal) + identifier))) ;) })) (expression_statement "paVar21->lma = uVar11;" (assignment_expression "paVar21->lma = uVar11" (field_expression "paVar21->lma" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "*(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;" (assignment_expression "*(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2" (pointer_expression "*(byte *)((int)local_54 + 0x54)" * (cast_expression "(byte *)((int)local_54 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x54)" ( (binary_expression "(int)local_54 + 0x54" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)local_54 + 0x54) | 2" (pointer_expression "*(byte *)((int)local_54 + 0x54)" * (cast_expression "(byte *)((int)local_54 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x54)" ( (binary_expression "(int)local_54 + 0x54" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) (goto_statement "goto LAB_00022020;" goto statement_identifier ;) })) (expression_statement "*(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;" (assignment_expression "*(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2" (pointer_expression "*(byte *)((int)local_54 + 0x54)" * (cast_expression "(byte *)((int)local_54 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x54)" ( (binary_expression "(int)local_54 + 0x54" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)local_54 + 0x54) | 2" (pointer_expression "*(byte *)((int)local_54 + 0x54)" * (cast_expression "(byte *)((int)local_54 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x54)" ( (binary_expression "(int)local_54 + 0x54" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) }) (else_clause "else {\n            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar21->lma = bVar14;\nLAB_00022008:\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\nLAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n            if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }\n          }" else (compound_statement "{\n            bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");\n            paVar21 = (local_54->output_section_statement).bfd_section;\n            paVar21->lma = bVar14;\nLAB_00022008:\n            uVar10 = paVar21->flags;\n            uVar11 = uVar10 & 1;\nLAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;\n            if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base");" (assignment_expression "bVar14 = exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base")" identifier = (call_expression "exp_get_abs_int((local_54->output_section_statement).load_base,0,"load base")" identifier (argument_list "((local_54->output_section_statement).load_base,0,"load base")" ( (field_expression "(local_54->output_section_statement).load_base" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier) , number_literal , (string_literal ""load base"" " string_content ") )))) ;) (expression_statement "paVar21 = (local_54->output_section_statement).bfd_section;" (assignment_expression "paVar21 = (local_54->output_section_statement).bfd_section" identifier = (field_expression "(local_54->output_section_statement).bfd_section" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "paVar21->lma = bVar14;" (assignment_expression "paVar21->lma = bVar14" (field_expression "paVar21->lma" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_00022008:\n            uVar10 = paVar21->flags;" statement_identifier : (expression_statement "uVar10 = paVar21->flags;" (assignment_expression "uVar10 = paVar21->flags" identifier = (field_expression "paVar21->flags" identifier -> field_identifier)) ;)) (expression_statement "uVar11 = uVar10 & 1;" (assignment_expression "uVar11 = uVar10 & 1" identifier = (binary_expression "uVar10 & 1" identifier & number_literal)) ;) (labeled_statement "LAB_00022015:\n            *(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;" statement_identifier : (expression_statement "*(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2;" (assignment_expression "*(byte *)((int)local_54 + 0x54) = *(byte *)((int)local_54 + 0x54) | 2" (pointer_expression "*(byte *)((int)local_54 + 0x54)" * (cast_expression "(byte *)((int)local_54 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x54)" ( (binary_expression "(int)local_54 + 0x54" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)local_54 + 0x54) | 2" (pointer_expression "*(byte *)((int)local_54 + 0x54)" * (cast_expression "(byte *)((int)local_54 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x54)" ( (binary_expression "(int)local_54 + 0x54" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;)) (if_statement "if (uVar11 != 0) {\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }\n            }" { (labeled_statement "LAB_00022020:\n              if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }" statement_identifier : (if_statement "if ((uVar10 & 0x402) != 0x400) {\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }" if (parenthesized_expression "((uVar10 & 0x402) != 0x400)" ( (binary_expression "(uVar10 & 0x402) != 0x400" (parenthesized_expression "(uVar10 & 0x402)" ( (binary_expression "uVar10 & 0x402" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }\n              }" { (if_statement "if (paVar21->size == 0) {\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }\n                else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }" if (parenthesized_expression "(paVar21->size == 0)" ( (binary_expression "paVar21->size == 0" (field_expression "paVar21->size" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                  if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;\n                }" { (if_statement "if (plVar17->last_os == (lang_statement_union *)0x0) {\n                    if (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }\n                  else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;" if (parenthesized_expression "(plVar17->last_os == (lang_statement_union *)0x0)" ( (binary_expression "plVar17->last_os == (lang_statement_union *)0x0" (field_expression "plVar17->last_os" 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 (paVar21->vma != paVar21->lma) goto LAB_000223c5;\n                  }" { (if_statement "if (paVar21->vma != paVar21->lma) goto LAB_000223c5;" if (parenthesized_expression "(paVar21->vma != paVar21->lma)" ( (binary_expression "paVar21->vma != paVar21->lma" (field_expression "paVar21->vma" identifier -> field_identifier) != (field_expression "paVar21->lma" identifier -> field_identifier)) )) (goto_statement "goto LAB_000223c5;" goto statement_identifier ;)) }) (else_clause "else if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;" else (if_statement "if (((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)\n                  goto LAB_000223c5;" if (parenthesized_expression "(((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot)" ( (binary_expression "((plVar17->last_os->output_section_statement).bfd_section)->vma <= dot" (field_expression "((plVar17->last_os->output_section_statement).bfd_section)->vma" (parenthesized_expression "((plVar17->last_os->output_section_statement).bfd_section)" ( (field_expression "(plVar17->last_os->output_section_statement).bfd_section" (parenthesized_expression "(plVar17->last_os->output_section_statement)" ( (field_expression "plVar17->last_os->output_section_statement" (field_expression "plVar17->last_os" identifier -> field_identifier) -> field_identifier) )) . field_identifier) )) -> field_identifier) <= identifier) )) (goto_statement "goto LAB_000223c5;" goto statement_identifier ;)))) }) (else_clause "else {\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }" else (compound_statement "{\nLAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }\n                }" { (labeled_statement "LAB_000223c5:\n                  if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }" statement_identifier : (if_statement "if (((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)) {\n                    plVar17->last_os = local_54;\n                  }" if (parenthesized_expression "(((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2))" ( (binary_expression "((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0) && ((link_info._0_1_ & 3) != 2)" (parenthesized_expression "((local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0)" ( (binary_expression "(local_54->wild_statement).walk_wild_section_handler ==\n                       (walk_wild_section_handler_t)0x0" (field_expression "(local_54->wild_statement).walk_wild_section_handler" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier) == (cast_expression "(walk_wild_section_handler_t)0x0" ( (type_descriptor "walk_wild_section_handler_t" type_identifier) ) number_literal)) )) && (parenthesized_expression "((link_info._0_1_ & 3) != 2)" ( (binary_expression "(link_info._0_1_ & 3) != 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    plVar17->last_os = local_54;\n                  }" { (expression_statement "plVar17->last_os = local_54;" (assignment_expression "plVar17->last_os = local_54" (field_expression "plVar17->last_os" identifier -> field_identifier) = identifier) ;) }))) }))) }))) })) }))) (if_statement "if ((paVar21 != (asection *)(puVar7 + 0x150)) &&\n             ((*(byte *)((int)local_54 + 0x54) & 8) == 0)) {\n            if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }\n            dot = dot + local_4c;\n            if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n              exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }\n            plVar17 = (local_54->output_section_statement).region;\n            if ((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)) {\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }\n          }" if (parenthesized_expression "((paVar21 != (asection *)(puVar7 + 0x150)) &&\n             ((*(byte *)((int)local_54 + 0x54) & 8) == 0))" ( (binary_expression "(paVar21 != (asection *)(puVar7 + 0x150)) &&\n             ((*(byte *)((int)local_54 + 0x54) & 8) == 0)" (parenthesized_expression "(paVar21 != (asection *)(puVar7 + 0x150))" ( (binary_expression "paVar21 != (asection *)(puVar7 + 0x150)" identifier != (cast_expression "(asection *)(puVar7 + 0x150)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x150)" ( (binary_expression "puVar7 + 0x150" identifier + number_literal) )))) )) && (parenthesized_expression "((*(byte *)((int)local_54 + 0x54) & 8) == 0)" ( (binary_expression "(*(byte *)((int)local_54 + 0x54) & 8) == 0" (parenthesized_expression "(*(byte *)((int)local_54 + 0x54) & 8)" ( (binary_expression "*(byte *)((int)local_54 + 0x54) & 8" (pointer_expression "*(byte *)((int)local_54 + 0x54)" * (cast_expression "(byte *)((int)local_54 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x54)" ( (binary_expression "(int)local_54 + 0x54" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }\n            dot = dot + local_4c;\n            if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n              exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }\n            plVar17 = (local_54->output_section_statement).region;\n            if ((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)) {\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }\n          }" { (if_statement "if (((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }" if (parenthesized_expression "(((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2))" ( (binary_expression "((uVar10 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)" (parenthesized_expression "((uVar10 & 0x402) != 0x400)" ( (binary_expression "(uVar10 & 0x402) != 0x400" (parenthesized_expression "(uVar10 & 0x402)" ( (binary_expression "uVar10 & 0x402" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((link_info._0_1_ & 3) == 2)" ( (binary_expression "(link_info._0_1_ & 3) == 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n              local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);\n            }" { (expression_statement "local_4c = paVar21->size >> ((byte)opb_shift & 0x1f);" (assignment_expression "local_4c = paVar21->size >> ((byte)opb_shift & 0x1f)" identifier = (binary_expression "paVar21->size >> ((byte)opb_shift & 0x1f)" (field_expression "paVar21->size" identifier -> field_identifier) >> (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "dot = dot + local_4c;" (assignment_expression "dot = dot + local_4c" identifier = (binary_expression "dot + local_4c" identifier + identifier)) ;) (if_statement "if ((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0) {\n              exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }" if (parenthesized_expression "((local_54->output_section_statement).update_dot_tree != (etree_type *)0x0)" ( (binary_expression "(local_54->output_section_statement).update_dot_tree != (etree_type *)0x0" (field_expression "(local_54->output_section_statement).update_dot_tree" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->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((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);\n            }" { (expression_statement "exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot);" (call_expression "exp_fold_tree((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot)" identifier (argument_list "((local_54->output_section_statement).update_dot_tree,\n                            (asection *)(puVar7 + 0x150),&dot)" ( (field_expression "(local_54->output_section_statement).update_dot_tree" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier) , (cast_expression "(asection *)(puVar7 + 0x150)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x150)" ( (binary_expression "puVar7 + 0x150" identifier + number_literal) ))) , (pointer_expression "&dot" & identifier) ))) ;) })) (expression_statement "plVar17 = (local_54->output_section_statement).region;" (assignment_expression "plVar17 = (local_54->output_section_statement).region" identifier = (field_expression "(local_54->output_section_statement).region" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)) {\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }" if (parenthesized_expression "((plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0))" ( (binary_expression "(plVar17 != (lang_memory_region_type *)0x0) &&\n               (paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)" (parenthesized_expression "(plVar17 != (lang_memory_region_type *)0x0)" ( (binary_expression "plVar17 != (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)) )) && (parenthesized_expression "(paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0)" ( (comma_expression "paVar21 = (local_54->output_section_statement).bfd_section,\n               (paVar21->flags & 3) != 0" (assignment_expression "paVar21 = (local_54->output_section_statement).bfd_section" identifier = (field_expression "(local_54->output_section_statement).bfd_section" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(paVar21->flags & 3) != 0" (parenthesized_expression "(paVar21->flags & 3)" ( (binary_expression "paVar21->flags & 3" (field_expression "paVar21->flags" identifier -> field_identifier) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n              plVar17->current = dot;\n              if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }\n              plVar17 = (local_54->output_section_statement).lma_region;\n              if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }\n            }" { (expression_statement "plVar17->current = dot;" (assignment_expression "plVar17->current = dot" (field_expression "plVar17->current" identifier -> field_identifier) = identifier) ;) (if_statement "if (check_regions != 0) {\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }" if (parenthesized_expression "(check_regions != 0)" ( (binary_expression "check_regions != 0" identifier != number_literal) )) (compound_statement "{\n                os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);\n              }" { (expression_statement "os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma);" (call_expression "os_region_check((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma)" identifier (argument_list "((lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail,plVar17,\n                                (local_54->output_section_statement).addr_tree,paVar21->vma)" ( (cast_expression "(lang_output_section_statement_type *)\n                                &(local_54->wild_statement).children.tail" ( (type_descriptor "lang_output_section_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_54->wild_statement).children.tail" & (field_expression "(local_54->wild_statement).children.tail" (field_expression "(local_54->wild_statement).children" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier))) , identifier , (field_expression "(local_54->output_section_statement).addr_tree" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier) , (field_expression "paVar21->vma" identifier -> field_identifier) ))) ;) })) (expression_statement "plVar17 = (local_54->output_section_statement).lma_region;" (assignment_expression "plVar17 = (local_54->output_section_statement).lma_region" identifier = (field_expression "(local_54->output_section_statement).lma_region" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))) {\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }" if (parenthesized_expression "(((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0))))" ( (binary_expression "((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)) &&\n                 (((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))" (parenthesized_expression "((plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list))" ( (binary_expression "(plVar17 != (lang_memory_region_type *)0x0) &&\n                  (plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)" (parenthesized_expression "(plVar17 != (lang_memory_region_type *)0x0)" ( (binary_expression "plVar17 != (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)) )) && (parenthesized_expression "(plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list)" ( (binary_expression "plVar17 !=\n                   (lang_memory_region_type *)(local_54->wild_statement).exclude_name_list" identifier != (cast_expression "(lang_memory_region_type *)(local_54->wild_statement).exclude_name_list" ( (type_descriptor "lang_memory_region_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(local_54->wild_statement).exclude_name_list" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier))) ))) )) && (parenthesized_expression "(((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)))" ( (parenthesized_expression "((((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0))" ( (binary_expression "(((local_54->output_section_statement).bfd_section)->flags & 2) != 0 ||\n                  ((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)" (binary_expression "(((local_54->output_section_statement).bfd_section)->flags & 2) != 0" (parenthesized_expression "(((local_54->output_section_statement).bfd_section)->flags & 2)" ( (binary_expression "((local_54->output_section_statement).bfd_section)->flags & 2" (field_expression "((local_54->output_section_statement).bfd_section)->flags" (parenthesized_expression "((local_54->output_section_statement).bfd_section)" ( (field_expression "(local_54->output_section_statement).bfd_section" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)((int)local_54 + 0x54) & 0x40) != 0)" ( (binary_expression "(*(byte *)((int)local_54 + 0x54) & 0x40) != 0" (parenthesized_expression "(*(byte *)((int)local_54 + 0x54) & 0x40)" ( (binary_expression "*(byte *)((int)local_54 + 0x54) & 0x40" (pointer_expression "*(byte *)((int)local_54 + 0x54)" * (cast_expression "(byte *)((int)local_54 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x54)" ( (binary_expression "(int)local_54 + 0x54" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n                bVar14 = ((local_54->output_section_statement).bfd_section)->lma;\n                plVar17->current = local_4c + bVar14;\n                if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }\n              }" { (expression_statement "bVar14 = ((local_54->output_section_statement).bfd_section)->lma;" (assignment_expression "bVar14 = ((local_54->output_section_statement).bfd_section)->lma" identifier = (field_expression "((local_54->output_section_statement).bfd_section)->lma" (parenthesized_expression "((local_54->output_section_statement).bfd_section)" ( (field_expression "(local_54->output_section_statement).bfd_section" (parenthesized_expression "(local_54->output_section_statement)" ( (field_expression "local_54->output_section_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (expression_statement "plVar17->current = local_4c + bVar14;" (assignment_expression "plVar17->current = local_4c + bVar14" (field_expression "plVar17->current" identifier -> field_identifier) = (binary_expression "local_4c + bVar14" identifier + identifier)) ;) (if_statement "if (check_regions != 0) {\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }" if (parenthesized_expression "(check_regions != 0)" ( (binary_expression "check_regions != 0" identifier != number_literal) )) (compound_statement "{\n                  os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);\n                }" { (expression_statement "os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14);" (call_expression "os_region_check((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14)" identifier (argument_list "((lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail,plVar17,\n                                  (etree_type *)0x0,bVar14)" ( (cast_expression "(lang_output_section_statement_type *)\n                                  &(local_54->wild_statement).children.tail" ( (type_descriptor "lang_output_section_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_54->wild_statement).children.tail" & (field_expression "(local_54->wild_statement).children.tail" (field_expression "(local_54->wild_statement).children" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier))) , identifier , (cast_expression "(etree_type *)0x0" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;) })) })) })) })) }))) })) })) (break_statement "break;" break ;)) (case_statement "case lang_assignment_statement_enum:\n    tree = (etree_type *)(local_54->input_section).section;\n    expld.dataseg.relro = exp_seg_relro_none;\n    again = dot;\n    exp_fold_tree(tree,output_section_statement->bfd_section,(bfd_vma *)&again);\n    plVar6 = expld.dataseg.relro_start_stat;\n    plVar8 = expld.dataseg.relro_end_stat;\n    if (expld.dataseg.relro == exp_seg_relro_start) {\n      plVar6 = local_54;\n      if ((expld.dataseg.relro_start_stat != (lang_statement_union *)0x0) &&\n         (plVar6 = expld.dataseg.relro_start_stat, expld.dataseg.relro_start_stat != local_54)) {\n        uVar10 = 0x137c;\n        goto LAB_000222ec;\n      }\n    }\n    else if (((expld.dataseg.relro == exp_seg_relro_end) &&\n             (plVar8 = local_54, expld.dataseg.relro_end_stat != (lang_statement_union *)0x0)) &&\n            (plVar8 = expld.dataseg.relro_end_stat, expld.dataseg.relro_end_stat != local_54)) {\n      uVar10 = 0x1385;\nLAB_000222ec:\n      info_assert("../../ld/ldlang.c",uVar10);\n      plVar6 = expld.dataseg.relro_start_stat;\n      plVar8 = expld.dataseg.relro_end_stat;\n    }\n    expld.dataseg.relro_end_stat = plVar8;\n    expld.dataseg.relro_start_stat = plVar6;\n    expld.dataseg.relro = exp_seg_relro_none;\n    if ((((tree->type).node_class & ~etree_unary) == etree_assign) &&\n       ((*(tree->assign).dst != '.' || ((tree->assign).dst[1] != '\0')))) {\n      output_section_statement->field_0x54 = output_section_statement->field_0x54 | 0x10;\n    }\n    if ((output_section_statement->field_0x54 & 8) == 0) {\n      if (abs_output_section == output_section_statement) {\n        plVar17 = lang_memory_region_lookup("*default*",0);\n        plVar17->current = again;\n        dot = again;\n      }\n      else if (again != dot) {\n        insert_pad((lang_statement_union_type **)local_54,local_48,\n                   again - dot << ((byte)opb_shift & 0x1f),output_section_statement->bfd_section,dot\n                  );\n        local_54 = (local_54->header).next;\n        dot = again;\n        if ((output_section_statement->sectype != noalloc_section) &&\n           ((output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)))) {\n          pfVar1 = &output_section_statement->bfd_section->flags;\n          *pfVar1 = *pfVar1 | 1;\n        }\n      }\n    }\n    break;" case identifier : (expression_statement "tree = (etree_type *)(local_54->input_section).section;" (assignment_expression "tree = (etree_type *)(local_54->input_section).section" identifier = (cast_expression "(etree_type *)(local_54->input_section).section" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(local_54->input_section).section" (parenthesized_expression "(local_54->input_section)" ( (field_expression "local_54->input_section" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "expld.dataseg.relro = exp_seg_relro_none;" (assignment_expression "expld.dataseg.relro = exp_seg_relro_none" (field_expression "expld.dataseg.relro" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "again = dot;" (assignment_expression "again = dot" identifier = identifier) ;) (expression_statement "exp_fold_tree(tree,output_section_statement->bfd_section,(bfd_vma *)&again);" (call_expression "exp_fold_tree(tree,output_section_statement->bfd_section,(bfd_vma *)&again)" identifier (argument_list "(tree,output_section_statement->bfd_section,(bfd_vma *)&again)" ( identifier , (field_expression "output_section_statement->bfd_section" identifier -> field_identifier) , (cast_expression "(bfd_vma *)&again" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&again" & identifier)) ))) ;) (expression_statement "plVar6 = expld.dataseg.relro_start_stat;" (assignment_expression "plVar6 = expld.dataseg.relro_start_stat" identifier = (field_expression "expld.dataseg.relro_start_stat" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier)) ;) (expression_statement "plVar8 = expld.dataseg.relro_end_stat;" (assignment_expression "plVar8 = expld.dataseg.relro_end_stat" identifier = (field_expression "expld.dataseg.relro_end_stat" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier)) ;) (if_statement "if (expld.dataseg.relro == exp_seg_relro_start) {\n      plVar6 = local_54;\n      if ((expld.dataseg.relro_start_stat != (lang_statement_union *)0x0) &&\n         (plVar6 = expld.dataseg.relro_start_stat, expld.dataseg.relro_start_stat != local_54)) {\n        uVar10 = 0x137c;\n        goto LAB_000222ec;\n      }\n    }\n    else if (((expld.dataseg.relro == exp_seg_relro_end) &&\n             (plVar8 = local_54, expld.dataseg.relro_end_stat != (lang_statement_union *)0x0)) &&\n            (plVar8 = expld.dataseg.relro_end_stat, expld.dataseg.relro_end_stat != local_54)) {\n      uVar10 = 0x1385;\nLAB_000222ec:\n      info_assert("../../ld/ldlang.c",uVar10);\n      plVar6 = expld.dataseg.relro_start_stat;\n      plVar8 = expld.dataseg.relro_end_stat;\n    }" if (parenthesized_expression "(expld.dataseg.relro == exp_seg_relro_start)" ( (binary_expression "expld.dataseg.relro == exp_seg_relro_start" (field_expression "expld.dataseg.relro" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier) == identifier) )) (compound_statement "{\n      plVar6 = local_54;\n      if ((expld.dataseg.relro_start_stat != (lang_statement_union *)0x0) &&\n         (plVar6 = expld.dataseg.relro_start_stat, expld.dataseg.relro_start_stat != local_54)) {\n        uVar10 = 0x137c;\n        goto LAB_000222ec;\n      }\n    }" { (expression_statement "plVar6 = local_54;" (assignment_expression "plVar6 = local_54" identifier = identifier) ;) (if_statement "if ((expld.dataseg.relro_start_stat != (lang_statement_union *)0x0) &&\n         (plVar6 = expld.dataseg.relro_start_stat, expld.dataseg.relro_start_stat != local_54)) {\n        uVar10 = 0x137c;\n        goto LAB_000222ec;\n      }" if (parenthesized_expression "((expld.dataseg.relro_start_stat != (lang_statement_union *)0x0) &&\n         (plVar6 = expld.dataseg.relro_start_stat, expld.dataseg.relro_start_stat != local_54))" ( (binary_expression "(expld.dataseg.relro_start_stat != (lang_statement_union *)0x0) &&\n         (plVar6 = expld.dataseg.relro_start_stat, expld.dataseg.relro_start_stat != local_54)" (parenthesized_expression "(expld.dataseg.relro_start_stat != (lang_statement_union *)0x0)" ( (binary_expression "expld.dataseg.relro_start_stat != (lang_statement_union *)0x0" (field_expression "expld.dataseg.relro_start_stat" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier) != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(plVar6 = expld.dataseg.relro_start_stat, expld.dataseg.relro_start_stat != local_54)" ( (comma_expression "plVar6 = expld.dataseg.relro_start_stat, expld.dataseg.relro_start_stat != local_54" (assignment_expression "plVar6 = expld.dataseg.relro_start_stat" identifier = (field_expression "expld.dataseg.relro_start_stat" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier)) , (binary_expression "expld.dataseg.relro_start_stat != local_54" (field_expression "expld.dataseg.relro_start_stat" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier) != identifier)) ))) )) (compound_statement "{\n        uVar10 = 0x137c;\n        goto LAB_000222ec;\n      }" { (expression_statement "uVar10 = 0x137c;" (assignment_expression "uVar10 = 0x137c" identifier = number_literal) ;) (goto_statement "goto LAB_000222ec;" goto statement_identifier ;) })) }) (else_clause "else if (((expld.dataseg.relro == exp_seg_relro_end) &&\n             (plVar8 = local_54, expld.dataseg.relro_end_stat != (lang_statement_union *)0x0)) &&\n            (plVar8 = expld.dataseg.relro_end_stat, expld.dataseg.relro_end_stat != local_54)) {\n      uVar10 = 0x1385;\nLAB_000222ec:\n      info_assert("../../ld/ldlang.c",uVar10);\n      plVar6 = expld.dataseg.relro_start_stat;\n      plVar8 = expld.dataseg.relro_end_stat;\n    }" else (if_statement "if (((expld.dataseg.relro == exp_seg_relro_end) &&\n             (plVar8 = local_54, expld.dataseg.relro_end_stat != (lang_statement_union *)0x0)) &&\n            (plVar8 = expld.dataseg.relro_end_stat, expld.dataseg.relro_end_stat != local_54)) {\n      uVar10 = 0x1385;\nLAB_000222ec:\n      info_assert("../../ld/ldlang.c",uVar10);\n      plVar6 = expld.dataseg.relro_start_stat;\n      plVar8 = expld.dataseg.relro_end_stat;\n    }" if (parenthesized_expression "(((expld.dataseg.relro == exp_seg_relro_end) &&\n             (plVar8 = local_54, expld.dataseg.relro_end_stat != (lang_statement_union *)0x0)) &&\n            (plVar8 = expld.dataseg.relro_end_stat, expld.dataseg.relro_end_stat != local_54))" ( (binary_expression "((expld.dataseg.relro == exp_seg_relro_end) &&\n             (plVar8 = local_54, expld.dataseg.relro_end_stat != (lang_statement_union *)0x0)) &&\n            (plVar8 = expld.dataseg.relro_end_stat, expld.dataseg.relro_end_stat != local_54)" (parenthesized_expression "((expld.dataseg.relro == exp_seg_relro_end) &&\n             (plVar8 = local_54, expld.dataseg.relro_end_stat != (lang_statement_union *)0x0))" ( (binary_expression "(expld.dataseg.relro == exp_seg_relro_end) &&\n             (plVar8 = local_54, expld.dataseg.relro_end_stat != (lang_statement_union *)0x0)" (parenthesized_expression "(expld.dataseg.relro == exp_seg_relro_end)" ( (binary_expression "expld.dataseg.relro == exp_seg_relro_end" (field_expression "expld.dataseg.relro" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier) == identifier) )) && (parenthesized_expression "(plVar8 = local_54, expld.dataseg.relro_end_stat != (lang_statement_union *)0x0)" ( (comma_expression "plVar8 = local_54, expld.dataseg.relro_end_stat != (lang_statement_union *)0x0" (assignment_expression "plVar8 = local_54" identifier = identifier) , (binary_expression "expld.dataseg.relro_end_stat != (lang_statement_union *)0x0" (field_expression "expld.dataseg.relro_end_stat" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier) != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(plVar8 = expld.dataseg.relro_end_stat, expld.dataseg.relro_end_stat != local_54)" ( (comma_expression "plVar8 = expld.dataseg.relro_end_stat, expld.dataseg.relro_end_stat != local_54" (assignment_expression "plVar8 = expld.dataseg.relro_end_stat" identifier = (field_expression "expld.dataseg.relro_end_stat" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier)) , (binary_expression "expld.dataseg.relro_end_stat != local_54" (field_expression "expld.dataseg.relro_end_stat" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier) != identifier)) ))) )) (compound_statement "{\n      uVar10 = 0x1385;\nLAB_000222ec:\n      info_assert("../../ld/ldlang.c",uVar10);\n      plVar6 = expld.dataseg.relro_start_stat;\n      plVar8 = expld.dataseg.relro_end_stat;\n    }" { (expression_statement "uVar10 = 0x1385;" (assignment_expression "uVar10 = 0x1385" identifier = number_literal) ;) (labeled_statement "LAB_000222ec:\n      info_assert("../../ld/ldlang.c",uVar10);" statement_identifier : (expression_statement "info_assert("../../ld/ldlang.c",uVar10);" (call_expression "info_assert("../../ld/ldlang.c",uVar10)" identifier (argument_list "("../../ld/ldlang.c",uVar10)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , identifier ))) ;)) (expression_statement "plVar6 = expld.dataseg.relro_start_stat;" (assignment_expression "plVar6 = expld.dataseg.relro_start_stat" identifier = (field_expression "expld.dataseg.relro_start_stat" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier)) ;) (expression_statement "plVar8 = expld.dataseg.relro_end_stat;" (assignment_expression "plVar8 = expld.dataseg.relro_end_stat" identifier = (field_expression "expld.dataseg.relro_end_stat" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier)) ;) })))) (expression_statement "expld.dataseg.relro_end_stat = plVar8;" (assignment_expression "expld.dataseg.relro_end_stat = plVar8" (field_expression "expld.dataseg.relro_end_stat" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "expld.dataseg.relro_start_stat = plVar6;" (assignment_expression "expld.dataseg.relro_start_stat = plVar6" (field_expression "expld.dataseg.relro_start_stat" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "expld.dataseg.relro = exp_seg_relro_none;" (assignment_expression "expld.dataseg.relro = exp_seg_relro_none" (field_expression "expld.dataseg.relro" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier) = identifier) ;) (if_statement "if ((((tree->type).node_class & ~etree_unary) == etree_assign) &&\n       ((*(tree->assign).dst != '.' || ((tree->assign).dst[1] != '\0')))) {\n      output_section_statement->field_0x54 = output_section_statement->field_0x54 | 0x10;\n    }" if (parenthesized_expression "((((tree->type).node_class & ~etree_unary) == etree_assign) &&\n       ((*(tree->assign).dst != '.' || ((tree->assign).dst[1] != '\0'))))" ( (binary_expression "(((tree->type).node_class & ~etree_unary) == etree_assign) &&\n       ((*(tree->assign).dst != '.' || ((tree->assign).dst[1] != '\0')))" (parenthesized_expression "(((tree->type).node_class & ~etree_unary) == etree_assign)" ( (binary_expression "((tree->type).node_class & ~etree_unary) == etree_assign" (parenthesized_expression "((tree->type).node_class & ~etree_unary)" ( (binary_expression "(tree->type).node_class & ~etree_unary" (field_expression "(tree->type).node_class" (parenthesized_expression "(tree->type)" ( (field_expression "tree->type" identifier -> field_identifier) )) . field_identifier) & (unary_expression "~etree_unary" ~ identifier)) )) == identifier) )) && (parenthesized_expression "((*(tree->assign).dst != '.' || ((tree->assign).dst[1] != '\0')))" ( (parenthesized_expression "(*(tree->assign).dst != '.' || ((tree->assign).dst[1] != '\0'))" ( (binary_expression "*(tree->assign).dst != '.' || ((tree->assign).dst[1] != '\0')" (binary_expression "*(tree->assign).dst != '.'" (pointer_expression "*(tree->assign).dst" * (field_expression "(tree->assign).dst" (parenthesized_expression "(tree->assign)" ( (field_expression "tree->assign" identifier -> field_identifier) )) . field_identifier)) != (char_literal "'.'" ' character ')) || (parenthesized_expression "((tree->assign).dst[1] != '\0')" ( (binary_expression "(tree->assign).dst[1] != '\0'" (subscript_expression "(tree->assign).dst[1]" (field_expression "(tree->assign).dst" (parenthesized_expression "(tree->assign)" ( (field_expression "tree->assign" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n      output_section_statement->field_0x54 = output_section_statement->field_0x54 | 0x10;\n    }" { (expression_statement "output_section_statement->field_0x54 = output_section_statement->field_0x54 | 0x10;" (assignment_expression "output_section_statement->field_0x54 = output_section_statement->field_0x54 | 0x10" (field_expression "output_section_statement->field_0x54" identifier -> field_identifier) = (binary_expression "output_section_statement->field_0x54 | 0x10" (field_expression "output_section_statement->field_0x54" identifier -> field_identifier) | number_literal)) ;) })) (if_statement "if ((output_section_statement->field_0x54 & 8) == 0) {\n      if (abs_output_section == output_section_statement) {\n        plVar17 = lang_memory_region_lookup("*default*",0);\n        plVar17->current = again;\n        dot = again;\n      }\n      else if (again != dot) {\n        insert_pad((lang_statement_union_type **)local_54,local_48,\n                   again - dot << ((byte)opb_shift & 0x1f),output_section_statement->bfd_section,dot\n                  );\n        local_54 = (local_54->header).next;\n        dot = again;\n        if ((output_section_statement->sectype != noalloc_section) &&\n           ((output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)))) {\n          pfVar1 = &output_section_statement->bfd_section->flags;\n          *pfVar1 = *pfVar1 | 1;\n        }\n      }\n    }" if (parenthesized_expression "((output_section_statement->field_0x54 & 8) == 0)" ( (binary_expression "(output_section_statement->field_0x54 & 8) == 0" (parenthesized_expression "(output_section_statement->field_0x54 & 8)" ( (binary_expression "output_section_statement->field_0x54 & 8" (field_expression "output_section_statement->field_0x54" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (abs_output_section == output_section_statement) {\n        plVar17 = lang_memory_region_lookup("*default*",0);\n        plVar17->current = again;\n        dot = again;\n      }\n      else if (again != dot) {\n        insert_pad((lang_statement_union_type **)local_54,local_48,\n                   again - dot << ((byte)opb_shift & 0x1f),output_section_statement->bfd_section,dot\n                  );\n        local_54 = (local_54->header).next;\n        dot = again;\n        if ((output_section_statement->sectype != noalloc_section) &&\n           ((output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)))) {\n          pfVar1 = &output_section_statement->bfd_section->flags;\n          *pfVar1 = *pfVar1 | 1;\n        }\n      }\n    }" { (if_statement "if (abs_output_section == output_section_statement) {\n        plVar17 = lang_memory_region_lookup("*default*",0);\n        plVar17->current = again;\n        dot = again;\n      }\n      else if (again != dot) {\n        insert_pad((lang_statement_union_type **)local_54,local_48,\n                   again - dot << ((byte)opb_shift & 0x1f),output_section_statement->bfd_section,dot\n                  );\n        local_54 = (local_54->header).next;\n        dot = again;\n        if ((output_section_statement->sectype != noalloc_section) &&\n           ((output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)))) {\n          pfVar1 = &output_section_statement->bfd_section->flags;\n          *pfVar1 = *pfVar1 | 1;\n        }\n      }" if (parenthesized_expression "(abs_output_section == output_section_statement)" ( (binary_expression "abs_output_section == output_section_statement" identifier == identifier) )) (compound_statement "{\n        plVar17 = lang_memory_region_lookup("*default*",0);\n        plVar17->current = again;\n        dot = again;\n      }" { (expression_statement "plVar17 = lang_memory_region_lookup("*default*",0);" (assignment_expression "plVar17 = lang_memory_region_lookup("*default*",0)" identifier = (call_expression "lang_memory_region_lookup("*default*",0)" identifier (argument_list "("*default*",0)" ( (string_literal ""*default*"" " string_content ") , number_literal )))) ;) (expression_statement "plVar17->current = again;" (assignment_expression "plVar17->current = again" (field_expression "plVar17->current" identifier -> field_identifier) = identifier) ;) (expression_statement "dot = again;" (assignment_expression "dot = again" identifier = identifier) ;) }) (else_clause "else if (again != dot) {\n        insert_pad((lang_statement_union_type **)local_54,local_48,\n                   again - dot << ((byte)opb_shift & 0x1f),output_section_statement->bfd_section,dot\n                  );\n        local_54 = (local_54->header).next;\n        dot = again;\n        if ((output_section_statement->sectype != noalloc_section) &&\n           ((output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)))) {\n          pfVar1 = &output_section_statement->bfd_section->flags;\n          *pfVar1 = *pfVar1 | 1;\n        }\n      }" else (if_statement "if (again != dot) {\n        insert_pad((lang_statement_union_type **)local_54,local_48,\n                   again - dot << ((byte)opb_shift & 0x1f),output_section_statement->bfd_section,dot\n                  );\n        local_54 = (local_54->header).next;\n        dot = again;\n        if ((output_section_statement->sectype != noalloc_section) &&\n           ((output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)))) {\n          pfVar1 = &output_section_statement->bfd_section->flags;\n          *pfVar1 = *pfVar1 | 1;\n        }\n      }" if (parenthesized_expression "(again != dot)" ( (binary_expression "again != dot" identifier != identifier) )) (compound_statement "{\n        insert_pad((lang_statement_union_type **)local_54,local_48,\n                   again - dot << ((byte)opb_shift & 0x1f),output_section_statement->bfd_section,dot\n                  );\n        local_54 = (local_54->header).next;\n        dot = again;\n        if ((output_section_statement->sectype != noalloc_section) &&\n           ((output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)))) {\n          pfVar1 = &output_section_statement->bfd_section->flags;\n          *pfVar1 = *pfVar1 | 1;\n        }\n      }" { (expression_statement "insert_pad((lang_statement_union_type **)local_54,local_48,\n                   again - dot << ((byte)opb_shift & 0x1f),output_section_statement->bfd_section,dot\n                  );" (call_expression "insert_pad((lang_statement_union_type **)local_54,local_48,\n                   again - dot << ((byte)opb_shift & 0x1f),output_section_statement->bfd_section,dot\n                  )" identifier (argument_list "((lang_statement_union_type **)local_54,local_48,\n                   again - dot << ((byte)opb_shift & 0x1f),output_section_statement->bfd_section,dot\n                  )" ( (cast_expression "(lang_statement_union_type **)local_54" ( (type_descriptor "lang_statement_union_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) , identifier , (binary_expression "again - dot << ((byte)opb_shift & 0x1f)" (binary_expression "again - dot" identifier - identifier) << (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) , (field_expression "output_section_statement->bfd_section" identifier -> field_identifier) , identifier ))) ;) (expression_statement "local_54 = (local_54->header).next;" (assignment_expression "local_54 = (local_54->header).next" identifier = (field_expression "(local_54->header).next" (parenthesized_expression "(local_54->header)" ( (field_expression "local_54->header" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dot = again;" (assignment_expression "dot = again" identifier = identifier) ;) (if_statement "if ((output_section_statement->sectype != noalloc_section) &&\n           ((output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)))) {\n          pfVar1 = &output_section_statement->bfd_section->flags;\n          *pfVar1 = *pfVar1 | 1;\n        }" if (parenthesized_expression "((output_section_statement->sectype != noalloc_section) &&\n           ((output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour))))" ( (binary_expression "(output_section_statement->sectype != noalloc_section) &&\n           ((output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)))" (parenthesized_expression "(output_section_statement->sectype != noalloc_section)" ( (binary_expression "output_section_statement->sectype != noalloc_section" (field_expression "output_section_statement->sectype" identifier -> field_identifier) != identifier) )) && (parenthesized_expression "((output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)))" ( (parenthesized_expression "(output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour))" ( (binary_expression "output_section_statement->sectype != noload_section ||\n            ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)" (binary_expression "output_section_statement->sectype != noload_section" (field_expression "output_section_statement->sectype" identifier -> field_identifier) != identifier) || (parenthesized_expression "((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)" ( (binary_expression "(link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour" (field_expression "(link_info.output_bfd)->xvec->flavour" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier) == identifier) ))) )) ))) )) (compound_statement "{\n          pfVar1 = &output_section_statement->bfd_section->flags;\n          *pfVar1 = *pfVar1 | 1;\n        }" { (expression_statement "pfVar1 = &output_section_statement->bfd_section->flags;" (assignment_expression "pfVar1 = &output_section_statement->bfd_section->flags" identifier = (pointer_expression "&output_section_statement->bfd_section->flags" & (field_expression "output_section_statement->bfd_section->flags" (field_expression "output_section_statement->bfd_section" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "*pfVar1 = *pfVar1 | 1;" (assignment_expression "*pfVar1 = *pfVar1 | 1" (pointer_expression "*pfVar1" * identifier) = (binary_expression "*pfVar1 | 1" (pointer_expression "*pfVar1" * identifier) | number_literal)) ;) })) })))) })) (break_statement "break;" break ;)) (case_statement "case lang_input_statement_enum:" case identifier :) (case_statement "case lang_address_statement_enum:" case identifier :) (case_statement "case lang_target_statement_enum:" case identifier :) (case_statement "case lang_output_statement_enum:" case identifier :) (case_statement "case lang_insert_statement_enum:\n    goto _L1363;" case identifier : (goto_statement "goto _L1363;" goto statement_identifier ;)) (case_statement "case lang_wild_statement_enum:\n    prev_00 = (lang_statement_list_type *)&(local_54->reloc_statement).addend_exp;\n    goto LAB_00021d85;" case identifier : (expression_statement "prev_00 = (lang_statement_list_type *)&(local_54->reloc_statement).addend_exp;" (assignment_expression "prev_00 = (lang_statement_list_type *)&(local_54->reloc_statement).addend_exp" identifier = (cast_expression "(lang_statement_list_type *)&(local_54->reloc_statement).addend_exp" ( (type_descriptor "lang_statement_list_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_54->reloc_statement).addend_exp" & (field_expression "(local_54->reloc_statement).addend_exp" (parenthesized_expression "(local_54->reloc_statement)" ( (field_expression "local_54->reloc_statement" identifier -> field_identifier) )) . field_identifier)))) ;) (goto_statement "goto LAB_00021d85;" goto statement_identifier ;)) (case_statement "case lang_input_section_enum:\n    if (relax != (bfd_boolean *)0x0) {\n      pbVar2 = (bfd_section *)((lang_statement_list_type *)&(local_54->input_section).section)->head\n      ;\n      pbVar3 = pbVar2->owner;\n      bVar12 = (*pbVar3->xvec->_bfd_relax_section)\n                         (pbVar3,pbVar2,(bfd_link_info *)PTR_link_info_000bafb8,&again);\n      if (bVar12 == 0) {\n        pcVar15 = (char *)dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        einfo(pcVar15);\n      }\n      if (again != 0) {\n        *relax = 1;\n      }\n    }\n    paVar21 = output_section_statement->bfd_section;\n    paVar18 = (((lang_statement_header_type *)prev)->next->input_section).section;\n    if ((*(ushort *)&paVar18->field_0x18 & 0x380) == 0x200) {\n      paVar18->output_offset = paVar18->vma - paVar21->vma;\n    }\n    else if (((paVar18->flags & 0x8000) == 0) && ((output_section_statement->field_0x54 & 8) == 0))\n    {\n      uVar10 = output_section_statement->subsection_alignment;\n      if (uVar10 == 0xffffffff) {\n        uVar10 = paVar18->alignment_power;\n      }\n      else {\n        paVar18->alignment_power = uVar10;\n      }\n      if (paVar21->alignment_power < uVar10) {\n        paVar21->alignment_power = uVar10;\n        uVar10 = paVar18->alignment_power;\n      }\n      iVar9 = 1 << ((byte)uVar10 & 0x1f);\n      uVar10 = (dot - 1) + iVar9 & -iVar9;\n      iVar9 = uVar10 - dot;\n      if (iVar9 != 0) {\n        local_4c._0_1_ = (undefined1)opb_shift;\n        insert_pad(prev,local_48,iVar9 << ((undefined1)local_4c & 0x1f),paVar21,dot);\n        dot = uVar10;\n      }\n      uVar10 = opb_shift;\n      bVar14 = paVar21->vma;\n      paVar18->output_offset = dot - bVar14;\n      dot = dot + (paVar18->size >> ((byte)uVar10 & 0x1f));\n      if ((paVar21->flags & 0x800) == 0) {\n        paVar21->size = dot - bVar14 << ((byte)uVar10 & 0x1f);\n      }\n    }\n    else {\n      paVar18->output_offset = dot - paVar21->vma;\n    }\n    break;" case identifier : (if_statement "if (relax != (bfd_boolean *)0x0) {\n      pbVar2 = (bfd_section *)((lang_statement_list_type *)&(local_54->input_section).section)->head\n      ;\n      pbVar3 = pbVar2->owner;\n      bVar12 = (*pbVar3->xvec->_bfd_relax_section)\n                         (pbVar3,pbVar2,(bfd_link_info *)PTR_link_info_000bafb8,&again);\n      if (bVar12 == 0) {\n        pcVar15 = (char *)dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        einfo(pcVar15);\n      }\n      if (again != 0) {\n        *relax = 1;\n      }\n    }" if (parenthesized_expression "(relax != (bfd_boolean *)0x0)" ( (binary_expression "relax != (bfd_boolean *)0x0" identifier != (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar2 = (bfd_section *)((lang_statement_list_type *)&(local_54->input_section).section)->head\n      ;\n      pbVar3 = pbVar2->owner;\n      bVar12 = (*pbVar3->xvec->_bfd_relax_section)\n                         (pbVar3,pbVar2,(bfd_link_info *)PTR_link_info_000bafb8,&again);\n      if (bVar12 == 0) {\n        pcVar15 = (char *)dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        einfo(pcVar15);\n      }\n      if (again != 0) {\n        *relax = 1;\n      }\n    }" { (expression_statement "pbVar2 = (bfd_section *)((lang_statement_list_type *)&(local_54->input_section).section)->head\n      ;" (assignment_expression "pbVar2 = (bfd_section *)((lang_statement_list_type *)&(local_54->input_section).section)->head" identifier = (cast_expression "(bfd_section *)((lang_statement_list_type *)&(local_54->input_section).section)->head" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((lang_statement_list_type *)&(local_54->input_section).section)->head" (parenthesized_expression "((lang_statement_list_type *)&(local_54->input_section).section)" ( (cast_expression "(lang_statement_list_type *)&(local_54->input_section).section" ( (type_descriptor "lang_statement_list_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_54->input_section).section" & (field_expression "(local_54->input_section).section" (parenthesized_expression "(local_54->input_section)" ( (field_expression "local_54->input_section" identifier -> field_identifier) )) . field_identifier))) )) -> field_identifier))) ;) (expression_statement "pbVar3 = pbVar2->owner;" (assignment_expression "pbVar3 = pbVar2->owner" identifier = (field_expression "pbVar2->owner" identifier -> field_identifier)) ;) (expression_statement "bVar12 = (*pbVar3->xvec->_bfd_relax_section)\n                         (pbVar3,pbVar2,(bfd_link_info *)PTR_link_info_000bafb8,&again);" (assignment_expression "bVar12 = (*pbVar3->xvec->_bfd_relax_section)\n                         (pbVar3,pbVar2,(bfd_link_info *)PTR_link_info_000bafb8,&again)" identifier = (call_expression "(*pbVar3->xvec->_bfd_relax_section)\n                         (pbVar3,pbVar2,(bfd_link_info *)PTR_link_info_000bafb8,&again)" (parenthesized_expression "(*pbVar3->xvec->_bfd_relax_section)" ( (pointer_expression "*pbVar3->xvec->_bfd_relax_section" * (field_expression "pbVar3->xvec->_bfd_relax_section" (field_expression "pbVar3->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(pbVar3,pbVar2,(bfd_link_info *)PTR_link_info_000bafb8,&again)" ( identifier , identifier , (cast_expression "(bfd_link_info *)PTR_link_info_000bafb8" ( (type_descriptor "bfd_link_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&again" & identifier) )))) ;) (if_statement "if (bVar12 == 0) {\n        pcVar15 = (char *)dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        einfo(pcVar15);\n      }" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar15 = (char *)dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        einfo(pcVar15);\n      }" { (expression_statement "pcVar15 = (char *)dcgettext(0,"%F%P: can\'t relax section: %E\n",5);" (assignment_expression "pcVar15 = (char *)dcgettext(0,"%F%P: can\'t relax section: %E\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: can\'t relax section: %E\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: can\'t relax section: %E\n",5)" identifier (argument_list "(0,"%F%P: can\'t relax section: %E\n",5)" ( number_literal , (string_literal ""%F%P: can\'t relax section: %E\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar15);" (call_expression "einfo(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier ))) ;) })) (if_statement "if (again != 0) {\n        *relax = 1;\n      }" if (parenthesized_expression "(again != 0)" ( (binary_expression "again != 0" identifier != number_literal) )) (compound_statement "{\n        *relax = 1;\n      }" { (expression_statement "*relax = 1;" (assignment_expression "*relax = 1" (pointer_expression "*relax" * identifier) = number_literal) ;) })) })) (expression_statement "paVar21 = output_section_statement->bfd_section;" (assignment_expression "paVar21 = output_section_statement->bfd_section" identifier = (field_expression "output_section_statement->bfd_section" identifier -> field_identifier)) ;) (expression_statement "paVar18 = (((lang_statement_header_type *)prev)->next->input_section).section;" (assignment_expression "paVar18 = (((lang_statement_header_type *)prev)->next->input_section).section" identifier = (field_expression "(((lang_statement_header_type *)prev)->next->input_section).section" (parenthesized_expression "(((lang_statement_header_type *)prev)->next->input_section)" ( (field_expression "((lang_statement_header_type *)prev)->next->input_section" (field_expression "((lang_statement_header_type *)prev)->next" (parenthesized_expression "((lang_statement_header_type *)prev)" ( (cast_expression "(lang_statement_header_type *)prev" ( (type_descriptor "lang_statement_header_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((*(ushort *)&paVar18->field_0x18 & 0x380) == 0x200) {\n      paVar18->output_offset = paVar18->vma - paVar21->vma;\n    }\n    else if (((paVar18->flags & 0x8000) == 0) && ((output_section_statement->field_0x54 & 8) == 0))\n    {\n      uVar10 = output_section_statement->subsection_alignment;\n      if (uVar10 == 0xffffffff) {\n        uVar10 = paVar18->alignment_power;\n      }\n      else {\n        paVar18->alignment_power = uVar10;\n      }\n      if (paVar21->alignment_power < uVar10) {\n        paVar21->alignment_power = uVar10;\n        uVar10 = paVar18->alignment_power;\n      }\n      iVar9 = 1 << ((byte)uVar10 & 0x1f);\n      uVar10 = (dot - 1) + iVar9 & -iVar9;\n      iVar9 = uVar10 - dot;\n      if (iVar9 != 0) {\n        local_4c._0_1_ = (undefined1)opb_shift;\n        insert_pad(prev,local_48,iVar9 << ((undefined1)local_4c & 0x1f),paVar21,dot);\n        dot = uVar10;\n      }\n      uVar10 = opb_shift;\n      bVar14 = paVar21->vma;\n      paVar18->output_offset = dot - bVar14;\n      dot = dot + (paVar18->size >> ((byte)uVar10 & 0x1f));\n      if ((paVar21->flags & 0x800) == 0) {\n        paVar21->size = dot - bVar14 << ((byte)uVar10 & 0x1f);\n      }\n    }\n    else {\n      paVar18->output_offset = dot - paVar21->vma;\n    }" if (parenthesized_expression "((*(ushort *)&paVar18->field_0x18 & 0x380) == 0x200)" ( (binary_expression "(*(ushort *)&paVar18->field_0x18 & 0x380) == 0x200" (parenthesized_expression "(*(ushort *)&paVar18->field_0x18 & 0x380)" ( (binary_expression "*(ushort *)&paVar18->field_0x18 & 0x380" (pointer_expression "*(ushort *)&paVar18->field_0x18" * (cast_expression "(ushort *)&paVar18->field_0x18" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar18->field_0x18" & (field_expression "paVar18->field_0x18" identifier -> field_identifier)))) & number_literal) )) == number_literal) )) (compound_statement "{\n      paVar18->output_offset = paVar18->vma - paVar21->vma;\n    }" { (expression_statement "paVar18->output_offset = paVar18->vma - paVar21->vma;" (assignment_expression "paVar18->output_offset = paVar18->vma - paVar21->vma" (field_expression "paVar18->output_offset" identifier -> field_identifier) = (binary_expression "paVar18->vma - paVar21->vma" (field_expression "paVar18->vma" identifier -> field_identifier) - (field_expression "paVar21->vma" identifier -> field_identifier))) ;) }) (else_clause "else if (((paVar18->flags & 0x8000) == 0) && ((output_section_statement->field_0x54 & 8) == 0))\n    {\n      uVar10 = output_section_statement->subsection_alignment;\n      if (uVar10 == 0xffffffff) {\n        uVar10 = paVar18->alignment_power;\n      }\n      else {\n        paVar18->alignment_power = uVar10;\n      }\n      if (paVar21->alignment_power < uVar10) {\n        paVar21->alignment_power = uVar10;\n        uVar10 = paVar18->alignment_power;\n      }\n      iVar9 = 1 << ((byte)uVar10 & 0x1f);\n      uVar10 = (dot - 1) + iVar9 & -iVar9;\n      iVar9 = uVar10 - dot;\n      if (iVar9 != 0) {\n        local_4c._0_1_ = (undefined1)opb_shift;\n        insert_pad(prev,local_48,iVar9 << ((undefined1)local_4c & 0x1f),paVar21,dot);\n        dot = uVar10;\n      }\n      uVar10 = opb_shift;\n      bVar14 = paVar21->vma;\n      paVar18->output_offset = dot - bVar14;\n      dot = dot + (paVar18->size >> ((byte)uVar10 & 0x1f));\n      if ((paVar21->flags & 0x800) == 0) {\n        paVar21->size = dot - bVar14 << ((byte)uVar10 & 0x1f);\n      }\n    }\n    else {\n      paVar18->output_offset = dot - paVar21->vma;\n    }" else (if_statement "if (((paVar18->flags & 0x8000) == 0) && ((output_section_statement->field_0x54 & 8) == 0))\n    {\n      uVar10 = output_section_statement->subsection_alignment;\n      if (uVar10 == 0xffffffff) {\n        uVar10 = paVar18->alignment_power;\n      }\n      else {\n        paVar18->alignment_power = uVar10;\n      }\n      if (paVar21->alignment_power < uVar10) {\n        paVar21->alignment_power = uVar10;\n        uVar10 = paVar18->alignment_power;\n      }\n      iVar9 = 1 << ((byte)uVar10 & 0x1f);\n      uVar10 = (dot - 1) + iVar9 & -iVar9;\n      iVar9 = uVar10 - dot;\n      if (iVar9 != 0) {\n        local_4c._0_1_ = (undefined1)opb_shift;\n        insert_pad(prev,local_48,iVar9 << ((undefined1)local_4c & 0x1f),paVar21,dot);\n        dot = uVar10;\n      }\n      uVar10 = opb_shift;\n      bVar14 = paVar21->vma;\n      paVar18->output_offset = dot - bVar14;\n      dot = dot + (paVar18->size >> ((byte)uVar10 & 0x1f));\n      if ((paVar21->flags & 0x800) == 0) {\n        paVar21->size = dot - bVar14 << ((byte)uVar10 & 0x1f);\n      }\n    }\n    else {\n      paVar18->output_offset = dot - paVar21->vma;\n    }" if (parenthesized_expression "(((paVar18->flags & 0x8000) == 0) && ((output_section_statement->field_0x54 & 8) == 0))" ( (binary_expression "((paVar18->flags & 0x8000) == 0) && ((output_section_statement->field_0x54 & 8) == 0)" (parenthesized_expression "((paVar18->flags & 0x8000) == 0)" ( (binary_expression "(paVar18->flags & 0x8000) == 0" (parenthesized_expression "(paVar18->flags & 0x8000)" ( (binary_expression "paVar18->flags & 0x8000" (field_expression "paVar18->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((output_section_statement->field_0x54 & 8) == 0)" ( (binary_expression "(output_section_statement->field_0x54 & 8) == 0" (parenthesized_expression "(output_section_statement->field_0x54 & 8)" ( (binary_expression "output_section_statement->field_0x54 & 8" (field_expression "output_section_statement->field_0x54" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      uVar10 = output_section_statement->subsection_alignment;\n      if (uVar10 == 0xffffffff) {\n        uVar10 = paVar18->alignment_power;\n      }\n      else {\n        paVar18->alignment_power = uVar10;\n      }\n      if (paVar21->alignment_power < uVar10) {\n        paVar21->alignment_power = uVar10;\n        uVar10 = paVar18->alignment_power;\n      }\n      iVar9 = 1 << ((byte)uVar10 & 0x1f);\n      uVar10 = (dot - 1) + iVar9 & -iVar9;\n      iVar9 = uVar10 - dot;\n      if (iVar9 != 0) {\n        local_4c._0_1_ = (undefined1)opb_shift;\n        insert_pad(prev,local_48,iVar9 << ((undefined1)local_4c & 0x1f),paVar21,dot);\n        dot = uVar10;\n      }\n      uVar10 = opb_shift;\n      bVar14 = paVar21->vma;\n      paVar18->output_offset = dot - bVar14;\n      dot = dot + (paVar18->size >> ((byte)uVar10 & 0x1f));\n      if ((paVar21->flags & 0x800) == 0) {\n        paVar21->size = dot - bVar14 << ((byte)uVar10 & 0x1f);\n      }\n    }" { (expression_statement "uVar10 = output_section_statement->subsection_alignment;" (assignment_expression "uVar10 = output_section_statement->subsection_alignment" identifier = (field_expression "output_section_statement->subsection_alignment" identifier -> field_identifier)) ;) (if_statement "if (uVar10 == 0xffffffff) {\n        uVar10 = paVar18->alignment_power;\n      }\n      else {\n        paVar18->alignment_power = uVar10;\n      }" if (parenthesized_expression "(uVar10 == 0xffffffff)" ( (binary_expression "uVar10 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        uVar10 = paVar18->alignment_power;\n      }" { (expression_statement "uVar10 = paVar18->alignment_power;" (assignment_expression "uVar10 = paVar18->alignment_power" identifier = (field_expression "paVar18->alignment_power" identifier -> field_identifier)) ;) }) (else_clause "else {\n        paVar18->alignment_power = uVar10;\n      }" else (compound_statement "{\n        paVar18->alignment_power = uVar10;\n      }" { (expression_statement "paVar18->alignment_power = uVar10;" (assignment_expression "paVar18->alignment_power = uVar10" (field_expression "paVar18->alignment_power" identifier -> field_identifier) = identifier) ;) }))) (if_statement "if (paVar21->alignment_power < uVar10) {\n        paVar21->alignment_power = uVar10;\n        uVar10 = paVar18->alignment_power;\n      }" if (parenthesized_expression "(paVar21->alignment_power < uVar10)" ( (binary_expression "paVar21->alignment_power < uVar10" (field_expression "paVar21->alignment_power" identifier -> field_identifier) < identifier) )) (compound_statement "{\n        paVar21->alignment_power = uVar10;\n        uVar10 = paVar18->alignment_power;\n      }" { (expression_statement "paVar21->alignment_power = uVar10;" (assignment_expression "paVar21->alignment_power = uVar10" (field_expression "paVar21->alignment_power" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar10 = paVar18->alignment_power;" (assignment_expression "uVar10 = paVar18->alignment_power" identifier = (field_expression "paVar18->alignment_power" identifier -> field_identifier)) ;) })) (expression_statement "iVar9 = 1 << ((byte)uVar10 & 0x1f);" (assignment_expression "iVar9 = 1 << ((byte)uVar10 & 0x1f)" identifier = (binary_expression "1 << ((byte)uVar10 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar10 & 0x1f)" ( (binary_expression "(byte)uVar10 & 0x1f" (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar10 = (dot - 1) + iVar9 & -iVar9;" (assignment_expression "uVar10 = (dot - 1) + iVar9 & -iVar9" identifier = (binary_expression "(dot - 1) + iVar9 & -iVar9" (binary_expression "(dot - 1) + iVar9" (parenthesized_expression "(dot - 1)" ( (binary_expression "dot - 1" identifier - number_literal) )) + identifier) & (unary_expression "-iVar9" - identifier))) ;) (expression_statement "iVar9 = uVar10 - dot;" (assignment_expression "iVar9 = uVar10 - dot" identifier = (binary_expression "uVar10 - dot" identifier - identifier)) ;) (if_statement "if (iVar9 != 0) {\n        local_4c._0_1_ = (undefined1)opb_shift;\n        insert_pad(prev,local_48,iVar9 << ((undefined1)local_4c & 0x1f),paVar21,dot);\n        dot = uVar10;\n      }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n        local_4c._0_1_ = (undefined1)opb_shift;\n        insert_pad(prev,local_48,iVar9 << ((undefined1)local_4c & 0x1f),paVar21,dot);\n        dot = uVar10;\n      }" { (expression_statement "local_4c._0_1_ = (undefined1)opb_shift;" (assignment_expression "local_4c._0_1_ = (undefined1)opb_shift" (field_expression "local_4c._0_1_" identifier . field_identifier) = (cast_expression "(undefined1)opb_shift" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "insert_pad(prev,local_48,iVar9 << ((undefined1)local_4c & 0x1f),paVar21,dot);" (call_expression "insert_pad(prev,local_48,iVar9 << ((undefined1)local_4c & 0x1f),paVar21,dot)" identifier (argument_list "(prev,local_48,iVar9 << ((undefined1)local_4c & 0x1f),paVar21,dot)" ( identifier , identifier , (binary_expression "iVar9 << ((undefined1)local_4c & 0x1f)" identifier << (parenthesized_expression "((undefined1)local_4c & 0x1f)" ( (binary_expression "(undefined1)local_4c & 0x1f" (cast_expression "(undefined1)local_4c" ( (type_descriptor "undefined1" type_identifier) ) identifier) & number_literal) ))) , identifier , identifier ))) ;) (expression_statement "dot = uVar10;" (assignment_expression "dot = uVar10" identifier = identifier) ;) })) (expression_statement "uVar10 = opb_shift;" (assignment_expression "uVar10 = opb_shift" identifier = identifier) ;) (expression_statement "bVar14 = paVar21->vma;" (assignment_expression "bVar14 = paVar21->vma" identifier = (field_expression "paVar21->vma" identifier -> field_identifier)) ;) (expression_statement "paVar18->output_offset = dot - bVar14;" (assignment_expression "paVar18->output_offset = dot - bVar14" (field_expression "paVar18->output_offset" identifier -> field_identifier) = (binary_expression "dot - bVar14" identifier - identifier)) ;) (expression_statement "dot = dot + (paVar18->size >> ((byte)uVar10 & 0x1f));" (assignment_expression "dot = dot + (paVar18->size >> ((byte)uVar10 & 0x1f))" identifier = (binary_expression "dot + (paVar18->size >> ((byte)uVar10 & 0x1f))" identifier + (parenthesized_expression "(paVar18->size >> ((byte)uVar10 & 0x1f))" ( (binary_expression "paVar18->size >> ((byte)uVar10 & 0x1f)" (field_expression "paVar18->size" identifier -> field_identifier) >> (parenthesized_expression "((byte)uVar10 & 0x1f)" ( (binary_expression "(byte)uVar10 & 0x1f" (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((paVar21->flags & 0x800) == 0) {\n        paVar21->size = dot - bVar14 << ((byte)uVar10 & 0x1f);\n      }" if (parenthesized_expression "((paVar21->flags & 0x800) == 0)" ( (binary_expression "(paVar21->flags & 0x800) == 0" (parenthesized_expression "(paVar21->flags & 0x800)" ( (binary_expression "paVar21->flags & 0x800" (field_expression "paVar21->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        paVar21->size = dot - bVar14 << ((byte)uVar10 & 0x1f);\n      }" { (expression_statement "paVar21->size = dot - bVar14 << ((byte)uVar10 & 0x1f);" (assignment_expression "paVar21->size = dot - bVar14 << ((byte)uVar10 & 0x1f)" (field_expression "paVar21->size" identifier -> field_identifier) = (binary_expression "dot - bVar14 << ((byte)uVar10 & 0x1f)" (binary_expression "dot - bVar14" identifier - identifier) << (parenthesized_expression "((byte)uVar10 & 0x1f)" ( (binary_expression "(byte)uVar10 & 0x1f" (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) }) (else_clause "else {\n      paVar18->output_offset = dot - paVar21->vma;\n    }" else (compound_statement "{\n      paVar18->output_offset = dot - paVar21->vma;\n    }" { (expression_statement "paVar18->output_offset = dot - paVar21->vma;" (assignment_expression "paVar18->output_offset = dot - paVar21->vma" (field_expression "paVar18->output_offset" identifier -> field_identifier) = (binary_expression "dot - paVar21->vma" identifier - (field_expression "paVar21->vma" identifier -> field_identifier))) ;) }))))) (break_statement "break;" break ;)) (case_statement "case lang_object_symbols_statement_enum:\n    link_info.create_object_symbols_section = output_section_statement->bfd_section;\n    goto _L1363;" case identifier : (expression_statement "link_info.create_object_symbols_section = output_section_statement->bfd_section;" (assignment_expression "link_info.create_object_symbols_section = output_section_statement->bfd_section" (field_expression "link_info.create_object_symbols_section" identifier . field_identifier) = (field_expression "output_section_statement->bfd_section" identifier -> field_identifier)) ;) (goto_statement "goto _L1363;" goto statement_identifier ;)) (case_statement "case lang_fill_statement_enum:\n    (local_54->wild_statement).section_list = (wildcard_list *)output_section_statement->bfd_section\n    ;\n    local_48 = (fill_type *)((lang_statement_list_type *)&(local_54->fill_statement).fill)->head;\n    break;" case identifier : (expression_statement "(local_54->wild_statement).section_list = (wildcard_list *)output_section_statement->bfd_section\n    ;" (assignment_expression "(local_54->wild_statement).section_list = (wildcard_list *)output_section_statement->bfd_section" (field_expression "(local_54->wild_statement).section_list" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(wildcard_list *)output_section_statement->bfd_section" ( (type_descriptor "wildcard_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "output_section_statement->bfd_section" identifier -> field_identifier))) ;) (expression_statement "local_48 = (fill_type *)((lang_statement_list_type *)&(local_54->fill_statement).fill)->head;" (assignment_expression "local_48 = (fill_type *)((lang_statement_list_type *)&(local_54->fill_statement).fill)->head" identifier = (cast_expression "(fill_type *)((lang_statement_list_type *)&(local_54->fill_statement).fill)->head" ( (type_descriptor "fill_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((lang_statement_list_type *)&(local_54->fill_statement).fill)->head" (parenthesized_expression "((lang_statement_list_type *)&(local_54->fill_statement).fill)" ( (cast_expression "(lang_statement_list_type *)&(local_54->fill_statement).fill" ( (type_descriptor "lang_statement_list_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_54->fill_statement).fill" & (field_expression "(local_54->fill_statement).fill" (parenthesized_expression "(local_54->fill_statement)" ( (field_expression "local_54->fill_statement" identifier -> field_identifier) )) . field_identifier))) )) -> field_identifier))) ;) (break_statement "break;" break ;)) (case_statement "case lang_data_statement_enum:\n    *(char **)&(local_54->wild_statement).children =\n         (char *)(dot - output_section_statement->bfd_section->vma);\n    (local_54->wild_statement).keep_sections = (bfd_boolean)output_section_statement->bfd_section;\n    exp_fold_tree((local_54->data_statement).exp,current_section,&dot);\n    uVar10 = (int)((lang_statement_list_type *)&(local_54->data_statement).type)->head - 0x11a;\n    if (4 < uVar10) {\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x14f8,"lang_size_sections_1");\n    }\n    bVar19 = (byte)opb_shift;\n    uVar11 = 1 << (bVar19 & 0x1f);\n    if (uVar11 < *(uint *)(CSWTCH_329 + uVar10 * 4)) {\n      uVar11 = *(uint *)(CSWTCH_329 + uVar10 * 4);\n    }\n    paVar21 = output_section_statement->bfd_section;\n    dot = (uVar11 >> (bVar19 & 0x1f)) + dot;\n    if ((paVar21->flags & 0x800) == 0) {\n      paVar21->size = dot - paVar21->vma << (bVar19 & 0x1f);\n    }\n    break;" case identifier : (expression_statement "*(char **)&(local_54->wild_statement).children =\n         (char *)(dot - output_section_statement->bfd_section->vma);" (assignment_expression "*(char **)&(local_54->wild_statement).children =\n         (char *)(dot - output_section_statement->bfd_section->vma)" (pointer_expression "*(char **)&(local_54->wild_statement).children" * (cast_expression "(char **)&(local_54->wild_statement).children" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(local_54->wild_statement).children" & (field_expression "(local_54->wild_statement).children" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier)))) = (cast_expression "(char *)(dot - output_section_statement->bfd_section->vma)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dot - output_section_statement->bfd_section->vma)" ( (binary_expression "dot - output_section_statement->bfd_section->vma" identifier - (field_expression "output_section_statement->bfd_section->vma" (field_expression "output_section_statement->bfd_section" identifier -> field_identifier) -> field_identifier)) )))) ;) (expression_statement "(local_54->wild_statement).keep_sections = (bfd_boolean)output_section_statement->bfd_section;" (assignment_expression "(local_54->wild_statement).keep_sections = (bfd_boolean)output_section_statement->bfd_section" (field_expression "(local_54->wild_statement).keep_sections" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(bfd_boolean)output_section_statement->bfd_section" ( (type_descriptor "bfd_boolean" type_identifier) ) (field_expression "output_section_statement->bfd_section" identifier -> field_identifier))) ;) (expression_statement "exp_fold_tree((local_54->data_statement).exp,current_section,&dot);" (call_expression "exp_fold_tree((local_54->data_statement).exp,current_section,&dot)" identifier (argument_list "((local_54->data_statement).exp,current_section,&dot)" ( (field_expression "(local_54->data_statement).exp" (parenthesized_expression "(local_54->data_statement)" ( (field_expression "local_54->data_statement" identifier -> field_identifier) )) . field_identifier) , identifier , (pointer_expression "&dot" & identifier) ))) ;) (expression_statement "uVar10 = (int)((lang_statement_list_type *)&(local_54->data_statement).type)->head - 0x11a;" (assignment_expression "uVar10 = (int)((lang_statement_list_type *)&(local_54->data_statement).type)->head - 0x11a" identifier = (binary_expression "(int)((lang_statement_list_type *)&(local_54->data_statement).type)->head - 0x11a" (cast_expression "(int)((lang_statement_list_type *)&(local_54->data_statement).type)->head" ( (type_descriptor "int" primitive_type) ) (field_expression "((lang_statement_list_type *)&(local_54->data_statement).type)->head" (parenthesized_expression "((lang_statement_list_type *)&(local_54->data_statement).type)" ( (cast_expression "(lang_statement_list_type *)&(local_54->data_statement).type" ( (type_descriptor "lang_statement_list_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_54->data_statement).type" & (field_expression "(local_54->data_statement).type" (parenthesized_expression "(local_54->data_statement)" ( (field_expression "local_54->data_statement" identifier -> field_identifier) )) . field_identifier))) )) -> field_identifier)) - number_literal)) ;) (if_statement "if (4 < uVar10) {\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x14f8,"lang_size_sections_1");\n    }" if (parenthesized_expression "(4 < uVar10)" ( (binary_expression "4 < uVar10" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      ld_abort("../../ld/ldlang.c",0x14f8,"lang_size_sections_1");\n    }" { comment (expression_statement "ld_abort("../../ld/ldlang.c",0x14f8,"lang_size_sections_1");" (call_expression "ld_abort("../../ld/ldlang.c",0x14f8,"lang_size_sections_1")" identifier (argument_list "("../../ld/ldlang.c",0x14f8,"lang_size_sections_1")" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal , (string_literal ""lang_size_sections_1"" " string_content ") ))) ;) })) (expression_statement "bVar19 = (byte)opb_shift;" (assignment_expression "bVar19 = (byte)opb_shift" identifier = (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar11 = 1 << (bVar19 & 0x1f);" (assignment_expression "uVar11 = 1 << (bVar19 & 0x1f)" identifier = (binary_expression "1 << (bVar19 & 0x1f)" number_literal << (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if (uVar11 < *(uint *)(CSWTCH_329 + uVar10 * 4)) {\n      uVar11 = *(uint *)(CSWTCH_329 + uVar10 * 4);\n    }" if (parenthesized_expression "(uVar11 < *(uint *)(CSWTCH_329 + uVar10 * 4))" ( (binary_expression "uVar11 < *(uint *)(CSWTCH_329 + uVar10 * 4)" identifier < (pointer_expression "*(uint *)(CSWTCH_329 + uVar10 * 4)" * (cast_expression "(uint *)(CSWTCH_329 + uVar10 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CSWTCH_329 + uVar10 * 4)" ( (binary_expression "CSWTCH_329 + uVar10 * 4" identifier + (binary_expression "uVar10 * 4" identifier * number_literal)) ))))) )) (compound_statement "{\n      uVar11 = *(uint *)(CSWTCH_329 + uVar10 * 4);\n    }" { (expression_statement "uVar11 = *(uint *)(CSWTCH_329 + uVar10 * 4);" (assignment_expression "uVar11 = *(uint *)(CSWTCH_329 + uVar10 * 4)" identifier = (pointer_expression "*(uint *)(CSWTCH_329 + uVar10 * 4)" * (cast_expression "(uint *)(CSWTCH_329 + uVar10 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CSWTCH_329 + uVar10 * 4)" ( (binary_expression "CSWTCH_329 + uVar10 * 4" identifier + (binary_expression "uVar10 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "paVar21 = output_section_statement->bfd_section;" (assignment_expression "paVar21 = output_section_statement->bfd_section" identifier = (field_expression "output_section_statement->bfd_section" identifier -> field_identifier)) ;) (expression_statement "dot = (uVar11 >> (bVar19 & 0x1f)) + dot;" (assignment_expression "dot = (uVar11 >> (bVar19 & 0x1f)) + dot" identifier = (binary_expression "(uVar11 >> (bVar19 & 0x1f)) + dot" (parenthesized_expression "(uVar11 >> (bVar19 & 0x1f))" ( (binary_expression "uVar11 >> (bVar19 & 0x1f)" identifier >> (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) ))) )) + identifier)) ;) (if_statement "if ((paVar21->flags & 0x800) == 0) {\n      paVar21->size = dot - paVar21->vma << (bVar19 & 0x1f);\n    }" if (parenthesized_expression "((paVar21->flags & 0x800) == 0)" ( (binary_expression "(paVar21->flags & 0x800) == 0" (parenthesized_expression "(paVar21->flags & 0x800)" ( (binary_expression "paVar21->flags & 0x800" (field_expression "paVar21->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      paVar21->size = dot - paVar21->vma << (bVar19 & 0x1f);\n    }" { (expression_statement "paVar21->size = dot - paVar21->vma << (bVar19 & 0x1f);" (assignment_expression "paVar21->size = dot - paVar21->vma << (bVar19 & 0x1f)" (field_expression "paVar21->size" identifier -> field_identifier) = (binary_expression "dot - paVar21->vma << (bVar19 & 0x1f)" (binary_expression "dot - paVar21->vma" identifier - (field_expression "paVar21->vma" identifier -> field_identifier)) << (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) )))) ;) })) (break_statement "break;" break ;)) (case_statement "case lang_reloc_statement_enum:\n    (local_54->wild_statement).walk_wild_section_handler =\n         (walk_wild_section_handler_t)(dot - output_section_statement->bfd_section->vma);\n    (local_54->wild_statement).exclude_name_list =\n         (name_list *)output_section_statement->bfd_section;\n    iVar9 = bfd_get_reloc_size((lang_statement_union **)(local_54->wild_statement).filenames_sorted)\n    ;\n    paVar21 = output_section_statement->bfd_section;\n    dot = (iVar9 >> ((byte)opb_shift & 0x1f)) + dot;\n    if ((paVar21->flags & 0x800) == 0) {\n      paVar21->size = dot - paVar21->vma << ((byte)opb_shift & 0x1f);\n    }\n    break;" case identifier : (expression_statement "(local_54->wild_statement).walk_wild_section_handler =\n         (walk_wild_section_handler_t)(dot - output_section_statement->bfd_section->vma);" (assignment_expression "(local_54->wild_statement).walk_wild_section_handler =\n         (walk_wild_section_handler_t)(dot - output_section_statement->bfd_section->vma)" (field_expression "(local_54->wild_statement).walk_wild_section_handler" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier) = (call_expression "(walk_wild_section_handler_t)(dot - output_section_statement->bfd_section->vma)" (parenthesized_expression "(walk_wild_section_handler_t)" ( identifier )) (argument_list "(dot - output_section_statement->bfd_section->vma)" ( (binary_expression "dot - output_section_statement->bfd_section->vma" identifier - (field_expression "output_section_statement->bfd_section->vma" (field_expression "output_section_statement->bfd_section" identifier -> field_identifier) -> field_identifier)) )))) ;) (expression_statement "(local_54->wild_statement).exclude_name_list =\n         (name_list *)output_section_statement->bfd_section;" (assignment_expression "(local_54->wild_statement).exclude_name_list =\n         (name_list *)output_section_statement->bfd_section" (field_expression "(local_54->wild_statement).exclude_name_list" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(name_list *)output_section_statement->bfd_section" ( (type_descriptor "name_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "output_section_statement->bfd_section" identifier -> field_identifier))) ;) (expression_statement "iVar9 = bfd_get_reloc_size((lang_statement_union **)(local_54->wild_statement).filenames_sorted)\n    ;" (assignment_expression "iVar9 = bfd_get_reloc_size((lang_statement_union **)(local_54->wild_statement).filenames_sorted)" identifier = (call_expression "bfd_get_reloc_size((lang_statement_union **)(local_54->wild_statement).filenames_sorted)" identifier (argument_list "((lang_statement_union **)(local_54->wild_statement).filenames_sorted)" ( (cast_expression "(lang_statement_union **)(local_54->wild_statement).filenames_sorted" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "(local_54->wild_statement).filenames_sorted" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier)) )))) ;) (expression_statement "paVar21 = output_section_statement->bfd_section;" (assignment_expression "paVar21 = output_section_statement->bfd_section" identifier = (field_expression "output_section_statement->bfd_section" identifier -> field_identifier)) ;) (expression_statement "dot = (iVar9 >> ((byte)opb_shift & 0x1f)) + dot;" (assignment_expression "dot = (iVar9 >> ((byte)opb_shift & 0x1f)) + dot" identifier = (binary_expression "(iVar9 >> ((byte)opb_shift & 0x1f)) + dot" (parenthesized_expression "(iVar9 >> ((byte)opb_shift & 0x1f))" ( (binary_expression "iVar9 >> ((byte)opb_shift & 0x1f)" identifier >> (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )) + identifier)) ;) (if_statement "if ((paVar21->flags & 0x800) == 0) {\n      paVar21->size = dot - paVar21->vma << ((byte)opb_shift & 0x1f);\n    }" if (parenthesized_expression "((paVar21->flags & 0x800) == 0)" ( (binary_expression "(paVar21->flags & 0x800) == 0" (parenthesized_expression "(paVar21->flags & 0x800)" ( (binary_expression "paVar21->flags & 0x800" (field_expression "paVar21->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      paVar21->size = dot - paVar21->vma << ((byte)opb_shift & 0x1f);\n    }" { (expression_statement "paVar21->size = dot - paVar21->vma << ((byte)opb_shift & 0x1f);" (assignment_expression "paVar21->size = dot - paVar21->vma << ((byte)opb_shift & 0x1f)" (field_expression "paVar21->size" identifier -> field_identifier) = (binary_expression "dot - paVar21->vma << ((byte)opb_shift & 0x1f)" (binary_expression "dot - paVar21->vma" identifier - (field_expression "paVar21->vma" identifier -> field_identifier)) << (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (break_statement "break;" break ;)) (case_statement "case lang_padding_statement_enum:\n    (local_54->wild_statement).filenames_sorted = 0;\n    (local_54->wild_statement).filename = (char *)(dot - output_section_statement->bfd_section->vma)\n    ;\n    break;" case identifier : (expression_statement "(local_54->wild_statement).filenames_sorted = 0;" (assignment_expression "(local_54->wild_statement).filenames_sorted = 0" (field_expression "(local_54->wild_statement).filenames_sorted" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(local_54->wild_statement).filename = (char *)(dot - output_section_statement->bfd_section->vma)\n    ;" (assignment_expression "(local_54->wild_statement).filename = (char *)(dot - output_section_statement->bfd_section->vma)" (field_expression "(local_54->wild_statement).filename" (parenthesized_expression "(local_54->wild_statement)" ( (field_expression "local_54->wild_statement" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)(dot - output_section_statement->bfd_section->vma)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dot - output_section_statement->bfd_section->vma)" ( (binary_expression "dot - output_section_statement->bfd_section->vma" identifier - (field_expression "output_section_statement->bfd_section->vma" (field_expression "output_section_statement->bfd_section" identifier -> field_identifier) -> field_identifier)) )))) ;) (break_statement "break;" break ;)) (case_statement "case lang_group_statement_enum:\n    prev_00 = (lang_statement_list_type *)&(local_54->assignment_statement).exp;\n    goto LAB_00021d85;" case identifier : (expression_statement "prev_00 = (lang_statement_list_type *)&(local_54->assignment_statement).exp;" (assignment_expression "prev_00 = (lang_statement_list_type *)&(local_54->assignment_statement).exp" identifier = (cast_expression "(lang_statement_list_type *)&(local_54->assignment_statement).exp" ( (type_descriptor "lang_statement_list_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_54->assignment_statement).exp" & (field_expression "(local_54->assignment_statement).exp" (parenthesized_expression "(local_54->assignment_statement)" ( (field_expression "local_54->assignment_statement" identifier -> field_identifier) )) . field_identifier)))) ;) (goto_statement "goto LAB_00021d85;" goto statement_identifier ;)) (case_statement "case lang_constructors_statement_enum:\n    prev_00 = &constructor_list;\nLAB_00021d85:\n    dot = lang_size_sections_1\n                    (&prev_00->head,output_section_statement,local_48,dot,relax,check_regions);\n    break;" case identifier : (expression_statement "prev_00 = &constructor_list;" (assignment_expression "prev_00 = &constructor_list" identifier = (pointer_expression "&constructor_list" & identifier)) ;) (labeled_statement "LAB_00021d85:\n    dot = lang_size_sections_1\n                    (&prev_00->head,output_section_statement,local_48,dot,relax,check_regions);" statement_identifier : (expression_statement "dot = lang_size_sections_1\n                    (&prev_00->head,output_section_statement,local_48,dot,relax,check_regions);" (assignment_expression "dot = lang_size_sections_1\n                    (&prev_00->head,output_section_statement,local_48,dot,relax,check_regions)" identifier = (call_expression "lang_size_sections_1\n                    (&prev_00->head,output_section_statement,local_48,dot,relax,check_regions)" identifier (argument_list "(&prev_00->head,output_section_statement,local_48,dot,relax,check_regions)" ( (pointer_expression "&prev_00->head" & (field_expression "prev_00->head" identifier -> field_identifier)) , identifier , identifier , identifier , identifier , identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "default:\n    info_assert("../../ld/ldlang.c",0x15a7);" default : (expression_statement "info_assert("../../ld/ldlang.c",0x15a7);" (call_expression "info_assert("../../ld/ldlang.c",0x15a7)" identifier (argument_list "("../../ld/ldlang.c",0x15a7)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;)) })) (labeled_statement "LAB_00021b28:\n  plVar6 = (local_54->header).next;" statement_identifier : (expression_statement "plVar6 = (local_54->header).next;" (assignment_expression "plVar6 = (local_54->header).next" identifier = (field_expression "(local_54->header).next" (parenthesized_expression "(local_54->header)" ( (field_expression "local_54->header" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "prev = (lang_statement_union_type **)local_54;" (assignment_expression "prev = (lang_statement_union_type **)local_54" identifier = (cast_expression "(lang_statement_union_type **)local_54" ( (type_descriptor "lang_statement_union_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (goto_statement "goto joined_r0x00021ad5;" goto statement_identifier ;) (labeled_statement "_L1363:\n  goto LAB_00021b28;" statement_identifier : (goto_statement "goto LAB_00021b28;" goto statement_identifier ;)) })))
(translation_unit "uint __regparm2 FUN_00021aa0(int *param_1,int param_2,uint param_3,undefined4 *param_4,int param_5)\n\n{\n  uint *puVar1;\n  undefined *puVar2;\n  undefined4 *puVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  undefined4 uVar11;\n  undefined4 *puVar12;\n  byte bVar13;\n  undefined4 extraout_ECX;\n  uint uVar14;\n  undefined4 *puVar15;\n  undefined **extraout_ECX_00;\n  int iVar16;\n  undefined *puVar17;\n  int *piVar18;\n  uint uVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  undefined **ppuVar25;\n  int *local_54;\n  uint local_4c;\n  int iStack_3c;\n  uint uStack_34;\n  uint auStack_20 [3];\n  undefined4 uStack_14;\n  \n  bVar24 = 0;\n  uStack_14 = 0x21aa9;\n  puVar5 = PTR__bfd_std_section_000bafc4 + 0x150;\n  piVar18 = (int *)*param_1;\njoined_r0x00021ad5:\n  local_54 = piVar18;\n  if (local_54 == (int *)0x0) {\n    return param_3;\n  }\n  local_4c = local_54[1];\n  switch(local_4c) {\n  case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;\n  case 2:\n  case 3:\n  case 10:\n  case 0xb:\n  case 0xe:\n    goto code_r0x00021b1c;\n  case 4:\n    goto code_r0x00021d85;\n  case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;\n  case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;\n  case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;\n  case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    \n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;\n  case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;\n  case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;\n  case 0xd:\n    goto code_r0x00021d85;\n  case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;\n  default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);\n  }\nLAB_00021b28:\n  piVar18 = (int *)*local_54;\n  param_1 = local_54;\n  goto joined_r0x00021ad5;\ncode_r0x00021b1c:\n  goto LAB_00021b28;\n}\n\n" (function_definition "uint __regparm2 FUN_00021aa0(int *param_1,int param_2,uint param_3,undefined4 *param_4,int param_5)\n\n{\n  uint *puVar1;\n  undefined *puVar2;\n  undefined4 *puVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  undefined4 uVar11;\n  undefined4 *puVar12;\n  byte bVar13;\n  undefined4 extraout_ECX;\n  uint uVar14;\n  undefined4 *puVar15;\n  undefined **extraout_ECX_00;\n  int iVar16;\n  undefined *puVar17;\n  int *piVar18;\n  uint uVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  undefined **ppuVar25;\n  int *local_54;\n  uint local_4c;\n  int iStack_3c;\n  uint uStack_34;\n  uint auStack_20 [3];\n  undefined4 uStack_14;\n  \n  bVar24 = 0;\n  uStack_14 = 0x21aa9;\n  puVar5 = PTR__bfd_std_section_000bafc4 + 0x150;\n  piVar18 = (int *)*param_1;\njoined_r0x00021ad5:\n  local_54 = piVar18;\n  if (local_54 == (int *)0x0) {\n    return param_3;\n  }\n  local_4c = local_54[1];\n  switch(local_4c) {\n  case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;\n  case 2:\n  case 3:\n  case 10:\n  case 0xb:\n  case 0xe:\n    goto code_r0x00021b1c;\n  case 4:\n    goto code_r0x00021d85;\n  case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;\n  case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;\n  case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;\n  case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    \n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;\n  case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;\n  case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;\n  case 0xd:\n    goto code_r0x00021d85;\n  case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;\n  default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);\n  }\nLAB_00021b28:\n  piVar18 = (int *)*local_54;\n  param_1 = local_54;\n  goto joined_r0x00021ad5;\ncode_r0x00021b1c:\n  goto LAB_00021b28;\n}" type_identifier (ERROR "__regparm2" identifier) (function_declarator "FUN_00021aa0(int *param_1,int param_2,uint param_3,undefined4 *param_4,int param_5)" identifier (parameter_list "(int *param_1,int param_2,uint param_3,undefined4 *param_4,int param_5)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  uint *puVar1;\n  undefined *puVar2;\n  undefined4 *puVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  undefined4 uVar11;\n  undefined4 *puVar12;\n  byte bVar13;\n  undefined4 extraout_ECX;\n  uint uVar14;\n  undefined4 *puVar15;\n  undefined **extraout_ECX_00;\n  int iVar16;\n  undefined *puVar17;\n  int *piVar18;\n  uint uVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  undefined **ppuVar25;\n  int *local_54;\n  uint local_4c;\n  int iStack_3c;\n  uint uStack_34;\n  uint auStack_20 [3];\n  undefined4 uStack_14;\n  \n  bVar24 = 0;\n  uStack_14 = 0x21aa9;\n  puVar5 = PTR__bfd_std_section_000bafc4 + 0x150;\n  piVar18 = (int *)*param_1;\njoined_r0x00021ad5:\n  local_54 = piVar18;\n  if (local_54 == (int *)0x0) {\n    return param_3;\n  }\n  local_4c = local_54[1];\n  switch(local_4c) {\n  case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;\n  case 2:\n  case 3:\n  case 10:\n  case 0xb:\n  case 0xe:\n    goto code_r0x00021b1c;\n  case 4:\n    goto code_r0x00021d85;\n  case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;\n  case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;\n  case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;\n  case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    \n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;\n  case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;\n  case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;\n  case 0xd:\n    goto code_r0x00021d85;\n  case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;\n  default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);\n  }\nLAB_00021b28:\n  piVar18 = (int *)*local_54;\n  param_1 = local_54;\n  goto joined_r0x00021ad5;\ncode_r0x00021b1c:\n  goto LAB_00021b28;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined **extraout_ECX_00;" type_identifier (pointer_declarator "**extraout_ECX_00" * (pointer_declarator "*extraout_ECX_00" * identifier)) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "byte bVar24;" type_identifier identifier ;) (declaration "undefined **ppuVar25;" type_identifier (pointer_declarator "**ppuVar25" * (pointer_declarator "*ppuVar25" * identifier)) ;) (declaration "int *local_54;" primitive_type (pointer_declarator "*local_54" * identifier) ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "int iStack_3c;" primitive_type identifier ;) (declaration "uint uStack_34;" type_identifier identifier ;) (declaration "uint auStack_20 [3];" type_identifier (array_declarator "auStack_20 [3]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x21aa9;" (assignment_expression "uStack_14 = 0x21aa9" identifier = number_literal) ;) (expression_statement "puVar5 = PTR__bfd_std_section_000bafc4 + 0x150;" (assignment_expression "puVar5 = PTR__bfd_std_section_000bafc4 + 0x150" identifier = (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal)) ;) (expression_statement "piVar18 = (int *)*param_1;" (assignment_expression "piVar18 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (labeled_statement "joined_r0x00021ad5:\n  local_54 = piVar18;" statement_identifier : (expression_statement "local_54 = piVar18;" (assignment_expression "local_54 = piVar18" identifier = identifier) ;)) (if_statement "if (local_54 == (int *)0x0) {\n    return param_3;\n  }" if (parenthesized_expression "(local_54 == (int *)0x0)" ( (binary_expression "local_54 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return param_3;\n  }" { (return_statement "return param_3;" return identifier ;) })) (expression_statement "local_4c = local_54[1];" (assignment_expression "local_4c = local_54[1]" identifier = (subscript_expression "local_54[1]" identifier [ number_literal ])) ;) (switch_statement "switch(local_4c) {\n  case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;\n  case 2:\n  case 3:\n  case 10:\n  case 0xb:\n  case 0xe:\n    goto code_r0x00021b1c;\n  case 4:\n    goto code_r0x00021d85;\n  case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;\n  case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;\n  case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;\n  case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    \n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;\n  case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;\n  case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;\n  case 0xd:\n    goto code_r0x00021d85;\n  case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;\n  default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);\n  }" switch (parenthesized_expression "(local_4c)" ( identifier )) (compound_statement "{\n  case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;\n  case 2:\n  case 3:\n  case 10:\n  case 0xb:\n  case 0xe:\n    goto code_r0x00021b1c;\n  case 4:\n    goto code_r0x00021d85;\n  case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;\n  case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;\n  case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;\n  case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    \n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;\n  case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;\n  case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;\n  case 0xd:\n    goto code_r0x00021d85;\n  case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;\n  default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);\n  }" { (case_statement "case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;" case number_literal : (if_statement "if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(local_54[0x12] != -1)" ( (binary_expression "local_54[0x12] != -1" (subscript_expression "local_54[0x12]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "iVar8 = local_54[0xb];" (assignment_expression "iVar8 = local_54[0xb]" identifier = (subscript_expression "local_54[0xb]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }" { (if_statement "if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }" if (parenthesized_expression "((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2))" ( (binary_expression "(((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)" (parenthesized_expression "(((byte)DAT_000bbe00 & 3) == 2)" ( (binary_expression "((byte)DAT_000bbe00 & 3) == 2" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" ( (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)" ( (binary_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2" (pointer_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" * (cast_expression "(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_000bbe30 + 4) + 4)" ( (binary_expression "*(int *)(DAT_000bbe30 + 4) + 4" (pointer_expression "*(int *)(DAT_000bbe30 + 4)" * (cast_expression "(int *)(DAT_000bbe30 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000bbe30 + 4)" ( (binary_expression "DAT_000bbe30 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }" { (expression_statement "iVar8 = FUN_0002f390(0);" (assignment_expression "iVar8 = FUN_0002f390(0)" identifier = (call_expression "FUN_0002f390(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "local_54[0xb] = iVar8;" (assignment_expression "local_54[0xb] = iVar8" (subscript_expression "local_54[0xb]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar8 != 0) goto code_r0x00021dcc;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00021dcc;" goto statement_identifier ;)) })) }) (else_clause "else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }" else (compound_statement "{\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }" { (labeled_statement "code_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;" statement_identifier : (expression_statement "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;" (assignment_expression "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_54 + 0x15) & 0xfe" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) & number_literal)) ;)) (expression_statement "FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);" (call_expression "FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3)" identifier (argument_list "(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3)" ( identifier , (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal) , (pointer_expression "&param_3" & identifier) ))) ;) (if_statement "if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }" if (parenthesized_expression "(DAT_000bbfa0 == 0)" ( (binary_expression "DAT_000bbfa0 == 0" identifier == number_literal) )) (compound_statement "{\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }" { (if_statement "if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }" if (parenthesized_expression "(DAT_000bbf80 != 1)" ( (binary_expression "DAT_000bbf80 != 1" identifier != number_literal) )) (compound_statement "{\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }" { (expression_statement "iVar8 = local_54[6];" (assignment_expression "iVar8 = local_54[6]" identifier = (subscript_expression "local_54[6]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = local_54[0xb];" (assignment_expression "iVar6 = local_54[0xb]" identifier = (subscript_expression "local_54[0xb]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);" (assignment_expression "uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5)" identifier = (call_expression "dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5)" identifier (argument_list "(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5)" ( number_literal , (string_literal ""%F%P:%pS: non constant or forward reference address expression for section %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031730(uVar9,iVar6,iVar8);" (call_expression "FUN_00031730(uVar9,iVar6,iVar8)" identifier (argument_list "(uVar9,iVar6,iVar8)" ( identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }" else (compound_statement "{\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }" { (expression_statement "param_3 = DAT_000bbf94;" (assignment_expression "param_3 = DAT_000bbf94" identifier = identifier) ;) (if_statement "if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }" if (parenthesized_expression "(DAT_000bbf9c != 0)" ( (binary_expression "DAT_000bbf9c != 0" identifier != number_literal) )) (compound_statement "{\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }" { (expression_statement "param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);" (assignment_expression "param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c)" identifier = (binary_expression "DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c)" identifier + (pointer_expression "*(int *)(DAT_000bbf9c + 0x1c)" * (cast_expression "(int *)(DAT_000bbf9c + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000bbf9c + 0x1c)" ( (binary_expression "DAT_000bbf9c + 0x1c" identifier + number_literal) )))))) ;) })) }))) }))) (expression_statement "uVar7 = param_3;" (assignment_expression "uVar7 = param_3" identifier = identifier) ;) (expression_statement "puVar2 = PTR__bfd_std_section_000bafc4;" (assignment_expression "puVar2 = PTR__bfd_std_section_000bafc4" identifier = identifier) ;) (expression_statement "puVar15 = (undefined4 *)local_54[7];" (assignment_expression "puVar15 = (undefined4 *)local_54[7]" identifier = (cast_expression "(undefined4 *)local_54[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) (if_statement "if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }" { (if_statement "if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0))" ( (binary_expression "(*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)" (parenthesized_expression "(*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2)" ( (binary_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2" (binary_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U" (pointer_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" * (cast_expression "(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_000bbe30 + 4) + 4)" ( (binary_expression "*(int *)(DAT_000bbe30 + 4) + 4" (pointer_expression "*(int *)(DAT_000bbe30 + 4)" * (cast_expression "(int *)(DAT_000bbe30 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000bbe30 + 4)" ( (binary_expression "DAT_000bbe30 + 4" identifier + number_literal) )))) + number_literal) )))) - number_literal) < number_literal) )) && (parenthesized_expression "(uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)" ( (comma_expression "uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0" (assignment_expression "uVar14 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) , (binary_expression "(uVar14 & 0x4000000) != 0" (parenthesized_expression "(uVar14 & 0x4000000)" ( (binary_expression "uVar14 & 0x4000000" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }" { (expression_statement "piVar18 = (int *)local_54[2];" (assignment_expression "piVar18 = (int *)local_54[2]" identifier = (cast_expression "(int *)local_54[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[2]" identifier [ number_literal ]))) ;) (if_statement "if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }" if (parenthesized_expression "(((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5))" ( (binary_expression "((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)" (parenthesized_expression "((piVar18 == (int *)0x0) || (*piVar18 != 0))" ( (binary_expression "(piVar18 == (int *)0x0) || (*piVar18 != 0)" (parenthesized_expression "(piVar18 == (int *)0x0)" ( (binary_expression "piVar18 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*piVar18 != 0)" ( (binary_expression "*piVar18 != 0" (pointer_expression "*piVar18" * identifier) != number_literal) ))) )) || (parenthesized_expression "(piVar18[1] != 5)" ( (binary_expression "piVar18[1] != 5" (subscript_expression "piVar18[1]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }" { (expression_statement "iVar8 = local_54[6];" (assignment_expression "iVar8 = local_54[6]" identifier = (subscript_expression "local_54[6]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5)" identifier (argument_list "(0,"%X%P: internal error on COFF shared library section %s\n",5)" ( number_literal , (string_literal ""%X%P: internal error on COFF shared library section %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031730(uVar9,iVar8);" (call_expression "FUN_00031730(uVar9,iVar8)" identifier (argument_list "(uVar9,iVar8)" ( identifier , identifier ))) ;) (expression_statement "puVar15 = (undefined4 *)local_54[7];" (assignment_expression "puVar15 = (undefined4 *)local_54[7]" identifier = (cast_expression "(undefined4 *)local_54[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) (expression_statement "piVar18 = (int *)local_54[2];" (assignment_expression "piVar18 = (int *)local_54[2]" identifier = (cast_expression "(int *)local_54[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = puVar15[5];" (assignment_expression "uVar14 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) })) (expression_statement "iVar8 = piVar18[2];" (assignment_expression "iVar8 = piVar18[2]" identifier = (subscript_expression "piVar18[2]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = *(undefined4 *)(iVar8 + 0x1c);" (assignment_expression "uVar9 = *(undefined4 *)(iVar8 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;" (assignment_expression "*(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1" (pointer_expression "*(byte *)(puVar15 + 6)" * (cast_expression "(byte *)(puVar15 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 6)" ( (binary_expression "puVar15 + 6" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar15 + 6) | 1" (pointer_expression "*(byte *)(puVar15 + 6)" * (cast_expression "(byte *)(puVar15 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 6)" ( (binary_expression "puVar15 + 6" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "puVar15[8] = uVar9;" (assignment_expression "puVar15[8] = uVar9" (subscript_expression "puVar15[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[7] = uVar9;" (assignment_expression "puVar15[7] = uVar9" (subscript_expression "puVar15[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }" if (parenthesized_expression "((uVar14 & 0x800) == 0)" ( (binary_expression "(uVar14 & 0x800) == 0" (parenthesized_expression "(uVar14 & 0x800)" ( (binary_expression "uVar14 & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }" { (expression_statement "puVar15[9] = *(undefined4 *)(iVar8 + 0x24);" (assignment_expression "puVar15[9] = *(undefined4 *)(iVar8 + 0x24)" (subscript_expression "puVar15[9]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(iVar8 + 0x24)" * (cast_expression "(undefined4 *)(iVar8 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24)" ( (binary_expression "iVar8 + 0x24" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }" else (compound_statement "{\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }" { (if_statement "if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }" if (parenthesized_expression "(puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150))" ( (binary_expression "puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)" identifier == (cast_expression "(undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x150)" ( (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" identifier + number_literal) )))) )) (compound_statement "{\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }" { (expression_statement "iStack_3c = 0;" (assignment_expression "iStack_3c = 0" identifier = number_literal) ;) (expression_statement "uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);" (assignment_expression "uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c)" identifier = (pointer_expression "*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c)" * (cast_expression "(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x16c)" ( (binary_expression "PTR__bfd_std_section_000bafc4 + 0x16c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }" if (parenthesized_expression "(*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0)" ( (binary_expression "*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0" (pointer_expression "*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c)" * (cast_expression "(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x16c)" ( (binary_expression "PTR__bfd_std_section_000bafc4 + 0x16c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }" { (expression_statement "FUN_00031780("../../ld/ldlang.c",0x13e5);" (call_expression "FUN_00031780("../../ld/ldlang.c",0x13e5)" identifier (argument_list "("../../ld/ldlang.c",0x13e5)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "uVar14 = local_4c;" (assignment_expression "uVar14 = local_4c" identifier = identifier) ;) })) }) (else_clause "else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }" else (compound_statement "{\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }" { (if_statement "if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }" if (parenthesized_expression "(local_54[0xb] == 0)" ( (binary_expression "local_54[0xb] == 0" (subscript_expression "local_54[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }" { (expression_statement "puVar12 = (undefined4 *)local_54[8];" (assignment_expression "puVar12 = (undefined4 *)local_54[8]" identifier = (cast_expression "(undefined4 *)local_54[8]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar7 = puVar15[5];" (assignment_expression "uVar7 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (if_statement "if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }" if (parenthesized_expression "(puVar12 == (undefined4 *)0x0)" ( (binary_expression "puVar12 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }" { (labeled_statement "code_r0x00022925:\n                puVar12 = DAT_000bb92c;" statement_identifier : (expression_statement "puVar12 = DAT_000bb92c;" (assignment_expression "puVar12 = DAT_000bb92c" identifier = identifier) ;)) (if_statement "if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }" if (parenthesized_expression "((uVar7 & 0x19) == 1)" ( (binary_expression "(uVar7 & 0x19) == 1" (parenthesized_expression "(uVar7 & 0x19)" ( (binary_expression "uVar7 & 0x19" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  uVar7 = uVar7 | 0x20;\n                }" { (expression_statement "uVar7 = uVar7 | 0x20;" (assignment_expression "uVar7 = uVar7 | 0x20" identifier = (binary_expression "uVar7 | 0x20" identifier | number_literal)) ;) })) (for_statement "for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }" for ( ; (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar12 = (undefined4 *)puVar12[2]" identifier = (cast_expression "(undefined4 *)puVar12[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[2]" identifier [ number_literal ]))) ) (compound_statement "{\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }" { (if_statement "if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;" if (parenthesized_expression "(((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))" ( (binary_expression "((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0)" (parenthesized_expression "((puVar12[9] & uVar7) != 0)" ( (binary_expression "(puVar12[9] & uVar7) != 0" (parenthesized_expression "(puVar12[9] & uVar7)" ( (binary_expression "puVar12[9] & uVar7" (subscript_expression "puVar12[9]" identifier [ number_literal ]) & identifier) )) != number_literal) )) && (parenthesized_expression "((puVar12[10] & uVar7) == 0)" ( (binary_expression "(puVar12[10] & uVar7) == 0" (parenthesized_expression "(puVar12[10] & uVar7)" ( (binary_expression "puVar12[10] & uVar7" (subscript_expression "puVar12[10]" identifier [ number_literal ]) & identifier) )) == number_literal) ))) )) (goto_statement "goto code_r0x00022989;" goto statement_identifier ;)) })) (expression_statement "puVar12 = (undefined4 *)FUN_00021940("*default*",0);" (assignment_expression "puVar12 = (undefined4 *)FUN_00021940("*default*",0)" identifier = (cast_expression "(undefined4 *)FUN_00021940("*default*",0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00021940("*default*",0)" identifier (argument_list "("*default*",0)" ( (string_literal ""*default*"" " string_content ") , number_literal ))))) ;) (expression_statement "puVar15 = (undefined4 *)local_54[7];" (assignment_expression "puVar15 = (undefined4 *)local_54[7]" identifier = (cast_expression "(undefined4 *)local_54[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) (labeled_statement "code_r0x00022989:\n                local_54[8] = (int)puVar12;" statement_identifier : (expression_statement "local_54[8] = (int)puVar12;" (assignment_expression "local_54[8] = (int)puVar12" (subscript_expression "local_54[8]" identifier [ number_literal ]) = (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) }) (else_clause "else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }" else (if_statement "if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }" if (parenthesized_expression "((uVar7 & 3) != 0)" ( (binary_expression "(uVar7 & 3) != 0" (parenthesized_expression "(uVar7 & 3)" ( (binary_expression "uVar7 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }" { (expression_statement "bVar13 = *(byte *)*puVar12;" (assignment_expression "bVar13 = *(byte *)*puVar12" identifier = (pointer_expression "*(byte *)*puVar12" * (cast_expression "(byte *)*puVar12" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar12" * identifier)))) ;) (expression_statement "bVar22 = bVar13 < 0x2a;" (assignment_expression "bVar22 = bVar13 < 0x2a" identifier = (binary_expression "bVar13 < 0x2a" identifier < number_literal)) ;) (expression_statement "bVar23 = bVar13 == 0x2a;" (assignment_expression "bVar23 = bVar13 == 0x2a" identifier = (binary_expression "bVar13 == 0x2a" identifier == number_literal)) ;) (if_statement "if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }" { (expression_statement "iVar8 = 10;" (assignment_expression "iVar8 = 10" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)*puVar12;" (assignment_expression "pbVar20 = (byte *)*puVar12" identifier = (cast_expression "(byte *)*puVar12" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar12" * identifier))) ;) (expression_statement "pbVar21 = (byte *)"*default*";" (assignment_expression "pbVar21 = (byte *)"*default*"" identifier = (cast_expression "(byte *)"*default*"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""*default*"" " string_content "))) ;) (do_statement "do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);" do (compound_statement "{\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar20 < *pbVar21;" (assignment_expression "bVar22 = *pbVar20 < *pbVar21" identifier = (binary_expression "*pbVar20 < *pbVar21" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar23 = *pbVar20 == *pbVar21;" (assignment_expression "bVar23 = *pbVar20 == *pbVar21" identifier = (binary_expression "*pbVar20 == *pbVar21" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;" if (parenthesized_expression "((!bVar22 && !bVar23) == bVar22)" ( (binary_expression "(!bVar22 && !bVar23) == bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" ( (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier) )) (goto_statement "goto code_r0x00022925;" goto statement_identifier ;)) })) })))) (expression_statement "puVar3 = DAT_000bb92c;" (assignment_expression "puVar3 = DAT_000bb92c" identifier = identifier) ;) (if_statement "if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }" if (parenthesized_expression "(((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2))" ( (binary_expression "((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)" (parenthesized_expression "((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400))" ( (binary_expression "(((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)" (parenthesized_expression "(((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0))" ( (binary_expression "((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)" (parenthesized_expression "((*(byte *)(local_54 + 0x15) & 8) == 0)" ( (binary_expression "(*(byte *)(local_54 + 0x15) & 8) == 0" (parenthesized_expression "(*(byte *)(local_54 + 0x15) & 8)" ( (binary_expression "*(byte *)(local_54 + 0x15) & 8" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((puVar15[5] & 1) != 0)" ( (binary_expression "(puVar15[5] & 1) != 0" (parenthesized_expression "(puVar15[5] & 1)" ( (binary_expression "puVar15[5] & 1" (subscript_expression "puVar15[5]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((puVar15[5] & 0x402) != 0x400)" ( (binary_expression "(puVar15[5] & 0x402) != 0x400" (parenthesized_expression "(puVar15[5] & 0x402)" ( (binary_expression "puVar15[5] & 0x402" (subscript_expression "puVar15[5]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(((byte)DAT_000bbe00 & 3) != 2)" ( (binary_expression "((byte)DAT_000bbe00 & 3) != 2" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" ( (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar23 = param_5 == 0;" (assignment_expression "bVar23 = param_5 == 0" identifier = (binary_expression "param_5 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }" { (expression_statement "iVar8 = 10;" (assignment_expression "iVar8 = 10" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)*puVar12;" (assignment_expression "pbVar20 = (byte *)*puVar12" identifier = (cast_expression "(byte *)*puVar12" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar12" * identifier))) ;) (expression_statement "pbVar21 = (byte *)"*default*";" (assignment_expression "pbVar21 = (byte *)"*default*"" identifier = (cast_expression "(byte *)"*default*"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""*default*"" " string_content "))) ;) (do_statement "do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);" do (compound_statement "{\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar20 < *pbVar21;" (assignment_expression "bVar22 = *pbVar20 < *pbVar21" identifier = (binary_expression "*pbVar20 < *pbVar21" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar23 = *pbVar20 == *pbVar21;" (assignment_expression "bVar23 = *pbVar20 == *pbVar21" identifier = (binary_expression "*pbVar20 == *pbVar21" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }" if (parenthesized_expression "(((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1))" ( (binary_expression "((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)" (parenthesized_expression "((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0))))" ( (binary_expression "(((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))" (parenthesized_expression "(((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0))" ( (binary_expression "((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)" (parenthesized_expression "((!bVar22 && !bVar23) == bVar22)" ( (binary_expression "(!bVar22 && !bVar23) == bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" ( (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier) )) && (parenthesized_expression "(DAT_000bb92c != (undefined4 *)0x0)" ( (binary_expression "DAT_000bb92c != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))" ( (parenthesized_expression "(iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0))" ( (comma_expression "iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)" (assignment_expression "iVar8 = strcmp((char *)*DAT_000bb92c,"*default*")" identifier = (call_expression "strcmp((char *)*DAT_000bb92c,"*default*")" identifier (argument_list "((char *)*DAT_000bb92c,"*default*")" ( (cast_expression "(char *)*DAT_000bb92c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_000bb92c" * identifier)) , (string_literal ""*default*"" " string_content ") )))) , (binary_expression "iVar8 != 0 ||\n                       (puVar3[2] != 0)" (binary_expression "iVar8 != 0" identifier != number_literal) || (parenthesized_expression "(puVar3[2] != 0)" ( (binary_expression "puVar3[2] != 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) != number_literal) )))) )) ))) )) && (parenthesized_expression "(DAT_000bbf80 != 1)" ( (binary_expression "DAT_000bbf80 != 1" identifier != number_literal) ))) )) (compound_statement "{\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }" { (expression_statement "uVar9 = *puVar15;" (assignment_expression "uVar9 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (if_statement "if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }" if (parenthesized_expression "(DAT_000bbeb8 == '\0')" ( (binary_expression "DAT_000bbeb8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }" { (expression_statement "pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";" (assignment_expression "pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n"" identifier = (string_literal ""%P: warning: no memory region specified for loadable section `%s\'\n"" " string_content escape_sequence escape_sequence ")) ;) (expression_statement "ppuVar25 = extraout_ECX_00;" (assignment_expression "ppuVar25 = extraout_ECX_00" identifier = identifier) ;) }) (else_clause "else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }" else (compound_statement "{\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }" { (expression_statement "pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";" (assignment_expression "pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n"" identifier = (string_literal ""%F%P: error: no memory region specified for loadable section `%s\'\n"" " string_content escape_sequence escape_sequence ")) ;) (expression_statement "ppuVar25 = &__DT_PLTGOT;" (assignment_expression "ppuVar25 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) }))) (expression_statement "uVar11 = dcgettext(0,pcVar10,5,ppuVar25);" (assignment_expression "uVar11 = dcgettext(0,pcVar10,5,ppuVar25)" identifier = (call_expression "dcgettext(0,pcVar10,5,ppuVar25)" identifier (argument_list "(0,pcVar10,5,ppuVar25)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "FUN_00031730(uVar11,uVar9);" (call_expression "FUN_00031730(uVar11,uVar9)" identifier (argument_list "(uVar11,uVar9)" ( identifier , identifier ))) ;) (expression_statement "puVar12 = (undefined4 *)local_54[8];" (assignment_expression "puVar12 = (undefined4 *)local_54[8]" identifier = (cast_expression "(undefined4 *)local_54[8]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[8]" identifier [ number_literal ]))) ;) (expression_statement "puVar15 = (undefined4 *)local_54[7];" (assignment_expression "puVar15 = (undefined4 *)local_54[7]" identifier = (cast_expression "(undefined4 *)local_54[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) })) })) })) (expression_statement "iStack_3c = puVar15[0x10];" (assignment_expression "iStack_3c = puVar15[0x10]" identifier = (subscript_expression "puVar15[0x10]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar12[7];" (assignment_expression "uVar7 = puVar12[7]" identifier = (subscript_expression "puVar12[7]" identifier [ number_literal ])) ;) }) (else_clause "else {\n              iStack_3c = local_54[0x11];\n            }" else (compound_statement "{\n              iStack_3c = local_54[0x11];\n            }" { (expression_statement "iStack_3c = local_54[0x11];" (assignment_expression "iStack_3c = local_54[0x11]" identifier = (subscript_expression "local_54[0x11]" identifier [ number_literal ])) ;) }))) (expression_statement "uVar14 = local_4c;" (assignment_expression "uVar14 = local_4c" identifier = identifier) ;) (if_statement "if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }" if (parenthesized_expression "(0 < iStack_3c)" ( (binary_expression "0 < iStack_3c" number_literal < identifier) )) (compound_statement "{\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }" { (expression_statement "iVar8 = 1 << ((byte)iStack_3c & 0x1f);" (assignment_expression "iVar8 = 1 << ((byte)iStack_3c & 0x1f)" identifier = (binary_expression "1 << ((byte)iStack_3c & 0x1f)" number_literal << (parenthesized_expression "((byte)iStack_3c & 0x1f)" ( (binary_expression "(byte)iStack_3c & 0x1f" (cast_expression "(byte)iStack_3c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar19 = -iVar8 & iVar8 + -1 + uVar7;" (assignment_expression "uVar19 = -iVar8 & iVar8 + -1 + uVar7" identifier = (binary_expression "-iVar8 & iVar8 + -1 + uVar7" (unary_expression "-iVar8" - identifier) & (binary_expression "iVar8 + -1 + uVar7" (binary_expression "iVar8 + -1" identifier + number_literal) + identifier))) ;) (expression_statement "uVar14 = uVar19 - uVar7;" (assignment_expression "uVar14 = uVar19 - uVar7" identifier = (binary_expression "uVar19 - uVar7" identifier - identifier)) ;) (expression_statement "uVar7 = uVar19;" (assignment_expression "uVar7 = uVar19" identifier = identifier) ;) (if_statement "if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }" if (parenthesized_expression "(((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1))" ( (binary_expression "((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)" (parenthesized_expression "((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0))))" ( (binary_expression "(uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))" (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) && (parenthesized_expression "((iRam000bbf24 != 0 || (local_54[0xb] != 0)))" ( (parenthesized_expression "(iRam000bbf24 != 0 || (local_54[0xb] != 0))" ( (binary_expression "iRam000bbf24 != 0 || (local_54[0xb] != 0)" (binary_expression "iRam000bbf24 != 0" identifier != number_literal) || (parenthesized_expression "(local_54[0xb] != 0)" ( (binary_expression "local_54[0xb] != 0" (subscript_expression "local_54[0xb]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) && (parenthesized_expression "(DAT_000bbf80 != 1)" ( (binary_expression "DAT_000bbf80 != 1" identifier != number_literal) ))) )) (compound_statement "{\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }" { (expression_statement "iVar8 = local_54[6];" (assignment_expression "iVar8 = local_54[6]" identifier = (subscript_expression "local_54[6]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);" (assignment_expression "uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5)" identifier = (call_expression "dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5)" identifier (argument_list "(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5)" ( number_literal , (string_literal ""%P: warning: changing start of section %s by %lu byte\n"" " string_content escape_sequence ") , (string_literal ""%P: warning: changing start of section %s by %lu bytes\n"" " string_content escape_sequence ") , identifier , number_literal )))) ;) (expression_statement "FUN_00031730(uVar9,iVar8,uVar14);" (call_expression "FUN_00031730(uVar9,iVar8,uVar14)" identifier (argument_list "(uVar9,iVar8,uVar14)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar15 = (undefined4 *)local_54[7];" (assignment_expression "puVar15 = (undefined4 *)local_54[7]" identifier = (cast_expression "(undefined4 *)local_54[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) })) })) (expression_statement "*(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;" (assignment_expression "*(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1" (pointer_expression "*(byte *)(puVar15 + 6)" * (cast_expression "(byte *)(puVar15 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 6)" ( (binary_expression "puVar15 + 6" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar15 + 6) | 1" (pointer_expression "*(byte *)(puVar15 + 6)" * (cast_expression "(byte *)(puVar15 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 6)" ( (binary_expression "puVar15 + 6" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "puVar15[8] = uVar7;" (assignment_expression "puVar15[8] = uVar7" (subscript_expression "puVar15[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[7] = uVar7;" (assignment_expression "puVar15[7] = uVar7" (subscript_expression "puVar15[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[0xe] = 0;" (assignment_expression "puVar15[0xe] = 0" (subscript_expression "puVar15[0xe]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "FUN_00021aa0(uVar7,param_4,param_5);" (call_expression "FUN_00021aa0(uVar7,param_4,param_5)" identifier (argument_list "(uVar7,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "bVar13 = *(byte *)(local_54 + 0x15);" (assignment_expression "bVar13 = *(byte *)(local_54 + 0x15)" identifier = (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(local_54 + 0x15) = bVar13 | 1;" (assignment_expression "*(byte *)(local_54 + 0x15) = bVar13 | 1" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) = (binary_expression "bVar13 | 1" identifier | number_literal)) ;) (expression_statement "puVar17 = (undefined *)local_54[7];" (assignment_expression "puVar17 = (undefined *)local_54[7]" identifier = (cast_expression "(undefined *)local_54[7]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) (if_statement "if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }" if (parenthesized_expression "(puVar17 == puVar2 + 0x150)" ( (binary_expression "puVar17 == puVar2 + 0x150" identifier == (binary_expression "puVar2 + 0x150" identifier + number_literal)) )) (compound_statement "{\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }" { (expression_statement "uVar7 = *(uint *)(puVar2 + 0x174);" (assignment_expression "uVar7 = *(uint *)(puVar2 + 0x174)" identifier = (pointer_expression "*(uint *)(puVar2 + 0x174)" * (cast_expression "(uint *)(puVar2 + 0x174)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x174)" ( (binary_expression "puVar2 + 0x174" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }" statement_identifier : (if_statement "if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }" { (expression_statement "FUN_00031780("../../ld/ldlang.c",0x1443);" (call_expression "FUN_00031780("../../ld/ldlang.c",0x1443)" identifier (argument_list "("../../ld/ldlang.c",0x1443)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) }))) }) (else_clause "else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }" else (compound_statement "{\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }" { (expression_statement "uVar7 = *(uint *)(puVar17 + 0x24);" (assignment_expression "uVar7 = *(uint *)(puVar17 + 0x24)" identifier = (pointer_expression "*(uint *)(puVar17 + 0x24)" * (cast_expression "(uint *)(puVar17 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x24)" ( (binary_expression "puVar17 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if ((bVar13 & 8) != 0) goto code_r0x000223fa;" if (parenthesized_expression "((bVar13 & 8) != 0)" ( (binary_expression "(bVar13 & 8) != 0" (parenthesized_expression "(bVar13 & 8)" ( (binary_expression "bVar13 & 8" identifier & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x000223fa;" goto statement_identifier ;)) (expression_statement "param_3 = *(uint *)(puVar17 + 0x1c);" (assignment_expression "param_3 = *(uint *)(puVar17 + 0x1c)" identifier = (pointer_expression "*(uint *)(puVar17 + 0x1c)" * (cast_expression "(uint *)(puVar17 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x1c)" ( (binary_expression "puVar17 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }" if (parenthesized_expression "((puVar17[0x15] & 8) == 0)" ( (binary_expression "(puVar17[0x15] & 8) == 0" (parenthesized_expression "(puVar17[0x15] & 8)" ( (binary_expression "puVar17[0x15] & 8" (subscript_expression "puVar17[0x15]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }" { (expression_statement "*(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);" (assignment_expression "*(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(puVar17 + 0x24)" * (cast_expression "(uint *)(puVar17 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x24)" ( (binary_expression "puVar17 + 0x24" identifier + number_literal) )))) = (binary_expression "((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f)" (binary_expression "((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3" (parenthesized_expression "((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf])" ( (binary_expression "(uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]" (binary_expression "(uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf]" (binary_expression "(uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1)" (parenthesized_expression "(uVar7 >> ((byte)DAT_000bb94c & 0x1f))" ( (binary_expression "uVar7 >> ((byte)DAT_000bb94c & 0x1f)" identifier >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )) + (parenthesized_expression "(param_3 - 1)" ( (binary_expression "param_3 - 1" identifier - number_literal) ))) + (subscript_expression "local_54[0xf]" identifier [ number_literal ])) & (unary_expression "-local_54[0xf]" - (subscript_expression "local_54[0xf]" identifier [ number_literal ]))) )) - identifier) << (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) }))) (expression_statement "iVar8 = local_54[8];" (assignment_expression "iVar8 = local_54[8]" identifier = (subscript_expression "local_54[8]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar8 = FUN_00021940("*default*",0);\n          }" { (expression_statement "iVar8 = FUN_00021940("*default*",0);" (assignment_expression "iVar8 = FUN_00021940("*default*",0)" identifier = (call_expression "FUN_00021940("*default*",0)" identifier (argument_list "("*default*",0)" ( (string_literal ""*default*"" " string_content ") , number_literal )))) ;) })) (if_statement "if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(local_54[0xc] == 0)" ( (binary_expression "local_54[0xc] == 0" (subscript_expression "local_54[0xc]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }" { (expression_statement "puVar17 = (undefined *)local_54[7];" (assignment_expression "puVar17 = (undefined *)local_54[7]" identifier = (cast_expression "(undefined *)local_54[7]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) (expression_statement "iVar6 = local_54[9];" (assignment_expression "iVar6 = local_54[9]" identifier = (subscript_expression "local_54[9]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = *(uint *)(puVar17 + 0x14);" (assignment_expression "uVar7 = *(uint *)(puVar17 + 0x14)" identifier = (pointer_expression "*(uint *)(puVar17 + 0x14)" * (cast_expression "(uint *)(puVar17 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x14)" ( (binary_expression "puVar17 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = uVar7 & 1;" (assignment_expression "uVar19 = uVar7 & 1" identifier = (binary_expression "uVar7 & 1" identifier & number_literal)) ;) (if_statement "if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }" { (expression_statement "uStack_34 = *(uint *)(iVar6 + 0x1c);" (assignment_expression "uStack_34 = *(uint *)(iVar6 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x1c)" * (cast_expression "(uint *)(iVar6 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }" if (parenthesized_expression "((*(byte *)(local_54 + 0x15) & 0x40) == 0)" ( (binary_expression "(*(byte *)(local_54 + 0x15) & 0x40) == 0" (parenthesized_expression "(*(byte *)(local_54 + 0x15) & 0x40)" ( (binary_expression "*(byte *)(local_54 + 0x15) & 0x40" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }" { (if_statement "if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }" if (parenthesized_expression "(iVar6 != local_54[8])" ( (binary_expression "iVar6 != local_54[8]" identifier != (subscript_expression "local_54[8]" identifier [ number_literal ])) )) (compound_statement "{\n                  iStack_3c = local_54[0x11];\n                }" { (expression_statement "iStack_3c = local_54[0x11];" (assignment_expression "iStack_3c = local_54[0x11]" identifier = (subscript_expression "local_54[0x11]" identifier [ number_literal ])) ;) })) (if_statement "if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }" if (parenthesized_expression "(0 < iStack_3c)" ( (binary_expression "0 < iStack_3c" number_literal < identifier) )) (compound_statement "{\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }" { (expression_statement "iVar6 = 1 << ((byte)iStack_3c & 0x1f);" (assignment_expression "iVar6 = 1 << ((byte)iStack_3c & 0x1f)" identifier = (binary_expression "1 << ((byte)iStack_3c & 0x1f)" number_literal << (parenthesized_expression "((byte)iStack_3c & 0x1f)" ( (binary_expression "(byte)iStack_3c & 0x1f" (cast_expression "(byte)iStack_3c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;" (assignment_expression "uStack_34 = -iVar6 & iVar6 + -1 + uStack_34" identifier = (binary_expression "-iVar6 & iVar6 + -1 + uStack_34" (unary_expression "-iVar6" - identifier) & (binary_expression "iVar6 + -1 + uStack_34" (binary_expression "iVar6 + -1" identifier + number_literal) + identifier))) ;) })) }) (else_clause "else {\n                uStack_34 = uStack_34 + uVar14;\n              }" else (compound_statement "{\n                uStack_34 = uStack_34 + uVar14;\n              }" { (expression_statement "uStack_34 = uStack_34 + uVar14;" (assignment_expression "uStack_34 = uStack_34 + uVar14" identifier = (binary_expression "uStack_34 + uVar14" identifier + identifier)) ;) }))) (expression_statement "*(uint *)(puVar17 + 0x20) = uStack_34;" (assignment_expression "*(uint *)(puVar17 + 0x20) = uStack_34" (pointer_expression "*(uint *)(puVar17 + 0x20)" * (cast_expression "(uint *)(puVar17 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x20)" ( (binary_expression "puVar17 + 0x20" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto code_r0x00022015;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;" if (parenthesized_expression "(*(int *)(iVar8 + 0x20) == 0)" ( (binary_expression "*(int *)(iVar8 + 0x20) == 0" (pointer_expression "*(int *)(iVar8 + 0x20)" * (cast_expression "(int *)(iVar8 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto code_r0x00022015;" goto statement_identifier ;)) (if_statement "if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }" { (expression_statement "iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);" (assignment_expression "iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar8 + 0x20) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar8 + 0x20) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0x20) + 0x1c)" ( (binary_expression "*(int *)(iVar8 + 0x20) + 0x1c" (pointer_expression "*(int *)(iVar8 + 0x20)" * (cast_expression "(int *)(iVar8 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar14 = *(uint *)(iVar6 + 0x1c);" (assignment_expression "uVar14 = *(uint *)(iVar6 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x1c)" * (cast_expression "(uint *)(iVar6 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = *(uint *)(iVar6 + 0x20);" (assignment_expression "uVar19 = *(uint *)(iVar6 + 0x20)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x20)" * (cast_expression "(uint *)(iVar6 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }" if (parenthesized_expression "(((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14))" ( (binary_expression "((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)" (parenthesized_expression "((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0))" ( (binary_expression "(param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)" (parenthesized_expression "(param_3 < uVar14)" ( (binary_expression "param_3 < uVar14" identifier < identifier) )) && (parenthesized_expression "(*(uint *)(puVar17 + 0x24) != 0)" ( (binary_expression "*(uint *)(puVar17 + 0x24) != 0" (pointer_expression "*(uint *)(puVar17 + 0x24)" * (cast_expression "(uint *)(puVar17 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x24)" ( (binary_expression "puVar17 + 0x24" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)" ( (binary_expression "(*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14" (binary_expression "(*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3" (parenthesized_expression "(*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f))" ( (binary_expression "*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(puVar17 + 0x24)" * (cast_expression "(uint *)(puVar17 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x24)" ( (binary_expression "puVar17 + 0x24" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )) + identifier) <= identifier) ))) )) (compound_statement "{\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }" { (if_statement "if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }" if (parenthesized_expression "(uVar14 != uVar19)" ( (binary_expression "uVar14 != uVar19" identifier != identifier) )) (compound_statement "{\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }" { (expression_statement "iVar6 = local_54[6];" (assignment_expression "iVar6 = local_54[6]" identifier = (subscript_expression "local_54[6]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);" (assignment_expression "uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54)" identifier = (call_expression "dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54)" identifier (argument_list "(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54)" ( number_literal , (string_literal ""%P: warning: dot moved backwards before `%s\'\n"" " string_content escape_sequence escape_sequence ") , number_literal , identifier )))) ;) (expression_statement "FUN_00031730(uVar9,iVar6);" (call_expression "FUN_00031730(uVar9,iVar6)" identifier (argument_list "(uVar9,iVar6)" ( identifier , identifier ))) ;) (expression_statement "puVar17 = (undefined *)local_54[7];" (assignment_expression "puVar17 = (undefined *)local_54[7]" identifier = (cast_expression "(undefined *)local_54[7]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) (goto_statement "goto code_r0x00022008;" goto statement_identifier ;) })) }) (else_clause "else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }" else (compound_statement "{\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }" { (expression_statement "uVar14 = (uVar19 + param_3) - uVar14;" (assignment_expression "uVar14 = (uVar19 + param_3) - uVar14" identifier = (binary_expression "(uVar19 + param_3) - uVar14" (parenthesized_expression "(uVar19 + param_3)" ( (binary_expression "uVar19 + param_3" identifier + identifier) )) - identifier)) ;) (if_statement "if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }" if (parenthesized_expression "(local_54[0x14] == 1)" ( (binary_expression "local_54[0x14] == 1" (subscript_expression "local_54[0x14]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }" { (expression_statement "uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;" (assignment_expression "uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19" identifier = (binary_expression "(*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19" (parenthesized_expression "(*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f))" ( (binary_expression "*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(iVar6 + 0x24)" * (cast_expression "(uint *)(iVar6 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x24)" ( (binary_expression "iVar6 + 0x24" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )) + identifier)) ;) })) (if_statement "if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }" if (parenthesized_expression "(0 < iStack_3c)" ( (binary_expression "0 < iStack_3c" number_literal < identifier) )) (compound_statement "{\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }" { (expression_statement "iVar6 = 1 << ((byte)iStack_3c & 0x1f);" (assignment_expression "iVar6 = 1 << ((byte)iStack_3c & 0x1f)" identifier = (binary_expression "1 << ((byte)iStack_3c & 0x1f)" number_literal << (parenthesized_expression "((byte)iStack_3c & 0x1f)" ( (binary_expression "(byte)iStack_3c & 0x1f" (cast_expression "(byte)iStack_3c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar14 = -iVar6 & iVar6 + -1 + uVar14;" (assignment_expression "uVar14 = -iVar6 & iVar6 + -1 + uVar14" identifier = (binary_expression "-iVar6 & iVar6 + -1 + uVar14" (unary_expression "-iVar6" - identifier) & (binary_expression "iVar6 + -1 + uVar14" (binary_expression "iVar6 + -1" identifier + number_literal) + identifier))) ;) })) (expression_statement "*(uint *)(puVar17 + 0x20) = uVar14;" (assignment_expression "*(uint *)(puVar17 + 0x20) = uVar14" (pointer_expression "*(uint *)(puVar17 + 0x20)" * (cast_expression "(uint *)(puVar17 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x20)" ( (binary_expression "puVar17 + 0x20" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;" (assignment_expression "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) | number_literal)) ;) (goto_statement "goto code_r0x00022020;" goto statement_identifier ;) })) (expression_statement "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;" (assignment_expression "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) | number_literal)) ;) }) (else_clause "else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }" else (compound_statement "{\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");" (assignment_expression "uVar9 = FUN_0002fd60(local_54[0xc],0,"load base")" identifier = (call_expression "FUN_0002fd60(local_54[0xc],0,"load base")" identifier (argument_list "(local_54[0xc],0,"load base")" ( (subscript_expression "local_54[0xc]" identifier [ number_literal ]) , number_literal , (string_literal ""load base"" " string_content ") )))) ;) (expression_statement "puVar17 = (undefined *)local_54[7];" (assignment_expression "puVar17 = (undefined *)local_54[7]" identifier = (cast_expression "(undefined *)local_54[7]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_54[7]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(puVar17 + 0x20) = uVar9;" (assignment_expression "*(undefined4 *)(puVar17 + 0x20) = uVar9" (pointer_expression "*(undefined4 *)(puVar17 + 0x20)" * (cast_expression "(undefined4 *)(puVar17 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x20)" ( (binary_expression "puVar17 + 0x20" identifier + number_literal) )))) = identifier) ;) (labeled_statement "code_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);" statement_identifier : (expression_statement "uVar7 = *(uint *)(puVar17 + 0x14);" (assignment_expression "uVar7 = *(uint *)(puVar17 + 0x14)" identifier = (pointer_expression "*(uint *)(puVar17 + 0x14)" * (cast_expression "(uint *)(puVar17 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x14)" ( (binary_expression "puVar17 + 0x14" identifier + number_literal) ))))) ;)) (expression_statement "uVar19 = uVar7 & 1;" (assignment_expression "uVar19 = uVar7 & 1" identifier = (binary_expression "uVar7 & 1" identifier & number_literal)) ;) (labeled_statement "code_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;" statement_identifier : (expression_statement "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;" (assignment_expression "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) | number_literal)) ;)) (if_statement "if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }" { (labeled_statement "code_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }" statement_identifier : (if_statement "if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }" if (parenthesized_expression "((uVar7 & 0x402) != 0x400)" ( (binary_expression "(uVar7 & 0x402) != 0x400" (parenthesized_expression "(uVar7 & 0x402)" ( (binary_expression "uVar7 & 0x402" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }" { (if_statement "if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }" if (parenthesized_expression "(*(int *)(puVar17 + 0x24) == 0)" ( (binary_expression "*(int *)(puVar17 + 0x24) == 0" (pointer_expression "*(int *)(puVar17 + 0x24)" * (cast_expression "(int *)(puVar17 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x24)" ( (binary_expression "puVar17 + 0x24" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }" { (if_statement "if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;" if (parenthesized_expression "(*(int *)(iVar8 + 0x20) == 0)" ( (binary_expression "*(int *)(iVar8 + 0x20) == 0" (pointer_expression "*(int *)(iVar8 + 0x20)" * (cast_expression "(int *)(iVar8 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }" { (if_statement "if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;" if (parenthesized_expression "(*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20))" ( (binary_expression "*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)" (pointer_expression "*(int *)(puVar17 + 0x1c)" * (cast_expression "(int *)(puVar17 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x1c)" ( (binary_expression "puVar17 + 0x1c" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar17 + 0x20)" * (cast_expression "(int *)(puVar17 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x20)" ( (binary_expression "puVar17 + 0x20" identifier + number_literal) ))))) )) (goto_statement "goto code_r0x000223c5;" goto statement_identifier ;)) }) (else_clause "else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;" else (if_statement "if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;" if (parenthesized_expression "(*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)" ( (binary_expression "*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3" (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c)" ( (binary_expression "*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c" (pointer_expression "*(int *)(*(int *)(iVar8 + 0x20) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar8 + 0x20) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0x20) + 0x1c)" ( (binary_expression "*(int *)(iVar8 + 0x20) + 0x1c" (pointer_expression "*(int *)(iVar8 + 0x20)" * (cast_expression "(int *)(iVar8 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) <= identifier) )) (goto_statement "goto code_r0x000223c5;" goto statement_identifier ;)))) }) (else_clause "else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }" else (compound_statement "{\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }" { (labeled_statement "code_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }" statement_identifier : (if_statement "if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }" if (parenthesized_expression "((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2))" ( (binary_expression "(local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)" (parenthesized_expression "(local_54[9] == 0)" ( (binary_expression "local_54[9] == 0" (subscript_expression "local_54[9]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(((byte)DAT_000bbe00 & 3) != 2)" ( (binary_expression "((byte)DAT_000bbe00 & 3) != 2" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" ( (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }" { (expression_statement "*(int **)(iVar8 + 0x20) = local_54;" (assignment_expression "*(int **)(iVar8 + 0x20) = local_54" (pointer_expression "*(int **)(iVar8 + 0x20)" * (cast_expression "(int **)(iVar8 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) )))) = identifier) ;) }))) }))) }))) })) }))) (if_statement "if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }" if (parenthesized_expression "((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0))" ( (binary_expression "(puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)" (parenthesized_expression "(puVar17 != puVar2 + 0x150)" ( (binary_expression "puVar17 != puVar2 + 0x150" identifier != (binary_expression "puVar2 + 0x150" identifier + number_literal)) )) && (parenthesized_expression "((*(byte *)(local_54 + 0x15) & 8) == 0)" ( (binary_expression "(*(byte *)(local_54 + 0x15) & 8) == 0" (parenthesized_expression "(*(byte *)(local_54 + 0x15) & 8)" ( (binary_expression "*(byte *)(local_54 + 0x15) & 8" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }" { (if_statement "if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }" if (parenthesized_expression "(((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2))" ( (binary_expression "((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)" (parenthesized_expression "((uVar7 & 0x402) != 0x400)" ( (binary_expression "(uVar7 & 0x402) != 0x400" (parenthesized_expression "(uVar7 & 0x402)" ( (binary_expression "uVar7 & 0x402" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(((byte)DAT_000bbe00 & 3) == 2)" ( (binary_expression "((byte)DAT_000bbe00 & 3) == 2" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" ( (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }" { (expression_statement "local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);" (assignment_expression "local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)" identifier = (binary_expression "*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(puVar17 + 0x24)" * (cast_expression "(uint *)(puVar17 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x24)" ( (binary_expression "puVar17 + 0x24" identifier + number_literal) )))) >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "param_3 = param_3 + local_4c;" (assignment_expression "param_3 = param_3 + local_4c" identifier = (binary_expression "param_3 + local_4c" identifier + identifier)) ;) (if_statement "if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }" if (parenthesized_expression "(local_54[0xd] != 0)" ( (binary_expression "local_54[0xd] != 0" (subscript_expression "local_54[0xd]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }" { (expression_statement "FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);" (call_expression "FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3)" identifier (argument_list "(local_54[0xd],puVar2 + 0x150,&param_3)" ( (subscript_expression "local_54[0xd]" identifier [ number_literal ]) , (binary_expression "puVar2 + 0x150" identifier + number_literal) , (pointer_expression "&param_3" & identifier) ))) ;) })) (if_statement "if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }" if (parenthesized_expression "((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0))" ( (binary_expression "(local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)" (parenthesized_expression "(local_54[8] != 0)" ( (binary_expression "local_54[8] != 0" (subscript_expression "local_54[8]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)" ( (comma_expression "iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0" (assignment_expression "iVar8 = local_54[7]" identifier = (subscript_expression "local_54[7]" identifier [ number_literal ])) , (binary_expression "(*(byte *)(iVar8 + 0x14) & 3) != 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x14) & 3)" ( (binary_expression "*(byte *)(iVar8 + 0x14) & 3" (pointer_expression "*(byte *)(iVar8 + 0x14)" * (cast_expression "(byte *)(iVar8 + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }" { (expression_statement "*(uint *)(local_54[8] + 0x1c) = param_3;" (assignment_expression "*(uint *)(local_54[8] + 0x1c) = param_3" (pointer_expression "*(uint *)(local_54[8] + 0x1c)" * (cast_expression "(uint *)(local_54[8] + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54[8] + 0x1c)" ( (binary_expression "local_54[8] + 0x1c" (subscript_expression "local_54[8]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) (if_statement "if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }" { (expression_statement "FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));" (call_expression "FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(*(undefined4 *)(iVar8 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar8 = local_54[9];" (assignment_expression "iVar8 = local_54[9]" identifier = (subscript_expression "local_54[9]" identifier [ number_literal ])) ;) (if_statement "if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }" if (parenthesized_expression "(((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0))))" ( (binary_expression "((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))" (parenthesized_expression "((iVar8 != 0) && (iVar8 != local_54[8]))" ( (binary_expression "(iVar8 != 0) && (iVar8 != local_54[8])" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar8 != local_54[8])" ( (binary_expression "iVar8 != local_54[8]" identifier != (subscript_expression "local_54[8]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))" ( (parenthesized_expression "((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0))" ( (binary_expression "(*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)" (binary_expression "(*(byte *)(local_54[7] + 0x14) & 2) != 0" (parenthesized_expression "(*(byte *)(local_54[7] + 0x14) & 2)" ( (binary_expression "*(byte *)(local_54[7] + 0x14) & 2" (pointer_expression "*(byte *)(local_54[7] + 0x14)" * (cast_expression "(byte *)(local_54[7] + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54[7] + 0x14)" ( (binary_expression "local_54[7] + 0x14" (subscript_expression "local_54[7]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)(local_54 + 0x15) & 0x40) != 0)" ( (binary_expression "(*(byte *)(local_54 + 0x15) & 0x40) != 0" (parenthesized_expression "(*(byte *)(local_54 + 0x15) & 0x40)" ( (binary_expression "*(byte *)(local_54 + 0x15) & 0x40" (pointer_expression "*(byte *)(local_54 + 0x15)" * (cast_expression "(byte *)(local_54 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x15)" ( (binary_expression "local_54 + 0x15" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }" { (expression_statement "iVar6 = *(int *)(local_54[7] + 0x20);" (assignment_expression "iVar6 = *(int *)(local_54[7] + 0x20)" identifier = (pointer_expression "*(int *)(local_54[7] + 0x20)" * (cast_expression "(int *)(local_54[7] + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54[7] + 0x20)" ( (binary_expression "local_54[7] + 0x20" (subscript_expression "local_54[7]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar8 + 0x1c) = local_4c + iVar6;" (assignment_expression "*(uint *)(iVar8 + 0x1c) = local_4c + iVar6" (pointer_expression "*(uint *)(iVar8 + 0x1c)" * (cast_expression "(uint *)(iVar8 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) = (binary_expression "local_4c + iVar6" identifier + identifier)) ;) (if_statement "if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n                  FUN_0001f080(iVar6);\n                }" { (expression_statement "FUN_0001f080(iVar6);" (call_expression "FUN_0001f080(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) })) })) })) })) }))) })) })) (break_statement "break;" break ;)) (case_statement "case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;" case number_literal : (expression_statement "iVar8 = local_54[2];" (assignment_expression "iVar8 = local_54[2]" identifier = (subscript_expression "local_54[2]" identifier [ number_literal ])) ;) (expression_statement "iRam000bbfcc = 0;" (assignment_expression "iRam000bbfcc = 0" identifier = number_literal) ;) (expression_statement "auStack_20[0] = param_3;" (assignment_expression "auStack_20[0] = param_3" (subscript_expression "auStack_20[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);" (call_expression "FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20)" identifier (argument_list "(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20)" ( identifier , (pointer_expression "*(undefined4 *)(param_2 + 0x1c)" * (cast_expression "(undefined4 *)(param_2 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "piVar18 = DAT_000bbfd0;" (assignment_expression "piVar18 = DAT_000bbfd0" identifier = identifier) ;) (expression_statement "piVar4 = DAT_000bbfd4;" (assignment_expression "piVar4 = DAT_000bbfd4" identifier = identifier) ;) (if_statement "if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }" if (parenthesized_expression "(iRam000bbfcc == 1)" ( (binary_expression "iRam000bbfcc == 1" identifier == number_literal) )) (compound_statement "{\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }" { (expression_statement "piVar18 = local_54;" (assignment_expression "piVar18 = local_54" identifier = identifier) ;) (if_statement "if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }" if (parenthesized_expression "((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54))" ( (binary_expression "(DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)" (parenthesized_expression "(DAT_000bbfd0 != (int *)0x0)" ( (binary_expression "DAT_000bbfd0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)" ( (comma_expression "piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54" (assignment_expression "piVar18 = DAT_000bbfd0" identifier = identifier) , (binary_expression "DAT_000bbfd0 != local_54" identifier != identifier)) ))) )) (compound_statement "{\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }" { (expression_statement "uVar9 = 0x137c;" (assignment_expression "uVar9 = 0x137c" identifier = number_literal) ;) (goto_statement "goto code_r0x000222ec;" goto statement_identifier ;) })) }) (else_clause "else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }" else (if_statement "if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }" if (parenthesized_expression "(((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54))" ( (binary_expression "((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)" (parenthesized_expression "((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0))" ( (binary_expression "(iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)" (parenthesized_expression "(iRam000bbfcc == 2)" ( (binary_expression "iRam000bbfcc == 2" identifier == number_literal) )) && (parenthesized_expression "(piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)" ( (comma_expression "piVar4 = local_54, DAT_000bbfd4 != (int *)0x0" (assignment_expression "piVar4 = local_54" identifier = identifier) , (binary_expression "DAT_000bbfd4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)" ( (comma_expression "piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54" (assignment_expression "piVar4 = DAT_000bbfd4" identifier = identifier) , (binary_expression "DAT_000bbfd4 != local_54" identifier != identifier)) ))) )) (compound_statement "{\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }" { (expression_statement "uVar9 = 0x1385;" (assignment_expression "uVar9 = 0x1385" identifier = number_literal) ;) (labeled_statement "code_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);" statement_identifier : (expression_statement "FUN_00031780("../../ld/ldlang.c",uVar9);" (call_expression "FUN_00031780("../../ld/ldlang.c",uVar9)" identifier (argument_list "("../../ld/ldlang.c",uVar9)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , identifier ))) ;)) (expression_statement "piVar18 = DAT_000bbfd0;" (assignment_expression "piVar18 = DAT_000bbfd0" identifier = identifier) ;) (expression_statement "piVar4 = DAT_000bbfd4;" (assignment_expression "piVar4 = DAT_000bbfd4" identifier = identifier) ;) })))) (expression_statement "DAT_000bbfd4 = piVar4;" (assignment_expression "DAT_000bbfd4 = piVar4" identifier = identifier) ;) (expression_statement "DAT_000bbfd0 = piVar18;" (assignment_expression "DAT_000bbfd0 = piVar18" identifier = identifier) ;) (expression_statement "iRam000bbfcc = 0;" (assignment_expression "iRam000bbfcc = 0" identifier = number_literal) ;) (if_statement "if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }" if (parenthesized_expression "(((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0'))))" ( (binary_expression "((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))" (parenthesized_expression "((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4)" ( (binary_expression "(*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4" (parenthesized_expression "(*(uint *)(iVar8 + 0xc) & 0xfffffffd)" ( (binary_expression "*(uint *)(iVar8 + 0xc) & 0xfffffffd" (pointer_expression "*(uint *)(iVar8 + 0xc)" * (cast_expression "(uint *)(iVar8 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))" ( (parenthesized_expression "(**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0'))" ( (binary_expression "**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')" (binary_expression "**(char **)(iVar8 + 0x10) != '.'" (pointer_expression "**(char **)(iVar8 + 0x10)" * (pointer_expression "*(char **)(iVar8 + 0x10)" * (cast_expression "(char **)(iVar8 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) ))))) != (char_literal "'.'" ' character ')) || (parenthesized_expression "((*(char **)(iVar8 + 0x10))[1] != '\0')" ( (binary_expression "(*(char **)(iVar8 + 0x10))[1] != '\0'" (subscript_expression "(*(char **)(iVar8 + 0x10))[1]" (parenthesized_expression "(*(char **)(iVar8 + 0x10))" ( (pointer_expression "*(char **)(iVar8 + 0x10)" * (cast_expression "(char **)(iVar8 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) )) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }" { (expression_statement "*(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;" (assignment_expression "*(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10" (pointer_expression "*(byte *)(param_2 + 0x54)" * (cast_expression "(byte *)(param_2 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_2 + 0x54) | 0x10" (pointer_expression "*(byte *)(param_2 + 0x54)" * (cast_expression "(byte *)(param_2 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }" if (parenthesized_expression "((*(byte *)(param_2 + 0x54) & 8) == 0)" ( (binary_expression "(*(byte *)(param_2 + 0x54) & 8) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x54) & 8)" ( (binary_expression "*(byte *)(param_2 + 0x54) & 8" (pointer_expression "*(byte *)(param_2 + 0x54)" * (cast_expression "(byte *)(param_2 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }" { (if_statement "if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }" if (parenthesized_expression "(DAT_000bbdac == param_2)" ( (binary_expression "DAT_000bbdac == param_2" identifier == identifier) )) (compound_statement "{\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }" { (expression_statement "iVar8 = FUN_00021940("*default*",0);" (assignment_expression "iVar8 = FUN_00021940("*default*",0)" identifier = (call_expression "FUN_00021940("*default*",0)" identifier (argument_list "("*default*",0)" ( (string_literal ""*default*"" " string_content ") , number_literal )))) ;) (expression_statement "*(uint *)(iVar8 + 0x1c) = auStack_20[0];" (assignment_expression "*(uint *)(iVar8 + 0x1c) = auStack_20[0]" (pointer_expression "*(uint *)(iVar8 + 0x1c)" * (cast_expression "(uint *)(iVar8 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) = (subscript_expression "auStack_20[0]" identifier [ number_literal ])) ;) (expression_statement "param_3 = auStack_20[0];" (assignment_expression "param_3 = auStack_20[0]" identifier = (subscript_expression "auStack_20[0]" identifier [ number_literal ])) ;) }) (else_clause "else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }" else (if_statement "if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }" if (parenthesized_expression "(auStack_20[0] != param_3)" ( (binary_expression "auStack_20[0] != param_3" (subscript_expression "auStack_20[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }" { (expression_statement "FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);" (call_expression "FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x1c),param_3)" ( (pointer_expression "*(undefined4 *)(param_2 + 0x1c)" * (cast_expression "(undefined4 *)(param_2 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "local_54 = (int *)*local_54;" (assignment_expression "local_54 = (int *)*local_54" identifier = (cast_expression "(int *)*local_54" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_54" * identifier))) ;) (expression_statement "param_3 = auStack_20[0];" (assignment_expression "param_3 = auStack_20[0]" identifier = (subscript_expression "auStack_20[0]" identifier [ number_literal ])) ;) (if_statement "if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }" if (parenthesized_expression "((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5))))" ( (binary_expression "(*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))" (parenthesized_expression "(*(int *)(param_2 + 0x50) != 3)" ( (binary_expression "*(int *)(param_2 + 0x50) != 3" (pointer_expression "*(int *)(param_2 + 0x50)" * (cast_expression "(int *)(param_2 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))" ( (parenthesized_expression "(*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5))" ( (binary_expression "*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)" (binary_expression "*(int *)(param_2 + 0x50) != 2" (pointer_expression "*(int *)(param_2 + 0x50)" * (cast_expression "(int *)(param_2 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) )))) != number_literal) || (parenthesized_expression "(*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)" ( (binary_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" * (cast_expression "(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_000bbe30 + 4) + 4)" ( (binary_expression "*(int *)(DAT_000bbe30 + 4) + 4" (pointer_expression "*(int *)(DAT_000bbe30 + 4)" * (cast_expression "(int *)(DAT_000bbe30 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000bbe30 + 4)" ( (binary_expression "DAT_000bbe30 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) ))) )) (compound_statement "{\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }" { (expression_statement "puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);" (assignment_expression "puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14)" identifier = (cast_expression "(uint *)(*(int *)(param_2 + 0x1c) + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x1c) + 0x14)" ( (binary_expression "*(int *)(param_2 + 0x1c) + 0x14" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 | 1;" (assignment_expression "*puVar1 = *puVar1 | 1" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 1" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) })) })))) })) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:" case number_literal :) (case_statement "case 10:" case number_literal :) (case_statement "case 0xb:" case number_literal :) (case_statement "case 0xe:\n    goto code_r0x00021b1c;" case number_literal : (goto_statement "goto code_r0x00021b1c;" goto statement_identifier ;)) (case_statement "case 4:\n    goto code_r0x00021d85;" case number_literal : (goto_statement "goto code_r0x00021d85;" goto statement_identifier ;)) (case_statement "case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;" case number_literal : (if_statement "if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }" { (expression_statement "iVar8 = *(int *)(local_54[2] + 0x94);" (assignment_expression "iVar8 = *(int *)(local_54[2] + 0x94)" identifier = (pointer_expression "*(int *)(local_54[2] + 0x94)" * (cast_expression "(int *)(local_54[2] + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54[2] + 0x94)" ( (binary_expression "local_54[2] + 0x94" (subscript_expression "local_54[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);" (assignment_expression "iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20)" identifier = (call_expression "(**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20)" (parenthesized_expression "(**(code **)(*(int *)(iVar8 + 4) + 0x164))" ( (pointer_expression "**(code **)(*(int *)(iVar8 + 4) + 0x164)" * (pointer_expression "*(code **)(*(int *)(iVar8 + 4) + 0x164)" * (cast_expression "(code **)(*(int *)(iVar8 + 4) + 0x164)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar8 + 4) + 0x164)" ( (binary_expression "*(int *)(iVar8 + 4) + 0x164" (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20)" ( identifier , (subscript_expression "local_54[2]" identifier [ number_literal ]) , identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }" { (expression_statement "uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: can\'t relax section: %E\n",5)" identifier (argument_list "(0,"%F%P: can\'t relax section: %E\n",5)" ( number_literal , (string_literal ""%F%P: can\'t relax section: %E\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031730(uVar9);" (call_expression "FUN_00031730(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })) (if_statement "if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }" if (parenthesized_expression "(auStack_20[0] != 0)" ( (binary_expression "auStack_20[0] != 0" (subscript_expression "auStack_20[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        *param_4 = 1;\n      }" { (expression_statement "*param_4 = 1;" (assignment_expression "*param_4 = 1" (pointer_expression "*param_4" * identifier) = number_literal) ;) })) })) (expression_statement "iVar8 = *(int *)(param_2 + 0x1c);" (assignment_expression "iVar8 = *(int *)(param_2 + 0x1c)" identifier = (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(*param_1 + 8);" (assignment_expression "iVar6 = *(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" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }" if (parenthesized_expression "((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200)" ( (binary_expression "(*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200" (parenthesized_expression "(*(ushort *)(iVar6 + 0x18) & 0x380)" ( (binary_expression "*(ushort *)(iVar6 + 0x18) & 0x380" (pointer_expression "*(ushort *)(iVar6 + 0x18)" * (cast_expression "(ushort *)(iVar6 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }" { (expression_statement "*(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);" (assignment_expression "*(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c)" (pointer_expression "*(int *)(iVar6 + 0x38)" * (cast_expression "(int *)(iVar6 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x38)" ( (binary_expression "iVar6 + 0x38" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c)" (pointer_expression "*(int *)(iVar6 + 0x1c)" * (cast_expression "(int *)(iVar6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))))) ;) }) (else_clause "else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }" else (if_statement "if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }" if (parenthesized_expression "(((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0))" ( (binary_expression "((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)" (parenthesized_expression "((*(byte *)(iVar6 + 0x15) & 0x80) == 0)" ( (binary_expression "(*(byte *)(iVar6 + 0x15) & 0x80) == 0" (parenthesized_expression "(*(byte *)(iVar6 + 0x15) & 0x80)" ( (binary_expression "*(byte *)(iVar6 + 0x15) & 0x80" (pointer_expression "*(byte *)(iVar6 + 0x15)" * (cast_expression "(byte *)(iVar6 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x15)" ( (binary_expression "iVar6 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(byte *)(param_2 + 0x54) & 8) == 0)" ( (binary_expression "(*(byte *)(param_2 + 0x54) & 8) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x54) & 8)" ( (binary_expression "*(byte *)(param_2 + 0x54) & 8" (pointer_expression "*(byte *)(param_2 + 0x54)" * (cast_expression "(byte *)(param_2 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }" { (expression_statement "uVar7 = *(uint *)(param_2 + 0x40);" (assignment_expression "uVar7 = *(uint *)(param_2 + 0x40)" identifier = (pointer_expression "*(uint *)(param_2 + 0x40)" * (cast_expression "(uint *)(param_2 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;) (if_statement "if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }" if (parenthesized_expression "(uVar7 == 0xffffffff)" ( (binary_expression "uVar7 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }" { (expression_statement "uVar7 = *(uint *)(iVar6 + 0x40);" (assignment_expression "uVar7 = *(uint *)(iVar6 + 0x40)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x40)" * (cast_expression "(uint *)(iVar6 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x40)" ( (binary_expression "iVar6 + 0x40" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }" else (compound_statement "{\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }" { (expression_statement "*(uint *)(iVar6 + 0x40) = uVar7;" (assignment_expression "*(uint *)(iVar6 + 0x40) = uVar7" (pointer_expression "*(uint *)(iVar6 + 0x40)" * (cast_expression "(uint *)(iVar6 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x40)" ( (binary_expression "iVar6 + 0x40" identifier + number_literal) )))) = identifier) ;) }))) (if_statement "if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }" if (parenthesized_expression "(*(uint *)(iVar8 + 0x40) < uVar7)" ( (binary_expression "*(uint *)(iVar8 + 0x40) < uVar7" (pointer_expression "*(uint *)(iVar8 + 0x40)" * (cast_expression "(uint *)(iVar8 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x40)" ( (binary_expression "iVar8 + 0x40" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }" { (expression_statement "*(uint *)(iVar8 + 0x40) = uVar7;" (assignment_expression "*(uint *)(iVar8 + 0x40) = uVar7" (pointer_expression "*(uint *)(iVar8 + 0x40)" * (cast_expression "(uint *)(iVar8 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x40)" ( (binary_expression "iVar8 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = *(uint *)(iVar6 + 0x40);" (assignment_expression "uVar7 = *(uint *)(iVar6 + 0x40)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x40)" * (cast_expression "(uint *)(iVar6 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x40)" ( (binary_expression "iVar6 + 0x40" identifier + number_literal) ))))) ;) })) (expression_statement "iVar16 = 1 << ((byte)uVar7 & 0x1f);" (assignment_expression "iVar16 = 1 << ((byte)uVar7 & 0x1f)" identifier = (binary_expression "1 << ((byte)uVar7 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar7 & 0x1f)" ( (binary_expression "(byte)uVar7 & 0x1f" (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar7 = (param_3 - 1) + iVar16 & -iVar16;" (assignment_expression "uVar7 = (param_3 - 1) + iVar16 & -iVar16" identifier = (binary_expression "(param_3 - 1) + iVar16 & -iVar16" (binary_expression "(param_3 - 1) + iVar16" (parenthesized_expression "(param_3 - 1)" ( (binary_expression "param_3 - 1" identifier - number_literal) )) + identifier) & (unary_expression "-iVar16" - identifier))) ;) (if_statement "if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }" if (parenthesized_expression "(uVar7 != param_3)" ( (binary_expression "uVar7 != param_3" identifier != identifier) )) (compound_statement "{\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }" { (expression_statement "FUN_00021400(iVar8,param_3);" (call_expression "FUN_00021400(iVar8,param_3)" identifier (argument_list "(iVar8,param_3)" ( identifier , identifier ))) ;) (expression_statement "param_3 = uVar7;" (assignment_expression "param_3 = uVar7" identifier = identifier) ;) })) (expression_statement "uVar9 = DAT_000bb94c;" (assignment_expression "uVar9 = DAT_000bb94c" identifier = identifier) ;) (expression_statement "iVar16 = *(int *)(iVar8 + 0x1c);" (assignment_expression "iVar16 = *(int *)(iVar8 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar6 + 0x38) = param_3 - iVar16;" (assignment_expression "*(uint *)(iVar6 + 0x38) = param_3 - iVar16" (pointer_expression "*(uint *)(iVar6 + 0x38)" * (cast_expression "(uint *)(iVar6 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x38)" ( (binary_expression "iVar6 + 0x38" identifier + number_literal) )))) = (binary_expression "param_3 - iVar16" identifier - identifier)) ;) (expression_statement "param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));" (assignment_expression "param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f))" identifier = (binary_expression "param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f))" identifier + (parenthesized_expression "(*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f))" ( (binary_expression "*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f)" (pointer_expression "*(uint *)(iVar6 + 0x24)" * (cast_expression "(uint *)(iVar6 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x24)" ( (binary_expression "iVar6 + 0x24" identifier + number_literal) )))) >> (parenthesized_expression "((byte)uVar9 & 0x1f)" ( (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }" if (parenthesized_expression "((*(byte *)(iVar8 + 0x15) & 8) == 0)" ( (binary_expression "(*(byte *)(iVar8 + 0x15) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x15) & 8)" ( (binary_expression "*(byte *)(iVar8 + 0x15) & 8" (pointer_expression "*(byte *)(iVar8 + 0x15)" * (cast_expression "(byte *)(iVar8 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x15)" ( (binary_expression "iVar8 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }" { (expression_statement "*(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);" (assignment_expression "*(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f)" (pointer_expression "*(uint *)(iVar8 + 0x24)" * (cast_expression "(uint *)(iVar8 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24)" ( (binary_expression "iVar8 + 0x24" identifier + number_literal) )))) = (binary_expression "param_3 - iVar16 << ((byte)uVar9 & 0x1f)" (binary_expression "param_3 - iVar16" identifier - identifier) << (parenthesized_expression "((byte)uVar9 & 0x1f)" ( (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) }) (else_clause "else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }" else (compound_statement "{\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }" { (expression_statement "*(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);" (assignment_expression "*(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c)" (pointer_expression "*(uint *)(iVar6 + 0x38)" * (cast_expression "(uint *)(iVar6 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x38)" ( (binary_expression "iVar6 + 0x38" identifier + number_literal) )))) = (binary_expression "param_3 - *(int *)(iVar8 + 0x1c)" identifier - (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))))) ;) }))))) (break_statement "break;" break ;)) (case_statement "case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;" case number_literal : (expression_statement "uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);" (assignment_expression "uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x1c)" * (cast_expression "(undefined4 *)(param_2 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (goto_statement "goto code_r0x00021b1c;" goto statement_identifier ;)) (case_statement "case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;" case number_literal : (expression_statement "local_54[4] = *(int *)(param_2 + 0x1c);" (assignment_expression "local_54[4] = *(int *)(param_2 + 0x1c)" (subscript_expression "local_54[4]" identifier [ number_literal ]) = (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    \n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;" case number_literal : (expression_statement "local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);" (assignment_expression "local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (subscript_expression "local_54[6]" identifier [ number_literal ]) = (binary_expression "param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" identifier - (pointer_expression "*(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" * (cast_expression "(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x1c) + 0x1c)" ( (binary_expression "*(int *)(param_2 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "local_54[5] = *(int *)(param_2 + 0x1c);" (assignment_expression "local_54[5] = *(int *)(param_2 + 0x1c)" (subscript_expression "local_54[5]" identifier [ number_literal ]) = (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "FUN_0002f480(local_54[3],puVar5,&param_3);" (call_expression "FUN_0002f480(local_54[3],puVar5,&param_3)" identifier (argument_list "(local_54[3],puVar5,&param_3)" ( (subscript_expression "local_54[3]" identifier [ number_literal ]) , identifier , (pointer_expression "&param_3" & identifier) ))) ;) (if_statement "if (4 < local_54[2] - 0x11aU) {\n                    \n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }" if (parenthesized_expression "(4 < local_54[2] - 0x11aU)" ( (binary_expression "4 < local_54[2] - 0x11aU" number_literal < (binary_expression "local_54[2] - 0x11aU" (subscript_expression "local_54[2]" identifier [ number_literal ]) - number_literal)) )) (compound_statement "{\n                    \n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }" { (expression_statement "FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);" (call_expression "FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX)" identifier (argument_list "("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal , (string_literal ""lang_size_sections_1"" " string_content ") , identifier ))) ;) })) (expression_statement "bVar13 = (byte)DAT_000bb94c;" (assignment_expression "bVar13 = (byte)DAT_000bb94c" identifier = (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar7 = 1 << (bVar13 & 0x1f);" (assignment_expression "uVar7 = 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 (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }" if (parenthesized_expression "(uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4))" ( (binary_expression "uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" identifier < (pointer_expression "*(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" * (cast_expression "(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" ( (binary_expression "&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4" (pointer_expression "&UNK_0004ed1c" & identifier) + (binary_expression "(local_54[2] - 0x11aU) * 4" (parenthesized_expression "(local_54[2] - 0x11aU)" ( (binary_expression "local_54[2] - 0x11aU" (subscript_expression "local_54[2]" identifier [ number_literal ]) - number_literal) )) * number_literal)) ))))) )) (compound_statement "{\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }" { (expression_statement "uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);" (assignment_expression "uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" identifier = (pointer_expression "*(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" * (cast_expression "(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" ( (binary_expression "&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4" (pointer_expression "&UNK_0004ed1c" & identifier) + (binary_expression "(local_54[2] - 0x11aU) * 4" (parenthesized_expression "(local_54[2] - 0x11aU)" ( (binary_expression "local_54[2] - 0x11aU" (subscript_expression "local_54[2]" identifier [ number_literal ]) - number_literal) )) * number_literal)) ))))) ;) })) (expression_statement "iVar8 = *(int *)(param_2 + 0x1c);" (assignment_expression "iVar8 = *(int *)(param_2 + 0x1c)" identifier = (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;" (assignment_expression "param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3" identifier = (binary_expression "(uVar7 >> (bVar13 & 0x1f)) + param_3" (parenthesized_expression "(uVar7 >> (bVar13 & 0x1f))" ( (binary_expression "uVar7 >> (bVar13 & 0x1f)" identifier >> (parenthesized_expression "(bVar13 & 0x1f)" ( (binary_expression "bVar13 & 0x1f" identifier & number_literal) ))) )) + identifier)) ;) (if_statement "if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }" if (parenthesized_expression "((*(byte *)(iVar8 + 0x15) & 8) == 0)" ( (binary_expression "(*(byte *)(iVar8 + 0x15) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x15) & 8)" ( (binary_expression "*(byte *)(iVar8 + 0x15) & 8" (pointer_expression "*(byte *)(iVar8 + 0x15)" * (cast_expression "(byte *)(iVar8 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x15)" ( (binary_expression "iVar8 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }" { (expression_statement "*(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);" (assignment_expression "*(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f)" (pointer_expression "*(uint *)(iVar8 + 0x24)" * (cast_expression "(uint *)(iVar8 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24)" ( (binary_expression "iVar8 + 0x24" identifier + number_literal) )))) = (binary_expression "param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f)" (binary_expression "param_3 - *(int *)(iVar8 + 0x1c)" identifier - (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) << (parenthesized_expression "(bVar13 & 0x1f)" ( (binary_expression "bVar13 & 0x1f" identifier & number_literal) )))) ;) })) (break_statement "break;" break ;)) (case_statement "case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;" case number_literal : (expression_statement "local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);" (assignment_expression "local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (subscript_expression "local_54[9]" identifier [ number_literal ]) = (binary_expression "param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" identifier - (pointer_expression "*(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" * (cast_expression "(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x1c) + 0x1c)" ( (binary_expression "*(int *)(param_2 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "local_54[8] = *(int *)(param_2 + 0x1c);" (assignment_expression "local_54[8] = *(int *)(param_2 + 0x1c)" (subscript_expression "local_54[8]" identifier [ number_literal ]) = (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = bfd_get_reloc_size(local_54[3]);" (assignment_expression "iVar6 = bfd_get_reloc_size(local_54[3])" identifier = (call_expression "bfd_get_reloc_size(local_54[3])" identifier (argument_list "(local_54[3])" ( (subscript_expression "local_54[3]" identifier [ number_literal ]) )))) ;) (expression_statement "iVar8 = *(int *)(param_2 + 0x1c);" (assignment_expression "iVar8 = *(int *)(param_2 + 0x1c)" identifier = (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;" (assignment_expression "param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3" identifier = (binary_expression "(iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3" (parenthesized_expression "(iVar6 >> ((byte)DAT_000bb94c & 0x1f))" ( (binary_expression "iVar6 >> ((byte)DAT_000bb94c & 0x1f)" identifier >> (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )) + identifier)) ;) (if_statement "if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }" if (parenthesized_expression "((*(byte *)(iVar8 + 0x15) & 8) == 0)" ( (binary_expression "(*(byte *)(iVar8 + 0x15) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x15) & 8)" ( (binary_expression "*(byte *)(iVar8 + 0x15) & 8" (pointer_expression "*(byte *)(iVar8 + 0x15)" * (cast_expression "(byte *)(iVar8 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x15)" ( (binary_expression "iVar8 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }" { (expression_statement "*(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);" (assignment_expression "*(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(iVar8 + 0x24)" * (cast_expression "(uint *)(iVar8 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24)" ( (binary_expression "iVar8 + 0x24" identifier + number_literal) )))) = (binary_expression "param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f)" (binary_expression "param_3 - *(int *)(iVar8 + 0x1c)" identifier - (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) << (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" ( (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (break_statement "break;" break ;)) (case_statement "case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;" case number_literal : (expression_statement "local_54[3] = 0;" (assignment_expression "local_54[3] = 0" (subscript_expression "local_54[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);" (assignment_expression "local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (subscript_expression "local_54[2]" identifier [ number_literal ]) = (binary_expression "param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" identifier - (pointer_expression "*(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" * (cast_expression "(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x1c) + 0x1c)" ( (binary_expression "*(int *)(param_2 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) + number_literal) )))))) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n    goto code_r0x00021d85;" case number_literal : (goto_statement "goto code_r0x00021d85;" goto statement_identifier ;)) (case_statement "case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;" case number_literal : (labeled_statement "code_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);" statement_identifier : (expression_statement "param_3 = FUN_00021aa0(param_3,param_4,param_5);" (assignment_expression "param_3 = FUN_00021aa0(param_3,param_4,param_5)" identifier = (call_expression "FUN_00021aa0(param_3,param_4,param_5)" identifier (argument_list "(param_3,param_4,param_5)" ( identifier , identifier , identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);" default : (expression_statement "FUN_00031780("../../ld/ldlang.c",0x15a7);" (call_expression "FUN_00031780("../../ld/ldlang.c",0x15a7)" identifier (argument_list "("../../ld/ldlang.c",0x15a7)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;)) })) (labeled_statement "LAB_00021b28:\n  piVar18 = (int *)*local_54;" statement_identifier : (expression_statement "piVar18 = (int *)*local_54;" (assignment_expression "piVar18 = (int *)*local_54" identifier = (cast_expression "(int *)*local_54" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_54" * identifier))) ;)) (expression_statement "param_1 = local_54;" (assignment_expression "param_1 = local_54" identifier = identifier) ;) (goto_statement "goto joined_r0x00021ad5;" goto statement_identifier ;) (labeled_statement "code_r0x00021b1c:\n  goto LAB_00021b28;" statement_identifier : (goto_statement "goto LAB_00021b28;" goto statement_identifier ;)) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * 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 (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) && (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 (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (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) )))) & LIT)) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) }))) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) - LIT) < LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (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) )))) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (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 *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & IDENT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & IDENT) )) == LIT) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (goto_statement goto statement_identifier ;)) })) })))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , (string_literal " string_content ") )))) , (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )))) )) ))) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) })) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - IDENT) & (binary_expression (binary_expression IDENT + LIT) + IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) ))) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (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 ") , (string_literal " string_content escape_sequence ") , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) })) (expression_statement (assignment_expression (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) )))) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (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 == (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) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) }))) }) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (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 (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )) + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) + (subscript_expression IDENT [ LIT ])) & (unary_expression - (subscript_expression IDENT [ LIT ]))) )) - IDENT) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_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 = (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) ))))) ;) (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) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - IDENT) & (binary_expression (binary_expression IDENT + LIT) + IDENT))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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) )) (goto_statement goto statement_identifier ;)) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (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 (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )) + IDENT) <= IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (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 escape_sequence ") , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )) + IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - IDENT) & (binary_expression (binary_expression IDENT + LIT) + IDENT))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression (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) )))) | LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (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) )))) | LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (labeled_statement statement_identifier : (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 IDENT & LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (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) )))) | LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (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 (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 (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) ))))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) )))) <= IDENT) )) (goto_statement goto statement_identifier ;)))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) }))) }))) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) && (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) )) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) ))) )) (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) )))) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression (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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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) )))) ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) != LIT) || (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) )) != LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) })) })) }))) })) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (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) )) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) != (char_literal ' character ')) || (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) [ LIT ]) != (char_literal ' escape_sequence ')) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (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) )))) | LIT)) ;) })) (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) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_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 = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (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) )))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) || (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 (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 (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) })) })))) })) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (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) ))))) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_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 (pointer_expression * IDENT) + LIT) ))))) ;) (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) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (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) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (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) )) == LIT) )) && (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) )) == LIT) ))) )) (compound_statement { (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 = (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + IDENT) & (unary_expression - IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , 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) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (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) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT - IDENT) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }))))) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (subscript_expression IDENT [ LIT ]) - LIT)) )) (compound_statement { (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 < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) )) * LIT)) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) )) * 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 = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )) + IDENT)) ;) (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) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 ( (subscript_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 = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (break_statement break ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;)) (break_statement break ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (goto_statement goto statement_identifier ;)) })))
(function_definition "uint __regparm2 FUN_00021aa0(int *param_1,int param_2,uint param_3,undefined4 *param_4,int param_5)\n\n{\n  uint *puVar1;\n  undefined *puVar2;\n  undefined4 *puVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  undefined4 uVar11;\n  undefined4 *puVar12;\n  byte bVar13;\n  undefined4 extraout_ECX;\n  uint uVar14;\n  undefined4 *puVar15;\n  undefined **extraout_ECX_00;\n  int iVar16;\n  undefined *puVar17;\n  int *piVar18;\n  uint uVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  undefined **ppuVar25;\n  int *local_54;\n  uint local_4c;\n  int iStack_3c;\n  uint uStack_34;\n  uint auStack_20 [3];\n  undefined4 uStack_14;\n  \n  bVar24 = 0;\n  uStack_14 = 0x21aa9;\n  puVar5 = PTR__bfd_std_section_000bafc4 + 0x150;\n  piVar18 = (int *)*param_1;\njoined_r0x00021ad5:\n  local_54 = piVar18;\n  if (local_54 == (int *)0x0) {\n    return param_3;\n  }\n  local_4c = local_54[1];\n  switch(local_4c) {\n  case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;\n  case 2:\n  case 3:\n  case 10:\n  case 0xb:\n  case 0xe:\n    goto code_r0x00021b1c;\n  case 4:\n    goto code_r0x00021d85;\n  case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;\n  case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;\n  case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;\n  case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    \n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;\n  case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;\n  case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;\n  case 0xd:\n    goto code_r0x00021d85;\n  case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;\n  default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);\n  }\nLAB_00021b28:\n  piVar18 = (int *)*local_54;\n  param_1 = local_54;\n  goto joined_r0x00021ad5;\ncode_r0x00021b1c:\n  goto LAB_00021b28;\n}" (type_identifier "uint") (ERROR "__regparm2" (identifier "__regparm2")) (function_declarator "FUN_00021aa0(int *param_1,int param_2,uint param_3,undefined4 *param_4,int param_5)" (identifier "FUN_00021aa0") (parameter_list "(int *param_1,int param_2,uint param_3,undefined4 *param_4,int param_5)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) () ")"))) (compound_statement "{\n  uint *puVar1;\n  undefined *puVar2;\n  undefined4 *puVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  undefined4 uVar11;\n  undefined4 *puVar12;\n  byte bVar13;\n  undefined4 extraout_ECX;\n  uint uVar14;\n  undefined4 *puVar15;\n  undefined **extraout_ECX_00;\n  int iVar16;\n  undefined *puVar17;\n  int *piVar18;\n  uint uVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  undefined **ppuVar25;\n  int *local_54;\n  uint local_4c;\n  int iStack_3c;\n  uint uStack_34;\n  uint auStack_20 [3];\n  undefined4 uStack_14;\n  \n  bVar24 = 0;\n  uStack_14 = 0x21aa9;\n  puVar5 = PTR__bfd_std_section_000bafc4 + 0x150;\n  piVar18 = (int *)*param_1;\njoined_r0x00021ad5:\n  local_54 = piVar18;\n  if (local_54 == (int *)0x0) {\n    return param_3;\n  }\n  local_4c = local_54[1];\n  switch(local_4c) {\n  case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;\n  case 2:\n  case 3:\n  case 10:\n  case 0xb:\n  case 0xe:\n    goto code_r0x00021b1c;\n  case 4:\n    goto code_r0x00021d85;\n  case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;\n  case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;\n  case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;\n  case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    \n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;\n  case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;\n  case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;\n  case 0xd:\n    goto code_r0x00021d85;\n  case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;\n  default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);\n  }\nLAB_00021b28:\n  piVar18 = (int *)*local_54;\n  param_1 = local_54;\n  goto joined_r0x00021ad5;\ncode_r0x00021b1c:\n  goto LAB_00021b28;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "byte bVar13;" (type_identifier "byte") (identifier "bVar13") (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "undefined4 *puVar15;" (type_identifier "undefined4") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined **extraout_ECX_00;" (type_identifier "undefined") (pointer_declarator "**extraout_ECX_00" (* "*") (pointer_declarator "*extraout_ECX_00" (* "*") (identifier "extraout_ECX_00"))) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "undefined *puVar17;" (type_identifier "undefined") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "int *piVar18;" (primitive_type "int") (pointer_declarator "*piVar18" (* "*") (identifier "piVar18")) (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "byte *pbVar21;" (type_identifier "byte") (pointer_declarator "*pbVar21" (* "*") (identifier "pbVar21")) (; ";")) (declaration "bool bVar22;" (primitive_type "bool") (identifier "bVar22") (; ";")) (declaration "bool bVar23;" (primitive_type "bool") (identifier "bVar23") (; ";")) (declaration "byte bVar24;" (type_identifier "byte") (identifier "bVar24") (; ";")) (declaration "undefined **ppuVar25;" (type_identifier "undefined") (pointer_declarator "**ppuVar25" (* "*") (pointer_declarator "*ppuVar25" (* "*") (identifier "ppuVar25"))) (; ";")) (declaration "int *local_54;" (primitive_type "int") (pointer_declarator "*local_54" (* "*") (identifier "local_54")) (; ";")) (declaration "uint local_4c;" (type_identifier "uint") (identifier "local_4c") (; ";")) (declaration "int iStack_3c;" (primitive_type "int") (identifier "iStack_3c") (; ";")) (declaration "uint uStack_34;" (type_identifier "uint") (identifier "uStack_34") (; ";")) (declaration "uint auStack_20 [3];" (type_identifier "uint") (array_declarator "auStack_20 [3]" (identifier "auStack_20") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" (identifier "bVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x21aa9;" (assignment_expression "uStack_14 = 0x21aa9" (identifier "uStack_14") (= "=") (number_literal "0x21aa9")) (; ";")) (expression_statement "puVar5 = PTR__bfd_std_section_000bafc4 + 0x150;" (assignment_expression "puVar5 = PTR__bfd_std_section_000bafc4 + 0x150" (identifier "puVar5") (= "=") (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" (identifier "PTR__bfd_std_section_000bafc4") (+ "+") (number_literal "0x150"))) (; ";")) (expression_statement "piVar18 = (int *)*param_1;" (assignment_expression "piVar18 = (int *)*param_1" (identifier "piVar18") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (labeled_statement "joined_r0x00021ad5:\n  local_54 = piVar18;" (statement_identifier "joined_r0x00021ad5") (: ":") (expression_statement "local_54 = piVar18;" (assignment_expression "local_54 = piVar18" (identifier "local_54") (= "=") (identifier "piVar18")) (; ";"))) (if_statement "if (local_54 == (int *)0x0) {\n    return param_3;\n  }" (if "if") (parenthesized_expression "(local_54 == (int *)0x0)" (( "(") (binary_expression "local_54 == (int *)0x0" (identifier "local_54") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return param_3;\n  }" ({ "{") (return_statement "return param_3;" (return "return") (identifier "param_3") (; ";")) (} "}"))) (expression_statement "local_4c = local_54[1];" (assignment_expression "local_4c = local_54[1]" (identifier "local_4c") (= "=") (subscript_expression "local_54[1]" (identifier "local_54") ([ "[") (number_literal "1") (] "]"))) (; ";")) (switch_statement "switch(local_4c) {\n  case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;\n  case 2:\n  case 3:\n  case 10:\n  case 0xb:\n  case 0xe:\n    goto code_r0x00021b1c;\n  case 4:\n    goto code_r0x00021d85;\n  case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;\n  case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;\n  case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;\n  case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    \n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;\n  case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;\n  case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;\n  case 0xd:\n    goto code_r0x00021d85;\n  case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;\n  default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);\n  }" (switch "switch") (parenthesized_expression "(local_4c)" (( "(") (identifier "local_4c") () ")")) (compound_statement "{\n  case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;\n  case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;\n  case 2:\n  case 3:\n  case 10:\n  case 0xb:\n  case 0xe:\n    goto code_r0x00021b1c;\n  case 4:\n    goto code_r0x00021d85;\n  case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;\n  case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;\n  case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;\n  case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    \n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;\n  case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;\n  case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;\n  case 0xd:\n    goto code_r0x00021d85;\n  case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;\n  default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);\n  }" ({ "{") (case_statement "case 0:\n    if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    break;" (case "case") (number_literal "0") (: ":") (if_statement "if (local_54[0x12] != -1) {\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(local_54[0x12] != -1)" (( "(") (binary_expression "local_54[0x12] != -1" (subscript_expression "local_54[0x12]" (identifier "local_54") ([ "[") (number_literal "0x12") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      iVar8 = local_54[0xb];\n      if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }\n      uVar7 = param_3;\n      puVar2 = PTR__bfd_std_section_000bafc4;\n      puVar15 = (undefined4 *)local_54[7];\n      if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "iVar8 = local_54[0xb];" (assignment_expression "iVar8 = local_54[0xb]" (identifier "iVar8") (= "=") (subscript_expression "local_54[0xb]" (identifier "local_54") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (if_statement "if (iVar8 == 0) {\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }\n      else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }\n      }" ({ "{") (if_statement "if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }" (if "if") (parenthesized_expression "((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2))" (( "(") (binary_expression "(((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)" (parenthesized_expression "(((byte)DAT_000bbe00 & 3) == 2)" (( "(") (binary_expression "((byte)DAT_000bbe00 & 3) == 2" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" (( "(") (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bbe00")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)" (( "(") (binary_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2" (pointer_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" (* "*") (cast_expression "(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_000bbe30 + 4) + 4)" (( "(") (binary_expression "*(int *)(DAT_000bbe30 + 4) + 4" (pointer_expression "*(int *)(DAT_000bbe30 + 4)" (* "*") (cast_expression "(int *)(DAT_000bbe30 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000bbe30 + 4)" (( "(") (binary_expression "DAT_000bbe30 + 4" (identifier "DAT_000bbe30") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n          iVar8 = FUN_0002f390(0);\n          local_54[0xb] = iVar8;\n          if (iVar8 != 0) goto code_r0x00021dcc;\n        }" ({ "{") (expression_statement "iVar8 = FUN_0002f390(0);" (assignment_expression "iVar8 = FUN_0002f390(0)" (identifier "iVar8") (= "=") (call_expression "FUN_0002f390(0)" (identifier "FUN_0002f390") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "local_54[0xb] = iVar8;" (assignment_expression "local_54[0xb] = iVar8" (subscript_expression "local_54[0xb]" (identifier "local_54") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (if_statement "if (iVar8 != 0) goto code_r0x00021dcc;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00021dcc;" (goto "goto") (statement_identifier "code_r0x00021dcc") (; ";"))) (} "}"))) (} "}")) (else_clause "else {\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }" (else "else") (compound_statement "{\ncode_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;\n        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);\n        if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }\n      }" ({ "{") (labeled_statement "code_r0x00021dcc:\n        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;" (statement_identifier "code_r0x00021dcc") (: ":") (expression_statement "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;" (assignment_expression "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe" (pointer_expression "*(byte *)(local_54 + 0x15)" (* "*") (cast_expression "(byte *)(local_54 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x15)" (( "(") (binary_expression "local_54 + 0x15" (identifier "local_54") (+ "+") (number_literal "0x15")) () ")")))) (= "=") (binary_expression "*(byte *)(local_54 + 0x15) & 0xfe" (pointer_expression "*(byte *)(local_54 + 0x15)" (* "*") (cast_expression "(byte *)(local_54 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x15)" (( "(") (binary_expression "local_54 + 0x15" (identifier "local_54") (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "0xfe"))) (; ";"))) (expression_statement "FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);" (call_expression "FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3)" (identifier "FUN_0002f480") (argument_list "(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3)" (( "(") (identifier "iVar8") (, ",") (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" (identifier "PTR__bfd_std_section_000bafc4") (+ "+") (number_literal "0x150")) (, ",") (pointer_expression "&param_3" (& "&") (identifier "param_3")) () ")"))) (; ";")) (if_statement "if (DAT_000bbfa0 == 0) {\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }\n        else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }" (if "if") (parenthesized_expression "(DAT_000bbfa0 == 0)" (( "(") (binary_expression "DAT_000bbfa0 == 0" (identifier "DAT_000bbfa0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }\n        }" ({ "{") (if_statement "if (DAT_000bbf80 != 1) {\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }" (if "if") (parenthesized_expression "(DAT_000bbf80 != 1)" (( "(") (binary_expression "DAT_000bbf80 != 1" (identifier "DAT_000bbf80") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n            iVar8 = local_54[6];\n            iVar6 = local_54[0xb];\n            uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);\n            FUN_00031730(uVar9,iVar6,iVar8);\n          }" ({ "{") (expression_statement "iVar8 = local_54[6];" (assignment_expression "iVar8 = local_54[6]" (identifier "iVar8") (= "=") (subscript_expression "local_54[6]" (identifier "local_54") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar6 = local_54[0xb];" (assignment_expression "iVar6 = local_54[0xb]" (identifier "iVar6") (= "=") (subscript_expression "local_54[0xb]" (identifier "local_54") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5);" (assignment_expression "uVar9 = dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5)" (identifier "dcgettext") (argument_list "(0,\n                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"\n                              ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P:%pS: non constant or forward reference address expression for section %s\n"" (" """) (string_content "%F%P:%pS: non constant or forward reference address expression for section %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031730(uVar9,iVar6,iVar8);" (call_expression "FUN_00031730(uVar9,iVar6,iVar8)" (identifier "FUN_00031730") (argument_list "(uVar9,iVar6,iVar8)" (( "(") (identifier "uVar9") (, ",") (identifier "iVar6") (, ",") (identifier "iVar8") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }" (else "else") (compound_statement "{\n          param_3 = DAT_000bbf94;\n          if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }\n        }" ({ "{") (expression_statement "param_3 = DAT_000bbf94;" (assignment_expression "param_3 = DAT_000bbf94" (identifier "param_3") (= "=") (identifier "DAT_000bbf94")) (; ";")) (if_statement "if (DAT_000bbf9c != 0) {\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }" (if "if") (parenthesized_expression "(DAT_000bbf9c != 0)" (( "(") (binary_expression "DAT_000bbf9c != 0" (identifier "DAT_000bbf9c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);\n          }" ({ "{") (expression_statement "param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);" (assignment_expression "param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c)" (identifier "param_3") (= "=") (binary_expression "DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c)" (identifier "DAT_000bbf94") (+ "+") (pointer_expression "*(int *)(DAT_000bbf9c + 0x1c)" (* "*") (cast_expression "(int *)(DAT_000bbf9c + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000bbf9c + 0x1c)" (( "(") (binary_expression "DAT_000bbf9c + 0x1c" (identifier "DAT_000bbf9c") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (} "}"))) (} "}")))) (} "}")))) (expression_statement "uVar7 = param_3;" (assignment_expression "uVar7 = param_3" (identifier "uVar7") (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar2 = PTR__bfd_std_section_000bafc4;" (assignment_expression "puVar2 = PTR__bfd_std_section_000bafc4" (identifier "puVar2") (= "=") (identifier "PTR__bfd_std_section_000bafc4")) (; ";")) (expression_statement "puVar15 = (undefined4 *)local_54[7];" (assignment_expression "puVar15 = (undefined4 *)local_54[7]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)local_54[7]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_54[7]" (identifier "local_54") ([ "[") (number_literal "7") (] "]")))) (; ";")) (if_statement "if (puVar15 != (undefined4 *)0x0) {\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 != (undefined4 *)0x0" (identifier "puVar15") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }\n        else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0))" (( "(") (binary_expression "(*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&\n           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)" (parenthesized_expression "(*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2)" (( "(") (binary_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2" (binary_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U" (pointer_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" (* "*") (cast_expression "(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_000bbe30 + 4) + 4)" (( "(") (binary_expression "*(int *)(DAT_000bbe30 + 4) + 4" (pointer_expression "*(int *)(DAT_000bbe30 + 4)" (* "*") (cast_expression "(int *)(DAT_000bbe30 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000bbe30 + 4)" (( "(") (binary_expression "DAT_000bbe30 + 4" (identifier "DAT_000bbe30") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (- "-") (number_literal "2U")) (< "<") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)" (( "(") (comma_expression "uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0" (assignment_expression "uVar14 = puVar15[5]" (identifier "uVar14") (= "=") (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]"))) (, ",") (binary_expression "(uVar14 & 0x4000000) != 0" (parenthesized_expression "(uVar14 & 0x4000000)" (( "(") (binary_expression "uVar14 & 0x4000000" (identifier "uVar14") (& "&") (number_literal "0x4000000")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          piVar18 = (int *)local_54[2];\n          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }\n          iVar8 = piVar18[2];\n          uVar9 = *(undefined4 *)(iVar8 + 0x1c);\n          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n          puVar15[8] = uVar9;\n          puVar15[7] = uVar9;\n          if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }\n        }" ({ "{") (expression_statement "piVar18 = (int *)local_54[2];" (assignment_expression "piVar18 = (int *)local_54[2]" (identifier "piVar18") (= "=") (cast_expression "(int *)local_54[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_54[2]" (identifier "local_54") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }" (if "if") (parenthesized_expression "(((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5))" (( "(") (binary_expression "((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)" (parenthesized_expression "((piVar18 == (int *)0x0) || (*piVar18 != 0))" (( "(") (binary_expression "(piVar18 == (int *)0x0) || (*piVar18 != 0)" (parenthesized_expression "(piVar18 == (int *)0x0)" (( "(") (binary_expression "piVar18 == (int *)0x0" (identifier "piVar18") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*piVar18 != 0)" (( "(") (binary_expression "*piVar18 != 0" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(piVar18[1] != 5)" (( "(") (binary_expression "piVar18[1] != 5" (subscript_expression "piVar18[1]" (identifier "piVar18") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "5")) () ")"))) () ")")) (compound_statement "{\n            iVar8 = local_54[6];\n            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);\n            FUN_00031730(uVar9,iVar8);\n            puVar15 = (undefined4 *)local_54[7];\n            piVar18 = (int *)local_54[2];\n            uVar14 = puVar15[5];\n          }" ({ "{") (expression_statement "iVar8 = local_54[6];" (assignment_expression "iVar8 = local_54[6]" (identifier "iVar8") (= "=") (subscript_expression "local_54[6]" (identifier "local_54") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5)" (identifier "dcgettext") (argument_list "(0,"%X%P: internal error on COFF shared library section %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: internal error on COFF shared library section %s\n"" (" """) (string_content "%X%P: internal error on COFF shared library section %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031730(uVar9,iVar8);" (call_expression "FUN_00031730(uVar9,iVar8)" (identifier "FUN_00031730") (argument_list "(uVar9,iVar8)" (( "(") (identifier "uVar9") (, ",") (identifier "iVar8") () ")"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)local_54[7];" (assignment_expression "puVar15 = (undefined4 *)local_54[7]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)local_54[7]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_54[7]" (identifier "local_54") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "piVar18 = (int *)local_54[2];" (assignment_expression "piVar18 = (int *)local_54[2]" (identifier "piVar18") (= "=") (cast_expression "(int *)local_54[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_54[2]" (identifier "local_54") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "uVar14 = puVar15[5];" (assignment_expression "uVar14 = puVar15[5]" (identifier "uVar14") (= "=") (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]"))) (; ";")) (} "}"))) (expression_statement "iVar8 = piVar18[2];" (assignment_expression "iVar8 = piVar18[2]" (identifier "iVar8") (= "=") (subscript_expression "piVar18[2]" (identifier "piVar18") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar9 = *(undefined4 *)(iVar8 + 0x1c);" (assignment_expression "uVar9 = *(undefined4 *)(iVar8 + 0x1c)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;" (assignment_expression "*(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1" (pointer_expression "*(byte *)(puVar15 + 6)" (* "*") (cast_expression "(byte *)(puVar15 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 6)" (( "(") (binary_expression "puVar15 + 6" (identifier "puVar15") (+ "+") (number_literal "6")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar15 + 6) | 1" (pointer_expression "*(byte *)(puVar15 + 6)" (* "*") (cast_expression "(byte *)(puVar15 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 6)" (( "(") (binary_expression "puVar15 + 6" (identifier "puVar15") (+ "+") (number_literal "6")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (expression_statement "puVar15[8] = uVar9;" (assignment_expression "puVar15[8] = uVar9" (subscript_expression "puVar15[8]" (identifier "puVar15") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar15[7] = uVar9;" (assignment_expression "puVar15[7] = uVar9" (subscript_expression "puVar15[7]" (identifier "puVar15") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (if_statement "if ((uVar14 & 0x800) == 0) {\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }" (if "if") (parenthesized_expression "((uVar14 & 0x800) == 0)" (( "(") (binary_expression "(uVar14 & 0x800) == 0" (parenthesized_expression "(uVar14 & 0x800)" (( "(") (binary_expression "uVar14 & 0x800" (identifier "uVar14") (& "&") (number_literal "0x800")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);\n          }" ({ "{") (expression_statement "puVar15[9] = *(undefined4 *)(iVar8 + 0x24);" (assignment_expression "puVar15[9] = *(undefined4 *)(iVar8 + 0x24)" (subscript_expression "puVar15[9]" (identifier "puVar15") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(iVar8 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x24)" (( "(") (binary_expression "iVar8 + 0x24" (identifier "iVar8") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }" (else "else") (compound_statement "{\n          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }\n          FUN_00021aa0(uVar7,param_4,param_5);\n          bVar13 = *(byte *)(local_54 + 0x15);\n          *(byte *)(local_54 + 0x15) = bVar13 | 1;\n          puVar17 = (undefined *)local_54[7];\n          if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }\n          iVar8 = local_54[8];\n          if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }\n          if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }\n          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }\n        }" ({ "{") (if_statement "if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }\n          else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }" (if "if") (parenthesized_expression "(puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150))" (( "(") (binary_expression "puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)" (identifier "puVar15") (== "==") (cast_expression "(undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x150)" (( "(") (binary_expression "PTR__bfd_std_section_000bafc4 + 0x150" (identifier "PTR__bfd_std_section_000bafc4") (+ "+") (number_literal "0x150")) () ")")))) () ")")) (compound_statement "{\n            iStack_3c = 0;\n            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);\n            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }\n          }" ({ "{") (expression_statement "iStack_3c = 0;" (assignment_expression "iStack_3c = 0" (identifier "iStack_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);" (assignment_expression "uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c)" (identifier "uVar14") (= "=") (pointer_expression "*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c)" (* "*") (cast_expression "(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x16c)" (( "(") (binary_expression "PTR__bfd_std_section_000bafc4 + 0x16c" (identifier "PTR__bfd_std_section_000bafc4") (+ "+") (number_literal "0x16c")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }" (if "if") (parenthesized_expression "(*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0)" (( "(") (binary_expression "*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0" (pointer_expression "*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c)" (* "*") (cast_expression "(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__bfd_std_section_000bafc4 + 0x16c)" (( "(") (binary_expression "PTR__bfd_std_section_000bafc4 + 0x16c" (identifier "PTR__bfd_std_section_000bafc4") (+ "+") (number_literal "0x16c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              FUN_00031780("../../ld/ldlang.c",0x13e5);\n              uVar14 = local_4c;\n            }" ({ "{") (expression_statement "FUN_00031780("../../ld/ldlang.c",0x13e5);" (call_expression "FUN_00031780("../../ld/ldlang.c",0x13e5)" (identifier "FUN_00031780") (argument_list "("../../ld/ldlang.c",0x13e5)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x13e5") () ")"))) (; ";")) (expression_statement "uVar14 = local_4c;" (assignment_expression "uVar14 = local_4c" (identifier "uVar14") (= "=") (identifier "local_4c")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }" (else "else") (compound_statement "{\n            if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }\n            uVar14 = local_4c;\n            if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }\n            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;\n            puVar15[8] = uVar7;\n            puVar15[7] = uVar7;\n            puVar15[0xe] = 0;\n          }" ({ "{") (if_statement "if (local_54[0xb] == 0) {\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }\n            else {\n              iStack_3c = local_54[0x11];\n            }" (if "if") (parenthesized_expression "(local_54[0xb] == 0)" (( "(") (binary_expression "local_54[0xb] == 0" (subscript_expression "local_54[0xb]" (identifier "local_54") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              puVar12 = (undefined4 *)local_54[8];\n              uVar7 = puVar15[5];\n              if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }\n              puVar3 = DAT_000bb92c;\n              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }\n              iStack_3c = puVar15[0x10];\n              uVar7 = puVar12[7];\n            }" ({ "{") (expression_statement "puVar12 = (undefined4 *)local_54[8];" (assignment_expression "puVar12 = (undefined4 *)local_54[8]" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)local_54[8]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_54[8]" (identifier "local_54") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "uVar7 = puVar15[5];" (assignment_expression "uVar7 = puVar15[5]" (identifier "uVar7") (= "=") (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if (puVar12 == (undefined4 *)0x0) {\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }\n              else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }" (if "if") (parenthesized_expression "(puVar12 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar12 == (undefined4 *)0x0" (identifier "puVar12") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\ncode_r0x00022925:\n                puVar12 = DAT_000bb92c;\n                if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }\n                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }\n                puVar12 = (undefined4 *)FUN_00021940("*default*",0);\n                puVar15 = (undefined4 *)local_54[7];\ncode_r0x00022989:\n                local_54[8] = (int)puVar12;\n              }" ({ "{") (labeled_statement "code_r0x00022925:\n                puVar12 = DAT_000bb92c;" (statement_identifier "code_r0x00022925") (: ":") (expression_statement "puVar12 = DAT_000bb92c;" (assignment_expression "puVar12 = DAT_000bb92c" (identifier "puVar12") (= "=") (identifier "DAT_000bb92c")) (; ";"))) (if_statement "if ((uVar7 & 0x19) == 1) {\n                  uVar7 = uVar7 | 0x20;\n                }" (if "if") (parenthesized_expression "((uVar7 & 0x19) == 1)" (( "(") (binary_expression "(uVar7 & 0x19) == 1" (parenthesized_expression "(uVar7 & 0x19)" (( "(") (binary_expression "uVar7 & 0x19" (identifier "uVar7") (& "&") (number_literal "0x19")) () ")")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  uVar7 = uVar7 | 0x20;\n                }" ({ "{") (expression_statement "uVar7 = uVar7 | 0x20;" (assignment_expression "uVar7 = uVar7 | 0x20" (identifier "uVar7") (= "=") (binary_expression "uVar7 | 0x20" (identifier "uVar7") (| "|") (number_literal "0x20"))) (; ";")) (} "}"))) (for_statement "for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }" (for "for") (( "(") (; ";") (binary_expression "puVar12 != (undefined4 *)0x0" (identifier "puVar12") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar12 = (undefined4 *)puVar12[2]" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)puVar12[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]")))) () ")") (compound_statement "{\n                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;\n                }" ({ "{") (if_statement "if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))\n                  goto code_r0x00022989;" (if "if") (parenthesized_expression "(((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))" (( "(") (binary_expression "((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0)" (parenthesized_expression "((puVar12[9] & uVar7) != 0)" (( "(") (binary_expression "(puVar12[9] & uVar7) != 0" (parenthesized_expression "(puVar12[9] & uVar7)" (( "(") (binary_expression "puVar12[9] & uVar7" (subscript_expression "puVar12[9]" (identifier "puVar12") ([ "[") (number_literal "9") (] "]")) (& "&") (identifier "uVar7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((puVar12[10] & uVar7) == 0)" (( "(") (binary_expression "(puVar12[10] & uVar7) == 0" (parenthesized_expression "(puVar12[10] & uVar7)" (( "(") (binary_expression "puVar12[10] & uVar7" (subscript_expression "puVar12[10]" (identifier "puVar12") ([ "[") (number_literal "10") (] "]")) (& "&") (identifier "uVar7")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto code_r0x00022989;" (goto "goto") (statement_identifier "code_r0x00022989") (; ";"))) (} "}"))) (expression_statement "puVar12 = (undefined4 *)FUN_00021940("*default*",0);" (assignment_expression "puVar12 = (undefined4 *)FUN_00021940("*default*",0)" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)FUN_00021940("*default*",0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00021940("*default*",0)" (identifier "FUN_00021940") (argument_list "("*default*",0)" (( "(") (string_literal ""*default*"" (" """) (string_content "*default*") (" """)) (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "puVar15 = (undefined4 *)local_54[7];" (assignment_expression "puVar15 = (undefined4 *)local_54[7]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)local_54[7]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_54[7]" (identifier "local_54") ([ "[") (number_literal "7") (] "]")))) (; ";")) (labeled_statement "code_r0x00022989:\n                local_54[8] = (int)puVar12;" (statement_identifier "code_r0x00022989") (: ":") (expression_statement "local_54[8] = (int)puVar12;" (assignment_expression "local_54[8] = (int)puVar12" (subscript_expression "local_54[8]" (identifier "local_54") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12"))) (; ";"))) (} "}")) (else_clause "else if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }" (else "else") (if_statement "if ((uVar7 & 3) != 0) {\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }" (if "if") (parenthesized_expression "((uVar7 & 3) != 0)" (( "(") (binary_expression "(uVar7 & 3) != 0" (parenthesized_expression "(uVar7 & 3)" (( "(") (binary_expression "uVar7 & 3" (identifier "uVar7") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                bVar13 = *(byte *)*puVar12;\n                bVar22 = bVar13 < 0x2a;\n                bVar23 = bVar13 == 0x2a;\n                if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }\n              }" ({ "{") (expression_statement "bVar13 = *(byte *)*puVar12;" (assignment_expression "bVar13 = *(byte *)*puVar12" (identifier "bVar13") (= "=") (pointer_expression "*(byte *)*puVar12" (* "*") (cast_expression "(byte *)*puVar12" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))))) (; ";")) (expression_statement "bVar22 = bVar13 < 0x2a;" (assignment_expression "bVar22 = bVar13 < 0x2a" (identifier "bVar22") (= "=") (binary_expression "bVar13 < 0x2a" (identifier "bVar13") (< "<") (number_literal "0x2a"))) (; ";")) (expression_statement "bVar23 = bVar13 == 0x2a;" (assignment_expression "bVar23 = bVar13 == 0x2a" (identifier "bVar23") (= "=") (binary_expression "bVar13 == 0x2a" (identifier "bVar13") (== "==") (number_literal "0x2a"))) (; ";")) (if_statement "if (bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }" (if "if") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (compound_statement "{\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;\n                }" ({ "{") (expression_statement "iVar8 = 10;" (assignment_expression "iVar8 = 10" (identifier "iVar8") (= "=") (number_literal "10")) (; ";")) (expression_statement "pbVar20 = (byte *)*puVar12;" (assignment_expression "pbVar20 = (byte *)*puVar12" (identifier "pbVar20") (= "=") (cast_expression "(byte *)*puVar12" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar12" (* "*") (identifier "puVar12")))) (; ";")) (expression_statement "pbVar21 = (byte *)"*default*";" (assignment_expression "pbVar21 = (byte *)"*default*"" (identifier "pbVar21") (= "=") (cast_expression "(byte *)"*default*"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""*default*"" (" """) (string_content "*default*") (" """)))) (; ";")) (do_statement "do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);" (do "do") (compound_statement "{\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar20 < *pbVar21;" (assignment_expression "bVar22 = *pbVar20 < *pbVar21" (identifier "bVar22") (= "=") (binary_expression "*pbVar20 < *pbVar21" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "bVar23 = *pbVar20 == *pbVar21;" (assignment_expression "bVar23 = *pbVar20 == *pbVar21" (identifier "bVar23") (= "=") (binary_expression "*pbVar20 == *pbVar21" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar24 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar24 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (if_statement "if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;" (if "if") (parenthesized_expression "((!bVar22 && !bVar23) == bVar22)" (( "(") (binary_expression "(!bVar22 && !bVar23) == bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" (( "(") (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar22")) () ")")) (goto_statement "goto code_r0x00022925;" (goto "goto") (statement_identifier "code_r0x00022925") (; ";"))) (} "}"))) (} "}"))))) (expression_statement "puVar3 = DAT_000bb92c;" (assignment_expression "puVar3 = DAT_000bb92c" (identifier "puVar3") (= "=") (identifier "DAT_000bb92c")) (; ";")) (if_statement "if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2))" (( "(") (binary_expression "((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)" (parenthesized_expression "((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400))" (( "(") (binary_expression "(((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&\n                  ((puVar15[5] & 0x402) != 0x400)" (parenthesized_expression "(((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0))" (( "(") (binary_expression "((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)" (parenthesized_expression "((*(byte *)(local_54 + 0x15) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(local_54 + 0x15) & 8) == 0" (parenthesized_expression "(*(byte *)(local_54 + 0x15) & 8)" (( "(") (binary_expression "*(byte *)(local_54 + 0x15) & 8" (pointer_expression "*(byte *)(local_54 + 0x15)" (* "*") (cast_expression "(byte *)(local_54 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x15)" (( "(") (binary_expression "local_54 + 0x15" (identifier "local_54") (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((puVar15[5] & 1) != 0)" (( "(") (binary_expression "(puVar15[5] & 1) != 0" (parenthesized_expression "(puVar15[5] & 1)" (( "(") (binary_expression "puVar15[5] & 1" (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((puVar15[5] & 0x402) != 0x400)" (( "(") (binary_expression "(puVar15[5] & 0x402) != 0x400" (parenthesized_expression "(puVar15[5] & 0x402)" (( "(") (binary_expression "puVar15[5] & 0x402" (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]")) (& "&") (number_literal "0x402")) () ")")) (!= "!=") (number_literal "0x400")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((byte)DAT_000bbe00 & 3) != 2)" (( "(") (binary_expression "((byte)DAT_000bbe00 & 3) != 2" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" (( "(") (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bbe00")) (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n                bVar22 = false;\n                bVar23 = param_5 == 0;\n                if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }\n              }" ({ "{") (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = param_5 == 0;" (assignment_expression "bVar23 = param_5 == 0" (identifier "bVar23") (= "=") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!bVar23) {\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (compound_statement "{\n                  iVar8 = 10;\n                  pbVar20 = (byte *)*puVar12;\n                  pbVar21 = (byte *)"*default*";\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);\n                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }\n                }" ({ "{") (expression_statement "iVar8 = 10;" (assignment_expression "iVar8 = 10" (identifier "iVar8") (= "=") (number_literal "10")) (; ";")) (expression_statement "pbVar20 = (byte *)*puVar12;" (assignment_expression "pbVar20 = (byte *)*puVar12" (identifier "pbVar20") (= "=") (cast_expression "(byte *)*puVar12" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar12" (* "*") (identifier "puVar12")))) (; ";")) (expression_statement "pbVar21 = (byte *)"*default*";" (assignment_expression "pbVar21 = (byte *)"*default*"" (identifier "pbVar21") (= "=") (cast_expression "(byte *)"*default*"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""*default*"" (" """) (string_content "*default*") (" """)))) (; ";")) (do_statement "do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  } while (bVar23);" (do "do") (compound_statement "{\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar22 = *pbVar20 < *pbVar21;\n                    bVar23 = *pbVar20 == *pbVar21;\n                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n                  }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar20 < *pbVar21;" (assignment_expression "bVar22 = *pbVar20 < *pbVar21" (identifier "bVar22") (= "=") (binary_expression "*pbVar20 < *pbVar21" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "bVar23 = *pbVar20 == *pbVar21;" (assignment_expression "bVar23 = *pbVar20 == *pbVar21" (identifier "bVar23") (= "=") (binary_expression "*pbVar20 == *pbVar21" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar24 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar24 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (if_statement "if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }" (if "if") (parenthesized_expression "(((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1))" (( "(") (binary_expression "((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)" (parenthesized_expression "((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0))))" (( "(") (binary_expression "(((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&\n                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))" (parenthesized_expression "(((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0))" (( "(") (binary_expression "((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)" (parenthesized_expression "((!bVar22 && !bVar23) == bVar22)" (( "(") (binary_expression "(!bVar22 && !bVar23) == bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" (( "(") (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar22")) () ")")) (&& "&&") (parenthesized_expression "(DAT_000bb92c != (undefined4 *)0x0)" (( "(") (binary_expression "DAT_000bb92c != (undefined4 *)0x0" (identifier "DAT_000bb92c") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)))" (( "(") (parenthesized_expression "(iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0))" (( "(") (comma_expression "iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||\n                       (puVar3[2] != 0)" (assignment_expression "iVar8 = strcmp((char *)*DAT_000bb92c,"*default*")" (identifier "iVar8") (= "=") (call_expression "strcmp((char *)*DAT_000bb92c,"*default*")" (identifier "strcmp") (argument_list "((char *)*DAT_000bb92c,"*default*")" (( "(") (cast_expression "(char *)*DAT_000bb92c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_000bb92c" (* "*") (identifier "DAT_000bb92c"))) (, ",") (string_literal ""*default*"" (" """) (string_content "*default*") (" """)) () ")")))) (, ",") (binary_expression "iVar8 != 0 ||\n                       (puVar3[2] != 0)" (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(puVar3[2] != 0)" (( "(") (binary_expression "puVar3[2] != 0" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")")))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_000bbf80 != 1)" (( "(") (binary_expression "DAT_000bbf80 != 1" (identifier "DAT_000bbf80") (!= "!=") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n                    uVar9 = *puVar15;\n                    if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }\n                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);\n                    FUN_00031730(uVar11,uVar9);\n                    puVar12 = (undefined4 *)local_54[8];\n                    puVar15 = (undefined4 *)local_54[7];\n                  }" ({ "{") (expression_statement "uVar9 = *puVar15;" (assignment_expression "uVar9 = *puVar15" (identifier "uVar9") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (if_statement "if (DAT_000bbeb8 == '\0') {\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }\n                    else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }" (if "if") (parenthesized_expression "(DAT_000bbeb8 == '\0')" (( "(") (binary_expression "DAT_000bbeb8 == '\0'" (identifier "DAT_000bbeb8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                      pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = extraout_ECX_00;\n                    }" ({ "{") (expression_statement "pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n";" (assignment_expression "pcVar10 = \n                      "%P: warning: no memory region specified for loadable section `%s\'\n"" (identifier "pcVar10") (= "=") (string_literal ""%P: warning: no memory region specified for loadable section `%s\'\n"" (" """) (string_content "%P: warning: no memory region specified for loadable section `%s") (escape_sequence "\'") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "ppuVar25 = extraout_ECX_00;" (assignment_expression "ppuVar25 = extraout_ECX_00" (identifier "ppuVar25") (= "=") (identifier "extraout_ECX_00")) (; ";")) (} "}")) (else_clause "else {\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }" (else "else") (compound_statement "{\n                      pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";\n                      ppuVar25 = &__DT_PLTGOT;\n                    }" ({ "{") (expression_statement "pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n";" (assignment_expression "pcVar10 = \n                      "%F%P: error: no memory region specified for loadable section `%s\'\n"" (identifier "pcVar10") (= "=") (string_literal ""%F%P: error: no memory region specified for loadable section `%s\'\n"" (" """) (string_content "%F%P: error: no memory region specified for loadable section `%s") (escape_sequence "\'") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "ppuVar25 = &__DT_PLTGOT;" (assignment_expression "ppuVar25 = &__DT_PLTGOT" (identifier "ppuVar25") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (} "}")))) (expression_statement "uVar11 = dcgettext(0,pcVar10,5,ppuVar25);" (assignment_expression "uVar11 = dcgettext(0,pcVar10,5,ppuVar25)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,pcVar10,5,ppuVar25)" (identifier "dcgettext") (argument_list "(0,pcVar10,5,ppuVar25)" (( "(") (number_literal "0") (, ",") (identifier "pcVar10") (, ",") (number_literal "5") (, ",") (identifier "ppuVar25") () ")")))) (; ";")) (expression_statement "FUN_00031730(uVar11,uVar9);" (call_expression "FUN_00031730(uVar11,uVar9)" (identifier "FUN_00031730") (argument_list "(uVar11,uVar9)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "puVar12 = (undefined4 *)local_54[8];" (assignment_expression "puVar12 = (undefined4 *)local_54[8]" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)local_54[8]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_54[8]" (identifier "local_54") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "puVar15 = (undefined4 *)local_54[7];" (assignment_expression "puVar15 = (undefined4 *)local_54[7]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)local_54[7]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_54[7]" (identifier "local_54") ([ "[") (number_literal "7") (] "]")))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "iStack_3c = puVar15[0x10];" (assignment_expression "iStack_3c = puVar15[0x10]" (identifier "iStack_3c") (= "=") (subscript_expression "puVar15[0x10]" (identifier "puVar15") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "uVar7 = puVar12[7];" (assignment_expression "uVar7 = puVar12[7]" (identifier "uVar7") (= "=") (subscript_expression "puVar12[7]" (identifier "puVar12") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n              iStack_3c = local_54[0x11];\n            }" (else "else") (compound_statement "{\n              iStack_3c = local_54[0x11];\n            }" ({ "{") (expression_statement "iStack_3c = local_54[0x11];" (assignment_expression "iStack_3c = local_54[0x11]" (identifier "iStack_3c") (= "=") (subscript_expression "local_54[0x11]" (identifier "local_54") ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (} "}")))) (expression_statement "uVar14 = local_4c;" (assignment_expression "uVar14 = local_4c" (identifier "uVar14") (= "=") (identifier "local_4c")) (; ";")) (if_statement "if (0 < iStack_3c) {\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }" (if "if") (parenthesized_expression "(0 < iStack_3c)" (( "(") (binary_expression "0 < iStack_3c" (number_literal "0") (< "<") (identifier "iStack_3c")) () ")")) (compound_statement "{\n              iVar8 = 1 << ((byte)iStack_3c & 0x1f);\n              uVar19 = -iVar8 & iVar8 + -1 + uVar7;\n              uVar14 = uVar19 - uVar7;\n              uVar7 = uVar19;\n              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }\n            }" ({ "{") (expression_statement "iVar8 = 1 << ((byte)iStack_3c & 0x1f);" (assignment_expression "iVar8 = 1 << ((byte)iStack_3c & 0x1f)" (identifier "iVar8") (= "=") (binary_expression "1 << ((byte)iStack_3c & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)iStack_3c & 0x1f)" (( "(") (binary_expression "(byte)iStack_3c & 0x1f" (cast_expression "(byte)iStack_3c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iStack_3c")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar19 = -iVar8 & iVar8 + -1 + uVar7;" (assignment_expression "uVar19 = -iVar8 & iVar8 + -1 + uVar7" (identifier "uVar19") (= "=") (binary_expression "-iVar8 & iVar8 + -1 + uVar7" (unary_expression "-iVar8" (- "-") (identifier "iVar8")) (& "&") (binary_expression "iVar8 + -1 + uVar7" (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1")) (+ "+") (identifier "uVar7")))) (; ";")) (expression_statement "uVar14 = uVar19 - uVar7;" (assignment_expression "uVar14 = uVar19 - uVar7" (identifier "uVar14") (= "=") (binary_expression "uVar19 - uVar7" (identifier "uVar19") (- "-") (identifier "uVar7"))) (; ";")) (expression_statement "uVar7 = uVar19;" (assignment_expression "uVar7 = uVar19" (identifier "uVar7") (= "=") (identifier "uVar19")) (; ";")) (if_statement "if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)) {\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }" (if "if") (parenthesized_expression "(((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1))" (( "(") (binary_expression "((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&\n                 (DAT_000bbf80 != 1)" (parenthesized_expression "((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0))))" (( "(") (binary_expression "(uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))" (parenthesized_expression "(uVar14 != 0)" (( "(") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((iRam000bbf24 != 0 || (local_54[0xb] != 0)))" (( "(") (parenthesized_expression "(iRam000bbf24 != 0 || (local_54[0xb] != 0))" (( "(") (binary_expression "iRam000bbf24 != 0 || (local_54[0xb] != 0)" (binary_expression "iRam000bbf24 != 0" (identifier "iRam000bbf24") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(local_54[0xb] != 0)" (( "(") (binary_expression "local_54[0xb] != 0" (subscript_expression "local_54[0xb]" (identifier "local_54") ([ "[") (number_literal "0xb") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_000bbf80 != 1)" (( "(") (binary_expression "DAT_000bbf80 != 1" (identifier "DAT_000bbf80") (!= "!=") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n                iVar8 = local_54[6];\n                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);\n                FUN_00031730(uVar9,iVar8,uVar14);\n                puVar15 = (undefined4 *)local_54[7];\n              }" ({ "{") (expression_statement "iVar8 = local_54[6];" (assignment_expression "iVar8 = local_54[6]" (identifier "iVar8") (= "=") (subscript_expression "local_54[6]" (identifier "local_54") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5);" (assignment_expression "uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5)" (identifier "uVar9") (= "=") (call_expression "dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5)" (identifier "dcngettext") (argument_list "(0,"%P: warning: changing start of section %s by %lu byte\n",\n                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14\n                                   ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""%P: warning: changing start of section %s by %lu byte\n"" (" """) (string_content "%P: warning: changing start of section %s by %lu byte") (escape_sequence "\n") (" """)) (, ",") (string_literal ""%P: warning: changing start of section %s by %lu bytes\n"" (" """) (string_content "%P: warning: changing start of section %s by %lu bytes") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar14") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031730(uVar9,iVar8,uVar14);" (call_expression "FUN_00031730(uVar9,iVar8,uVar14)" (identifier "FUN_00031730") (argument_list "(uVar9,iVar8,uVar14)" (( "(") (identifier "uVar9") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)local_54[7];" (assignment_expression "puVar15 = (undefined4 *)local_54[7]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)local_54[7]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_54[7]" (identifier "local_54") ([ "[") (number_literal "7") (] "]")))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;" (assignment_expression "*(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1" (pointer_expression "*(byte *)(puVar15 + 6)" (* "*") (cast_expression "(byte *)(puVar15 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 6)" (( "(") (binary_expression "puVar15 + 6" (identifier "puVar15") (+ "+") (number_literal "6")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar15 + 6) | 1" (pointer_expression "*(byte *)(puVar15 + 6)" (* "*") (cast_expression "(byte *)(puVar15 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 6)" (( "(") (binary_expression "puVar15 + 6" (identifier "puVar15") (+ "+") (number_literal "6")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (expression_statement "puVar15[8] = uVar7;" (assignment_expression "puVar15[8] = uVar7" (subscript_expression "puVar15[8]" (identifier "puVar15") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "puVar15[7] = uVar7;" (assignment_expression "puVar15[7] = uVar7" (subscript_expression "puVar15[7]" (identifier "puVar15") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "puVar15[0xe] = 0;" (assignment_expression "puVar15[0xe] = 0" (subscript_expression "puVar15[0xe]" (identifier "puVar15") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "FUN_00021aa0(uVar7,param_4,param_5);" (call_expression "FUN_00021aa0(uVar7,param_4,param_5)" (identifier "FUN_00021aa0") (argument_list "(uVar7,param_4,param_5)" (( "(") (identifier "uVar7") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "bVar13 = *(byte *)(local_54 + 0x15);" (assignment_expression "bVar13 = *(byte *)(local_54 + 0x15)" (identifier "bVar13") (= "=") (pointer_expression "*(byte *)(local_54 + 0x15)" (* "*") (cast_expression "(byte *)(local_54 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x15)" (( "(") (binary_expression "local_54 + 0x15" (identifier "local_54") (+ "+") (number_literal "0x15")) () ")"))))) (; ";")) (expression_statement "*(byte *)(local_54 + 0x15) = bVar13 | 1;" (assignment_expression "*(byte *)(local_54 + 0x15) = bVar13 | 1" (pointer_expression "*(byte *)(local_54 + 0x15)" (* "*") (cast_expression "(byte *)(local_54 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x15)" (( "(") (binary_expression "local_54 + 0x15" (identifier "local_54") (+ "+") (number_literal "0x15")) () ")")))) (= "=") (binary_expression "bVar13 | 1" (identifier "bVar13") (| "|") (number_literal "1"))) (; ";")) (expression_statement "puVar17 = (undefined *)local_54[7];" (assignment_expression "puVar17 = (undefined *)local_54[7]" (identifier "puVar17") (= "=") (cast_expression "(undefined *)local_54[7]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_54[7]" (identifier "local_54") ([ "[") (number_literal "7") (] "]")))) (; ";")) (if_statement "if (puVar17 == puVar2 + 0x150) {\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }\n          else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }" (if "if") (parenthesized_expression "(puVar17 == puVar2 + 0x150)" (( "(") (binary_expression "puVar17 == puVar2 + 0x150" (identifier "puVar17") (== "==") (binary_expression "puVar2 + 0x150" (identifier "puVar2") (+ "+") (number_literal "0x150"))) () ")")) (compound_statement "{\n            uVar7 = *(uint *)(puVar2 + 0x174);\ncode_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }\n          }" ({ "{") (expression_statement "uVar7 = *(uint *)(puVar2 + 0x174);" (assignment_expression "uVar7 = *(uint *)(puVar2 + 0x174)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(puVar2 + 0x174)" (* "*") (cast_expression "(uint *)(puVar2 + 0x174)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x174)" (( "(") (binary_expression "puVar2 + 0x174" (identifier "puVar2") (+ "+") (number_literal "0x174")) () ")"))))) (; ";")) (labeled_statement "code_r0x000223fa:\n            if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }" (statement_identifier "code_r0x000223fa") (: ":") (if_statement "if (uVar7 != 0) {\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }" (if "if") (parenthesized_expression "(uVar7 != 0)" (( "(") (binary_expression "uVar7 != 0" (identifier "uVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              FUN_00031780("../../ld/ldlang.c",0x1443);\n            }" ({ "{") (expression_statement "FUN_00031780("../../ld/ldlang.c",0x1443);" (call_expression "FUN_00031780("../../ld/ldlang.c",0x1443)" (identifier "FUN_00031780") (argument_list "("../../ld/ldlang.c",0x1443)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1443") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }" (else "else") (compound_statement "{\n            uVar7 = *(uint *)(puVar17 + 0x24);\n            if ((bVar13 & 8) != 0) goto code_r0x000223fa;\n            param_3 = *(uint *)(puVar17 + 0x1c);\n            if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }\n          }" ({ "{") (expression_statement "uVar7 = *(uint *)(puVar17 + 0x24);" (assignment_expression "uVar7 = *(uint *)(puVar17 + 0x24)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(puVar17 + 0x24)" (* "*") (cast_expression "(uint *)(puVar17 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x24)" (( "(") (binary_expression "puVar17 + 0x24" (identifier "puVar17") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (if_statement "if ((bVar13 & 8) != 0) goto code_r0x000223fa;" (if "if") (parenthesized_expression "((bVar13 & 8) != 0)" (( "(") (binary_expression "(bVar13 & 8) != 0" (parenthesized_expression "(bVar13 & 8)" (( "(") (binary_expression "bVar13 & 8" (identifier "bVar13") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x000223fa;" (goto "goto") (statement_identifier "code_r0x000223fa") (; ";"))) (expression_statement "param_3 = *(uint *)(puVar17 + 0x1c);" (assignment_expression "param_3 = *(uint *)(puVar17 + 0x1c)" (identifier "param_3") (= "=") (pointer_expression "*(uint *)(puVar17 + 0x1c)" (* "*") (cast_expression "(uint *)(puVar17 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x1c)" (( "(") (binary_expression "puVar17 + 0x1c" (identifier "puVar17") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if ((puVar17[0x15] & 8) == 0) {\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }" (if "if") (parenthesized_expression "((puVar17[0x15] & 8) == 0)" (( "(") (binary_expression "(puVar17[0x15] & 8) == 0" (parenthesized_expression "(puVar17[0x15] & 8)" (( "(") (binary_expression "puVar17[0x15] & 8" (subscript_expression "puVar17[0x15]" (identifier "puVar17") ([ "[") (number_literal "0x15") (] "]")) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              *(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);\n            }" ({ "{") (expression_statement "*(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);" (assignment_expression "*(uint *)(puVar17 + 0x24) =\n                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(puVar17 + 0x24)" (* "*") (cast_expression "(uint *)(puVar17 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x24)" (( "(") (binary_expression "puVar17 + 0x24" (identifier "puVar17") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (binary_expression "((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f)" (binary_expression "((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]) - param_3" (parenthesized_expression "((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf])" (( "(") (binary_expression "(uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &\n                   -local_54[0xf]" (binary_expression "(uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf]" (binary_expression "(uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1)" (parenthesized_expression "(uVar7 >> ((byte)DAT_000bb94c & 0x1f))" (( "(") (binary_expression "uVar7 >> ((byte)DAT_000bb94c & 0x1f)" (identifier "uVar7") (>> ">>") (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" (( "(") (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c")) (& "&") (number_literal "0x1f")) () ")"))) () ")")) (+ "+") (parenthesized_expression "(param_3 - 1)" (( "(") (binary_expression "param_3 - 1" (identifier "param_3") (- "-") (number_literal "1")) () ")"))) (+ "+") (subscript_expression "local_54[0xf]" (identifier "local_54") ([ "[") (number_literal "0xf") (] "]"))) (& "&") (unary_expression "-local_54[0xf]" (- "-") (subscript_expression "local_54[0xf]" (identifier "local_54") ([ "[") (number_literal "0xf") (] "]")))) () ")")) (- "-") (identifier "param_3")) (<< "<<") (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" (( "(") (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar8 = local_54[8];" (assignment_expression "iVar8 = local_54[8]" (identifier "iVar8") (= "=") (subscript_expression "local_54[8]" (identifier "local_54") ([ "[") (number_literal "8") (] "]"))) (; ";")) (if_statement "if (iVar8 == 0) {\n            iVar8 = FUN_00021940("*default*",0);\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar8 = FUN_00021940("*default*",0);\n          }" ({ "{") (expression_statement "iVar8 = FUN_00021940("*default*",0);" (assignment_expression "iVar8 = FUN_00021940("*default*",0)" (identifier "iVar8") (= "=") (call_expression "FUN_00021940("*default*",0)" (identifier "FUN_00021940") (argument_list "("*default*",0)" (( "(") (string_literal ""*default*"" (" """) (string_content "*default*") (" """)) (, ",") (number_literal "0") () ")")))) (; ";")) (} "}"))) (if_statement "if (local_54[0xc] == 0) {\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }\n          else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(local_54[0xc] == 0)" (( "(") (binary_expression "local_54[0xc] == 0" (subscript_expression "local_54[0xc]" (identifier "local_54") ([ "[") (number_literal "0xc") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            puVar17 = (undefined *)local_54[7];\n            iVar6 = local_54[9];\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\n            if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }\n            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;\n            if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n          }" ({ "{") (expression_statement "puVar17 = (undefined *)local_54[7];" (assignment_expression "puVar17 = (undefined *)local_54[7]" (identifier "puVar17") (= "=") (cast_expression "(undefined *)local_54[7]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_54[7]" (identifier "local_54") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "iVar6 = local_54[9];" (assignment_expression "iVar6 = local_54[9]" (identifier "iVar6") (= "=") (subscript_expression "local_54[9]" (identifier "local_54") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "uVar7 = *(uint *)(puVar17 + 0x14);" (assignment_expression "uVar7 = *(uint *)(puVar17 + 0x14)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(puVar17 + 0x14)" (* "*") (cast_expression "(uint *)(puVar17 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x14)" (( "(") (binary_expression "puVar17 + 0x14" (identifier "puVar17") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar19 = uVar7 & 1;" (assignment_expression "uVar19 = uVar7 & 1" (identifier "uVar19") (= "=") (binary_expression "uVar7 & 1" (identifier "uVar7") (& "&") (number_literal "1"))) (; ";")) (if_statement "if (iVar6 != 0) {\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uStack_34 = *(uint *)(iVar6 + 0x1c);\n              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }\n              *(uint *)(puVar17 + 0x20) = uStack_34;\n              goto code_r0x00022015;\n            }" ({ "{") (expression_statement "uStack_34 = *(uint *)(iVar6 + 0x1c);" (assignment_expression "uStack_34 = *(uint *)(iVar6 + 0x1c)" (identifier "uStack_34") (= "=") (pointer_expression "*(uint *)(iVar6 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar6 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1c)" (( "(") (binary_expression "iVar6 + 0x1c" (identifier "iVar6") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }\n              else {\n                uStack_34 = uStack_34 + uVar14;\n              }" (if "if") (parenthesized_expression "((*(byte *)(local_54 + 0x15) & 0x40) == 0)" (( "(") (binary_expression "(*(byte *)(local_54 + 0x15) & 0x40) == 0" (parenthesized_expression "(*(byte *)(local_54 + 0x15) & 0x40)" (( "(") (binary_expression "*(byte *)(local_54 + 0x15) & 0x40" (pointer_expression "*(byte *)(local_54 + 0x15)" (* "*") (cast_expression "(byte *)(local_54 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x15)" (( "(") (binary_expression "local_54 + 0x15" (identifier "local_54") (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }\n              }" ({ "{") (if_statement "if (iVar6 != local_54[8]) {\n                  iStack_3c = local_54[0x11];\n                }" (if "if") (parenthesized_expression "(iVar6 != local_54[8])" (( "(") (binary_expression "iVar6 != local_54[8]" (identifier "iVar6") (!= "!=") (subscript_expression "local_54[8]" (identifier "local_54") ([ "[") (number_literal "8") (] "]"))) () ")")) (compound_statement "{\n                  iStack_3c = local_54[0x11];\n                }" ({ "{") (expression_statement "iStack_3c = local_54[0x11];" (assignment_expression "iStack_3c = local_54[0x11]" (identifier "iStack_3c") (= "=") (subscript_expression "local_54[0x11]" (identifier "local_54") ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (} "}"))) (if_statement "if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }" (if "if") (parenthesized_expression "(0 < iStack_3c)" (( "(") (binary_expression "0 < iStack_3c" (number_literal "0") (< "<") (identifier "iStack_3c")) () ")")) (compound_statement "{\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;\n                }" ({ "{") (expression_statement "iVar6 = 1 << ((byte)iStack_3c & 0x1f);" (assignment_expression "iVar6 = 1 << ((byte)iStack_3c & 0x1f)" (identifier "iVar6") (= "=") (binary_expression "1 << ((byte)iStack_3c & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)iStack_3c & 0x1f)" (( "(") (binary_expression "(byte)iStack_3c & 0x1f" (cast_expression "(byte)iStack_3c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iStack_3c")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;" (assignment_expression "uStack_34 = -iVar6 & iVar6 + -1 + uStack_34" (identifier "uStack_34") (= "=") (binary_expression "-iVar6 & iVar6 + -1 + uStack_34" (unary_expression "-iVar6" (- "-") (identifier "iVar6")) (& "&") (binary_expression "iVar6 + -1 + uStack_34" (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1")) (+ "+") (identifier "uStack_34")))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                uStack_34 = uStack_34 + uVar14;\n              }" (else "else") (compound_statement "{\n                uStack_34 = uStack_34 + uVar14;\n              }" ({ "{") (expression_statement "uStack_34 = uStack_34 + uVar14;" (assignment_expression "uStack_34 = uStack_34 + uVar14" (identifier "uStack_34") (= "=") (binary_expression "uStack_34 + uVar14" (identifier "uStack_34") (+ "+") (identifier "uVar14"))) (; ";")) (} "}")))) (expression_statement "*(uint *)(puVar17 + 0x20) = uStack_34;" (assignment_expression "*(uint *)(puVar17 + 0x20) = uStack_34" (pointer_expression "*(uint *)(puVar17 + 0x20)" (* "*") (cast_expression "(uint *)(puVar17 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x20)" (( "(") (binary_expression "puVar17 + 0x20" (identifier "puVar17") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uStack_34")) (; ";")) (goto_statement "goto code_r0x00022015;" (goto "goto") (statement_identifier "code_r0x00022015") (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 0x20) == 0)" (( "(") (binary_expression "*(int *)(iVar8 + 0x20) == 0" (pointer_expression "*(int *)(iVar8 + 0x20)" (* "*") (cast_expression "(int *)(iVar8 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x20)" (( "(") (binary_expression "iVar8 + 0x20" (identifier "iVar8") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00022015;" (goto "goto") (statement_identifier "code_r0x00022015") (; ";"))) (if_statement "if (uVar19 != 0) {\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }" (if "if") (parenthesized_expression "(uVar19 != 0)" (( "(") (binary_expression "uVar19 != 0" (identifier "uVar19") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);\n              uVar14 = *(uint *)(iVar6 + 0x1c);\n              uVar19 = *(uint *)(iVar6 + 0x20);\n              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }\n              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n              goto code_r0x00022020;\n            }" ({ "{") (expression_statement "iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);" (assignment_expression "iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(*(int *)(iVar8 + 0x20) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(iVar8 + 0x20) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar8 + 0x20) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar8 + 0x20) + 0x1c" (pointer_expression "*(int *)(iVar8 + 0x20)" (* "*") (cast_expression "(int *)(iVar8 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x20)" (( "(") (binary_expression "iVar8 + 0x20" (identifier "iVar8") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar14 = *(uint *)(iVar6 + 0x1c);" (assignment_expression "uVar14 = *(uint *)(iVar6 + 0x1c)" (identifier "uVar14") (= "=") (pointer_expression "*(uint *)(iVar6 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar6 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1c)" (( "(") (binary_expression "iVar6 + 0x1c" (identifier "iVar6") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar19 = *(uint *)(iVar6 + 0x20);" (assignment_expression "uVar19 = *(uint *)(iVar6 + 0x20)" (identifier "uVar19") (= "=") (pointer_expression "*(uint *)(iVar6 + 0x20)" (* "*") (cast_expression "(uint *)(iVar6 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x20)" (( "(") (binary_expression "iVar6 + 0x20" (identifier "iVar6") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }\n              else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }" (if "if") (parenthesized_expression "(((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14))" (( "(") (binary_expression "((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&\n                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)" (parenthesized_expression "((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0))" (( "(") (binary_expression "(param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)" (parenthesized_expression "(param_3 < uVar14)" (( "(") (binary_expression "param_3 < uVar14" (identifier "param_3") (< "<") (identifier "uVar14")) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)(puVar17 + 0x24) != 0)" (( "(") (binary_expression "*(uint *)(puVar17 + 0x24) != 0" (pointer_expression "*(uint *)(puVar17 + 0x24)" (* "*") (cast_expression "(uint *)(puVar17 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x24)" (( "(") (binary_expression "puVar17 + 0x24" (identifier "puVar17") (+ "+") (number_literal "0x24")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)" (( "(") (binary_expression "(*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14" (binary_expression "(*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3" (parenthesized_expression "(*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f))" (( "(") (binary_expression "*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(puVar17 + 0x24)" (* "*") (cast_expression "(uint *)(puVar17 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x24)" (( "(") (binary_expression "puVar17 + 0x24" (identifier "puVar17") (+ "+") (number_literal "0x24")) () ")")))) (>> ">>") (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" (( "(") (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c")) (& "&") (number_literal "0x1f")) () ")"))) () ")")) (+ "+") (identifier "param_3")) (<= "<=") (identifier "uVar14")) () ")"))) () ")")) (compound_statement "{\n                if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }\n              }" ({ "{") (if_statement "if (uVar14 != uVar19) {\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }" (if "if") (parenthesized_expression "(uVar14 != uVar19)" (( "(") (binary_expression "uVar14 != uVar19" (identifier "uVar14") (!= "!=") (identifier "uVar19")) () ")")) (compound_statement "{\n                  iVar6 = local_54[6];\n                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);\n                  FUN_00031730(uVar9,iVar6);\n                  puVar17 = (undefined *)local_54[7];\n                  goto code_r0x00022008;\n                }" ({ "{") (expression_statement "iVar6 = local_54[6];" (assignment_expression "iVar6 = local_54[6]" (identifier "iVar6") (= "=") (subscript_expression "local_54[6]" (identifier "local_54") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);" (assignment_expression "uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54)" (identifier "dcgettext") (argument_list "(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54)" (( "(") (number_literal "0") (, ",") (string_literal ""%P: warning: dot moved backwards before `%s\'\n"" (" """) (string_content "%P: warning: dot moved backwards before `%s") (escape_sequence "\'") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") (, ",") (identifier "local_54") () ")")))) (; ";")) (expression_statement "FUN_00031730(uVar9,iVar6);" (call_expression "FUN_00031730(uVar9,iVar6)" (identifier "FUN_00031730") (argument_list "(uVar9,iVar6)" (( "(") (identifier "uVar9") (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "puVar17 = (undefined *)local_54[7];" (assignment_expression "puVar17 = (undefined *)local_54[7]" (identifier "puVar17") (= "=") (cast_expression "(undefined *)local_54[7]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_54[7]" (identifier "local_54") ([ "[") (number_literal "7") (] "]")))) (; ";")) (goto_statement "goto code_r0x00022008;" (goto "goto") (statement_identifier "code_r0x00022008") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }" (else "else") (compound_statement "{\n                uVar14 = (uVar19 + param_3) - uVar14;\n                if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }\n                if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }\n                *(uint *)(puVar17 + 0x20) = uVar14;\n              }" ({ "{") (expression_statement "uVar14 = (uVar19 + param_3) - uVar14;" (assignment_expression "uVar14 = (uVar19 + param_3) - uVar14" (identifier "uVar14") (= "=") (binary_expression "(uVar19 + param_3) - uVar14" (parenthesized_expression "(uVar19 + param_3)" (( "(") (binary_expression "uVar19 + param_3" (identifier "uVar19") (+ "+") (identifier "param_3")) () ")")) (- "-") (identifier "uVar14"))) (; ";")) (if_statement "if (local_54[0x14] == 1) {\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }" (if "if") (parenthesized_expression "(local_54[0x14] == 1)" (( "(") (binary_expression "local_54[0x14] == 1" (subscript_expression "local_54[0x14]" (identifier "local_54") ([ "[") (number_literal "0x14") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;\n                }" ({ "{") (expression_statement "uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;" (assignment_expression "uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19" (identifier "uVar14") (= "=") (binary_expression "(*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19" (parenthesized_expression "(*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f))" (( "(") (binary_expression "*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(iVar6 + 0x24)" (* "*") (cast_expression "(uint *)(iVar6 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x24)" (( "(") (binary_expression "iVar6 + 0x24" (identifier "iVar6") (+ "+") (number_literal "0x24")) () ")")))) (>> ">>") (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" (( "(") (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c")) (& "&") (number_literal "0x1f")) () ")"))) () ")")) (+ "+") (identifier "uVar19"))) (; ";")) (} "}"))) (if_statement "if (0 < iStack_3c) {\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }" (if "if") (parenthesized_expression "(0 < iStack_3c)" (( "(") (binary_expression "0 < iStack_3c" (number_literal "0") (< "<") (identifier "iStack_3c")) () ")")) (compound_statement "{\n                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);\n                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;\n                }" ({ "{") (expression_statement "iVar6 = 1 << ((byte)iStack_3c & 0x1f);" (assignment_expression "iVar6 = 1 << ((byte)iStack_3c & 0x1f)" (identifier "iVar6") (= "=") (binary_expression "1 << ((byte)iStack_3c & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)iStack_3c & 0x1f)" (( "(") (binary_expression "(byte)iStack_3c & 0x1f" (cast_expression "(byte)iStack_3c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iStack_3c")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar14 = -iVar6 & iVar6 + -1 + uVar14;" (assignment_expression "uVar14 = -iVar6 & iVar6 + -1 + uVar14" (identifier "uVar14") (= "=") (binary_expression "-iVar6 & iVar6 + -1 + uVar14" (unary_expression "-iVar6" (- "-") (identifier "iVar6")) (& "&") (binary_expression "iVar6 + -1 + uVar14" (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1")) (+ "+") (identifier "uVar14")))) (; ";")) (} "}"))) (expression_statement "*(uint *)(puVar17 + 0x20) = uVar14;" (assignment_expression "*(uint *)(puVar17 + 0x20) = uVar14" (pointer_expression "*(uint *)(puVar17 + 0x20)" (* "*") (cast_expression "(uint *)(puVar17 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x20)" (( "(") (binary_expression "puVar17 + 0x20" (identifier "puVar17") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (} "}")))) (expression_statement "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;" (assignment_expression "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" (* "*") (cast_expression "(byte *)(local_54 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x15)" (( "(") (binary_expression "local_54 + 0x15" (identifier "local_54") (+ "+") (number_literal "0x15")) () ")")))) (= "=") (binary_expression "*(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" (* "*") (cast_expression "(byte *)(local_54 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x15)" (( "(") (binary_expression "local_54 + 0x15" (identifier "local_54") (+ "+") (number_literal "0x15")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (goto_statement "goto code_r0x00022020;" (goto "goto") (statement_identifier "code_r0x00022020") (; ";")) (} "}"))) (expression_statement "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;" (assignment_expression "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" (* "*") (cast_expression "(byte *)(local_54 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x15)" (( "(") (binary_expression "local_54 + 0x15" (identifier "local_54") (+ "+") (number_literal "0x15")) () ")")))) (= "=") (binary_expression "*(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" (* "*") (cast_expression "(byte *)(local_54 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x15)" (( "(") (binary_expression "local_54 + 0x15" (identifier "local_54") (+ "+") (number_literal "0x15")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }" (else "else") (compound_statement "{\n            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");\n            puVar17 = (undefined *)local_54[7];\n            *(undefined4 *)(puVar17 + 0x20) = uVar9;\ncode_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);\n            uVar19 = uVar7 & 1;\ncode_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;\n            if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");" (assignment_expression "uVar9 = FUN_0002fd60(local_54[0xc],0,"load base")" (identifier "uVar9") (= "=") (call_expression "FUN_0002fd60(local_54[0xc],0,"load base")" (identifier "FUN_0002fd60") (argument_list "(local_54[0xc],0,"load base")" (( "(") (subscript_expression "local_54[0xc]" (identifier "local_54") ([ "[") (number_literal "0xc") (] "]")) (, ",") (number_literal "0") (, ",") (string_literal ""load base"" (" """) (string_content "load base") (" """)) () ")")))) (; ";")) (expression_statement "puVar17 = (undefined *)local_54[7];" (assignment_expression "puVar17 = (undefined *)local_54[7]" (identifier "puVar17") (= "=") (cast_expression "(undefined *)local_54[7]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_54[7]" (identifier "local_54") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + 0x20) = uVar9;" (assignment_expression "*(undefined4 *)(puVar17 + 0x20) = uVar9" (pointer_expression "*(undefined4 *)(puVar17 + 0x20)" (* "*") (cast_expression "(undefined4 *)(puVar17 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x20)" (( "(") (binary_expression "puVar17 + 0x20" (identifier "puVar17") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (labeled_statement "code_r0x00022008:\n            uVar7 = *(uint *)(puVar17 + 0x14);" (statement_identifier "code_r0x00022008") (: ":") (expression_statement "uVar7 = *(uint *)(puVar17 + 0x14);" (assignment_expression "uVar7 = *(uint *)(puVar17 + 0x14)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(puVar17 + 0x14)" (* "*") (cast_expression "(uint *)(puVar17 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x14)" (( "(") (binary_expression "puVar17 + 0x14" (identifier "puVar17") (+ "+") (number_literal "0x14")) () ")"))))) (; ";"))) (expression_statement "uVar19 = uVar7 & 1;" (assignment_expression "uVar19 = uVar7 & 1" (identifier "uVar19") (= "=") (binary_expression "uVar7 & 1" (identifier "uVar7") (& "&") (number_literal "1"))) (; ";")) (labeled_statement "code_r0x00022015:\n            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;" (statement_identifier "code_r0x00022015") (: ":") (expression_statement "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;" (assignment_expression "*(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" (* "*") (cast_expression "(byte *)(local_54 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x15)" (( "(") (binary_expression "local_54 + 0x15" (identifier "local_54") (+ "+") (number_literal "0x15")) () ")")))) (= "=") (binary_expression "*(byte *)(local_54 + 0x15) | 2" (pointer_expression "*(byte *)(local_54 + 0x15)" (* "*") (cast_expression "(byte *)(local_54 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x15)" (( "(") (binary_expression "local_54 + 0x15" (identifier "local_54") (+ "+") (number_literal "0x15")) () ")")))) (| "|") (number_literal "2"))) (; ";"))) (if_statement "if (uVar19 != 0) {\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "(uVar19 != 0)" (( "(") (binary_expression "uVar19 != 0" (identifier "uVar19") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }\n            }" ({ "{") (labeled_statement "code_r0x00022020:\n              if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }" (statement_identifier "code_r0x00022020") (: ":") (if_statement "if ((uVar7 & 0x402) != 0x400) {\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }" (if "if") (parenthesized_expression "((uVar7 & 0x402) != 0x400)" (( "(") (binary_expression "(uVar7 & 0x402) != 0x400" (parenthesized_expression "(uVar7 & 0x402)" (( "(") (binary_expression "uVar7 & 0x402" (identifier "uVar7") (& "&") (number_literal "0x402")) () ")")) (!= "!=") (number_literal "0x400")) () ")")) (compound_statement "{\n                if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }\n              }" ({ "{") (if_statement "if (*(int *)(puVar17 + 0x24) == 0) {\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }\n                else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }" (if "if") (parenthesized_expression "(*(int *)(puVar17 + 0x24) == 0)" (( "(") (binary_expression "*(int *)(puVar17 + 0x24) == 0" (pointer_expression "*(int *)(puVar17 + 0x24)" (* "*") (cast_expression "(int *)(puVar17 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x24)" (( "(") (binary_expression "puVar17 + 0x24" (identifier "puVar17") (+ "+") (number_literal "0x24")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;\n                }" ({ "{") (if_statement "if (*(int *)(iVar8 + 0x20) == 0) {\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }\n                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 0x20) == 0)" (( "(") (binary_expression "*(int *)(iVar8 + 0x20) == 0" (pointer_expression "*(int *)(iVar8 + 0x20)" (* "*") (cast_expression "(int *)(iVar8 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x20)" (( "(") (binary_expression "iVar8 + 0x20" (identifier "iVar8") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;\n                  }" ({ "{") (if_statement "if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;" (if "if") (parenthesized_expression "(*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20))" (( "(") (binary_expression "*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)" (pointer_expression "*(int *)(puVar17 + 0x1c)" (* "*") (cast_expression "(int *)(puVar17 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x1c)" (( "(") (binary_expression "puVar17 + 0x1c" (identifier "puVar17") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (pointer_expression "*(int *)(puVar17 + 0x20)" (* "*") (cast_expression "(int *)(puVar17 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x20)" (( "(") (binary_expression "puVar17 + 0x20" (identifier "puVar17") (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (goto_statement "goto code_r0x000223c5;" (goto "goto") (statement_identifier "code_r0x000223c5") (; ";"))) (} "}")) (else_clause "else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;" (else "else") (if_statement "if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)\n                  goto code_r0x000223c5;" (if "if") (parenthesized_expression "(*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)" (( "(") (binary_expression "*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3" (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c)" (( "(") (binary_expression "*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c" (pointer_expression "*(int *)(*(int *)(iVar8 + 0x20) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(iVar8 + 0x20) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar8 + 0x20) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar8 + 0x20) + 0x1c" (pointer_expression "*(int *)(iVar8 + 0x20)" (* "*") (cast_expression "(int *)(iVar8 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x20)" (( "(") (binary_expression "iVar8 + 0x20" (identifier "iVar8") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))) (<= "<=") (identifier "param_3")) () ")")) (goto_statement "goto code_r0x000223c5;" (goto "goto") (statement_identifier "code_r0x000223c5") (; ";"))))) (} "}")) (else_clause "else {\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }" (else "else") (compound_statement "{\ncode_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }\n                }" ({ "{") (labeled_statement "code_r0x000223c5:\n                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }" (statement_identifier "code_r0x000223c5") (: ":") (if_statement "if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }" (if "if") (parenthesized_expression "((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2))" (( "(") (binary_expression "(local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)" (parenthesized_expression "(local_54[9] == 0)" (( "(") (binary_expression "local_54[9] == 0" (subscript_expression "local_54[9]" (identifier "local_54") ([ "[") (number_literal "9") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((byte)DAT_000bbe00 & 3) != 2)" (( "(") (binary_expression "((byte)DAT_000bbe00 & 3) != 2" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" (( "(") (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bbe00")) (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n                    *(int **)(iVar8 + 0x20) = local_54;\n                  }" ({ "{") (expression_statement "*(int **)(iVar8 + 0x20) = local_54;" (assignment_expression "*(int **)(iVar8 + 0x20) = local_54" (pointer_expression "*(int **)(iVar8 + 0x20)" (* "*") (cast_expression "(int **)(iVar8 + 0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x20)" (( "(") (binary_expression "iVar8 + 0x20" (identifier "iVar8") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "local_54")) (; ";")) (} "}")))) (} "}")))) (} "}")))) (} "}"))) (} "}")))) (if_statement "if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0))" (( "(") (binary_expression "(puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)" (parenthesized_expression "(puVar17 != puVar2 + 0x150)" (( "(") (binary_expression "puVar17 != puVar2 + 0x150" (identifier "puVar17") (!= "!=") (binary_expression "puVar2 + 0x150" (identifier "puVar2") (+ "+") (number_literal "0x150"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(local_54 + 0x15) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(local_54 + 0x15) & 8) == 0" (parenthesized_expression "(*(byte *)(local_54 + 0x15) & 8)" (( "(") (binary_expression "*(byte *)(local_54 + 0x15) & 8" (pointer_expression "*(byte *)(local_54 + 0x15)" (* "*") (cast_expression "(byte *)(local_54 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x15)" (( "(") (binary_expression "local_54 + 0x15" (identifier "local_54") (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }\n            param_3 = param_3 + local_4c;\n            if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }\n            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }\n          }" ({ "{") (if_statement "if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }" (if "if") (parenthesized_expression "(((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2))" (( "(") (binary_expression "((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)" (parenthesized_expression "((uVar7 & 0x402) != 0x400)" (( "(") (binary_expression "(uVar7 & 0x402) != 0x400" (parenthesized_expression "(uVar7 & 0x402)" (( "(") (binary_expression "uVar7 & 0x402" (identifier "uVar7") (& "&") (number_literal "0x402")) () ")")) (!= "!=") (number_literal "0x400")) () ")")) (|| "||") (parenthesized_expression "(((byte)DAT_000bbe00 & 3) == 2)" (( "(") (binary_expression "((byte)DAT_000bbe00 & 3) == 2" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" (( "(") (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bbe00")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);\n            }" ({ "{") (expression_statement "local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);" (assignment_expression "local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)" (identifier "local_4c") (= "=") (binary_expression "*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(puVar17 + 0x24)" (* "*") (cast_expression "(uint *)(puVar17 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x24)" (( "(") (binary_expression "puVar17 + 0x24" (identifier "puVar17") (+ "+") (number_literal "0x24")) () ")")))) (>> ">>") (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" (( "(") (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "param_3 = param_3 + local_4c;" (assignment_expression "param_3 = param_3 + local_4c" (identifier "param_3") (= "=") (binary_expression "param_3 + local_4c" (identifier "param_3") (+ "+") (identifier "local_4c"))) (; ";")) (if_statement "if (local_54[0xd] != 0) {\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }" (if "if") (parenthesized_expression "(local_54[0xd] != 0)" (( "(") (binary_expression "local_54[0xd] != 0" (subscript_expression "local_54[0xd]" (identifier "local_54") ([ "[") (number_literal "0xd") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);\n            }" ({ "{") (expression_statement "FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);" (call_expression "FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3)" (identifier "FUN_0002f480") (argument_list "(local_54[0xd],puVar2 + 0x150,&param_3)" (( "(") (subscript_expression "local_54[0xd]" (identifier "local_54") ([ "[") (number_literal "0xd") (] "]")) (, ",") (binary_expression "puVar2 + 0x150" (identifier "puVar2") (+ "+") (number_literal "0x150")) (, ",") (pointer_expression "&param_3" (& "&") (identifier "param_3")) () ")"))) (; ";")) (} "}"))) (if_statement "if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }" (if "if") (parenthesized_expression "((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0))" (( "(") (binary_expression "(local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)" (parenthesized_expression "(local_54[8] != 0)" (( "(") (binary_expression "local_54[8] != 0" (subscript_expression "local_54[8]" (identifier "local_54") ([ "[") (number_literal "8") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)" (( "(") (comma_expression "iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0" (assignment_expression "iVar8 = local_54[7]" (identifier "iVar8") (= "=") (subscript_expression "local_54[7]" (identifier "local_54") ([ "[") (number_literal "7") (] "]"))) (, ",") (binary_expression "(*(byte *)(iVar8 + 0x14) & 3) != 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x14) & 3)" (( "(") (binary_expression "*(byte *)(iVar8 + 0x14) & 3" (pointer_expression "*(byte *)(iVar8 + 0x14)" (* "*") (cast_expression "(byte *)(iVar8 + 0x14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              *(uint *)(local_54[8] + 0x1c) = param_3;\n              if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }\n              iVar8 = local_54[9];\n              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }\n            }" ({ "{") (expression_statement "*(uint *)(local_54[8] + 0x1c) = param_3;" (assignment_expression "*(uint *)(local_54[8] + 0x1c) = param_3" (pointer_expression "*(uint *)(local_54[8] + 0x1c)" (* "*") (cast_expression "(uint *)(local_54[8] + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54[8] + 0x1c)" (( "(") (binary_expression "local_54[8] + 0x1c" (subscript_expression "local_54[8]" (identifier "local_54") ([ "[") (number_literal "8") (] "]")) (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (if_statement "if (param_5 != 0) {\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }" (if "if") (parenthesized_expression "(param_5 != 0)" (( "(") (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));\n              }" ({ "{") (expression_statement "FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));" (call_expression "FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c))" (identifier "FUN_0001f080") (argument_list "(*(undefined4 *)(iVar8 + 0x1c))" (( "(") (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar8 = local_54[9];" (assignment_expression "iVar8 = local_54[9]" (identifier "iVar8") (= "=") (subscript_expression "local_54[9]" (identifier "local_54") ([ "[") (number_literal "9") (] "]"))) (; ";")) (if_statement "if (((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }" (if "if") (parenthesized_expression "(((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0))))" (( "(") (binary_expression "((iVar8 != 0) && (iVar8 != local_54[8])) &&\n                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))" (parenthesized_expression "((iVar8 != 0) && (iVar8 != local_54[8]))" (( "(") (binary_expression "(iVar8 != 0) && (iVar8 != local_54[8])" (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar8 != local_54[8])" (( "(") (binary_expression "iVar8 != local_54[8]" (identifier "iVar8") (!= "!=") (subscript_expression "local_54[8]" (identifier "local_54") ([ "[") (number_literal "8") (] "]"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))" (( "(") (parenthesized_expression "((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0))" (( "(") (binary_expression "(*(byte *)(local_54[7] + 0x14) & 2) != 0 ||\n                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)" (binary_expression "(*(byte *)(local_54[7] + 0x14) & 2) != 0" (parenthesized_expression "(*(byte *)(local_54[7] + 0x14) & 2)" (( "(") (binary_expression "*(byte *)(local_54[7] + 0x14) & 2" (pointer_expression "*(byte *)(local_54[7] + 0x14)" (* "*") (cast_expression "(byte *)(local_54[7] + 0x14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54[7] + 0x14)" (( "(") (binary_expression "local_54[7] + 0x14" (subscript_expression "local_54[7]" (identifier "local_54") ([ "[") (number_literal "7") (] "]")) (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((*(byte *)(local_54 + 0x15) & 0x40) != 0)" (( "(") (binary_expression "(*(byte *)(local_54 + 0x15) & 0x40) != 0" (parenthesized_expression "(*(byte *)(local_54 + 0x15) & 0x40)" (( "(") (binary_expression "*(byte *)(local_54 + 0x15) & 0x40" (pointer_expression "*(byte *)(local_54 + 0x15)" (* "*") (cast_expression "(byte *)(local_54 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x15)" (( "(") (binary_expression "local_54 + 0x15" (identifier "local_54") (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                iVar6 = *(int *)(local_54[7] + 0x20);\n                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;\n                if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }\n              }" ({ "{") (expression_statement "iVar6 = *(int *)(local_54[7] + 0x20);" (assignment_expression "iVar6 = *(int *)(local_54[7] + 0x20)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(local_54[7] + 0x20)" (* "*") (cast_expression "(int *)(local_54[7] + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54[7] + 0x20)" (( "(") (binary_expression "local_54[7] + 0x20" (subscript_expression "local_54[7]" (identifier "local_54") ([ "[") (number_literal "7") (] "]")) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(uint *)(iVar8 + 0x1c) = local_4c + iVar6;" (assignment_expression "*(uint *)(iVar8 + 0x1c) = local_4c + iVar6" (pointer_expression "*(uint *)(iVar8 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar8 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (binary_expression "local_4c + iVar6" (identifier "local_4c") (+ "+") (identifier "iVar6"))) (; ";")) (if_statement "if (param_5 != 0) {\n                  FUN_0001f080(iVar6);\n                }" (if "if") (parenthesized_expression "(param_5 != 0)" (( "(") (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  FUN_0001f080(iVar6);\n                }" ({ "{") (expression_statement "FUN_0001f080(iVar6);" (call_expression "FUN_0001f080(iVar6)" (identifier "FUN_0001f080") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n    iVar8 = local_54[2];\n    iRam000bbfcc = 0;\n    auStack_20[0] = param_3;\n    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);\n    piVar18 = DAT_000bbfd0;\n    piVar4 = DAT_000bbfd4;\n    if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }\n    DAT_000bbfd4 = piVar4;\n    DAT_000bbfd0 = piVar18;\n    iRam000bbfcc = 0;\n    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }\n    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }\n    break;" (case "case") (number_literal "1") (: ":") (expression_statement "iVar8 = local_54[2];" (assignment_expression "iVar8 = local_54[2]" (identifier "iVar8") (= "=") (subscript_expression "local_54[2]" (identifier "local_54") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iRam000bbfcc = 0;" (assignment_expression "iRam000bbfcc = 0" (identifier "iRam000bbfcc") (= "=") (number_literal "0")) (; ";")) (expression_statement "auStack_20[0] = param_3;" (assignment_expression "auStack_20[0] = param_3" (subscript_expression "auStack_20[0]" (identifier "auStack_20") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);" (call_expression "FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20)" (identifier "FUN_0002f480") (argument_list "(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20)" (( "(") (identifier "iVar8") (, ",") (pointer_expression "*(undefined4 *)(param_2 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (identifier "auStack_20") () ")"))) (; ";")) (expression_statement "piVar18 = DAT_000bbfd0;" (assignment_expression "piVar18 = DAT_000bbfd0" (identifier "piVar18") (= "=") (identifier "DAT_000bbfd0")) (; ";")) (expression_statement "piVar4 = DAT_000bbfd4;" (assignment_expression "piVar4 = DAT_000bbfd4" (identifier "piVar4") (= "=") (identifier "DAT_000bbfd4")) (; ";")) (if_statement "if (iRam000bbfcc == 1) {\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }\n    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }" (if "if") (parenthesized_expression "(iRam000bbfcc == 1)" (( "(") (binary_expression "iRam000bbfcc == 1" (identifier "iRam000bbfcc") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      piVar18 = local_54;\n      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }\n    }" ({ "{") (expression_statement "piVar18 = local_54;" (assignment_expression "piVar18 = local_54" (identifier "piVar18") (= "=") (identifier "local_54")) (; ";")) (if_statement "if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }" (if "if") (parenthesized_expression "((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54))" (( "(") (binary_expression "(DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)" (parenthesized_expression "(DAT_000bbfd0 != (int *)0x0)" (( "(") (binary_expression "DAT_000bbfd0 != (int *)0x0" (identifier "DAT_000bbfd0") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)" (( "(") (comma_expression "piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54" (assignment_expression "piVar18 = DAT_000bbfd0" (identifier "piVar18") (= "=") (identifier "DAT_000bbfd0")) (, ",") (binary_expression "DAT_000bbfd0 != local_54" (identifier "DAT_000bbfd0") (!= "!=") (identifier "local_54"))) () ")"))) () ")")) (compound_statement "{\n        uVar9 = 0x137c;\n        goto code_r0x000222ec;\n      }" ({ "{") (expression_statement "uVar9 = 0x137c;" (assignment_expression "uVar9 = 0x137c" (identifier "uVar9") (= "=") (number_literal "0x137c")) (; ";")) (goto_statement "goto code_r0x000222ec;" (goto "goto") (statement_identifier "code_r0x000222ec") (; ";")) (} "}"))) (} "}")) (else_clause "else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }" (else "else") (if_statement "if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }" (if "if") (parenthesized_expression "(((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54))" (( "(") (binary_expression "((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&\n            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)" (parenthesized_expression "((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0))" (( "(") (binary_expression "(iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)" (parenthesized_expression "(iRam000bbfcc == 2)" (( "(") (binary_expression "iRam000bbfcc == 2" (identifier "iRam000bbfcc") (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)" (( "(") (comma_expression "piVar4 = local_54, DAT_000bbfd4 != (int *)0x0" (assignment_expression "piVar4 = local_54" (identifier "piVar4") (= "=") (identifier "local_54")) (, ",") (binary_expression "DAT_000bbfd4 != (int *)0x0" (identifier "DAT_000bbfd4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)" (( "(") (comma_expression "piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54" (assignment_expression "piVar4 = DAT_000bbfd4" (identifier "piVar4") (= "=") (identifier "DAT_000bbfd4")) (, ",") (binary_expression "DAT_000bbfd4 != local_54" (identifier "DAT_000bbfd4") (!= "!=") (identifier "local_54"))) () ")"))) () ")")) (compound_statement "{\n      uVar9 = 0x1385;\ncode_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);\n      piVar18 = DAT_000bbfd0;\n      piVar4 = DAT_000bbfd4;\n    }" ({ "{") (expression_statement "uVar9 = 0x1385;" (assignment_expression "uVar9 = 0x1385" (identifier "uVar9") (= "=") (number_literal "0x1385")) (; ";")) (labeled_statement "code_r0x000222ec:\n      FUN_00031780("../../ld/ldlang.c",uVar9);" (statement_identifier "code_r0x000222ec") (: ":") (expression_statement "FUN_00031780("../../ld/ldlang.c",uVar9);" (call_expression "FUN_00031780("../../ld/ldlang.c",uVar9)" (identifier "FUN_00031780") (argument_list "("../../ld/ldlang.c",uVar9)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (identifier "uVar9") () ")"))) (; ";"))) (expression_statement "piVar18 = DAT_000bbfd0;" (assignment_expression "piVar18 = DAT_000bbfd0" (identifier "piVar18") (= "=") (identifier "DAT_000bbfd0")) (; ";")) (expression_statement "piVar4 = DAT_000bbfd4;" (assignment_expression "piVar4 = DAT_000bbfd4" (identifier "piVar4") (= "=") (identifier "DAT_000bbfd4")) (; ";")) (} "}"))))) (expression_statement "DAT_000bbfd4 = piVar4;" (assignment_expression "DAT_000bbfd4 = piVar4" (identifier "DAT_000bbfd4") (= "=") (identifier "piVar4")) (; ";")) (expression_statement "DAT_000bbfd0 = piVar18;" (assignment_expression "DAT_000bbfd0 = piVar18" (identifier "DAT_000bbfd0") (= "=") (identifier "piVar18")) (; ";")) (expression_statement "iRam000bbfcc = 0;" (assignment_expression "iRam000bbfcc = 0" (identifier "iRam000bbfcc") (= "=") (number_literal "0")) (; ";")) (if_statement "if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }" (if "if") (parenthesized_expression "(((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0'))))" (( "(") (binary_expression "((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&\n       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))" (parenthesized_expression "((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4)" (( "(") (binary_expression "(*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4" (parenthesized_expression "(*(uint *)(iVar8 + 0xc) & 0xfffffffd)" (( "(") (binary_expression "*(uint *)(iVar8 + 0xc) & 0xfffffffd" (pointer_expression "*(uint *)(iVar8 + 0xc)" (* "*") (cast_expression "(uint *)(iVar8 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xc)" (( "(") (binary_expression "iVar8 + 0xc" (identifier "iVar8") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0xfffffffd")) () ")")) (== "==") (number_literal "4")) () ")")) (&& "&&") (parenthesized_expression "((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))" (( "(") (parenthesized_expression "(**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0'))" (( "(") (binary_expression "**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')" (binary_expression "**(char **)(iVar8 + 0x10) != '.'" (pointer_expression "**(char **)(iVar8 + 0x10)" (* "*") (pointer_expression "*(char **)(iVar8 + 0x10)" (* "*") (cast_expression "(char **)(iVar8 + 0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")"))))) (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) (|| "||") (parenthesized_expression "((*(char **)(iVar8 + 0x10))[1] != '\0')" (( "(") (binary_expression "(*(char **)(iVar8 + 0x10))[1] != '\0'" (subscript_expression "(*(char **)(iVar8 + 0x10))[1]" (parenthesized_expression "(*(char **)(iVar8 + 0x10))" (( "(") (pointer_expression "*(char **)(iVar8 + 0x10)" (* "*") (cast_expression "(char **)(iVar8 + 0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) () ")")) ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;\n    }" ({ "{") (expression_statement "*(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;" (assignment_expression "*(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10" (pointer_expression "*(byte *)(param_2 + 0x54)" (* "*") (cast_expression "(byte *)(param_2 + 0x54)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (binary_expression "*(byte *)(param_2 + 0x54) | 0x10" (pointer_expression "*(byte *)(param_2 + 0x54)" (* "*") (cast_expression "(byte *)(param_2 + 0x54)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")")))) (| "|") (number_literal "0x10"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)(param_2 + 0x54) & 8) == 0) {\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 0x54) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x54) & 8) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x54) & 8)" (( "(") (binary_expression "*(byte *)(param_2 + 0x54) & 8" (pointer_expression "*(byte *)(param_2 + 0x54)" (* "*") (cast_expression "(byte *)(param_2 + 0x54)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }\n    }" ({ "{") (if_statement "if (DAT_000bbdac == param_2) {\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }\n      else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }" (if "if") (parenthesized_expression "(DAT_000bbdac == param_2)" (( "(") (binary_expression "DAT_000bbdac == param_2" (identifier "DAT_000bbdac") (== "==") (identifier "param_2")) () ")")) (compound_statement "{\n        iVar8 = FUN_00021940("*default*",0);\n        *(uint *)(iVar8 + 0x1c) = auStack_20[0];\n        param_3 = auStack_20[0];\n      }" ({ "{") (expression_statement "iVar8 = FUN_00021940("*default*",0);" (assignment_expression "iVar8 = FUN_00021940("*default*",0)" (identifier "iVar8") (= "=") (call_expression "FUN_00021940("*default*",0)" (identifier "FUN_00021940") (argument_list "("*default*",0)" (( "(") (string_literal ""*default*"" (" """) (string_content "*default*") (" """)) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(uint *)(iVar8 + 0x1c) = auStack_20[0];" (assignment_expression "*(uint *)(iVar8 + 0x1c) = auStack_20[0]" (pointer_expression "*(uint *)(iVar8 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar8 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (subscript_expression "auStack_20[0]" (identifier "auStack_20") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "param_3 = auStack_20[0];" (assignment_expression "param_3 = auStack_20[0]" (identifier "param_3") (= "=") (subscript_expression "auStack_20[0]" (identifier "auStack_20") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")) (else_clause "else if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }" (else "else") (if_statement "if (auStack_20[0] != param_3) {\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }" (if "if") (parenthesized_expression "(auStack_20[0] != param_3)" (( "(") (binary_expression "auStack_20[0] != param_3" (subscript_expression "auStack_20[0]" (identifier "auStack_20") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "param_3")) () ")")) (compound_statement "{\n        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);\n        local_54 = (int *)*local_54;\n        param_3 = auStack_20[0];\n        if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }\n      }" ({ "{") (expression_statement "FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);" (call_expression "FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3)" (identifier "FUN_00021400") (argument_list "(*(undefined4 *)(param_2 + 0x1c),param_3)" (( "(") (pointer_expression "*(undefined4 *)(param_2 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "local_54 = (int *)*local_54;" (assignment_expression "local_54 = (int *)*local_54" (identifier "local_54") (= "=") (cast_expression "(int *)*local_54" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_54" (* "*") (identifier "local_54")))) (; ";")) (expression_statement "param_3 = auStack_20[0];" (assignment_expression "param_3 = auStack_20[0]" (identifier "param_3") (= "=") (subscript_expression "auStack_20[0]" (identifier "auStack_20") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if ((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }" (if "if") (parenthesized_expression "((*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5))))" (( "(") (binary_expression "(*(int *)(param_2 + 0x50) != 3) &&\n           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))" (parenthesized_expression "(*(int *)(param_2 + 0x50) != 3)" (( "(") (binary_expression "*(int *)(param_2 + 0x50) != 3" (pointer_expression "*(int *)(param_2 + 0x50)" (* "*") (cast_expression "(int *)(param_2 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x50)" (( "(") (binary_expression "param_2 + 0x50" (identifier "param_2") (+ "+") (number_literal "0x50")) () ")")))) (!= "!=") (number_literal "3")) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))" (( "(") (parenthesized_expression "(*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5))" (( "(") (binary_expression "*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)" (binary_expression "*(int *)(param_2 + 0x50) != 2" (pointer_expression "*(int *)(param_2 + 0x50)" (* "*") (cast_expression "(int *)(param_2 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x50)" (( "(") (binary_expression "param_2 + 0x50" (identifier "param_2") (+ "+") (number_literal "0x50")) () ")")))) (!= "!=") (number_literal "2")) (|| "||") (parenthesized_expression "(*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)" (( "(") (binary_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" (* "*") (cast_expression "(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_000bbe30 + 4) + 4)" (( "(") (binary_expression "*(int *)(DAT_000bbe30 + 4) + 4" (pointer_expression "*(int *)(DAT_000bbe30 + 4)" (* "*") (cast_expression "(int *)(DAT_000bbe30 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000bbe30 + 4)" (( "(") (binary_expression "DAT_000bbe30 + 4" (identifier "DAT_000bbe30") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "5")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);\n          *puVar1 = *puVar1 | 1;\n        }" ({ "{") (expression_statement "puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);" (assignment_expression "puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(*(int *)(param_2 + 0x1c) + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0x1c) + 0x14)" (( "(") (binary_expression "*(int *)(param_2 + 0x1c) + 0x14" (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (; ";")) (expression_statement "*puVar1 = *puVar1 | 1;" (assignment_expression "*puVar1 = *puVar1 | 1" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 | 1" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))))) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:" (case "case") (number_literal "3") (: ":")) (case_statement "case 10:" (case "case") (number_literal "10") (: ":")) (case_statement "case 0xb:" (case "case") (number_literal "0xb") (: ":")) (case_statement "case 0xe:\n    goto code_r0x00021b1c;" (case "case") (number_literal "0xe") (: ":") (goto_statement "goto code_r0x00021b1c;" (goto "goto") (statement_identifier "code_r0x00021b1c") (; ";"))) (case_statement "case 4:\n    goto code_r0x00021d85;" (case "case") (number_literal "4") (: ":") (goto_statement "goto code_r0x00021d85;" (goto "goto") (statement_identifier "code_r0x00021d85") (; ";"))) (case_statement "case 5:\n    if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    iVar6 = *(int *)(*param_1 + 8);\n    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }\n    break;" (case "case") (number_literal "5") (: ":") (if_statement "if (param_4 != (undefined4 *)0x0) {\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }" (if "if") (parenthesized_expression "(param_4 != (undefined4 *)0x0)" (( "(") (binary_expression "param_4 != (undefined4 *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar8 = *(int *)(local_54[2] + 0x94);\n      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);\n      if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }\n      if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }\n    }" ({ "{") (expression_statement "iVar8 = *(int *)(local_54[2] + 0x94);" (assignment_expression "iVar8 = *(int *)(local_54[2] + 0x94)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(local_54[2] + 0x94)" (* "*") (cast_expression "(int *)(local_54[2] + 0x94)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54[2] + 0x94)" (( "(") (binary_expression "local_54[2] + 0x94" (subscript_expression "local_54[2]" (identifier "local_54") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);" (assignment_expression "iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(*(int *)(iVar8 + 4) + 0x164))\n                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20)" (parenthesized_expression "(**(code **)(*(int *)(iVar8 + 4) + 0x164))" (( "(") (pointer_expression "**(code **)(*(int *)(iVar8 + 4) + 0x164)" (* "*") (pointer_expression "*(code **)(*(int *)(iVar8 + 4) + 0x164)" (* "*") (cast_expression "(code **)(*(int *)(iVar8 + 4) + 0x164)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(iVar8 + 4) + 0x164)" (( "(") (binary_expression "*(int *)(iVar8 + 4) + 0x164" (pointer_expression "*(int *)(iVar8 + 4)" (* "*") (cast_expression "(int *)(iVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x164")) () ")"))))) () ")")) (argument_list "(iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20)" (( "(") (identifier "iVar8") (, ",") (subscript_expression "local_54[2]" (identifier "local_54") ([ "[") (number_literal "2") (] "]")) (, ",") (identifier "PTR_DAT_000bafb8") (, ",") (identifier "auStack_20") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);\n        FUN_00031730(uVar9);\n      }" ({ "{") (expression_statement "uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"%F%P: can\'t relax section: %E\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: can\'t relax section: %E\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: can\'t relax section: %E\n"" (" """) (string_content "%F%P: can") (escape_sequence "\'") (string_content "t relax section: %E") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031730(uVar9);" (call_expression "FUN_00031730(uVar9)" (identifier "FUN_00031730") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (} "}"))) (if_statement "if (auStack_20[0] != 0) {\n        *param_4 = 1;\n      }" (if "if") (parenthesized_expression "(auStack_20[0] != 0)" (( "(") (binary_expression "auStack_20[0] != 0" (subscript_expression "auStack_20[0]" (identifier "auStack_20") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *param_4 = 1;\n      }" ({ "{") (expression_statement "*param_4 = 1;" (assignment_expression "*param_4 = 1" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar8 = *(int *)(param_2 + 0x1c);" (assignment_expression "iVar8 = *(int *)(param_2 + 0x1c)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(*param_1 + 8);" (assignment_expression "iVar6 = *(int *)(*param_1 + 8)" (identifier "iVar6") (= "=") (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" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }\n    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }" (if "if") (parenthesized_expression "((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200)" (( "(") (binary_expression "(*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200" (parenthesized_expression "(*(ushort *)(iVar6 + 0x18) & 0x380)" (( "(") (binary_expression "*(ushort *)(iVar6 + 0x18) & 0x380" (pointer_expression "*(ushort *)(iVar6 + 0x18)" (* "*") (cast_expression "(ushort *)(iVar6 + 0x18)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18)" (( "(") (binary_expression "iVar6 + 0x18" (identifier "iVar6") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "0x380")) () ")")) (== "==") (number_literal "0x200")) () ")")) (compound_statement "{\n      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);\n    }" ({ "{") (expression_statement "*(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);" (assignment_expression "*(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c)" (pointer_expression "*(int *)(iVar6 + 0x38)" (* "*") (cast_expression "(int *)(iVar6 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x38)" (( "(") (binary_expression "iVar6 + 0x38" (identifier "iVar6") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "*(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c)" (pointer_expression "*(int *)(iVar6 + 0x1c)" (* "*") (cast_expression "(int *)(iVar6 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1c)" (( "(") (binary_expression "iVar6 + 0x1c" (identifier "iVar6") (+ "+") (number_literal "0x1c")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar8 + 0x1c)" (* "*") (cast_expression "(int *)(iVar8 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (} "}")) (else_clause "else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }" (else "else") (if_statement "if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }\n    else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }" (if "if") (parenthesized_expression "(((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0))" (( "(") (binary_expression "((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)" (parenthesized_expression "((*(byte *)(iVar6 + 0x15) & 0x80) == 0)" (( "(") (binary_expression "(*(byte *)(iVar6 + 0x15) & 0x80) == 0" (parenthesized_expression "(*(byte *)(iVar6 + 0x15) & 0x80)" (( "(") (binary_expression "*(byte *)(iVar6 + 0x15) & 0x80" (pointer_expression "*(byte *)(iVar6 + 0x15)" (* "*") (cast_expression "(byte *)(iVar6 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x15)" (( "(") (binary_expression "iVar6 + 0x15" (identifier "iVar6") (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(param_2 + 0x54) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x54) & 8) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x54) & 8)" (( "(") (binary_expression "*(byte *)(param_2 + 0x54) & 8" (pointer_expression "*(byte *)(param_2 + 0x54)" (* "*") (cast_expression "(byte *)(param_2 + 0x54)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      uVar7 = *(uint *)(param_2 + 0x40);\n      if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }\n      if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      iVar16 = 1 << ((byte)uVar7 & 0x1f);\n      uVar7 = (param_3 - 1) + iVar16 & -iVar16;\n      if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }\n      uVar9 = DAT_000bb94c;\n      iVar16 = *(int *)(iVar8 + 0x1c);\n      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;\n      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));\n      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }\n    }" ({ "{") (expression_statement "uVar7 = *(uint *)(param_2 + 0x40);" (assignment_expression "uVar7 = *(uint *)(param_2 + 0x40)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(param_2 + 0x40)" (* "*") (cast_expression "(uint *)(param_2 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x40)" (( "(") (binary_expression "param_2 + 0x40" (identifier "param_2") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (if_statement "if (uVar7 == 0xffffffff) {\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }\n      else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }" (if "if") (parenthesized_expression "(uVar7 == 0xffffffff)" (( "(") (binary_expression "uVar7 == 0xffffffff" (identifier "uVar7") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }" ({ "{") (expression_statement "uVar7 = *(uint *)(iVar6 + 0x40);" (assignment_expression "uVar7 = *(uint *)(iVar6 + 0x40)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(iVar6 + 0x40)" (* "*") (cast_expression "(uint *)(iVar6 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x40)" (( "(") (binary_expression "iVar6 + 0x40" (identifier "iVar6") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }" (else "else") (compound_statement "{\n        *(uint *)(iVar6 + 0x40) = uVar7;\n      }" ({ "{") (expression_statement "*(uint *)(iVar6 + 0x40) = uVar7;" (assignment_expression "*(uint *)(iVar6 + 0x40) = uVar7" (pointer_expression "*(uint *)(iVar6 + 0x40)" (* "*") (cast_expression "(uint *)(iVar6 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x40)" (( "(") (binary_expression "iVar6 + 0x40" (identifier "iVar6") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (} "}")))) (if_statement "if (*(uint *)(iVar8 + 0x40) < uVar7) {\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }" (if "if") (parenthesized_expression "(*(uint *)(iVar8 + 0x40) < uVar7)" (( "(") (binary_expression "*(uint *)(iVar8 + 0x40) < uVar7" (pointer_expression "*(uint *)(iVar8 + 0x40)" (* "*") (cast_expression "(uint *)(iVar8 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x40)" (( "(") (binary_expression "iVar8 + 0x40" (identifier "iVar8") (+ "+") (number_literal "0x40")) () ")")))) (< "<") (identifier "uVar7")) () ")")) (compound_statement "{\n        *(uint *)(iVar8 + 0x40) = uVar7;\n        uVar7 = *(uint *)(iVar6 + 0x40);\n      }" ({ "{") (expression_statement "*(uint *)(iVar8 + 0x40) = uVar7;" (assignment_expression "*(uint *)(iVar8 + 0x40) = uVar7" (pointer_expression "*(uint *)(iVar8 + 0x40)" (* "*") (cast_expression "(uint *)(iVar8 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x40)" (( "(") (binary_expression "iVar8 + 0x40" (identifier "iVar8") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar7 = *(uint *)(iVar6 + 0x40);" (assignment_expression "uVar7 = *(uint *)(iVar6 + 0x40)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(iVar6 + 0x40)" (* "*") (cast_expression "(uint *)(iVar6 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x40)" (( "(") (binary_expression "iVar6 + 0x40" (identifier "iVar6") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar16 = 1 << ((byte)uVar7 & 0x1f);" (assignment_expression "iVar16 = 1 << ((byte)uVar7 & 0x1f)" (identifier "iVar16") (= "=") (binary_expression "1 << ((byte)uVar7 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)uVar7 & 0x1f)" (( "(") (binary_expression "(byte)uVar7 & 0x1f" (cast_expression "(byte)uVar7" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar7")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar7 = (param_3 - 1) + iVar16 & -iVar16;" (assignment_expression "uVar7 = (param_3 - 1) + iVar16 & -iVar16" (identifier "uVar7") (= "=") (binary_expression "(param_3 - 1) + iVar16 & -iVar16" (binary_expression "(param_3 - 1) + iVar16" (parenthesized_expression "(param_3 - 1)" (( "(") (binary_expression "param_3 - 1" (identifier "param_3") (- "-") (number_literal "1")) () ")")) (+ "+") (identifier "iVar16")) (& "&") (unary_expression "-iVar16" (- "-") (identifier "iVar16")))) (; ";")) (if_statement "if (uVar7 != param_3) {\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }" (if "if") (parenthesized_expression "(uVar7 != param_3)" (( "(") (binary_expression "uVar7 != param_3" (identifier "uVar7") (!= "!=") (identifier "param_3")) () ")")) (compound_statement "{\n        FUN_00021400(iVar8,param_3);\n        param_3 = uVar7;\n      }" ({ "{") (expression_statement "FUN_00021400(iVar8,param_3);" (call_expression "FUN_00021400(iVar8,param_3)" (identifier "FUN_00021400") (argument_list "(iVar8,param_3)" (( "(") (identifier "iVar8") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "param_3 = uVar7;" (assignment_expression "param_3 = uVar7" (identifier "param_3") (= "=") (identifier "uVar7")) (; ";")) (} "}"))) (expression_statement "uVar9 = DAT_000bb94c;" (assignment_expression "uVar9 = DAT_000bb94c" (identifier "uVar9") (= "=") (identifier "DAT_000bb94c")) (; ";")) (expression_statement "iVar16 = *(int *)(iVar8 + 0x1c);" (assignment_expression "iVar16 = *(int *)(iVar8 + 0x1c)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar8 + 0x1c)" (* "*") (cast_expression "(int *)(iVar8 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(uint *)(iVar6 + 0x38) = param_3 - iVar16;" (assignment_expression "*(uint *)(iVar6 + 0x38) = param_3 - iVar16" (pointer_expression "*(uint *)(iVar6 + 0x38)" (* "*") (cast_expression "(uint *)(iVar6 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x38)" (( "(") (binary_expression "iVar6 + 0x38" (identifier "iVar6") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "param_3 - iVar16" (identifier "param_3") (- "-") (identifier "iVar16"))) (; ";")) (expression_statement "param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));" (assignment_expression "param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f))" (identifier "param_3") (= "=") (binary_expression "param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f))" (identifier "param_3") (+ "+") (parenthesized_expression "(*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f))" (( "(") (binary_expression "*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f)" (pointer_expression "*(uint *)(iVar6 + 0x24)" (* "*") (cast_expression "(uint *)(iVar6 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x24)" (( "(") (binary_expression "iVar6 + 0x24" (identifier "iVar6") (+ "+") (number_literal "0x24")) () ")")))) (>> ">>") (parenthesized_expression "((byte)uVar9 & 0x1f)" (( "(") (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar9")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }" (if "if") (parenthesized_expression "((*(byte *)(iVar8 + 0x15) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(iVar8 + 0x15) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x15) & 8)" (( "(") (binary_expression "*(byte *)(iVar8 + 0x15) & 8" (pointer_expression "*(byte *)(iVar8 + 0x15)" (* "*") (cast_expression "(byte *)(iVar8 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x15)" (( "(") (binary_expression "iVar8 + 0x15" (identifier "iVar8") (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);\n      }" ({ "{") (expression_statement "*(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);" (assignment_expression "*(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f)" (pointer_expression "*(uint *)(iVar8 + 0x24)" (* "*") (cast_expression "(uint *)(iVar8 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x24)" (( "(") (binary_expression "iVar8 + 0x24" (identifier "iVar8") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (binary_expression "param_3 - iVar16 << ((byte)uVar9 & 0x1f)" (binary_expression "param_3 - iVar16" (identifier "param_3") (- "-") (identifier "iVar16")) (<< "<<") (parenthesized_expression "((byte)uVar9 & 0x1f)" (( "(") (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar9")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }" (else "else") (compound_statement "{\n      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);\n    }" ({ "{") (expression_statement "*(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);" (assignment_expression "*(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c)" (pointer_expression "*(uint *)(iVar6 + 0x38)" (* "*") (cast_expression "(uint *)(iVar6 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x38)" (( "(") (binary_expression "iVar6 + 0x38" (identifier "iVar6") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "param_3 - *(int *)(iVar8 + 0x1c)" (identifier "param_3") (- "-") (pointer_expression "*(int *)(iVar8 + 0x1c)" (* "*") (cast_expression "(int *)(iVar8 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (} "}")))))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);\n    goto code_r0x00021b1c;" (case "case") (number_literal "6") (: ":") (expression_statement "uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);" (assignment_expression "uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c)" (identifier "uRam000bbe40") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (goto_statement "goto code_r0x00021b1c;" (goto "goto") (statement_identifier "code_r0x00021b1c") (; ";"))) (case_statement "case 7:\n    local_54[4] = *(int *)(param_2 + 0x1c);\n    break;" (case "case") (number_literal "7") (: ":") (expression_statement "local_54[4] = *(int *)(param_2 + 0x1c);" (assignment_expression "local_54[4] = *(int *)(param_2 + 0x1c)" (subscript_expression "local_54[4]" (identifier "local_54") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\n    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[5] = *(int *)(param_2 + 0x1c);\n    FUN_0002f480(local_54[3],puVar5,&param_3);\n    if (4 < local_54[2] - 0x11aU) {\n                    \n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }\n    bVar13 = (byte)DAT_000bb94c;\n    uVar7 = 1 << (bVar13 & 0x1f);\n    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }\n    break;" (case "case") (number_literal "8") (: ":") (expression_statement "local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);" (assignment_expression "local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (subscript_expression "local_54[6]" (identifier "local_54") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (identifier "param_3") (- "-") (pointer_expression "*(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0x1c) + 0x1c)" (( "(") (binary_expression "*(int *)(param_2 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (expression_statement "local_54[5] = *(int *)(param_2 + 0x1c);" (assignment_expression "local_54[5] = *(int *)(param_2 + 0x1c)" (subscript_expression "local_54[5]" (identifier "local_54") ([ "[") (number_literal "5") (] "]")) (= "=") (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "FUN_0002f480(local_54[3],puVar5,&param_3);" (call_expression "FUN_0002f480(local_54[3],puVar5,&param_3)" (identifier "FUN_0002f480") (argument_list "(local_54[3],puVar5,&param_3)" (( "(") (subscript_expression "local_54[3]" (identifier "local_54") ([ "[") (number_literal "3") (] "]")) (, ",") (identifier "puVar5") (, ",") (pointer_expression "&param_3" (& "&") (identifier "param_3")) () ")"))) (; ";")) (if_statement "if (4 < local_54[2] - 0x11aU) {\n                    \n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }" (if "if") (parenthesized_expression "(4 < local_54[2] - 0x11aU)" (( "(") (binary_expression "4 < local_54[2] - 0x11aU" (number_literal "4") (< "<") (binary_expression "local_54[2] - 0x11aU" (subscript_expression "local_54[2]" (identifier "local_54") ([ "[") (number_literal "2") (] "]")) (- "-") (number_literal "0x11aU"))) () ")")) (compound_statement "{\n                    \n      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);\n    }" ({ "{") (expression_statement "FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);" (call_expression "FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX)" (identifier "FUN_00030840") (argument_list "("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x14f8") (, ",") (string_literal ""lang_size_sections_1"" (" """) (string_content "lang_size_sections_1") (" """)) (, ",") (identifier "extraout_ECX") () ")"))) (; ";")) (} "}"))) (expression_statement "bVar13 = (byte)DAT_000bb94c;" (assignment_expression "bVar13 = (byte)DAT_000bb94c" (identifier "bVar13") (= "=") (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c"))) (; ";")) (expression_statement "uVar7 = 1 << (bVar13 & 0x1f);" (assignment_expression "uVar7 = 1 << (bVar13 & 0x1f)" (identifier "uVar7") (= "=") (binary_expression "1 << (bVar13 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(bVar13 & 0x1f)" (( "(") (binary_expression "bVar13 & 0x1f" (identifier "bVar13") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }" (if "if") (parenthesized_expression "(uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4))" (( "(") (binary_expression "uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" (identifier "uVar7") (< "<") (pointer_expression "*(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" (* "*") (cast_expression "(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" (( "(") (binary_expression "&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4" (pointer_expression "&UNK_0004ed1c" (& "&") (identifier "UNK_0004ed1c")) (+ "+") (binary_expression "(local_54[2] - 0x11aU) * 4" (parenthesized_expression "(local_54[2] - 0x11aU)" (( "(") (binary_expression "local_54[2] - 0x11aU" (subscript_expression "local_54[2]" (identifier "local_54") ([ "[") (number_literal "2") (] "]")) (- "-") (number_literal "0x11aU")) () ")")) (* "*") (number_literal "4"))) () ")"))))) () ")")) (compound_statement "{\n      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);\n    }" ({ "{") (expression_statement "uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);" (assignment_expression "uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" (* "*") (cast_expression "(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)" (( "(") (binary_expression "&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4" (pointer_expression "&UNK_0004ed1c" (& "&") (identifier "UNK_0004ed1c")) (+ "+") (binary_expression "(local_54[2] - 0x11aU) * 4" (parenthesized_expression "(local_54[2] - 0x11aU)" (( "(") (binary_expression "local_54[2] - 0x11aU" (subscript_expression "local_54[2]" (identifier "local_54") ([ "[") (number_literal "2") (] "]")) (- "-") (number_literal "0x11aU")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar8 = *(int *)(param_2 + 0x1c);" (assignment_expression "iVar8 = *(int *)(param_2 + 0x1c)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;" (assignment_expression "param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3" (identifier "param_3") (= "=") (binary_expression "(uVar7 >> (bVar13 & 0x1f)) + param_3" (parenthesized_expression "(uVar7 >> (bVar13 & 0x1f))" (( "(") (binary_expression "uVar7 >> (bVar13 & 0x1f)" (identifier "uVar7") (>> ">>") (parenthesized_expression "(bVar13 & 0x1f)" (( "(") (binary_expression "bVar13 & 0x1f" (identifier "bVar13") (& "&") (number_literal "0x1f")) () ")"))) () ")")) (+ "+") (identifier "param_3"))) (; ";")) (if_statement "if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }" (if "if") (parenthesized_expression "((*(byte *)(iVar8 + 0x15) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(iVar8 + 0x15) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x15) & 8)" (( "(") (binary_expression "*(byte *)(iVar8 + 0x15) & 8" (pointer_expression "*(byte *)(iVar8 + 0x15)" (* "*") (cast_expression "(byte *)(iVar8 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x15)" (( "(") (binary_expression "iVar8 + 0x15" (identifier "iVar8") (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);\n    }" ({ "{") (expression_statement "*(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);" (assignment_expression "*(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f)" (pointer_expression "*(uint *)(iVar8 + 0x24)" (* "*") (cast_expression "(uint *)(iVar8 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x24)" (( "(") (binary_expression "iVar8 + 0x24" (identifier "iVar8") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (binary_expression "param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f)" (binary_expression "param_3 - *(int *)(iVar8 + 0x1c)" (identifier "param_3") (- "-") (pointer_expression "*(int *)(iVar8 + 0x1c)" (* "*") (cast_expression "(int *)(iVar8 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")"))))) (<< "<<") (parenthesized_expression "(bVar13 & 0x1f)" (( "(") (binary_expression "bVar13 & 0x1f" (identifier "bVar13") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 9:\n    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    local_54[8] = *(int *)(param_2 + 0x1c);\n    iVar6 = bfd_get_reloc_size(local_54[3]);\n    iVar8 = *(int *)(param_2 + 0x1c);\n    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;\n    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }\n    break;" (case "case") (number_literal "9") (: ":") (expression_statement "local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);" (assignment_expression "local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (subscript_expression "local_54[9]" (identifier "local_54") ([ "[") (number_literal "9") (] "]")) (= "=") (binary_expression "param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (identifier "param_3") (- "-") (pointer_expression "*(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0x1c) + 0x1c)" (( "(") (binary_expression "*(int *)(param_2 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (expression_statement "local_54[8] = *(int *)(param_2 + 0x1c);" (assignment_expression "local_54[8] = *(int *)(param_2 + 0x1c)" (subscript_expression "local_54[8]" (identifier "local_54") ([ "[") (number_literal "8") (] "]")) (= "=") (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "iVar6 = bfd_get_reloc_size(local_54[3]);" (assignment_expression "iVar6 = bfd_get_reloc_size(local_54[3])" (identifier "iVar6") (= "=") (call_expression "bfd_get_reloc_size(local_54[3])" (identifier "bfd_get_reloc_size") (argument_list "(local_54[3])" (( "(") (subscript_expression "local_54[3]" (identifier "local_54") ([ "[") (number_literal "3") (] "]")) () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)(param_2 + 0x1c);" (assignment_expression "iVar8 = *(int *)(param_2 + 0x1c)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;" (assignment_expression "param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3" (identifier "param_3") (= "=") (binary_expression "(iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3" (parenthesized_expression "(iVar6 >> ((byte)DAT_000bb94c & 0x1f))" (( "(") (binary_expression "iVar6 >> ((byte)DAT_000bb94c & 0x1f)" (identifier "iVar6") (>> ">>") (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" (( "(") (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c")) (& "&") (number_literal "0x1f")) () ")"))) () ")")) (+ "+") (identifier "param_3"))) (; ";")) (if_statement "if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }" (if "if") (parenthesized_expression "((*(byte *)(iVar8 + 0x15) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(iVar8 + 0x15) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x15) & 8)" (( "(") (binary_expression "*(byte *)(iVar8 + 0x15) & 8" (pointer_expression "*(byte *)(iVar8 + 0x15)" (* "*") (cast_expression "(byte *)(iVar8 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x15)" (( "(") (binary_expression "iVar8 + 0x15" (identifier "iVar8") (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);\n    }" ({ "{") (expression_statement "*(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);" (assignment_expression "*(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f)" (pointer_expression "*(uint *)(iVar8 + 0x24)" (* "*") (cast_expression "(uint *)(iVar8 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x24)" (( "(") (binary_expression "iVar8 + 0x24" (identifier "iVar8") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (binary_expression "param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f)" (binary_expression "param_3 - *(int *)(iVar8 + 0x1c)" (identifier "param_3") (- "-") (pointer_expression "*(int *)(iVar8 + 0x1c)" (* "*") (cast_expression "(int *)(iVar8 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")"))))) (<< "<<") (parenthesized_expression "((byte)DAT_000bb94c & 0x1f)" (( "(") (binary_expression "(byte)DAT_000bb94c & 0x1f" (cast_expression "(byte)DAT_000bb94c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bb94c")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xc:\n    local_54[3] = 0;\n    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);\n    break;" (case "case") (number_literal "0xc") (: ":") (expression_statement "local_54[3] = 0;" (assignment_expression "local_54[3] = 0" (subscript_expression "local_54[3]" (identifier "local_54") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);" (assignment_expression "local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (subscript_expression "local_54[2]" (identifier "local_54") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (identifier "param_3") (- "-") (pointer_expression "*(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(param_2 + 0x1c) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0x1c) + 0x1c)" (( "(") (binary_expression "*(int *)(param_2 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xd:\n    goto code_r0x00021d85;" (case "case") (number_literal "0xd") (: ":") (goto_statement "goto code_r0x00021d85;" (goto "goto") (statement_identifier "code_r0x00021d85") (; ";"))) (case_statement "case 0xf:\ncode_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);\n    break;" (case "case") (number_literal "0xf") (: ":") (labeled_statement "code_r0x00021d85:\n    param_3 = FUN_00021aa0(param_3,param_4,param_5);" (statement_identifier "code_r0x00021d85") (: ":") (expression_statement "param_3 = FUN_00021aa0(param_3,param_4,param_5);" (assignment_expression "param_3 = FUN_00021aa0(param_3,param_4,param_5)" (identifier "param_3") (= "=") (call_expression "FUN_00021aa0(param_3,param_4,param_5)" (identifier "FUN_00021aa0") (argument_list "(param_3,param_4,param_5)" (( "(") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")")))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    FUN_00031780("../../ld/ldlang.c",0x15a7);" (default "default") (: ":") (expression_statement "FUN_00031780("../../ld/ldlang.c",0x15a7);" (call_expression "FUN_00031780("../../ld/ldlang.c",0x15a7)" (identifier "FUN_00031780") (argument_list "("../../ld/ldlang.c",0x15a7)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x15a7") () ")"))) (; ";"))) (} "}"))) (labeled_statement "LAB_00021b28:\n  piVar18 = (int *)*local_54;" (statement_identifier "LAB_00021b28") (: ":") (expression_statement "piVar18 = (int *)*local_54;" (assignment_expression "piVar18 = (int *)*local_54" (identifier "piVar18") (= "=") (cast_expression "(int *)*local_54" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_54" (* "*") (identifier "local_54")))) (; ";"))) (expression_statement "param_1 = local_54;" (assignment_expression "param_1 = local_54" (identifier "param_1") (= "=") (identifier "local_54")) (; ";")) (goto_statement "goto joined_r0x00021ad5;" (goto "goto") (statement_identifier "joined_r0x00021ad5") (; ";")) (labeled_statement "code_r0x00021b1c:\n  goto LAB_00021b28;" (statement_identifier "code_r0x00021b1c") (: ":") (goto_statement "goto LAB_00021b28;" (goto "goto") (statement_identifier "LAB_00021b28") (; ";"))) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

type_1 __regparm3
function_1
          (type_2 **prev,
          type_3 *var_42,type_4 *fill,type_1 var_29,
          type_5 *var_48,type_5 var_22)

{
  type_6 *pfVar1;
  type_7 *pbVar2;
  type_8 *pbVar3;
  type_9 *tree;
  type_10 *var_31;
  type_11 var_33;
  type_12 *plVar6;
  type_13 *var_28;
  type_12 *plVar8;
  type_14 *current_section;
  int var_18;
  type_11 var_11;
  type_11 var_13;
  type_5 var_49;
  type_15 *prev_00;
  char *pcVar13;
  type_1 var_25;
  char *pcVar15;
  type_16 *var_3;
  type_10 *var_30;
  type_14 *var_12;
  type_17 var_17;
  type_18 var_26;
  type_14 *var_10;
  type_13 **extraout_ECX;
  type_17 *var_19;
  type_17 *var_20;
  bool var_21;
  bool bVar25;
  type_17 bVar26;
  type_13 **ppuVar27;
  type_12 *var_2;
  type_18 var_36;
  type_4 *local_48;
  type_11 local_3c;
  type_1 var_32;
  type_5 var_43;
  type_19 uStack_14;
  
  bVar26 = 0;
  uStack_14 = 0x21aa9;
  current_section = (type_14 *)(var_1 + 0x150);
  plVar6 = *prev;
  local_48 = fill;
joined_r0x00021ad5:
  var_2 = plVar6;
  if (var_2 == (type_12 *)0x0) {
    return var_29;
  }
  var_36 = (var_2->wild_statement).header.type;
  switch(var_36) {
  case var_14:
    if ((var_2->var_42).constraint != -1) {
      var_3 = (var_2->var_42).addr_tree;
      if (var_3 == (type_16 *)0x0) {
        if (((link_info._0_1_ & 3) == 2) &&
           ((link_info.output_bfd)->xvec->flavour == var_4)) {
          var_3 = var_5(0);
          (var_2->var_42).addr_tree = var_3;
          if (var_3 != (type_9 *)0x0) goto LAB_00021dcc;
        }
      }
      else {
LAB_00021dcc:
        *(type_17 *)((int)var_2 + 0x54) = *(type_17 *)((int)var_2 + 0x54) & 0xfe;
        var_6(var_3,(type_14 *)(var_1 + 0x150),&var_29);
        if (expld.result.valid_p == 0) {
          if (expld.phase != var_7) {
            pcVar15 = *(char **)&(var_2->wild_statement).children;
            var_3 = (type_16 *)(var_2->wild_statement).handler_data[1];
            pcVar13 = (char *)var_8(0,
                                        "%F%P:%pS: non constant or forward reference address expression for section %s\n"
                                        ,5);
            var_9(pcVar13,var_3,pcVar15);
          }
        }
        else {
          var_29 = expld.result.value;
          if (expld.result.section != (type_14 *)0x0) {
            var_29 = expld.result.value + (expld.result.section)->vma;
          }
        }
      }
      var_25 = var_29;
      var_28 = var_1;
      var_10 = (var_2->var_42).type_7;
      if (var_10 != (type_14 *)0x0) {
        if (((link_info.output_bfd)->xvec->flavour - var_4 < 2) &&
           (var_11 = var_10->flags, (var_11 & 0x4000000) != 0)) {
          var_12 = (var_2->input_section).section;
          if (((var_12 == (type_14 *)0x0) || (var_12->name != (char *)0x0)) || (var_12->id != 5)
             ) {
            plVar6 = (var_2->wild_statement).children.head;
            pcVar15 = (char *)var_8(0,"%X%P: internal error on COFF shared library section %s\n"
                                        ,5);
            var_9(pcVar15,plVar6);
            var_10 = (var_2->var_42).type_7;
            var_12 = (var_2->input_section).section;
            var_11 = var_10->flags;
          }
          var_13 = var_12->index;
          var_25 = *(type_1 *)(var_13 + 0x1c);
          var_10->field_0x18 = var_10->field_0x18 | 1;
          var_10->lma = var_25;
          var_10->vma = var_25;
          if ((var_11 & 0x800) == 0) {
            var_10->size = *(type_20 *)(var_13 + 0x24);
          }
        }
        else {
          if (var_10 == (type_14 *)(var_1 + 0x150)) {
            local_3c = 0;
            var_26 = *(type_18 *)(var_1 + 0x16c);
            if (*(type_18 *)(var_1 + 0x16c) !=
                var_14) {
              var_15("../../ld/ldlang.c",0x13e5);
              var_26 = var_36;
            }
          }
          else {
            if ((type_16 *)(var_2->wild_statement).handler_data[1] == (type_16 *)0x0) {
              var_12 = (var_2->reloc_statement).output_section;
              var_11 = var_10->flags;
              if (var_12 == (type_14 *)0x0) {
LAB_00022925:
                var_12 = (type_14 *)var_23;
                if ((var_11 & 0x19) == 1) {
                  var_11 = var_11 | 0x20;
                }
                for (; var_12 != (type_14 *)0x0; var_12 = (type_14 *)var_12->index) {
                  if (((var_12->size & var_11) != 0) && ((var_12->rawsize & var_11) == 0))
                  goto LAB_00022989;
                }
                var_12 = (type_14 *)var_16("*default*",0);
                var_10 = (var_2->var_42).type_7;
LAB_00022989:
                (var_2->var_42).region = (type_10 *)var_12;
              }
              else if ((var_11 & 3) != 0) {
                var_17 = *var_12->name;
                var_21 = var_17 < 0x2a;
                bVar25 = var_17 == 0x2a;
                if (bVar25) {
                  var_18 = 10;
                  var_19 = (type_17 *)var_12->name;
                  var_20 = (type_17 *)"*default*";
                  do {
                    if (var_18 == 0) break;
                    var_18 = var_18 + -1;
                    var_21 = *var_19 < *var_20;
                    bVar25 = *var_19 == *var_20;
                    var_19 = var_19 + (type_11)bVar26 * -2 + 1;
                    var_20 = var_20 + (type_11)bVar26 * -2 + 1;
                  } while (bVar25);
                  if ((!var_21 && !bVar25) == var_21) goto LAB_00022925;
                }
              }
              var_30 = var_23;
              if (((((*(type_17 *)((int)var_2 + 0x54) & 8) == 0) && ((var_10->flags & 1) != 0)) &&
                  ((var_10->flags & 0x402) != 0x400)) && ((link_info._0_1_ & 3) != 2)) {
                var_21 = false;
                bVar25 = var_22 == 0;
                if (!bVar25) {
                  var_18 = 10;
                  var_19 = (type_17 *)var_12->name;
                  var_20 = (type_17 *)"*default*";
                  do {
                    if (var_18 == 0) break;
                    var_18 = var_18 + -1;
                    var_21 = *var_19 < *var_20;
                    bVar25 = *var_19 == *var_20;
                    var_19 = var_19 + (type_11)bVar26 * -2 + 1;
                    var_20 = var_20 + (type_11)bVar26 * -2 + 1;
                  } while (bVar25);
                  if (((((!var_21 && !bVar25) == var_21) &&
                       (var_23 != (type_10 *)0x0)) &&
                      ((var_18 = var_24((var_23->type_28).name,"*default*"),
                       var_18 != 0 || (var_30->next != (type_21 *)0x0)))) &&
                     (expld.phase != var_7)) {
                    pcVar15 = var_10->name;
                    if (command_line.check_section_addresses == '\0') {
                      pcVar13 = 
                      "%P: warning: no memory region specified for loadable section `%s\'\n";
                      ppuVar27 = extraout_ECX;
                    }
                    else {
                      pcVar13 = 
                      "%F%P: error: no memory region specified for loadable section `%s\'\n";
                      ppuVar27 = &_GLOBAL_OFFSET_TABLE_;
                    }
                    pcVar13 = (char *)var_8(0,pcVar13,5,ppuVar27);
                    var_9(pcVar13,pcVar15);
                    var_12 = (var_2->reloc_statement).output_section;
                    var_10 = (var_2->var_42).type_7;
                  }
                }
              }
              local_3c = var_10->alignment_power;
              var_25 = var_12->vma;
            }
            else {
              local_3c = (var_2->var_42).section_alignment;
            }
            var_26 = var_36;
            if (0 < (int)local_3c) {
              var_18 = 1 << ((type_17)local_3c & 0x1f);
              var_11 = -var_18 & var_18 + -1 + var_25;
              var_26 = var_11 - var_25;
              var_25 = var_11;
              if (((var_26 != var_14) &&
                  ((config.warn_section_align != 0 ||
                   ((type_16 *)(var_2->wild_statement).handler_data[1] != (type_16 *)0x0)
                   ))) && (expld.phase != var_7)) {
                pcVar15 = *(char **)&(var_2->wild_statement).children;
                pcVar13 = (char *)var_27(0,
                                             "%P: warning: changing start of section %s by %lu byte\n"
                                             ,
                                             "%P: warning: changing start of section %s by %lu bytes\n"
                                             ,var_26,5);
                var_9(pcVar13,pcVar15,var_26);
                var_10 = (var_2->var_42).type_7;
              }
            }
            var_10->field_0x18 = var_10->field_0x18 | 1;
            var_10->lma = var_25;
            var_10->vma = var_25;
            var_10->output_offset = 0;
          }
          function_1
                    ((type_2 **)&(var_2->assignment_statement).exp,
                     &var_2->var_42,(var_2->var_42).fill,
                     var_25,var_48,var_22);
          var_17 = *(type_17 *)((int)var_2 + 0x54);
          *(type_17 *)((int)var_2 + 0x54) = var_17 | 1;
          var_10 = (var_2->var_42).type_7;
          if (var_10 == (type_14 *)(var_28 + 0x150)) {
            var_11 = *(type_11 *)(var_28 + 0x174);
LAB_000223fa:
            if (var_11 != 0) {
              var_15("../../ld/ldlang.c",0x1443);
            }
          }
          else {
            var_11 = var_10->size;
            if ((var_17 & 8) != 0) goto LAB_000223fa;
            var_29 = var_10->vma;
            if ((var_10->flags & 0x800) == 0) {
              var_10->size =
                   ((int)(var_2->wild_statement).section_flag_list +
                    (var_11 >> ((type_17)opb_shift & 0x1f)) + (var_29 - 1) &
                   -(var_2->var_42).block_value) - var_29 <<
                   ((type_17)opb_shift & 0x1f);
            }
          }
          var_30 = (type_10 *)(var_2->reloc_statement).output_section;
          if (var_30 == (type_10 *)0x0) {
            var_30 = var_16("*default*",0);
          }
          if ((var_2->var_42).load_base == (type_9 *)0x0) {
            var_10 = (var_2->var_42).type_7;
            var_31 = (var_2->var_42).lma_region;
            var_11 = var_10->flags;
            var_13 = var_11 & 1;
            if (var_31 != (type_10 *)0x0) {
              var_32 = var_31->current;
              if ((*(type_17 *)((int)var_2 + 0x54) & 0x40) == 0) {
                if (var_31 != (type_10 *)
                              (var_2->wild_statement).exclude_name_list) {
                  local_3c = (var_2->var_42).section_alignment;
                }
                if (0 < (int)local_3c) {
                  var_18 = 1 << ((type_17)local_3c & 0x1f);
                  var_32 = -var_18 & var_18 + -1 + var_32;
                }
              }
              else {
                var_32 = var_32 + var_26;
              }
              var_10->lma = var_32;
              goto LAB_00022015;
            }
            if (var_30->last_os == (type_12 *)0x0) goto LAB_00022015;
            if (var_13 != 0) {
              var_12 = (var_30->last_os->var_42).type_7;
              var_13 = var_12->vma;
              var_33 = var_12->lma;
              if (((var_29 < var_13) && (var_10->size != 0)) &&
                 ((var_10->size >> ((type_17)opb_shift & 0x1f)) + var_29 <= var_13)) {
                if (var_13 != var_33) {
                  plVar6 = (var_2->wild_statement).children.head;
                  pcVar15 = (char *)var_8(0,"%P: warning: dot moved backwards before `%s\'\n",5,
                                              var_2);
                  var_9(pcVar15,plVar6);
                  var_10 = (var_2->var_42).type_7;
                  goto LAB_00022008;
                }
              }
              else {
                var_13 = (var_33 + var_29) - var_13;
                if ((var_2->var_42).sectype == var_34) {
                  var_13 = (var_12->size >> ((type_17)opb_shift & 0x1f)) + var_33;
                }
                if (0 < (int)local_3c) {
                  var_18 = 1 << ((type_17)local_3c & 0x1f);
                  var_13 = -var_18 & var_18 + -1 + var_13;
                }
                var_10->lma = var_13;
              }
              *(type_17 *)((int)var_2 + 0x54) = *(type_17 *)((int)var_2 + 0x54) | 2;
              goto LAB_00022020;
            }
            *(type_17 *)((int)var_2 + 0x54) = *(type_17 *)((int)var_2 + 0x54) | 2;
          }
          else {
            var_25 = var_35((var_2->var_42).load_base,0,"load base");
            var_10 = (var_2->var_42).type_7;
            var_10->lma = var_25;
LAB_00022008:
            var_11 = var_10->flags;
            var_13 = var_11 & 1;
LAB_00022015:
            *(type_17 *)((int)var_2 + 0x54) = *(type_17 *)((int)var_2 + 0x54) | 2;
            if (var_13 != 0) {
LAB_00022020:
              if ((var_11 & 0x402) != 0x400) {
                if (var_10->size == 0) {
                  if (var_30->last_os == (type_12 *)0x0) {
                    if (var_10->vma != var_10->lma) goto LAB_000223c5;
                  }
                  else if (((var_30->last_os->var_42).type_7)->vma <= var_29)
                  goto LAB_000223c5;
                }
                else {
LAB_000223c5:
                  if (((var_2->wild_statement).walk_wild_section_handler ==
                       (type_22)0x0) && ((link_info._0_1_ & 3) != 2)) {
                    var_30->last_os = var_2;
                  }
                }
              }
            }
          }
          if ((var_10 != (type_14 *)(var_28 + 0x150)) &&
             ((*(type_17 *)((int)var_2 + 0x54) & 8) == 0)) {
            if (((var_11 & 0x402) != 0x400) || ((link_info._0_1_ & 3) == 2)) {
              var_36 = var_10->size >> ((type_17)opb_shift & 0x1f);
            }
            var_29 = var_29 + var_36;
            if ((var_2->var_42).update_dot_tree != (type_9 *)0x0) {
              var_6((var_2->var_42).update_dot_tree,
                            (type_14 *)(var_28 + 0x150),&var_29);
            }
            var_30 = (var_2->var_42).region;
            if ((var_30 != (type_10 *)0x0) &&
               (var_10 = (var_2->var_42).type_7,
               (var_10->flags & 3) != 0)) {
              var_30->current = var_29;
              if (var_22 != 0) {
                var_37((type_3 *)
                                &(var_2->wild_statement).children.tail,var_30,
                                (var_2->var_42).addr_tree,var_10->vma);
              }
              var_30 = (var_2->var_42).lma_region;
              if (((var_30 != (type_10 *)0x0) &&
                  (var_30 !=
                   (type_10 *)(var_2->wild_statement).exclude_name_list)) &&
                 (((((var_2->var_42).type_7)->flags & 2) != 0 ||
                  ((*(type_17 *)((int)var_2 + 0x54) & 0x40) != 0)))) {
                var_25 = ((var_2->var_42).type_7)->lma;
                var_30->current = var_36 + var_25;
                if (var_22 != 0) {
                  var_37((type_3 *)
                                  &(var_2->wild_statement).children.tail,var_30,
                                  (type_9 *)0x0,var_25);
                }
              }
            }
          }
        }
      }
    }
    break;
  case lang_assignment_statement_enum:
    tree = (type_9 *)(var_2->input_section).section;
    expld.dataseg.relro = exp_seg_relro_none;
    var_43 = var_29;
    var_6(tree,var_42->type_7,(type_1 *)&var_43);
    plVar6 = expld.dataseg.relro_start_stat;
    plVar8 = expld.dataseg.relro_end_stat;
    if (expld.dataseg.relro == var_38) {
      plVar6 = var_2;
      if ((expld.dataseg.relro_start_stat != (type_12 *)0x0) &&
         (plVar6 = expld.dataseg.relro_start_stat, expld.dataseg.relro_start_stat != var_2)) {
        var_11 = 0x137c;
        goto LAB_000222ec;
      }
    }
    else if (((expld.dataseg.relro == var_39) &&
             (plVar8 = var_2, expld.dataseg.relro_end_stat != (type_12 *)0x0)) &&
            (plVar8 = expld.dataseg.relro_end_stat, expld.dataseg.relro_end_stat != var_2)) {
      var_11 = 0x1385;
LAB_000222ec:
      var_15("../../ld/ldlang.c",var_11);
      plVar6 = expld.dataseg.relro_start_stat;
      plVar8 = expld.dataseg.relro_end_stat;
    }
    expld.dataseg.relro_end_stat = plVar8;
    expld.dataseg.relro_start_stat = plVar6;
    expld.dataseg.relro = exp_seg_relro_none;
    if ((((tree->type).node_class & ~etree_unary) == var_40) &&
       ((*(tree->assign).dst != '.' || ((tree->assign).dst[1] != '\0')))) {
      var_42->field_0x54 = var_42->field_0x54 | 0x10;
    }
    if ((var_42->field_0x54 & 8) == 0) {
      if (var_41 == var_42) {
        var_30 = var_16("*default*",0);
        var_30->current = var_43;
        var_29 = var_43;
      }
      else if (var_43 != var_29) {
        var_44((type_2 **)var_2,local_48,
                   var_43 - var_29 << ((type_17)opb_shift & 0x1f),var_42->type_7,var_29
                  );
        var_2 = (var_2->header).next;
        var_29 = var_43;
        if ((var_42->sectype != var_45) &&
           ((var_42->sectype != var_46 ||
            ((link_info.output_bfd)->xvec->flavour == var_47)))) {
          pfVar1 = &var_42->type_7->flags;
          *pfVar1 = *pfVar1 | 1;
        }
      }
    }
    break;
  case lang_input_statement_enum:
  case lang_address_statement_enum:
  case lang_target_statement_enum:
  case lang_output_statement_enum:
  case lang_insert_statement_enum:
    goto _L1363;
  case lang_wild_statement_enum:
    prev_00 = (type_15 *)&(var_2->reloc_statement).addend_exp;
    goto LAB_00021d85;
  case lang_input_section_enum:
    if (var_48 != (type_5 *)0x0) {
      pbVar2 = (type_7 *)((type_15 *)&(var_2->input_section).section)->head
      ;
      pbVar3 = pbVar2->owner;
      var_49 = (*pbVar3->xvec->_bfd_relax_section)
                         (pbVar3,pbVar2,(type_23 *)PTR_link_info_000bafb8,&var_43);
      if (var_49 == 0) {
        pcVar15 = (char *)var_8(0,"%F%P: can\'t relax section: %E\n",5);
        var_9(pcVar15);
      }
      if (var_43 != 0) {
        *var_48 = 1;
      }
    }
    var_10 = var_42->type_7;
    var_12 = (((type_24 *)prev)->next->input_section).section;
    if ((*(type_25 *)&var_12->field_0x18 & 0x380) == 0x200) {
      var_12->output_offset = var_12->vma - var_10->vma;
    }
    else if (((var_12->flags & 0x8000) == 0) && ((var_42->field_0x54 & 8) == 0))
    {
      var_11 = var_42->subsection_alignment;
      if (var_11 == 0xffffffff) {
        var_11 = var_12->alignment_power;
      }
      else {
        var_12->alignment_power = var_11;
      }
      if (var_10->alignment_power < var_11) {
        var_10->alignment_power = var_11;
        var_11 = var_12->alignment_power;
      }
      var_18 = 1 << ((type_17)var_11 & 0x1f);
      var_11 = (var_29 - 1) + var_18 & -var_18;
      var_18 = var_11 - var_29;
      if (var_18 != 0) {
        var_36._0_1_ = (type_26)opb_shift;
        var_44(prev,local_48,var_18 << ((type_26)var_36 & 0x1f),var_10,var_29);
        var_29 = var_11;
      }
      var_11 = opb_shift;
      var_25 = var_10->vma;
      var_12->output_offset = var_29 - var_25;
      var_29 = var_29 + (var_12->size >> ((type_17)var_11 & 0x1f));
      if ((var_10->flags & 0x800) == 0) {
        var_10->size = var_29 - var_25 << ((type_17)var_11 & 0x1f);
      }
    }
    else {
      var_12->output_offset = var_29 - var_10->vma;
    }
    break;
  case lang_object_symbols_statement_enum:
    link_info.create_object_symbols_section = var_42->type_7;
    goto _L1363;
  case lang_fill_statement_enum:
    (var_2->wild_statement).section_list = (type_27 *)var_42->type_7
    ;
    local_48 = (type_4 *)((type_15 *)&(var_2->fill_statement).fill)->head;
    break;
  case lang_data_statement_enum:
    *(char **)&(var_2->wild_statement).children =
         (char *)(var_29 - var_42->type_7->vma);
    (var_2->wild_statement).keep_sections = (type_5)var_42->type_7;
    var_6((var_2->data_statement).exp,current_section,&var_29);
    var_11 = (int)((type_15 *)&(var_2->data_statement).type)->head - 0x11a;
    if (4 < var_11) {
                    /* WARNING: Subroutine does not return */
      var_50("../../ld/ldlang.c",0x14f8,"lang_size_sections_1");
    }
    var_17 = (type_17)opb_shift;
    var_13 = 1 << (var_17 & 0x1f);
    if (var_13 < *(type_11 *)(var_51 + var_11 * 4)) {
      var_13 = *(type_11 *)(var_51 + var_11 * 4);
    }
    var_10 = var_42->type_7;
    var_29 = (var_13 >> (var_17 & 0x1f)) + var_29;
    if ((var_10->flags & 0x800) == 0) {
      var_10->size = var_29 - var_10->vma << (var_17 & 0x1f);
    }
    break;
  case lang_reloc_statement_enum:
    (var_2->wild_statement).walk_wild_section_handler =
         (type_22)(var_29 - var_42->type_7->vma);
    (var_2->wild_statement).exclude_name_list =
         (type_28 *)var_42->type_7;
    var_18 = var_52((type_12 **)(var_2->wild_statement).filenames_sorted)
    ;
    var_10 = var_42->type_7;
    var_29 = (var_18 >> ((type_17)opb_shift & 0x1f)) + var_29;
    if ((var_10->flags & 0x800) == 0) {
      var_10->size = var_29 - var_10->vma << ((type_17)opb_shift & 0x1f);
    }
    break;
  case lang_padding_statement_enum:
    (var_2->wild_statement).filenames_sorted = 0;
    (var_2->wild_statement).filename = (char *)(var_29 - var_42->type_7->vma)
    ;
    break;
  case lang_group_statement_enum:
    prev_00 = (type_15 *)&(var_2->assignment_statement).exp;
    goto LAB_00021d85;
  case lang_constructors_statement_enum:
    prev_00 = &constructor_list;
LAB_00021d85:
    var_29 = function_1
                    (&prev_00->head,var_42,local_48,var_29,var_48,var_22);
    break;
  default:
    var_15("../../ld/ldlang.c",0x15a7);
  }
LAB_00021b28:
  plVar6 = (var_2->header).next;
  prev = (type_2 **)var_2;
  goto joined_r0x00021ad5;
_L1363:
  goto LAB_00021b28;
}


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

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

uint __regparm2 MASKED(int *param_1,int param_2,uint param_3,undefined4 *param_4,int param_5)

{
  uint *puVar1;
  undefined *puVar2;
  undefined4 *puVar3;
  int *piVar4;
  undefined *puVar5;
  int iVar6;
  uint uVar7;
  int iVar8;
  undefined4 uVar9;
  char *pcVar10;
  undefined4 uVar11;
  undefined4 *puVar12;
  byte bVar13;
  undefined4 extraout_ECX;
  uint uVar14;
  undefined4 *puVar15;
  undefined **extraout_ECX_00;
  int iVar16;
  undefined *puVar17;
  int *piVar18;
  uint uVar19;
  byte *pbVar20;
  byte *pbVar21;
  bool bVar22;
  bool bVar23;
  byte bVar24;
  undefined **ppuVar25;
  int *local_54;
  uint local_4c;
  int iStack_3c;
  uint uStack_34;
  uint auStack_20 [3];
  undefined4 uStack_14;
  
  bVar24 = 0;
  uStack_14 = 0x21aa9;
  puVar5 = PTR__bfd_std_section_000bafc4 + 0x150;
  piVar18 = (int *)*param_1;
joined_r0x00021ad5:
  local_54 = piVar18;
  if (local_54 == (int *)0x0) {
    return param_3;
  }
  local_4c = local_54[1];
  switch(local_4c) {
  case 0:
    if (local_54[0x12] != -1) {
      iVar8 = local_54[0xb];
      if (iVar8 == 0) {
        if ((((byte)DAT_000bbe00 & 3) == 2) && (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 2)) {
          iVar8 = FUN_0002f390(0);
          local_54[0xb] = iVar8;
          if (iVar8 != 0) goto code_r0x00021dcc;
        }
      }
      else {
code_r0x00021dcc:
        *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) & 0xfe;
        FUN_0002f480(iVar8,PTR__bfd_std_section_000bafc4 + 0x150,&param_3);
        if (DAT_000bbfa0 == 0) {
          if (DAT_000bbf80 != 1) {
            iVar8 = local_54[6];
            iVar6 = local_54[0xb];
            uVar9 = dcgettext(0,
                              "%F%P:%pS: non constant or forward reference address expression for section %s\n"
                              ,5);
            FUN_00031730(uVar9,iVar6,iVar8);
          }
        }
        else {
          param_3 = DAT_000bbf94;
          if (DAT_000bbf9c != 0) {
            param_3 = DAT_000bbf94 + *(int *)(DAT_000bbf9c + 0x1c);
          }
        }
      }
      uVar7 = param_3;
      puVar2 = PTR__bfd_std_section_000bafc4;
      puVar15 = (undefined4 *)local_54[7];
      if (puVar15 != (undefined4 *)0x0) {
        if ((*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) - 2U < 2) &&
           (uVar14 = puVar15[5], (uVar14 & 0x4000000) != 0)) {
          piVar18 = (int *)local_54[2];
          if (((piVar18 == (int *)0x0) || (*piVar18 != 0)) || (piVar18[1] != 5)) {
            iVar8 = local_54[6];
            uVar9 = dcgettext(0,"%X%P: internal error on COFF shared library section %s\n",5);
            FUN_00031730(uVar9,iVar8);
            puVar15 = (undefined4 *)local_54[7];
            piVar18 = (int *)local_54[2];
            uVar14 = puVar15[5];
          }
          iVar8 = piVar18[2];
          uVar9 = *(undefined4 *)(iVar8 + 0x1c);
          *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;
          puVar15[8] = uVar9;
          puVar15[7] = uVar9;
          if ((uVar14 & 0x800) == 0) {
            puVar15[9] = *(undefined4 *)(iVar8 + 0x24);
          }
        }
        else {
          if (puVar15 == (undefined4 *)(PTR__bfd_std_section_000bafc4 + 0x150)) {
            iStack_3c = 0;
            uVar14 = *(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c);
            if (*(uint *)(PTR__bfd_std_section_000bafc4 + 0x16c) != 0) {
              FUN_00031780("../../ld/ldlang.c",0x13e5);
              uVar14 = local_4c;
            }
          }
          else {
            if (local_54[0xb] == 0) {
              puVar12 = (undefined4 *)local_54[8];
              uVar7 = puVar15[5];
              if (puVar12 == (undefined4 *)0x0) {
code_r0x00022925:
                puVar12 = DAT_000bb92c;
                if ((uVar7 & 0x19) == 1) {
                  uVar7 = uVar7 | 0x20;
                }
                for (; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)puVar12[2]) {
                  if (((puVar12[9] & uVar7) != 0) && ((puVar12[10] & uVar7) == 0))
                  goto code_r0x00022989;
                }
                puVar12 = (undefined4 *)FUN_00021940("*default*",0);
                puVar15 = (undefined4 *)local_54[7];
code_r0x00022989:
                local_54[8] = (int)puVar12;
              }
              else if ((uVar7 & 3) != 0) {
                bVar13 = *(byte *)*puVar12;
                bVar22 = bVar13 < 0x2a;
                bVar23 = bVar13 == 0x2a;
                if (bVar23) {
                  iVar8 = 10;
                  pbVar20 = (byte *)*puVar12;
                  pbVar21 = (byte *)"*default*";
                  do {
                    if (iVar8 == 0) break;
                    iVar8 = iVar8 + -1;
                    bVar22 = *pbVar20 < *pbVar21;
                    bVar23 = *pbVar20 == *pbVar21;
                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;
                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;
                  } while (bVar23);
                  if ((!bVar22 && !bVar23) == bVar22) goto code_r0x00022925;
                }
              }
              puVar3 = DAT_000bb92c;
              if (((((*(byte *)(local_54 + 0x15) & 8) == 0) && ((puVar15[5] & 1) != 0)) &&
                  ((puVar15[5] & 0x402) != 0x400)) && (((byte)DAT_000bbe00 & 3) != 2)) {
                bVar22 = false;
                bVar23 = param_5 == 0;
                if (!bVar23) {
                  iVar8 = 10;
                  pbVar20 = (byte *)*puVar12;
                  pbVar21 = (byte *)"*default*";
                  do {
                    if (iVar8 == 0) break;
                    iVar8 = iVar8 + -1;
                    bVar22 = *pbVar20 < *pbVar21;
                    bVar23 = *pbVar20 == *pbVar21;
                    pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;
                    pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;
                  } while (bVar23);
                  if (((((!bVar22 && !bVar23) == bVar22) && (DAT_000bb92c != (undefined4 *)0x0)) &&
                      ((iVar8 = strcmp((char *)*DAT_000bb92c,"*default*"), iVar8 != 0 ||
                       (puVar3[2] != 0)))) && (DAT_000bbf80 != 1)) {
                    uVar9 = *puVar15;
                    if (DAT_000bbeb8 == '\0') {
                      pcVar10 = 
                      "%P: warning: no memory region specified for loadable section `%s\'\n";
                      ppuVar25 = extraout_ECX_00;
                    }
                    else {
                      pcVar10 = 
                      "%F%P: error: no memory region specified for loadable section `%s\'\n";
                      ppuVar25 = &__DT_PLTGOT;
                    }
                    uVar11 = dcgettext(0,pcVar10,5,ppuVar25);
                    FUN_00031730(uVar11,uVar9);
                    puVar12 = (undefined4 *)local_54[8];
                    puVar15 = (undefined4 *)local_54[7];
                  }
                }
              }
              iStack_3c = puVar15[0x10];
              uVar7 = puVar12[7];
            }
            else {
              iStack_3c = local_54[0x11];
            }
            uVar14 = local_4c;
            if (0 < iStack_3c) {
              iVar8 = 1 << ((byte)iStack_3c & 0x1f);
              uVar19 = -iVar8 & iVar8 + -1 + uVar7;
              uVar14 = uVar19 - uVar7;
              uVar7 = uVar19;
              if (((uVar14 != 0) && ((iRam000bbf24 != 0 || (local_54[0xb] != 0)))) &&
                 (DAT_000bbf80 != 1)) {
                iVar8 = local_54[6];
                uVar9 = dcngettext(0,"%P: warning: changing start of section %s by %lu byte\n",
                                   "%P: warning: changing start of section %s by %lu bytes\n",uVar14
                                   ,5);
                FUN_00031730(uVar9,iVar8,uVar14);
                puVar15 = (undefined4 *)local_54[7];
              }
            }
            *(byte *)(puVar15 + 6) = *(byte *)(puVar15 + 6) | 1;
            puVar15[8] = uVar7;
            puVar15[7] = uVar7;
            puVar15[0xe] = 0;
          }
          MASKED(uVar7,param_4,param_5);
          bVar13 = *(byte *)(local_54 + 0x15);
          *(byte *)(local_54 + 0x15) = bVar13 | 1;
          puVar17 = (undefined *)local_54[7];
          if (puVar17 == puVar2 + 0x150) {
            uVar7 = *(uint *)(puVar2 + 0x174);
code_r0x000223fa:
            if (uVar7 != 0) {
              FUN_00031780("../../ld/ldlang.c",0x1443);
            }
          }
          else {
            uVar7 = *(uint *)(puVar17 + 0x24);
            if ((bVar13 & 8) != 0) goto code_r0x000223fa;
            param_3 = *(uint *)(puVar17 + 0x1c);
            if ((puVar17[0x15] & 8) == 0) {
              *(uint *)(puVar17 + 0x24) =
                   ((uVar7 >> ((byte)DAT_000bb94c & 0x1f)) + (param_3 - 1) + local_54[0xf] &
                   -local_54[0xf]) - param_3 << ((byte)DAT_000bb94c & 0x1f);
            }
          }
          iVar8 = local_54[8];
          if (iVar8 == 0) {
            iVar8 = FUN_00021940("*default*",0);
          }
          if (local_54[0xc] == 0) {
            puVar17 = (undefined *)local_54[7];
            iVar6 = local_54[9];
            uVar7 = *(uint *)(puVar17 + 0x14);
            uVar19 = uVar7 & 1;
            if (iVar6 != 0) {
              uStack_34 = *(uint *)(iVar6 + 0x1c);
              if ((*(byte *)(local_54 + 0x15) & 0x40) == 0) {
                if (iVar6 != local_54[8]) {
                  iStack_3c = local_54[0x11];
                }
                if (0 < iStack_3c) {
                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);
                  uStack_34 = -iVar6 & iVar6 + -1 + uStack_34;
                }
              }
              else {
                uStack_34 = uStack_34 + uVar14;
              }
              *(uint *)(puVar17 + 0x20) = uStack_34;
              goto code_r0x00022015;
            }
            if (*(int *)(iVar8 + 0x20) == 0) goto code_r0x00022015;
            if (uVar19 != 0) {
              iVar6 = *(int *)(*(int *)(iVar8 + 0x20) + 0x1c);
              uVar14 = *(uint *)(iVar6 + 0x1c);
              uVar19 = *(uint *)(iVar6 + 0x20);
              if (((param_3 < uVar14) && (*(uint *)(puVar17 + 0x24) != 0)) &&
                 ((*(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + param_3 <= uVar14)) {
                if (uVar14 != uVar19) {
                  iVar6 = local_54[6];
                  uVar9 = dcgettext(0,"%P: warning: dot moved backwards before `%s\'\n",5,local_54);
                  FUN_00031730(uVar9,iVar6);
                  puVar17 = (undefined *)local_54[7];
                  goto code_r0x00022008;
                }
              }
              else {
                uVar14 = (uVar19 + param_3) - uVar14;
                if (local_54[0x14] == 1) {
                  uVar14 = (*(uint *)(iVar6 + 0x24) >> ((byte)DAT_000bb94c & 0x1f)) + uVar19;
                }
                if (0 < iStack_3c) {
                  iVar6 = 1 << ((byte)iStack_3c & 0x1f);
                  uVar14 = -iVar6 & iVar6 + -1 + uVar14;
                }
                *(uint *)(puVar17 + 0x20) = uVar14;
              }
              *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;
              goto code_r0x00022020;
            }
            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;
          }
          else {
            uVar9 = FUN_0002fd60(local_54[0xc],0,"load base");
            puVar17 = (undefined *)local_54[7];
            *(undefined4 *)(puVar17 + 0x20) = uVar9;
code_r0x00022008:
            uVar7 = *(uint *)(puVar17 + 0x14);
            uVar19 = uVar7 & 1;
code_r0x00022015:
            *(byte *)(local_54 + 0x15) = *(byte *)(local_54 + 0x15) | 2;
            if (uVar19 != 0) {
code_r0x00022020:
              if ((uVar7 & 0x402) != 0x400) {
                if (*(int *)(puVar17 + 0x24) == 0) {
                  if (*(int *)(iVar8 + 0x20) == 0) {
                    if (*(int *)(puVar17 + 0x1c) != *(int *)(puVar17 + 0x20)) goto code_r0x000223c5;
                  }
                  else if (*(uint *)(*(int *)(*(int *)(iVar8 + 0x20) + 0x1c) + 0x1c) <= param_3)
                  goto code_r0x000223c5;
                }
                else {
code_r0x000223c5:
                  if ((local_54[9] == 0) && (((byte)DAT_000bbe00 & 3) != 2)) {
                    *(int **)(iVar8 + 0x20) = local_54;
                  }
                }
              }
            }
          }
          if ((puVar17 != puVar2 + 0x150) && ((*(byte *)(local_54 + 0x15) & 8) == 0)) {
            if (((uVar7 & 0x402) != 0x400) || (((byte)DAT_000bbe00 & 3) == 2)) {
              local_4c = *(uint *)(puVar17 + 0x24) >> ((byte)DAT_000bb94c & 0x1f);
            }
            param_3 = param_3 + local_4c;
            if (local_54[0xd] != 0) {
              FUN_0002f480(local_54[0xd],puVar2 + 0x150,&param_3);
            }
            if ((local_54[8] != 0) && (iVar8 = local_54[7], (*(byte *)(iVar8 + 0x14) & 3) != 0)) {
              *(uint *)(local_54[8] + 0x1c) = param_3;
              if (param_5 != 0) {
                FUN_0001f080(*(undefined4 *)(iVar8 + 0x1c));
              }
              iVar8 = local_54[9];
              if (((iVar8 != 0) && (iVar8 != local_54[8])) &&
                 (((*(byte *)(local_54[7] + 0x14) & 2) != 0 ||
                  ((*(byte *)(local_54 + 0x15) & 0x40) != 0)))) {
                iVar6 = *(int *)(local_54[7] + 0x20);
                *(uint *)(iVar8 + 0x1c) = local_4c + iVar6;
                if (param_5 != 0) {
                  FUN_0001f080(iVar6);
                }
              }
            }
          }
        }
      }
    }
    break;
  case 1:
    iVar8 = local_54[2];
    iRam000bbfcc = 0;
    auStack_20[0] = param_3;
    FUN_0002f480(iVar8,*(undefined4 *)(param_2 + 0x1c),auStack_20);
    piVar18 = DAT_000bbfd0;
    piVar4 = DAT_000bbfd4;
    if (iRam000bbfcc == 1) {
      piVar18 = local_54;
      if ((DAT_000bbfd0 != (int *)0x0) && (piVar18 = DAT_000bbfd0, DAT_000bbfd0 != local_54)) {
        uVar9 = 0x137c;
        goto code_r0x000222ec;
      }
    }
    else if (((iRam000bbfcc == 2) && (piVar4 = local_54, DAT_000bbfd4 != (int *)0x0)) &&
            (piVar4 = DAT_000bbfd4, DAT_000bbfd4 != local_54)) {
      uVar9 = 0x1385;
code_r0x000222ec:
      FUN_00031780("../../ld/ldlang.c",uVar9);
      piVar18 = DAT_000bbfd0;
      piVar4 = DAT_000bbfd4;
    }
    DAT_000bbfd4 = piVar4;
    DAT_000bbfd0 = piVar18;
    iRam000bbfcc = 0;
    if (((*(uint *)(iVar8 + 0xc) & 0xfffffffd) == 4) &&
       ((**(char **)(iVar8 + 0x10) != '.' || ((*(char **)(iVar8 + 0x10))[1] != '\0')))) {
      *(byte *)(param_2 + 0x54) = *(byte *)(param_2 + 0x54) | 0x10;
    }
    if ((*(byte *)(param_2 + 0x54) & 8) == 0) {
      if (DAT_000bbdac == param_2) {
        iVar8 = FUN_00021940("*default*",0);
        *(uint *)(iVar8 + 0x1c) = auStack_20[0];
        param_3 = auStack_20[0];
      }
      else if (auStack_20[0] != param_3) {
        FUN_00021400(*(undefined4 *)(param_2 + 0x1c),param_3);
        local_54 = (int *)*local_54;
        param_3 = auStack_20[0];
        if ((*(int *)(param_2 + 0x50) != 3) &&
           ((*(int *)(param_2 + 0x50) != 2 || (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)))) {
          puVar1 = (uint *)(*(int *)(param_2 + 0x1c) + 0x14);
          *puVar1 = *puVar1 | 1;
        }
      }
    }
    break;
  case 2:
  case 3:
  case 10:
  case 0xb:
  case 0xe:
    goto code_r0x00021b1c;
  case 4:
    goto code_r0x00021d85;
  case 5:
    if (param_4 != (undefined4 *)0x0) {
      iVar8 = *(int *)(local_54[2] + 0x94);
      iVar8 = (**(code **)(*(int *)(iVar8 + 4) + 0x164))
                        (iVar8,local_54[2],PTR_DAT_000bafb8,auStack_20);
      if (iVar8 == 0) {
        uVar9 = dcgettext(0,"%F%P: can\'t relax section: %E\n",5);
        FUN_00031730(uVar9);
      }
      if (auStack_20[0] != 0) {
        *param_4 = 1;
      }
    }
    iVar8 = *(int *)(param_2 + 0x1c);
    iVar6 = *(int *)(*param_1 + 8);
    if ((*(ushort *)(iVar6 + 0x18) & 0x380) == 0x200) {
      *(int *)(iVar6 + 0x38) = *(int *)(iVar6 + 0x1c) - *(int *)(iVar8 + 0x1c);
    }
    else if (((*(byte *)(iVar6 + 0x15) & 0x80) == 0) && ((*(byte *)(param_2 + 0x54) & 8) == 0)) {
      uVar7 = *(uint *)(param_2 + 0x40);
      if (uVar7 == 0xffffffff) {
        uVar7 = *(uint *)(iVar6 + 0x40);
      }
      else {
        *(uint *)(iVar6 + 0x40) = uVar7;
      }
      if (*(uint *)(iVar8 + 0x40) < uVar7) {
        *(uint *)(iVar8 + 0x40) = uVar7;
        uVar7 = *(uint *)(iVar6 + 0x40);
      }
      iVar16 = 1 << ((byte)uVar7 & 0x1f);
      uVar7 = (param_3 - 1) + iVar16 & -iVar16;
      if (uVar7 != param_3) {
        FUN_00021400(iVar8,param_3);
        param_3 = uVar7;
      }
      uVar9 = DAT_000bb94c;
      iVar16 = *(int *)(iVar8 + 0x1c);
      *(uint *)(iVar6 + 0x38) = param_3 - iVar16;
      param_3 = param_3 + (*(uint *)(iVar6 + 0x24) >> ((byte)uVar9 & 0x1f));
      if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {
        *(uint *)(iVar8 + 0x24) = param_3 - iVar16 << ((byte)uVar9 & 0x1f);
      }
    }
    else {
      *(uint *)(iVar6 + 0x38) = param_3 - *(int *)(iVar8 + 0x1c);
    }
    break;
  case 6:
    uRam000bbe40 = *(undefined4 *)(param_2 + 0x1c);
    goto code_r0x00021b1c;
  case 7:
    local_54[4] = *(int *)(param_2 + 0x1c);
    break;
  case 8:
    local_54[6] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);
    local_54[5] = *(int *)(param_2 + 0x1c);
    FUN_0002f480(local_54[3],puVar5,&param_3);
    if (4 < local_54[2] - 0x11aU) {
                    /* WARNING: Subroutine does not return */
      FUN_00030840("../../ld/ldlang.c",0x14f8,"lang_size_sections_1",extraout_ECX);
    }
    bVar13 = (byte)DAT_000bb94c;
    uVar7 = 1 << (bVar13 & 0x1f);
    if (uVar7 < *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4)) {
      uVar7 = *(uint *)(&UNK_0004ed1c + (local_54[2] - 0x11aU) * 4);
    }
    iVar8 = *(int *)(param_2 + 0x1c);
    param_3 = (uVar7 >> (bVar13 & 0x1f)) + param_3;
    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {
      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << (bVar13 & 0x1f);
    }
    break;
  case 9:
    local_54[9] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);
    local_54[8] = *(int *)(param_2 + 0x1c);
    iVar6 = bfd_get_reloc_size(local_54[3]);
    iVar8 = *(int *)(param_2 + 0x1c);
    param_3 = (iVar6 >> ((byte)DAT_000bb94c & 0x1f)) + param_3;
    if ((*(byte *)(iVar8 + 0x15) & 8) == 0) {
      *(uint *)(iVar8 + 0x24) = param_3 - *(int *)(iVar8 + 0x1c) << ((byte)DAT_000bb94c & 0x1f);
    }
    break;
  case 0xc:
    local_54[3] = 0;
    local_54[2] = param_3 - *(int *)(*(int *)(param_2 + 0x1c) + 0x1c);
    break;
  case 0xd:
    goto code_r0x00021d85;
  case 0xf:
code_r0x00021d85:
    param_3 = MASKED(param_3,param_4,param_5);
    break;
  default:
    FUN_00031780("../../ld/ldlang.c",0x15a7);
  }
LAB_00021b28:
  piVar18 = (int *)*local_54;
  param_1 = local_54;
  goto joined_r0x00021ad5;
code_r0x00021b1c:
  goto LAB_00021b28;
}

