
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void do_allocate_commons_list<64>(Symbol_table * this, Layout * layout,
   Commons_section_type commons_section_type, Commons_type * commons, Mapfile * mapfile,
   Sort_commons_order sort_order) */

void __thiscall
gold::Symbol_table::do_allocate_commons_list<64>
          (Symbol_table *this,Layout *layout,Commons_section_type commons_section_type,
          Commons_type *commons,Mapfile *mapfile,Sort_commons_order sort_order)

{
  undefined1 *puVar1;
  __normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>
  __first;
  uint64_t addralign;
  long lVar2;
  bool bVar3;
  undefined1 uVar4;
  bool bVar5;
  Layout *this_00;
  ulong uVar6;
  pointer ppSVar7;
  Output_section *posd;
  Sized_symbol<64> *pSVar8;
  pointer ppSVar9;
  __normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>
  __last;
  Layout *from;
  Layout *sym;
  Got_offset_list *pGVar10;
  Symbol_table *this_01;
  __normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>
  __last_00;
  char *pcVar11;
  Value_type value;
  char *pcVar12;
  pointer ppSVar13;
  _Val_comp_iter<gold::Sort_commons<64>_> __comp;
  _Iter_comp_iter<gold::Sort_commons<64>_> __comp_00;
  _Iter_comp_iter<gold::Sort_commons<64>_> __comp_01;
  _Iter_comp_iter<gold::Sort_commons<64>_> __comp_02;
  Output_section *local_78;
  ulong uStack_48;
  
  ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
             _M_start;
  if (ppSVar13 ==
      (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish
     ) {
    return;
  }
  pGVar10 = (Got_offset_list *)0x0;
  sym = layout;
  bVar5 = false;
  do {
    while( true ) {
      ppSVar9 = ppSVar13;
      from = (Layout *)*ppSVar9;
      this_00 = from;
      if ((*(byte *)((long)&from->namepool_ + 0x2a) & 0x10) != 0) {
        this_00 = (Layout *)resolve_forwards(this,(Symbol *)from);
        *ppSVar9 = (Symbol *)this_00;
        sym = from;
      }
      if (((((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000) == 0)
          && (((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)
              == 0)) &&
         (bVar3 = Symbol::is_common_shndx
                            ((uint)(this_00->namepool_).string_set_._M_h._M_bucket_count), bVar3))
      break;
      *ppSVar9 = (Symbol *)0x0;
      ppSVar13 = ppSVar9 + 1;
      bVar3 = bVar5;
      if ((commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
          _M_finish == ppSVar9 + 1) goto LAB_0023b0b8;
    }
    pSVar8 = get_sized_symbol<64>((Symbol_table *)this_00,(Symbol *)sym);
    if (pGVar10 < (Got_offset_list *)pSVar8->value_) {
      pGVar10 = (Got_offset_list *)pSVar8->value_;
    }
    ppSVar13 = ppSVar9 + 1;
    bVar5 = bVar3;
  } while ((commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
           _M_finish != ppSVar9 + 1);
LAB_0023b0b8:
  __last_00._M_current = ppSVar9 + 1;
  if (bVar3 == false) {
    return;
  }
  __first._M_current =
       (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_start
  ;
  if (__last_00._M_current == __first._M_current) {
LAB_0023b19c:
    if (commons_section_type != COMMONS_TLS) goto LAB_0023b1a9;
LAB_0023b3d3:
    pcVar12 = "** tls common";
    pcVar11 = ".tbss";
    uVar6 = 0x403;
  }
  else {
    uVar6 = (long)__last_00._M_current - (long)__first._M_current >> 3;
    lVar2 = 0x3f;
    if (uVar6 != 0) {
      for (; uVar6 >> lVar2 == 0; lVar2 = lVar2 + -1) {
      }
    }
    __comp_00._M_comp.sort_order_ = sort_order;
    __comp_00._M_comp.symtab_ = this;
    __comp_00._M_comp._12_4_ = 0;
    std::
    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>
              (__first,__last_00,(0x3f - (long)(int)((uint)lVar2 ^ 0x3f)) * 2,__comp_00);
    if (0x80 < (long)__last_00._M_current - (long)__first._M_current) {
      __last._M_current = __first._M_current + 0x10;
      __comp_01._M_comp.sort_order_ = sort_order;
      __comp_01._M_comp.symtab_ = this;
      __comp_01._M_comp._12_4_ = 0;
      std::
      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>
                (__first,__last,__comp_01);
      for (; __last_00._M_current != __last._M_current; __last._M_current = __last._M_current + 1) {
        uStack_48 = uStack_48 & 0xffffffff00000000 | (ulong)sort_order;
        __comp._M_comp._8_8_ = uStack_48;
        __comp._M_comp.symtab_ = this;
        std::
        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_commons<64>_>_>
                  (__last,__comp);
      }
      goto LAB_0023b19c;
    }
    __comp_02._M_comp.sort_order_ = sort_order;
    __comp_02._M_comp.symtab_ = this;
    __comp_02._M_comp._12_4_ = 0;
    std::
    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>
              (__first,__last_00,__comp_02);
    if (commons_section_type == COMMONS_TLS) goto LAB_0023b3d3;
LAB_0023b1a9:
    if (commons_section_type == COMMONS_NORMAL) {
      pcVar12 = "** common";
      pcVar11 = &DAT_00310adc;
      uVar6 = 3;
    }
    else {
      if (commons_section_type == COMMONS_SMALL) {
        if (parameters->target_ == (Target *)0x0) {
LAB_0023b4d0:
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/parameters.h",0x69,"target");
        }
        lVar2 = *(long *)(parameters->target_ + 8);
        if (*(short *)(lVar2 + 0x48) == 0) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags");
        }
        pcVar12 = "** small common";
        pcVar11 = ".sbss";
        uVar6 = *(ulong *)(lVar2 + 0x50) | 3;
        uVar4 = Parameters::incremental_update(parameters);
        goto joined_r0x0023b2a4;
      }
      if (commons_section_type != COMMONS_LARGE) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/common.cc",0x11b,"do_allocate_commons_list");
      }
      if (parameters->target_ == (Target *)0x0) goto LAB_0023b4d0;
      lVar2 = *(long *)(parameters->target_ + 8);
      if (*(short *)(lVar2 + 0x4a) == 0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/target.h",0xd5,"large_common_section_flags");
      }
      pcVar12 = "** large common";
      pcVar11 = ".lbss";
      uVar6 = *(ulong *)(lVar2 + 0x58) | 3;
    }
  }
  uVar4 = Parameters::incremental_update(parameters);
joined_r0x0023b2a4:
  if ((bool)uVar4) {
    posd = (Output_section *)0x0;
    local_78 = Layout::find_output_section(layout,pcVar11);
  }
  else {
    posd = (Output_section *)operator_new(0x40);
    puVar1 = &(posd->super_Output_data).field_0x20;
    *puVar1 = *puVar1 & 0xe0;
    (posd->super_Output_data).address_ = 0;
    (posd->super_Output_data).data_size_ = 0;
    (posd->super_Output_data).offset_ = -1;
    *(Output_section **)&posd->name_ = (Output_section *)0x0;
    posd->addralign_ = (uint64_t)pGVar10;
    (posd->super_Output_data)._vptr_Output_data =
         (_func_int_varargs **)&PTR__Output_data_space_003b4a48;
    posd->entsize_ = (uint64_t)pcVar12;
    local_78 = Layout::add_output_section_data
                         (layout,pcVar11,8,uVar6,(Output_section_data *)posd,ORDER_INVALID,false);
  }
  if (local_78 != (Output_section *)0x0) {
    if (commons_section_type == COMMONS_SMALL) {
      local_78->field_0xc9 = local_78->field_0xc9 | 0x40;
    }
    else if (commons_section_type == COMMONS_LARGE) {
      local_78->field_0xc9 = local_78->field_0xc9 | 0x80;
    }
  }
  ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
            _M_finish;
  ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
             _M_start;
  if ((ppSVar13 == ppSVar9) || (this_01 = (Symbol_table *)*ppSVar13, this_01 == (Symbol_table *)0x0)
     ) {
    value = 0;
    ppSVar7 = ppSVar9;
  }
  else {
    value = 0;
    do {
      ppSVar13 = ppSVar13 + 1;
      if ((((this_01->table_)._M_h._M_bucket_count & 0x70000) == 0) &&
         (((this_01->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {
        bVar5 = Symbol::is_common_shndx(this_01->output_count_);
        if (bVar5) {
          pSVar8 = get_sized_symbol<64>(this_01,(Symbol *)pcVar11);
          if (mapfile != (Mapfile *)0x0) {
            Mapfile::report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);
          }
          addralign = pSVar8->value_;
          if (posd != (Output_section *)0x0) {
            if (addralign != 0) {
              value = value + (addralign - 1) & -addralign;
            }
            pcVar11 = (char *)posd;
            Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value);
            value = value + pSVar8->symsize_;
            ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).
                      _M_impl._M_finish;
            goto LAB_0023b370;
          }
          value = Output_section::allocate(local_78,pSVar8->symsize_,addralign);
          if (value == 0xffffffffffffffff) {
            pcVar11 = local_78->name_;
            pcVar12 = (char *)gettext(
                                     "out of patch space in section %s; relink with --incremental-full"
                                     );
                    /* WARNING: Subroutine does not return */
            gold_fallback(pcVar12,pcVar11);
          }
          pcVar11 = (char *)local_78;
          Sized_symbol<64>::allocate_common(pSVar8,&local_78->super_Output_data,value);
        }
        ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).
                  _M_impl._M_finish;
      }
LAB_0023b370:
      ppSVar7 = ppSVar13;
    } while ((ppSVar9 != ppSVar13) &&
            (this_01 = (Symbol_table *)*ppSVar13, ppSVar7 = ppSVar9, this_01 != (Symbol_table *)0x0)
            );
  }
  if (posd != (Output_section *)0x0) {
    if (((posd->super_Output_data).field_0x20 & 2) != 0) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");
    }
    (posd->super_Output_data).data_size_ = value;
  }
  ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
             _M_start;
  if (ppSVar13 != ppSVar7) {
    (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish =
         ppSVar13;
  }
  return;
}



void FUN_0023b000(undefined8 param_1,undefined8 param_2,int param_3,long *param_4,long param_5,
                 uint param_6)

{
  undefined8 uVar1;
  char cVar2;
  char cVar3;
  long lVar4;
  ulong uVar5;
  ulong uVar6;
  long *plVar7;
  undefined8 *puVar8;
  long lVar9;
  undefined8 uVar10;
  long *plVar11;
  char *pcVar12;
  ulong uVar13;
  char *pcVar14;
  long *plVar15;
  long local_78;
  ulong uStack_48;
  
  if ((long *)*param_4 == (long *)param_4[1]) {
    return;
  }
  uVar13 = 0;
  plVar15 = (long *)*param_4;
  cVar3 = '\0';
  do {
    while( true ) {
      plVar11 = plVar15;
      lVar4 = *plVar11;
      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {
        lVar4 = FUN_0021ec60(param_1,lVar4);
        *plVar11 = lVar4;
      }
      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&
         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;
      *plVar11 = 0;
      plVar15 = plVar11 + 1;
      cVar2 = cVar3;
      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;
    }
    lVar4 = FUN_00239c90(lVar4);
    if (uVar13 < *(ulong *)(lVar4 + 0x40)) {
      uVar13 = *(ulong *)(lVar4 + 0x40);
    }
    plVar15 = plVar11 + 1;
    cVar3 = cVar2;
  } while ((long *)param_4[1] != plVar11 + 1);
LAB_0023b0b8:
  plVar11 = plVar11 + 1;
  if (cVar2 == '\0') {
    return;
  }
  uVar6 = (ulong)param_6;
  plVar15 = (long *)*param_4;
  if (plVar11 == plVar15) {
LAB_0023b19c:
    if (param_3 != 1) goto LAB_0023b1a9;
LAB_0023b3d3:
    pcVar14 = "** tls common";
    pcVar12 = ".tbss";
    uVar6 = 0x403;
  }
  else {
    uVar5 = (long)plVar11 - (long)plVar15 >> 3;
    lVar4 = 0x3f;
    if (uVar5 != 0) {
      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {
      }
    }
    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);
    if (0x80 < (long)plVar11 - (long)plVar15) {
      plVar7 = plVar15 + 0x10;
      FUN_0023a100(plVar15,plVar7,param_1,uVar6);
      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {
        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;
        FUN_0023a0b0(plVar7,param_1,uStack_48);
      }
      goto LAB_0023b19c;
    }
    FUN_0023a100(plVar15,plVar11,param_1,uVar6);
    if (param_3 == 1) goto LAB_0023b3d3;
LAB_0023b1a9:
    if (param_3 == 0) {
      pcVar14 = "** common";
      pcVar12 = ".bss";
      uVar6 = 3;
    }
    else {
      if (param_3 == 2) {
        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {
LAB_0023b4d0:
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");
        }
        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);
        if (*(short *)(lVar4 + 0x48) == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");
        }
        pcVar14 = "** small common";
        pcVar12 = ".sbss";
        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;
        cVar3 = FUN_001ee080();
        goto joined_r0x0023b2a4;
      }
      if (param_3 != 3) {
                    /* WARNING: Subroutine does not return */
        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");
      }
      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;
      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);
      if (*(short *)(lVar4 + 0x4a) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");
      }
      pcVar14 = "** large common";
      pcVar12 = ".lbss";
      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;
    }
  }
  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);
joined_r0x0023b2a4:
  if (cVar3 == '\0') {
    puVar8 = (undefined8 *)FUN_00275550(0x40);
    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;
    puVar8[1] = 0;
    puVar8[2] = 0;
    puVar8[3] = 0xffffffffffffffff;
    puVar8[5] = 0;
    puVar8[6] = uVar13;
    *puVar8 = &PTR_FUN_003b4a48;
    puVar8[7] = pcVar14;
    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);
  }
  else {
    puVar8 = (undefined8 *)0x0;
    local_78 = FUN_00186340(param_2,pcVar12);
  }
  if (local_78 != 0) {
    if (param_3 == 2) {
      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;
    }
    else if (param_3 == 3) {
      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;
    }
  }
  plVar11 = (long *)param_4[1];
  plVar15 = (long *)*param_4;
  if ((plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0)) {
    uVar13 = 0;
    plVar7 = plVar11;
  }
  else {
    uVar13 = 0;
    do {
      plVar15 = plVar15 + 1;
      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {
        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));
        if (cVar3 != '\0') {
          lVar9 = FUN_00239c90(lVar4);
          if (param_5 != 0) {
            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));
          }
          lVar4 = *(long *)(lVar9 + 0x40);
          if (puVar8 != (undefined8 *)0x0) {
            if (lVar4 != 0) {
              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;
            }
            FUN_00221cb0(lVar9,puVar8,uVar13);
            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);
            plVar11 = (long *)param_4[1];
            goto LAB_0023b370;
          }
          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));
          if (uVar13 == 0xffffffffffffffff) {
            uVar1 = *(undefined8 *)(local_78 + 0x28);
            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");
            FUN_00169000(uVar10,uVar1);
            goto LAB_0023b521;
          }
          FUN_00221cb0(lVar9,local_78,uVar13);
        }
        plVar11 = (long *)param_4[1];
      }
LAB_0023b370:
      plVar7 = plVar15;
    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));
  }
  if (puVar8 != (undefined8 *)0x0) {
    if ((*(byte *)(puVar8 + 4) & 2) != 0) {
LAB_0023b521:
                    /* WARNING: Subroutine does not return */
      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");
    }
    puVar8[2] = uVar13;
  }
  if ((long *)*param_4 != plVar7) {
    param_4[1] = *param_4;
  }
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x48
MOV R13,qword ptr [RCX]
MOV qword ptr [RSP + 0x20],RSI
MOV dword ptr [RSP + 0x14],EDX
MOV qword ptr [RSP + 0x8],R8
MOV dword ptr [RSP + 0x18],R9D
CMP R13,qword ptr [RCX + 0x8]
JZ 0x0023b242
MOV RBP,RDI
MOV RBX,RCX
XOR R12D,R12D
XOR R14D,R14D
JMP 0x0023b060
TEST byte ptr [R15 + 0x3a],0x7
JNZ 0x0023b04e
TEST byte ptr [R15 + 0x3b],0x20
JZ 0x0023b080
MOV qword ptr [R13],0x0
ADD R13,0x8
CMP qword ptr [RBX + 0x8],R13
JZ 0x0023b0b8
MOV R15,qword ptr [R13]
TEST byte ptr [R15 + 0x3a],0x10
JZ 0x0023b040
MOV RSI,R15
MOV RDI,RBP
CALL 0x0021ec60
MOV R15,RAX
MOV qword ptr [R13],RAX
JMP 0x0023b040
MOV EDI,dword ptr [R15 + 0x18]
CALL 0x0021e870
TEST AL,AL
MOV byte ptr [RSP],AL
JZ 0x0023b04e
MOV RDI,R15
CALL 0x00239c90
MOVZX EDX,byte ptr [RSP]
MOV RAX,qword ptr [RAX + 0x40]
MOV R14D,EDX
CMP R12,RAX
CMOVC R12,RAX
ADD R13,0x8
CMP qword ptr [RBX + 0x8],R13
JNZ 0x0023b060
NOP dword ptr [RAX]
TEST R14B,R14B
JZ 0x0023b242
MOV R15D,dword ptr [RSP + 0x18]
MOV R10,qword ptr [RBX]
MOV R8,R15
CMP R13,R10
JZ 0x0023b19c
MOV R14,R13
MOV EDX,0x3f
MOV RCX,RBP
MOV RDI,R10
SUB R14,R10
MOV RSI,R13
MOV qword ptr [RSP],R10
MOV RAX,R14
SAR RAX,0x3
BSR RAX,RAX
XOR RAX,0x3f
CDQE
SUB RDX,RAX
ADD RDX,RDX
CALL 0x0023ad40
CMP R14,0x80
MOV RCX,R15
MOV R10,qword ptr [RSP]
JLE 0x0023b3b8
LEA R14,[R10 + 0x80]
MOV RDX,RBP
MOV RDI,R10
MOV RSI,R14
CALL 0x0023a100
MOV RAX,-0x100000000
CMP R13,R14
JZ 0x0023b19c
MOV qword ptr [RSP + 0x18],R12
MOV R12,qword ptr [RSP + 0x38]
MOV qword ptr [RSP],R13
MOV R13,qword ptr [RSP + 0x30]
MOV qword ptr [RSP + 0x28],RBX
MOV RBX,R14
MOV R14,RBP
MOV RBP,RAX
NOP word ptr [RAX + RAX*0x1]
MOV RAX,R13
MOV RDI,RBX
AND R12,RBP
MOV RSI,R14
AND RAX,RBP
OR R12,R15
ADD RBX,0x8
OR RAX,R15
MOV RDX,RAX
MOV R13,RAX
CALL 0x0023a0b0
CMP qword ptr [RSP],RBX
JNZ 0x0023b168
MOV R12,qword ptr [RSP + 0x18]
MOV RBX,qword ptr [RSP + 0x28]
MOV EAX,dword ptr [RSP + 0x14]
CMP EAX,0x1
JZ 0x0023b3d3
TEST EAX,EAX
JZ 0x0023b480
CMP EAX,0x2
JNZ 0x0023b258
MOV RDI,qword ptr [0x003be6b0]
MOV RAX,qword ptr [RDI + 0x18]
TEST RAX,RAX
JZ 0x0023b4d0
MOV RAX,qword ptr [RAX + 0x8]
CMP word ptr [RAX + 0x48],0x0
JZ 0x0023b539
MOV RAX,qword ptr [RAX + 0x50]
LEA R15,[0x322f8c]
LEA R14,[0x310b13]
OR RAX,0x3
MOV R13,RAX
CALL 0x001ee080
TEST AL,AL
JZ 0x0023b2aa
MOV RDI,qword ptr [RSP + 0x20]
MOV RSI,R14
XOR EBP,EBP
CALL 0x00186340
MOV qword ptr [RSP],RAX
JMP 0x0023b316
MOV RAX,RDX
TEST RBP,RBP
JZ 0x0023b236
TEST byte ptr [RBP + 0x20],0x2
JNZ 0x0023b521
MOV qword ptr [RBP + 0x10],R14
MOV RDX,qword ptr [RBX]
CMP RDX,RAX
JZ 0x0023b242
MOV qword ptr [RBX + 0x8],RDX
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CMP EAX,0x3
JNZ 0x0023b4e8
MOV RDI,qword ptr [0x003be6b0]
MOV RAX,qword ptr [RDI + 0x18]
TEST RAX,RAX
JZ 0x0023b4d0
MOV RAX,qword ptr [RAX + 0x8]
CMP word ptr [RAX + 0x4a],0x0
JZ 0x0023b4b8
MOV RAX,qword ptr [RAX + 0x58]
LEA R15,[0x322f72]
LEA R14,[0x310b53]
OR RAX,0x3
MOV R13,RAX
CALL 0x001ee080
TEST AL,AL
JNZ 0x0023b203
MOV EDI,0x40
CALL 0x00275550
SUB RSP,0x8
XOR R9D,R9D
MOV RCX,R13
AND byte ptr [RAX + 0x20],0xe0
MOV RBP,RAX
MOV EDX,0x8
MOV RSI,R14
MOV qword ptr [RAX + 0x8],0x0
MOV R8,RBP
MOV qword ptr [RAX + 0x10],0x0
MOV qword ptr [RAX + 0x18],-0x1
MOV qword ptr [RAX + 0x28],0x0
MOV qword ptr [RAX + 0x30],R12
LEA RAX,[0x3b4a48]
MOV qword ptr [RBP],RAX
MOV qword ptr [RBP + 0x38],R15
PUSH 0x0
MOV RDI,qword ptr [RSP + 0x30]
CALL 0x0018ed20
MOV qword ptr [RSP + 0x10],RAX
POP RAX
POP RDX
CMP qword ptr [RSP],0x0
JZ 0x0023b340
CMP dword ptr [RSP + 0x14],0x2
JZ 0x0023b4a0
CMP dword ptr [RSP + 0x14],0x3
JNZ 0x0023b340
MOV RAX,qword ptr [RSP]
OR byte ptr [RAX + 0xc9],0x80
NOP word ptr [RAX + RAX*0x1]
MOV RDX,qword ptr [RBX + 0x8]
MOV R15,qword ptr [RBX]
MOV RAX,RDX
CMP R15,RDX
JZ 0x0023b4b0
MOV R12,qword ptr [R15]
TEST R12,R12
JZ 0x0023b4b0
ADD R15,0x8
XOR R14D,R14D
JMP 0x0023b38d
MOV RAX,R15
CMP RDX,R15
JZ 0x0023b223
LEA R15,[RAX + 0x8]
MOV R12,qword ptr [R15 + -0x8]
TEST R12,R12
JZ 0x0023b220
TEST byte ptr [R12 + 0x3a],0x7
JNZ 0x0023b370
TEST byte ptr [R12 + 0x3b],0x20
JNZ 0x0023b370
MOV EDI,dword ptr [R12 + 0x18]
CALL 0x0021e870
TEST AL,AL
JNZ 0x0023b3f8
MOV RDX,qword ptr [RBX + 0x8]
JMP 0x0023b370
MOV RDX,RBP
MOV RSI,R13
MOV RDI,R10
CALL 0x0023a100
MOV EAX,dword ptr [RSP + 0x14]
CMP EAX,0x1
JNZ 0x0023b1a9
MOV RDI,qword ptr [0x003be6b0]
LEA R15,[0x322f9c]
LEA R14,[0x310af7]
MOV R13D,0x403
JMP 0x0023b29d
MOV RDI,R12
CALL 0x00239c90
MOV RDI,qword ptr [RSP + 0x8]
MOV R13,RAX
TEST RDI,RDI
JZ 0x0023b419
MOV RDX,qword ptr [RAX + 0x48]
MOV RSI,R12
CALL 0x001997d0
MOV RDX,qword ptr [R13 + 0x40]
TEST RBP,RBP
JZ 0x0023b450
TEST RDX,RDX
JZ 0x0023b432
LEA R14,[R14 + RDX*0x1 + -0x1]
NEG RDX
AND R14,RDX
MOV RDX,R14
MOV RSI,RBP
MOV RDI,R13
CALL 0x00221cb0
ADD R14,qword ptr [R13 + 0x48]
MOV RDX,qword ptr [RBX + 0x8]
JMP 0x0023b370
MOV RSI,qword ptr [R13 + 0x48]
MOV RDI,qword ptr [RSP]
CALL 0x001c2320
MOV R14,RAX
CMP RAX,-0x1
JZ 0x0023b500
MOV RSI,qword ptr [RSP]
MOV RDX,RAX
MOV RDI,R13
CALL 0x00221cb0
JMP 0x0023b3ab
MOV RDI,qword ptr [0x003be6b0]
LEA R15,[0x322f82]
LEA R14,[0x310adc]
MOV R13D,0x3
JMP 0x0023b29d
MOV RAX,qword ptr [RSP]
OR byte ptr [RAX + 0xc9],0x40
JMP 0x0023b340
XOR R14D,R14D
JMP 0x0023b223
LEA RDX,[0x323190]
MOV ESI,0xd5
LEA RDI,[0x322faa]
CALL 0x0016cdf0
LEA RDX,[0x323069]
MOV ESI,0x69
LEA RDI,[0x30dc70]
CALL 0x0016cdf0
LEA RDX,[0x323050]
MOV ESI,0x11b
LEA RDI,[0x322f5d]
CALL 0x0016cdf0
MOV RAX,qword ptr [RSP]
LEA RDI,[0x318880]
MOV RBX,qword ptr [RAX + 0x28]
CALL 0x0013e320
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
CALL 0x00169000
LEA RDX,[0x323080]
MOV ESI,0x231
LEA RDI,[0x30e9f4]
CALL 0x0016cdf0
LEA RDX,[0x3231b0]
MOV ESI,0xc5
LEA RDI,[0x322faa]
CALL 0x0016cdf0
(translation_unit "void FUN_0023b000(undefined8 param_1,undefined8 param_2,int param_3,long *param_4,long param_5,\n                 uint param_6)\n\n{\n  undefined8 uVar1;\n  char cVar2;\n  char cVar3;\n  long lVar4;\n  ulong uVar5;\n  ulong uVar6;\n  long *plVar7;\n  undefined8 *puVar8;\n  long lVar9;\n  undefined8 uVar10;\n  long *plVar11;\n  char *pcVar12;\n  ulong uVar13;\n  char *pcVar14;\n  long *plVar15;\n  long local_78;\n  ulong uStack_48;\n  \n  if ((long *)*param_4 == (long *)param_4[1]) {\n    return;\n  }\n  uVar13 = 0;\n  plVar15 = (long *)*param_4;\n  cVar3 = '\0';\n  do {\n    while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }\n    lVar4 = FUN_00239c90(lVar4);\n    if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }\n    plVar15 = plVar11 + 1;\n    cVar3 = cVar2;\n  } while ((long *)param_4[1] != plVar11 + 1);\nLAB_0023b0b8:\n  plVar11 = plVar11 + 1;\n  if (cVar2 == '\0') {\n    return;\n  }\n  uVar6 = (ulong)param_6;\n  plVar15 = (long *)*param_4;\n  if (plVar11 == plVar15) {\nLAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar14 = "** tls common";\n    pcVar12 = ".tbss";\n    uVar6 = 0x403;\n  }\n  else {\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }\n  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);\njoined_r0x0023b2a4:\n  if (cVar3 == '\0') {\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }\n  else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }\n  if (local_78 != 0) {\n    if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }\n  }\n  plVar11 = (long *)param_4[1];\n  plVar15 = (long *)*param_4;\n  if ((plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0)) {\n    uVar13 = 0;\n    plVar7 = plVar11;\n  }\n  else {\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }\n  if (puVar8 != (undefined8 *)0x0) {\n    if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    puVar8[2] = uVar13;\n  }\n  if ((long *)*param_4 != plVar7) {\n    param_4[1] = *param_4;\n  }\n  return;\n}\n\n" (function_definition "void FUN_0023b000(undefined8 param_1,undefined8 param_2,int param_3,long *param_4,long param_5,\n                 uint param_6)\n\n{\n  undefined8 uVar1;\n  char cVar2;\n  char cVar3;\n  long lVar4;\n  ulong uVar5;\n  ulong uVar6;\n  long *plVar7;\n  undefined8 *puVar8;\n  long lVar9;\n  undefined8 uVar10;\n  long *plVar11;\n  char *pcVar12;\n  ulong uVar13;\n  char *pcVar14;\n  long *plVar15;\n  long local_78;\n  ulong uStack_48;\n  \n  if ((long *)*param_4 == (long *)param_4[1]) {\n    return;\n  }\n  uVar13 = 0;\n  plVar15 = (long *)*param_4;\n  cVar3 = '\0';\n  do {\n    while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }\n    lVar4 = FUN_00239c90(lVar4);\n    if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }\n    plVar15 = plVar11 + 1;\n    cVar3 = cVar2;\n  } while ((long *)param_4[1] != plVar11 + 1);\nLAB_0023b0b8:\n  plVar11 = plVar11 + 1;\n  if (cVar2 == '\0') {\n    return;\n  }\n  uVar6 = (ulong)param_6;\n  plVar15 = (long *)*param_4;\n  if (plVar11 == plVar15) {\nLAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar14 = "** tls common";\n    pcVar12 = ".tbss";\n    uVar6 = 0x403;\n  }\n  else {\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }\n  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);\njoined_r0x0023b2a4:\n  if (cVar3 == '\0') {\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }\n  else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }\n  if (local_78 != 0) {\n    if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }\n  }\n  plVar11 = (long *)param_4[1];\n  plVar15 = (long *)*param_4;\n  if ((plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0)) {\n    uVar13 = 0;\n    plVar7 = plVar11;\n  }\n  else {\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }\n  if (puVar8 != (undefined8 *)0x0) {\n    if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    puVar8[2] = uVar13;\n  }\n  if ((long *)*param_4 != plVar7) {\n    param_4[1] = *param_4;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0023b000(undefined8 param_1,undefined8 param_2,int param_3,long *param_4,long param_5,\n                 uint param_6)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,int param_3,long *param_4,long param_5,\n                 uint param_6)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "long *param_4" (sized_type_specifier "long" long) (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint param_6" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  char cVar2;\n  char cVar3;\n  long lVar4;\n  ulong uVar5;\n  ulong uVar6;\n  long *plVar7;\n  undefined8 *puVar8;\n  long lVar9;\n  undefined8 uVar10;\n  long *plVar11;\n  char *pcVar12;\n  ulong uVar13;\n  char *pcVar14;\n  long *plVar15;\n  long local_78;\n  ulong uStack_48;\n  \n  if ((long *)*param_4 == (long *)param_4[1]) {\n    return;\n  }\n  uVar13 = 0;\n  plVar15 = (long *)*param_4;\n  cVar3 = '\0';\n  do {\n    while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }\n    lVar4 = FUN_00239c90(lVar4);\n    if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }\n    plVar15 = plVar11 + 1;\n    cVar3 = cVar2;\n  } while ((long *)param_4[1] != plVar11 + 1);\nLAB_0023b0b8:\n  plVar11 = plVar11 + 1;\n  if (cVar2 == '\0') {\n    return;\n  }\n  uVar6 = (ulong)param_6;\n  plVar15 = (long *)*param_4;\n  if (plVar11 == plVar15) {\nLAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar14 = "** tls common";\n    pcVar12 = ".tbss";\n    uVar6 = 0x403;\n  }\n  else {\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }\n  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);\njoined_r0x0023b2a4:\n  if (cVar3 == '\0') {\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }\n  else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }\n  if (local_78 != 0) {\n    if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }\n  }\n  plVar11 = (long *)param_4[1];\n  plVar15 = (long *)*param_4;\n  if ((plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0)) {\n    uVar13 = 0;\n    plVar7 = plVar11;\n  }\n  else {\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }\n  if (puVar8 != (undefined8 *)0x0) {\n    if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    puVar8[2] = uVar13;\n  }\n  if ((long *)*param_4 != plVar7) {\n    param_4[1] = *param_4;\n  }\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "long *plVar7;" (sized_type_specifier "long" long) (pointer_declarator "*plVar7" * identifier) ;) (declaration "undefined8 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "long *plVar11;" (sized_type_specifier "long" long) (pointer_declarator "*plVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "long *plVar15;" (sized_type_specifier "long" long) (pointer_declarator "*plVar15" * identifier) ;) (declaration "long local_78;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uStack_48;" type_identifier identifier ;) (if_statement "if ((long *)*param_4 == (long *)param_4[1]) {\n    return;\n  }" if (parenthesized_expression "((long *)*param_4 == (long *)param_4[1])" ( (binary_expression "(long *)*param_4 == (long *)param_4[1]" (cast_expression "(long *)*param_4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) == (cast_expression "(long *)param_4[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "plVar15 = (long *)*param_4;" (assignment_expression "plVar15 = (long *)*param_4" identifier = (cast_expression "(long *)*param_4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "cVar3 = '\0';" (assignment_expression "cVar3 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n    while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }\n    lVar4 = FUN_00239c90(lVar4);\n    if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }\n    plVar15 = plVar11 + 1;\n    cVar3 = cVar2;\n  } while ((long *)param_4[1] != plVar11 + 1);" do (compound_statement "{\n    while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }\n    lVar4 = FUN_00239c90(lVar4);\n    if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }\n    plVar15 = plVar11 + 1;\n    cVar3 = cVar2;\n  }" { (while_statement "while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }" { (expression_statement "plVar11 = plVar15;" (assignment_expression "plVar11 = plVar15" identifier = identifier) ;) (expression_statement "lVar4 = *plVar11;" (assignment_expression "lVar4 = *plVar11" identifier = (pointer_expression "*plVar11" * identifier)) ;) (if_statement "if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }" if (parenthesized_expression "((*(byte *)(lVar4 + 0x3a) & 0x10) != 0)" ( (binary_expression "(*(byte *)(lVar4 + 0x3a) & 0x10) != 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3a) & 0x10)" ( (binary_expression "*(byte *)(lVar4 + 0x3a) & 0x10" (pointer_expression "*(byte *)(lVar4 + 0x3a)" * (cast_expression "(byte *)(lVar4 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x3a)" ( (binary_expression "lVar4 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }" { (expression_statement "lVar4 = FUN_0021ec60(param_1,lVar4);" (assignment_expression "lVar4 = FUN_0021ec60(param_1,lVar4)" identifier = (call_expression "FUN_0021ec60(param_1,lVar4)" identifier (argument_list "(param_1,lVar4)" ( identifier , identifier )))) ;) (expression_statement "*plVar11 = lVar4;" (assignment_expression "*plVar11 = lVar4" (pointer_expression "*plVar11" * identifier) = identifier) ;) })) (if_statement "if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;" if (parenthesized_expression "((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0'))" ( (binary_expression "(((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')" (parenthesized_expression "(((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0))" ( (binary_expression "((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)" (parenthesized_expression "((*(byte *)(lVar4 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)(lVar4 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar4 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar4 + 0x3a)" * (cast_expression "(byte *)(lVar4 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x3a)" ( (binary_expression "lVar4 + 0x3a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)" ( (binary_expression "(*(byte *)(lVar4 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)(lVar4 + 0x3b) & 0x20" (pointer_expression "*(byte *)(lVar4 + 0x3b)" * (cast_expression "(byte *)(lVar4 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x3b)" ( (binary_expression "lVar4 + 0x3b" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')" ( (comma_expression "cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0'" (assignment_expression "cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18))" identifier = (call_expression "FUN_0021e870(*(undefined4 *)(lVar4 + 0x18))" identifier (argument_list "(*(undefined4 *)(lVar4 + 0x18))" ( (pointer_expression "*(undefined4 *)(lVar4 + 0x18)" * (cast_expression "(undefined4 *)(lVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x18)" ( (binary_expression "lVar4 + 0x18" identifier + number_literal) )))) )))) , (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (break_statement "break;" break ;)) (expression_statement "*plVar11 = 0;" (assignment_expression "*plVar11 = 0" (pointer_expression "*plVar11" * identifier) = number_literal) ;) (expression_statement "plVar15 = plVar11 + 1;" (assignment_expression "plVar15 = plVar11 + 1" identifier = (binary_expression "plVar11 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = cVar3;" (assignment_expression "cVar2 = cVar3" identifier = identifier) ;) (if_statement "if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;" if (parenthesized_expression "((long *)param_4[1] == plVar11 + 1)" ( (binary_expression "(long *)param_4[1] == plVar11 + 1" (cast_expression "(long *)param_4[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[1]" identifier [ number_literal ])) == (binary_expression "plVar11 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_0023b0b8;" goto statement_identifier ;)) })) (expression_statement "lVar4 = FUN_00239c90(lVar4);" (assignment_expression "lVar4 = FUN_00239c90(lVar4)" identifier = (call_expression "FUN_00239c90(lVar4)" identifier (argument_list "(lVar4)" ( identifier )))) ;) (if_statement "if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }" if (parenthesized_expression "(uVar13 < *(ulong *)(lVar4 + 0x40))" ( (binary_expression "uVar13 < *(ulong *)(lVar4 + 0x40)" identifier < (pointer_expression "*(ulong *)(lVar4 + 0x40)" * (cast_expression "(ulong *)(lVar4 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x40)" ( (binary_expression "lVar4 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }" { (expression_statement "uVar13 = *(ulong *)(lVar4 + 0x40);" (assignment_expression "uVar13 = *(ulong *)(lVar4 + 0x40)" identifier = (pointer_expression "*(ulong *)(lVar4 + 0x40)" * (cast_expression "(ulong *)(lVar4 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x40)" ( (binary_expression "lVar4 + 0x40" identifier + number_literal) ))))) ;) })) (expression_statement "plVar15 = plVar11 + 1;" (assignment_expression "plVar15 = plVar11 + 1" identifier = (binary_expression "plVar11 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = cVar2;" (assignment_expression "cVar3 = cVar2" identifier = identifier) ;) }) while (parenthesized_expression "((long *)param_4[1] != plVar11 + 1)" ( (binary_expression "(long *)param_4[1] != plVar11 + 1" (cast_expression "(long *)param_4[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[1]" identifier [ number_literal ])) != (binary_expression "plVar11 + 1" identifier + number_literal)) )) ;) (labeled_statement "LAB_0023b0b8:\n  plVar11 = plVar11 + 1;" statement_identifier : (expression_statement "plVar11 = plVar11 + 1;" (assignment_expression "plVar11 = plVar11 + 1" identifier = (binary_expression "plVar11 + 1" identifier + number_literal)) ;)) (if_statement "if (cVar2 == '\0') {\n    return;\n  }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar6 = (ulong)param_6;" (assignment_expression "uVar6 = (ulong)param_6" identifier = (cast_expression "(ulong)param_6" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "plVar15 = (long *)*param_4;" (assignment_expression "plVar15 = (long *)*param_4" identifier = (cast_expression "(long *)*param_4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (plVar11 == plVar15) {\nLAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar14 = "** tls common";\n    pcVar12 = ".tbss";\n    uVar6 = 0x403;\n  }\n  else {\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }" if (parenthesized_expression "(plVar11 == plVar15)" ( (binary_expression "plVar11 == plVar15" identifier == identifier) )) (compound_statement "{\nLAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar14 = "** tls common";\n    pcVar12 = ".tbss";\n    uVar6 = 0x403;\n  }" { (labeled_statement "LAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;" statement_identifier : (if_statement "if (param_3 != 1) goto LAB_0023b1a9;" if (parenthesized_expression "(param_3 != 1)" ( (binary_expression "param_3 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0023b1a9;" goto statement_identifier ;))) (labeled_statement "LAB_0023b3d3:\n    pcVar14 = "** tls common";" statement_identifier : (expression_statement "pcVar14 = "** tls common";" (assignment_expression "pcVar14 = "** tls common"" identifier = (string_literal ""** tls common"" " string_content ")) ;)) (expression_statement "pcVar12 = ".tbss";" (assignment_expression "pcVar12 = ".tbss"" identifier = (string_literal "".tbss"" " string_content ")) ;) (expression_statement "uVar6 = 0x403;" (assignment_expression "uVar6 = 0x403" identifier = number_literal) ;) }) (else_clause "else {\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }" else (compound_statement "{\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }" { (expression_statement "uVar5 = (long)plVar11 - (long)plVar15 >> 3;" (assignment_expression "uVar5 = (long)plVar11 - (long)plVar15 >> 3" identifier = (binary_expression "(long)plVar11 - (long)plVar15 >> 3" (binary_expression "(long)plVar11 - (long)plVar15" (cast_expression "(long)plVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)plVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal)) ;) (expression_statement "lVar4 = 0x3f;" (assignment_expression "lVar4 = 0x3f" identifier = number_literal) ;) (if_statement "if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }" { (for_statement "for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }" for ( ; (binary_expression "uVar5 >> lVar4 == 0" (binary_expression "uVar5 >> lVar4" identifier >> identifier) == number_literal) ; (assignment_expression "lVar4 = lVar4 + -1" identifier = (binary_expression "lVar4 + -1" identifier + number_literal)) ) (compound_statement "{\n      }" { })) })) (expression_statement "FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);" (call_expression "FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6)" identifier (argument_list "(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6)" ( identifier , identifier , (binary_expression "(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2" (parenthesized_expression "(0x3f - (long)(int)((uint)lVar4 ^ 0x3f))" ( (binary_expression "0x3f - (long)(int)((uint)lVar4 ^ 0x3f)" number_literal - (cast_expression "(long)(int)((uint)lVar4 ^ 0x3f)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)((uint)lVar4 ^ 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)lVar4 ^ 0x3f)" ( (binary_expression "(uint)lVar4 ^ 0x3f" (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier) ^ number_literal) ))))) )) * number_literal) , identifier , identifier ))) ;) (if_statement "if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }" if (parenthesized_expression "(0x80 < (long)plVar11 - (long)plVar15)" ( (binary_expression "0x80 < (long)plVar11 - (long)plVar15" number_literal < (binary_expression "(long)plVar11 - (long)plVar15" (cast_expression "(long)plVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)plVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) )) (compound_statement "{\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }" { (expression_statement "plVar7 = plVar15 + 0x10;" (assignment_expression "plVar7 = plVar15 + 0x10" identifier = (binary_expression "plVar15 + 0x10" identifier + number_literal)) ;) (expression_statement "FUN_0023a100(plVar15,plVar7,param_1,uVar6);" (call_expression "FUN_0023a100(plVar15,plVar7,param_1,uVar6)" identifier (argument_list "(plVar15,plVar7,param_1,uVar6)" ( identifier , identifier , identifier , identifier ))) ;) (for_statement "for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }" for ( ; (binary_expression "plVar11 != plVar7" identifier != identifier) ; (assignment_expression "plVar7 = plVar7 + 1" identifier = (binary_expression "plVar7 + 1" identifier + number_literal)) ) (compound_statement "{\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }" { (expression_statement "uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;" (assignment_expression "uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6" identifier = (binary_expression "uStack_48 & 0xffffffff00000000 | uVar6" (binary_expression "uStack_48 & 0xffffffff00000000" identifier & number_literal) | identifier)) ;) (expression_statement "FUN_0023a0b0(plVar7,param_1,uStack_48);" (call_expression "FUN_0023a0b0(plVar7,param_1,uStack_48)" identifier (argument_list "(plVar7,param_1,uStack_48)" ( identifier , identifier , identifier ))) ;) })) (goto_statement "goto LAB_0023b19c;" goto statement_identifier ;) })) (expression_statement "FUN_0023a100(plVar15,plVar11,param_1,uVar6);" (call_expression "FUN_0023a100(plVar15,plVar11,param_1,uVar6)" identifier (argument_list "(plVar15,plVar11,param_1,uVar6)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (param_3 == 1) goto LAB_0023b3d3;" if (parenthesized_expression "(param_3 == 1)" ( (binary_expression "param_3 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0023b3d3;" goto statement_identifier ;)) (labeled_statement "LAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }" statement_identifier : (if_statement "if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }" { (expression_statement "pcVar14 = "** common";" (assignment_expression "pcVar14 = "** common"" identifier = (string_literal ""** common"" " string_content ")) ;) (expression_statement "pcVar12 = ".bss";" (assignment_expression "pcVar12 = ".bss"" identifier = (string_literal "".bss"" " string_content ")) ;) (expression_statement "uVar6 = 3;" (assignment_expression "uVar6 = 3" identifier = number_literal) ;) }) (else_clause "else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }" else (compound_statement "{\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }" { (if_statement "if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }" if (parenthesized_expression "(param_3 == 2)" ( (binary_expression "param_3 == 2" identifier == number_literal) )) (compound_statement "{\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }" { (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }" if (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }" { (labeled_statement "LAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");" statement_identifier : comment (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0016cdf0("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;)) })) (expression_statement "lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);" (assignment_expression "lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" identifier = (pointer_expression "*(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" * (cast_expression "(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (*(short *)(lVar4 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }" if (parenthesized_expression "(*(short *)(lVar4 + 0x48) == 0)" ( (binary_expression "*(short *)(lVar4 + 0x48) == 0" (pointer_expression "*(short *)(lVar4 + 0x48)" * (cast_expression "(short *)(lVar4 + 0x48)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x48)" ( (binary_expression "lVar4 + 0x48" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }" { comment (expression_statement "FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");" (call_expression "FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags")" identifier (argument_list "("../../gold/target.h",0xc5,"small_common_section_flags")" ( (string_literal ""../../gold/target.h"" " string_content ") , number_literal , (string_literal ""small_common_section_flags"" " string_content ") ))) ;) })) (expression_statement "pcVar14 = "** small common";" (assignment_expression "pcVar14 = "** small common"" identifier = (string_literal ""** small common"" " string_content ")) ;) (expression_statement "pcVar12 = ".sbss";" (assignment_expression "pcVar12 = ".sbss"" identifier = (string_literal "".sbss"" " string_content ")) ;) (expression_statement "uVar6 = *(ulong *)(lVar4 + 0x50) | 3;" (assignment_expression "uVar6 = *(ulong *)(lVar4 + 0x50) | 3" identifier = (binary_expression "*(ulong *)(lVar4 + 0x50) | 3" (pointer_expression "*(ulong *)(lVar4 + 0x50)" * (cast_expression "(ulong *)(lVar4 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x50)" ( (binary_expression "lVar4 + 0x50" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "cVar3 = FUN_001ee080();" (assignment_expression "cVar3 = FUN_001ee080()" identifier = (call_expression "FUN_001ee080()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto joined_r0x0023b2a4;" goto statement_identifier ;) })) (if_statement "if (param_3 != 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }" if (parenthesized_expression "(param_3 != 3)" ( (binary_expression "param_3 != 3" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }" { comment (expression_statement "FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");" (call_expression "FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list")" identifier (argument_list "("../../gold/common.cc",0x11b,"do_allocate_commons_list")" ( (string_literal ""../../gold/common.cc"" " string_content ") , number_literal , (string_literal ""do_allocate_commons_list"" " string_content ") ))) ;) })) (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;" if (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0023b4d0;" goto statement_identifier ;)) (expression_statement "lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);" (assignment_expression "lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" identifier = (pointer_expression "*(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" * (cast_expression "(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (*(short *)(lVar4 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }" if (parenthesized_expression "(*(short *)(lVar4 + 0x4a) == 0)" ( (binary_expression "*(short *)(lVar4 + 0x4a) == 0" (pointer_expression "*(short *)(lVar4 + 0x4a)" * (cast_expression "(short *)(lVar4 + 0x4a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x4a)" ( (binary_expression "lVar4 + 0x4a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }" { comment (expression_statement "FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");" (call_expression "FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags")" identifier (argument_list "("../../gold/target.h",0xd5,"large_common_section_flags")" ( (string_literal ""../../gold/target.h"" " string_content ") , number_literal , (string_literal ""large_common_section_flags"" " string_content ") ))) ;) })) (expression_statement "pcVar14 = "** large common";" (assignment_expression "pcVar14 = "** large common"" identifier = (string_literal ""** large common"" " string_content ")) ;) (expression_statement "pcVar12 = ".lbss";" (assignment_expression "pcVar12 = ".lbss"" identifier = (string_literal "".lbss"" " string_content ")) ;) (expression_statement "uVar6 = *(ulong *)(lVar4 + 0x58) | 3;" (assignment_expression "uVar6 = *(ulong *)(lVar4 + 0x58) | 3" identifier = (binary_expression "*(ulong *)(lVar4 + 0x58) | 3" (pointer_expression "*(ulong *)(lVar4 + 0x58)" * (cast_expression "(ulong *)(lVar4 + 0x58)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x58)" ( (binary_expression "lVar4 + 0x58" identifier + number_literal) )))) | number_literal)) ;) })))) }))) (expression_statement "cVar3 = FUN_001ee080(PTR_DAT_003be6b0);" (assignment_expression "cVar3 = FUN_001ee080(PTR_DAT_003be6b0)" identifier = (call_expression "FUN_001ee080(PTR_DAT_003be6b0)" identifier (argument_list "(PTR_DAT_003be6b0)" ( identifier )))) ;) (labeled_statement "joined_r0x0023b2a4:\n  if (cVar3 == '\0') {\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }\n  else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }" statement_identifier : (if_statement "if (cVar3 == '\0') {\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }\n  else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }" { (expression_statement "puVar8 = (undefined8 *)FUN_00275550(0x40);" (assignment_expression "puVar8 = (undefined8 *)FUN_00275550(0x40)" identifier = (cast_expression "(undefined8 *)FUN_00275550(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "*(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar8 + 4)" * (cast_expression "(byte *)(puVar8 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar8 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar8 + 4)" * (cast_expression "(byte *)(puVar8 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar8[1] = 0;" (assignment_expression "puVar8[1] = 0" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[2] = 0;" (assignment_expression "puVar8[2] = 0" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[3] = 0xffffffffffffffff;" (assignment_expression "puVar8[3] = 0xffffffffffffffff" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[5] = 0;" (assignment_expression "puVar8[5] = 0" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[6] = uVar13;" (assignment_expression "puVar8[6] = uVar13" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar8 = &PTR_FUN_003b4a48;" (assignment_expression "*puVar8 = &PTR_FUN_003b4a48" (pointer_expression "*puVar8" * identifier) = (pointer_expression "&PTR_FUN_003b4a48" & identifier)) ;) (expression_statement "puVar8[7] = pcVar14;" (assignment_expression "puVar8[7] = pcVar14" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);" (assignment_expression "local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0)" identifier = (call_expression "FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0)" identifier (argument_list "(param_2,pcVar12,8,uVar6,puVar8,0,0)" ( identifier , identifier , number_literal , identifier , identifier , number_literal , number_literal )))) ;) }) (else_clause "else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }" else (compound_statement "{\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }" { (expression_statement "puVar8 = (undefined8 *)0x0;" (assignment_expression "puVar8 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_78 = FUN_00186340(param_2,pcVar12);" (assignment_expression "local_78 = FUN_00186340(param_2,pcVar12)" identifier = (call_expression "FUN_00186340(param_2,pcVar12)" identifier (argument_list "(param_2,pcVar12)" ( identifier , identifier )))) ;) })))) (if_statement "if (local_78 != 0) {\n    if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }\n  }" if (parenthesized_expression "(local_78 != 0)" ( (binary_expression "local_78 != 0" identifier != number_literal) )) (compound_statement "{\n    if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }\n  }" { (if_statement "if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }" if (parenthesized_expression "(param_3 == 2)" ( (binary_expression "param_3 == 2" identifier == number_literal) )) (compound_statement "{\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }" { (expression_statement "*(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;" (assignment_expression "*(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40" (pointer_expression "*(byte *)(local_78 + 0xc9)" * (cast_expression "(byte *)(local_78 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_78 + 0xc9)" ( (binary_expression "local_78 + 0xc9" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_78 + 0xc9) | 0x40" (pointer_expression "*(byte *)(local_78 + 0xc9)" * (cast_expression "(byte *)(local_78 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_78 + 0xc9)" ( (binary_expression "local_78 + 0xc9" identifier + number_literal) )))) | number_literal)) ;) }) (else_clause "else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }" else (if_statement "if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }" if (parenthesized_expression "(param_3 == 3)" ( (binary_expression "param_3 == 3" identifier == number_literal) )) (compound_statement "{\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }" { (expression_statement "*(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;" (assignment_expression "*(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80" (pointer_expression "*(byte *)(local_78 + 0xc9)" * (cast_expression "(byte *)(local_78 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_78 + 0xc9)" ( (binary_expression "local_78 + 0xc9" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_78 + 0xc9) | 0x80" (pointer_expression "*(byte *)(local_78 + 0xc9)" * (cast_expression "(byte *)(local_78 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_78 + 0xc9)" ( (binary_expression "local_78 + 0xc9" identifier + number_literal) )))) | number_literal)) ;) })))) })) (expression_statement "plVar11 = (long *)param_4[1];" (assignment_expression "plVar11 = (long *)param_4[1]" identifier = (cast_expression "(long *)param_4[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[1]" identifier [ number_literal ]))) ;) (expression_statement "plVar15 = (long *)*param_4;" (assignment_expression "plVar15 = (long *)*param_4" identifier = (cast_expression "(long *)*param_4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if ((plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0)) {\n    uVar13 = 0;\n    plVar7 = plVar11;\n  }\n  else {\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }" if (parenthesized_expression "((plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0))" ( (binary_expression "(plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0)" (parenthesized_expression "(plVar15 == plVar11)" ( (binary_expression "plVar15 == plVar11" identifier == identifier) )) || (parenthesized_expression "(lVar4 = *plVar15, lVar4 == 0)" ( (comma_expression "lVar4 = *plVar15, lVar4 == 0" (assignment_expression "lVar4 = *plVar15" identifier = (pointer_expression "*plVar15" * identifier)) , (binary_expression "lVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    uVar13 = 0;\n    plVar7 = plVar11;\n  }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "plVar7 = plVar11;" (assignment_expression "plVar7 = plVar11" identifier = identifier) ;) }) (else_clause "else {\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }" else (compound_statement "{\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));" do (compound_statement "{\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    }" { (expression_statement "plVar15 = plVar15 + 1;" (assignment_expression "plVar15 = plVar15 + 1" identifier = (binary_expression "plVar15 + 1" identifier + number_literal)) ;) (if_statement "if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }" if (parenthesized_expression "(((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0))" ( (binary_expression "((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)" (parenthesized_expression "((*(byte *)(lVar4 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)(lVar4 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar4 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar4 + 0x3a)" * (cast_expression "(byte *)(lVar4 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x3a)" ( (binary_expression "lVar4 + 0x3a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)" ( (binary_expression "(*(byte *)(lVar4 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)(lVar4 + 0x3b) & 0x20" (pointer_expression "*(byte *)(lVar4 + 0x3b)" * (cast_expression "(byte *)(lVar4 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x3b)" ( (binary_expression "lVar4 + 0x3b" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }" { (expression_statement "cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));" (assignment_expression "cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18))" identifier = (call_expression "FUN_0021e870(*(undefined4 *)(lVar4 + 0x18))" identifier (argument_list "(*(undefined4 *)(lVar4 + 0x18))" ( (pointer_expression "*(undefined4 *)(lVar4 + 0x18)" * (cast_expression "(undefined4 *)(lVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x18)" ( (binary_expression "lVar4 + 0x18" identifier + number_literal) )))) )))) ;) (if_statement "if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }" { (expression_statement "lVar9 = FUN_00239c90(lVar4);" (assignment_expression "lVar9 = FUN_00239c90(lVar4)" identifier = (call_expression "FUN_00239c90(lVar4)" identifier (argument_list "(lVar4)" ( identifier )))) ;) (if_statement "if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }" { (expression_statement "FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));" (call_expression "FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48))" identifier (argument_list "(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48))" ( identifier , identifier , (pointer_expression "*(undefined8 *)(lVar9 + 0x48)" * (cast_expression "(undefined8 *)(lVar9 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x48)" ( (binary_expression "lVar9 + 0x48" identifier + number_literal) )))) ))) ;) })) (expression_statement "lVar4 = *(long *)(lVar9 + 0x40);" (assignment_expression "lVar4 = *(long *)(lVar9 + 0x40)" identifier = (pointer_expression "*(long *)(lVar9 + 0x40)" * (cast_expression "(long *)(lVar9 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x40)" ( (binary_expression "lVar9 + 0x40" identifier + number_literal) ))))) ;) (if_statement "if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }" if (parenthesized_expression "(puVar8 != (undefined8 *)0x0)" ( (binary_expression "puVar8 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }" { (if_statement "if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }" if (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }" { (expression_statement "uVar13 = (uVar13 - 1) + lVar4 & -lVar4;" (assignment_expression "uVar13 = (uVar13 - 1) + lVar4 & -lVar4" identifier = (binary_expression "(uVar13 - 1) + lVar4 & -lVar4" (binary_expression "(uVar13 - 1) + lVar4" (parenthesized_expression "(uVar13 - 1)" ( (binary_expression "uVar13 - 1" identifier - number_literal) )) + identifier) & (unary_expression "-lVar4" - identifier))) ;) })) (expression_statement "FUN_00221cb0(lVar9,puVar8,uVar13);" (call_expression "FUN_00221cb0(lVar9,puVar8,uVar13)" identifier (argument_list "(lVar9,puVar8,uVar13)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar13 = uVar13 + *(long *)(lVar9 + 0x48);" (assignment_expression "uVar13 = uVar13 + *(long *)(lVar9 + 0x48)" identifier = (binary_expression "uVar13 + *(long *)(lVar9 + 0x48)" identifier + (pointer_expression "*(long *)(lVar9 + 0x48)" * (cast_expression "(long *)(lVar9 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x48)" ( (binary_expression "lVar9 + 0x48" identifier + number_literal) )))))) ;) (expression_statement "plVar11 = (long *)param_4[1];" (assignment_expression "plVar11 = (long *)param_4[1]" identifier = (cast_expression "(long *)param_4[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[1]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0023b370;" goto statement_identifier ;) })) (expression_statement "uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));" (assignment_expression "uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48))" identifier = (call_expression "FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48))" identifier (argument_list "(local_78,*(undefined8 *)(lVar9 + 0x48))" ( identifier , (pointer_expression "*(undefined8 *)(lVar9 + 0x48)" * (cast_expression "(undefined8 *)(lVar9 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x48)" ( (binary_expression "lVar9 + 0x48" identifier + number_literal) )))) )))) ;) (if_statement "if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }" if (parenthesized_expression "(uVar13 == 0xffffffffffffffff)" ( (binary_expression "uVar13 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }" { (expression_statement "uVar1 = *(undefined8 *)(local_78 + 0x28);" (assignment_expression "uVar1 = *(undefined8 *)(local_78 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(local_78 + 0x28)" * (cast_expression "(undefined8 *)(local_78 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_78 + 0x28)" ( (binary_expression "local_78 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");" (assignment_expression "uVar10 = gettext("out of patch space in section %s; relink with --incremental-full")" identifier = (call_expression "gettext("out of patch space in section %s; relink with --incremental-full")" identifier (argument_list "("out of patch space in section %s; relink with --incremental-full")" ( (string_literal ""out of patch space in section %s; relink with --incremental-full"" " string_content ") )))) ;) (expression_statement "FUN_00169000(uVar10,uVar1);" (call_expression "FUN_00169000(uVar10,uVar1)" identifier (argument_list "(uVar10,uVar1)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0023b521;" goto statement_identifier ;) })) (expression_statement "FUN_00221cb0(lVar9,local_78,uVar13);" (call_expression "FUN_00221cb0(lVar9,local_78,uVar13)" identifier (argument_list "(lVar9,local_78,uVar13)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "plVar11 = (long *)param_4[1];" (assignment_expression "plVar11 = (long *)param_4[1]" identifier = (cast_expression "(long *)param_4[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[1]" identifier [ number_literal ]))) ;) })) (labeled_statement "LAB_0023b370:\n      plVar7 = plVar15;" statement_identifier : (expression_statement "plVar7 = plVar15;" (assignment_expression "plVar7 = plVar15" identifier = identifier) ;)) }) while (parenthesized_expression "((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0))" ( (binary_expression "(plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0)" (parenthesized_expression "(plVar11 != plVar15)" ( (binary_expression "plVar11 != plVar15" identifier != identifier) )) && (parenthesized_expression "(lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0)" ( (comma_expression "lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0" (assignment_expression "lVar4 = *plVar15" identifier = (pointer_expression "*plVar15" * identifier)) , (comma_expression "plVar7 = plVar11, lVar4 != 0" (assignment_expression "plVar7 = plVar11" identifier = identifier) , (binary_expression "lVar4 != 0" identifier != number_literal))) ))) )) ;) }))) (if_statement "if (puVar8 != (undefined8 *)0x0) {\n    if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    puVar8[2] = uVar13;\n  }" if (parenthesized_expression "(puVar8 != (undefined8 *)0x0)" ( (binary_expression "puVar8 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    puVar8[2] = uVar13;\n  }" { (if_statement "if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }" if (parenthesized_expression "((*(byte *)(puVar8 + 4) & 2) != 0)" ( (binary_expression "(*(byte *)(puVar8 + 4) & 2) != 0" (parenthesized_expression "(*(byte *)(puVar8 + 4) & 2)" ( (binary_expression "*(byte *)(puVar8 + 4) & 2" (pointer_expression "*(byte *)(puVar8 + 4)" * (cast_expression "(byte *)(puVar8 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0023b521:\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }" { (labeled_statement "LAB_0023b521:\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");" statement_identifier : comment (expression_statement "FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;)) })) (expression_statement "puVar8[2] = uVar13;" (assignment_expression "puVar8[2] = uVar13" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if ((long *)*param_4 != plVar7) {\n    param_4[1] = *param_4;\n  }" if (parenthesized_expression "((long *)*param_4 != plVar7)" ( (binary_expression "(long *)*param_4 != plVar7" (cast_expression "(long *)*param_4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) != identifier) )) (compound_statement "{\n    param_4[1] = *param_4;\n  }" { (expression_statement "param_4[1] = *param_4;" (assignment_expression "param_4[1] = *param_4" (subscript_expression "param_4[1]" identifier [ number_literal ]) = (pointer_expression "*param_4" * identifier)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void do_allocate_commons_list<64>(Symbol_table * this, Layout * layout,\n   Commons_section_type commons_section_type, Commons_type * commons, Mapfile * mapfile,\n   Sort_commons_order sort_order) */\n\nvoid __thiscall\ngold::Symbol_table::do_allocate_commons_list<64>\n          (Symbol_table *this,Layout *layout,Commons_section_type commons_section_type,\n          Commons_type *commons,Mapfile *mapfile,Sort_commons_order sort_order)\n\n{\n  undefined1 *puVar1;\n  __normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>\n  __first;\n  uint64_t addralign;\n  long lVar2;\n  bool bVar3;\n  undefined1 uVar4;\n  bool bVar5;\n  Layout *this_00;\n  ulong uVar6;\n  pointer ppSVar7;\n  Output_section *posd;\n  Sized_symbol<64> *pSVar8;\n  pointer ppSVar9;\n  __normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>\n  __last;\n  Layout *from;\n  Layout *sym;\n  Got_offset_list *pGVar10;\n  Symbol_table *this_01;\n  __normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>\n  __last_00;\n  char *pcVar11;\n  Value_type value;\n  char *pcVar12;\n  pointer ppSVar13;\n  _Val_comp_iter<gold::Sort_commons<64>_> __comp;\n  _Iter_comp_iter<gold::Sort_commons<64>_> __comp_00;\n  _Iter_comp_iter<gold::Sort_commons<64>_> __comp_01;\n  _Iter_comp_iter<gold::Sort_commons<64>_> __comp_02;\n  Output_section *local_78;\n  ulong uStack_48;\n  \n  ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start;\n  if (ppSVar13 ==\n      (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish\n     ) {\n    return;\n  }\n  pGVar10 = (Got_offset_list *)0x0;\n  sym = layout;\n  bVar5 = false;\n  do {\n    while( true ) {\n      ppSVar9 = ppSVar13;\n      from = (Layout *)*ppSVar9;\n      this_00 = from;\n      if ((*(byte *)((long)&from->namepool_ + 0x2a) & 0x10) != 0) {\n        this_00 = (Layout *)resolve_forwards(this,(Symbol *)from);\n        *ppSVar9 = (Symbol *)this_00;\n        sym = from;\n      }\n      if (((((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000) == 0)\n          && (((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)\n              == 0)) &&\n         (bVar3 = Symbol::is_common_shndx\n                            ((uint)(this_00->namepool_).string_set_._M_h._M_bucket_count), bVar3))\n      break;\n      *ppSVar9 = (Symbol *)0x0;\n      ppSVar13 = ppSVar9 + 1;\n      bVar3 = bVar5;\n      if ((commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_finish == ppSVar9 + 1) goto LAB_0023b0b8;\n    }\n    pSVar8 = get_sized_symbol<64>((Symbol_table *)this_00,(Symbol *)sym);\n    if (pGVar10 < (Got_offset_list *)pSVar8->value_) {\n      pGVar10 = (Got_offset_list *)pSVar8->value_;\n    }\n    ppSVar13 = ppSVar9 + 1;\n    bVar5 = bVar3;\n  } while ((commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n           _M_finish != ppSVar9 + 1);\nLAB_0023b0b8:\n  __last_00._M_current = ppSVar9 + 1;\n  if (bVar3 == false) {\n    return;\n  }\n  __first._M_current =\n       (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_start\n  ;\n  if (__last_00._M_current == __first._M_current) {\nLAB_0023b19c:\n    if (commons_section_type != COMMONS_TLS) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar12 = "** tls common";\n    pcVar11 = ".tbss";\n    uVar6 = 0x403;\n  }\n  else {\n    uVar6 = (long)__last_00._M_current - (long)__first._M_current >> 3;\n    lVar2 = 0x3f;\n    if (uVar6 != 0) {\n      for (; uVar6 >> lVar2 == 0; lVar2 = lVar2 + -1) {\n      }\n    }\n    __comp_00._M_comp.sort_order_ = sort_order;\n    __comp_00._M_comp.symtab_ = this;\n    __comp_00._M_comp._12_4_ = 0;\n    std::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n              (__first,__last_00,(0x3f - (long)(int)((uint)lVar2 ^ 0x3f)) * 2,__comp_00);\n    if (0x80 < (long)__last_00._M_current - (long)__first._M_current) {\n      __last._M_current = __first._M_current + 0x10;\n      __comp_01._M_comp.sort_order_ = sort_order;\n      __comp_01._M_comp.symtab_ = this;\n      __comp_01._M_comp._12_4_ = 0;\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n                (__first,__last,__comp_01);\n      for (; __last_00._M_current != __last._M_current; __last._M_current = __last._M_current + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | (ulong)sort_order;\n        __comp._M_comp._8_8_ = uStack_48;\n        __comp._M_comp.symtab_ = this;\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_commons<64>_>_>\n                  (__last,__comp);\n      }\n      goto LAB_0023b19c;\n    }\n    __comp_02._M_comp.sort_order_ = sort_order;\n    __comp_02._M_comp.symtab_ = this;\n    __comp_02._M_comp._12_4_ = 0;\n    std::\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n              (__first,__last_00,__comp_02);\n    if (commons_section_type == COMMONS_TLS) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (commons_section_type == COMMONS_NORMAL) {\n      pcVar12 = "** common";\n      pcVar11 = &DAT_00310adc;\n      uVar6 = 3;\n    }\n    else {\n      if (commons_section_type == COMMONS_SMALL) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        lVar2 = *(long *)(parameters->target_ + 8);\n        if (*(short *)(lVar2 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar12 = "** small common";\n        pcVar11 = ".sbss";\n        uVar6 = *(ulong *)(lVar2 + 0x50) | 3;\n        uVar4 = Parameters::incremental_update(parameters);\n        goto joined_r0x0023b2a4;\n      }\n      if (commons_section_type != COMMONS_LARGE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_0023b4d0;\n      lVar2 = *(long *)(parameters->target_ + 8);\n      if (*(short *)(lVar2 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar12 = "** large common";\n      pcVar11 = ".lbss";\n      uVar6 = *(ulong *)(lVar2 + 0x58) | 3;\n    }\n  }\n  uVar4 = Parameters::incremental_update(parameters);\njoined_r0x0023b2a4:\n  if ((bool)uVar4) {\n    posd = (Output_section *)0x0;\n    local_78 = Layout::find_output_section(layout,pcVar11);\n  }\n  else {\n    posd = (Output_section *)operator_new(0x40);\n    puVar1 = &(posd->super_Output_data).field_0x20;\n    *puVar1 = *puVar1 & 0xe0;\n    (posd->super_Output_data).address_ = 0;\n    (posd->super_Output_data).data_size_ = 0;\n    (posd->super_Output_data).offset_ = -1;\n    *(Output_section **)&posd->name_ = (Output_section *)0x0;\n    posd->addralign_ = (uint64_t)pGVar10;\n    (posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_space_003b4a48;\n    posd->entsize_ = (uint64_t)pcVar12;\n    local_78 = Layout::add_output_section_data\n                         (layout,pcVar11,8,uVar6,(Output_section_data *)posd,ORDER_INVALID,false);\n  }\n  if (local_78 != (Output_section *)0x0) {\n    if (commons_section_type == COMMONS_SMALL) {\n      local_78->field_0xc9 = local_78->field_0xc9 | 0x40;\n    }\n    else if (commons_section_type == COMMONS_LARGE) {\n      local_78->field_0xc9 = local_78->field_0xc9 | 0x80;\n    }\n  }\n  ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish;\n  ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start;\n  if ((ppSVar13 == ppSVar9) || (this_01 = (Symbol_table *)*ppSVar13, this_01 == (Symbol_table *)0x0)\n     ) {\n    value = 0;\n    ppSVar7 = ppSVar9;\n  }\n  else {\n    value = 0;\n    do {\n      ppSVar13 = ppSVar13 + 1;\n      if ((((this_01->table_)._M_h._M_bucket_count & 0x70000) == 0) &&\n         (((this_01->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\n        bVar5 = Symbol::is_common_shndx(this_01->output_count_);\n        if (bVar5) {\n          pSVar8 = get_sized_symbol<64>(this_01,(Symbol *)pcVar11);\n          if (mapfile != (Mapfile *)0x0) {\n            Mapfile::report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);\n          }\n          addralign = pSVar8->value_;\n          if (posd != (Output_section *)0x0) {\n            if (addralign != 0) {\n              value = value + (addralign - 1) & -addralign;\n            }\n            pcVar11 = (char *)posd;\n            Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value);\n            value = value + pSVar8->symsize_;\n            ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish;\n            goto LAB_0023b370;\n          }\n          value = Output_section::allocate(local_78,pSVar8->symsize_,addralign);\n          if (value == 0xffffffffffffffff) {\n            pcVar11 = local_78->name_;\n            pcVar12 = (char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     );\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,pcVar11);\n          }\n          pcVar11 = (char *)local_78;\n          Sized_symbol<64>::allocate_common(pSVar8,&local_78->super_Output_data,value);\n        }\n        ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                  _M_impl._M_finish;\n      }\nLAB_0023b370:\n      ppSVar7 = ppSVar13;\n    } while ((ppSVar9 != ppSVar13) &&\n            (this_01 = (Symbol_table *)*ppSVar13, ppSVar7 = ppSVar9, this_01 != (Symbol_table *)0x0)\n            );\n  }\n  if (posd != (Output_section *)0x0) {\n    if (((posd->super_Output_data).field_0x20 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    (posd->super_Output_data).data_size_ = value;\n  }\n  ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start;\n  if (ppSVar13 != ppSVar7) {\n    (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish =\n         ppSVar13;\n  }\n  return;\n}\n\n" comment comment comment (function_definition "void __thiscall\ngold::Symbol_table::do_allocate_commons_list<64>\n          (Symbol_table *this,Layout *layout,Commons_section_type commons_section_type,\n          Commons_type *commons,Mapfile *mapfile,Sort_commons_order sort_order)\n\n{\n  undefined1 *puVar1;\n  __normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>\n  __first;\n  uint64_t addralign;\n  long lVar2;\n  bool bVar3;\n  undefined1 uVar4;\n  bool bVar5;\n  Layout *this_00;\n  ulong uVar6;\n  pointer ppSVar7;\n  Output_section *posd;\n  Sized_symbol<64> *pSVar8;\n  pointer ppSVar9;\n  __normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>\n  __last;\n  Layout *from;\n  Layout *sym;\n  Got_offset_list *pGVar10;\n  Symbol_table *this_01;\n  __normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>\n  __last_00;\n  char *pcVar11;\n  Value_type value;\n  char *pcVar12;\n  pointer ppSVar13;\n  _Val_comp_iter<gold::Sort_commons<64>_> __comp;\n  _Iter_comp_iter<gold::Sort_commons<64>_> __comp_00;\n  _Iter_comp_iter<gold::Sort_commons<64>_> __comp_01;\n  _Iter_comp_iter<gold::Sort_commons<64>_> __comp_02;\n  Output_section *local_78;\n  ulong uStack_48;\n  \n  ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start;\n  if (ppSVar13 ==\n      (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish\n     ) {\n    return;\n  }\n  pGVar10 = (Got_offset_list *)0x0;\n  sym = layout;\n  bVar5 = false;\n  do {\n    while( true ) {\n      ppSVar9 = ppSVar13;\n      from = (Layout *)*ppSVar9;\n      this_00 = from;\n      if ((*(byte *)((long)&from->namepool_ + 0x2a) & 0x10) != 0) {\n        this_00 = (Layout *)resolve_forwards(this,(Symbol *)from);\n        *ppSVar9 = (Symbol *)this_00;\n        sym = from;\n      }\n      if (((((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000) == 0)\n          && (((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)\n              == 0)) &&\n         (bVar3 = Symbol::is_common_shndx\n                            ((uint)(this_00->namepool_).string_set_._M_h._M_bucket_count), bVar3))\n      break;\n      *ppSVar9 = (Symbol *)0x0;\n      ppSVar13 = ppSVar9 + 1;\n      bVar3 = bVar5;\n      if ((commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_finish == ppSVar9 + 1) goto LAB_0023b0b8;\n    }\n    pSVar8 = get_sized_symbol<64>((Symbol_table *)this_00,(Symbol *)sym);\n    if (pGVar10 < (Got_offset_list *)pSVar8->value_) {\n      pGVar10 = (Got_offset_list *)pSVar8->value_;\n    }\n    ppSVar13 = ppSVar9 + 1;\n    bVar5 = bVar3;\n  } while ((commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n           _M_finish != ppSVar9 + 1);\nLAB_0023b0b8:\n  __last_00._M_current = ppSVar9 + 1;\n  if (bVar3 == false) {\n    return;\n  }\n  __first._M_current =\n       (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_start\n  ;\n  if (__last_00._M_current == __first._M_current) {\nLAB_0023b19c:\n    if (commons_section_type != COMMONS_TLS) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar12 = "** tls common";\n    pcVar11 = ".tbss";\n    uVar6 = 0x403;\n  }\n  else {\n    uVar6 = (long)__last_00._M_current - (long)__first._M_current >> 3;\n    lVar2 = 0x3f;\n    if (uVar6 != 0) {\n      for (; uVar6 >> lVar2 == 0; lVar2 = lVar2 + -1) {\n      }\n    }\n    __comp_00._M_comp.sort_order_ = sort_order;\n    __comp_00._M_comp.symtab_ = this;\n    __comp_00._M_comp._12_4_ = 0;\n    std::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n              (__first,__last_00,(0x3f - (long)(int)((uint)lVar2 ^ 0x3f)) * 2,__comp_00);\n    if (0x80 < (long)__last_00._M_current - (long)__first._M_current) {\n      __last._M_current = __first._M_current + 0x10;\n      __comp_01._M_comp.sort_order_ = sort_order;\n      __comp_01._M_comp.symtab_ = this;\n      __comp_01._M_comp._12_4_ = 0;\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n                (__first,__last,__comp_01);\n      for (; __last_00._M_current != __last._M_current; __last._M_current = __last._M_current + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | (ulong)sort_order;\n        __comp._M_comp._8_8_ = uStack_48;\n        __comp._M_comp.symtab_ = this;\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_commons<64>_>_>\n                  (__last,__comp);\n      }\n      goto LAB_0023b19c;\n    }\n    __comp_02._M_comp.sort_order_ = sort_order;\n    __comp_02._M_comp.symtab_ = this;\n    __comp_02._M_comp._12_4_ = 0;\n    std::\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n              (__first,__last_00,__comp_02);\n    if (commons_section_type == COMMONS_TLS) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (commons_section_type == COMMONS_NORMAL) {\n      pcVar12 = "** common";\n      pcVar11 = &DAT_00310adc;\n      uVar6 = 3;\n    }\n    else {\n      if (commons_section_type == COMMONS_SMALL) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        lVar2 = *(long *)(parameters->target_ + 8);\n        if (*(short *)(lVar2 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar12 = "** small common";\n        pcVar11 = ".sbss";\n        uVar6 = *(ulong *)(lVar2 + 0x50) | 3;\n        uVar4 = Parameters::incremental_update(parameters);\n        goto joined_r0x0023b2a4;\n      }\n      if (commons_section_type != COMMONS_LARGE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_0023b4d0;\n      lVar2 = *(long *)(parameters->target_ + 8);\n      if (*(short *)(lVar2 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar12 = "** large common";\n      pcVar11 = ".lbss";\n      uVar6 = *(ulong *)(lVar2 + 0x58) | 3;\n    }\n  }\n  uVar4 = Parameters::incremental_update(parameters);\njoined_r0x0023b2a4:\n  if ((bool)uVar4) {\n    posd = (Output_section *)0x0;\n    local_78 = Layout::find_output_section(layout,pcVar11);\n  }\n  else {\n    posd = (Output_section *)operator_new(0x40);\n    puVar1 = &(posd->super_Output_data).field_0x20;\n    *puVar1 = *puVar1 & 0xe0;\n    (posd->super_Output_data).address_ = 0;\n    (posd->super_Output_data).data_size_ = 0;\n    (posd->super_Output_data).offset_ = -1;\n    *(Output_section **)&posd->name_ = (Output_section *)0x0;\n    posd->addralign_ = (uint64_t)pGVar10;\n    (posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_space_003b4a48;\n    posd->entsize_ = (uint64_t)pcVar12;\n    local_78 = Layout::add_output_section_data\n                         (layout,pcVar11,8,uVar6,(Output_section_data *)posd,ORDER_INVALID,false);\n  }\n  if (local_78 != (Output_section *)0x0) {\n    if (commons_section_type == COMMONS_SMALL) {\n      local_78->field_0xc9 = local_78->field_0xc9 | 0x40;\n    }\n    else if (commons_section_type == COMMONS_LARGE) {\n      local_78->field_0xc9 = local_78->field_0xc9 | 0x80;\n    }\n  }\n  ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish;\n  ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start;\n  if ((ppSVar13 == ppSVar9) || (this_01 = (Symbol_table *)*ppSVar13, this_01 == (Symbol_table *)0x0)\n     ) {\n    value = 0;\n    ppSVar7 = ppSVar9;\n  }\n  else {\n    value = 0;\n    do {\n      ppSVar13 = ppSVar13 + 1;\n      if ((((this_01->table_)._M_h._M_bucket_count & 0x70000) == 0) &&\n         (((this_01->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\n        bVar5 = Symbol::is_common_shndx(this_01->output_count_);\n        if (bVar5) {\n          pSVar8 = get_sized_symbol<64>(this_01,(Symbol *)pcVar11);\n          if (mapfile != (Mapfile *)0x0) {\n            Mapfile::report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);\n          }\n          addralign = pSVar8->value_;\n          if (posd != (Output_section *)0x0) {\n            if (addralign != 0) {\n              value = value + (addralign - 1) & -addralign;\n            }\n            pcVar11 = (char *)posd;\n            Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value);\n            value = value + pSVar8->symsize_;\n            ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish;\n            goto LAB_0023b370;\n          }\n          value = Output_section::allocate(local_78,pSVar8->symsize_,addralign);\n          if (value == 0xffffffffffffffff) {\n            pcVar11 = local_78->name_;\n            pcVar12 = (char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     );\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,pcVar11);\n          }\n          pcVar11 = (char *)local_78;\n          Sized_symbol<64>::allocate_common(pSVar8,&local_78->super_Output_data,value);\n        }\n        ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                  _M_impl._M_finish;\n      }\nLAB_0023b370:\n      ppSVar7 = ppSVar13;\n    } while ((ppSVar9 != ppSVar13) &&\n            (this_01 = (Symbol_table *)*ppSVar13, ppSVar7 = ppSVar9, this_01 != (Symbol_table *)0x0)\n            );\n  }\n  if (posd != (Output_section *)0x0) {\n    if (((posd->super_Output_data).field_0x20 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    (posd->super_Output_data).data_size_ = value;\n  }\n  ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start;\n  if (ppSVar13 != ppSVar7) {\n    (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish =\n         ppSVar13;\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) (function_declarator "do_allocate_commons_list<64>\n          (Symbol_table *this,Layout *layout,Commons_section_type commons_section_type,\n          Commons_type *commons,Mapfile *mapfile,Sort_commons_order sort_order)" identifier (ERROR "<64>" < number_literal >) (parameter_list "(Symbol_table *this,Layout *layout,Commons_section_type commons_section_type,\n          Commons_type *commons,Mapfile *mapfile,Sort_commons_order sort_order)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "Commons_section_type commons_section_type" type_identifier identifier) , (parameter_declaration "Commons_type *commons" type_identifier (pointer_declarator "*commons" * identifier)) , (parameter_declaration "Mapfile *mapfile" type_identifier (pointer_declarator "*mapfile" * identifier)) , (parameter_declaration "Sort_commons_order sort_order" type_identifier identifier) ))) (compound_statement "{\n  undefined1 *puVar1;\n  __normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>\n  __first;\n  uint64_t addralign;\n  long lVar2;\n  bool bVar3;\n  undefined1 uVar4;\n  bool bVar5;\n  Layout *this_00;\n  ulong uVar6;\n  pointer ppSVar7;\n  Output_section *posd;\n  Sized_symbol<64> *pSVar8;\n  pointer ppSVar9;\n  __normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>\n  __last;\n  Layout *from;\n  Layout *sym;\n  Got_offset_list *pGVar10;\n  Symbol_table *this_01;\n  __normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>\n  __last_00;\n  char *pcVar11;\n  Value_type value;\n  char *pcVar12;\n  pointer ppSVar13;\n  _Val_comp_iter<gold::Sort_commons<64>_> __comp;\n  _Iter_comp_iter<gold::Sort_commons<64>_> __comp_00;\n  _Iter_comp_iter<gold::Sort_commons<64>_> __comp_01;\n  _Iter_comp_iter<gold::Sort_commons<64>_> __comp_02;\n  Output_section *local_78;\n  ulong uStack_48;\n  \n  ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start;\n  if (ppSVar13 ==\n      (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish\n     ) {\n    return;\n  }\n  pGVar10 = (Got_offset_list *)0x0;\n  sym = layout;\n  bVar5 = false;\n  do {\n    while( true ) {\n      ppSVar9 = ppSVar13;\n      from = (Layout *)*ppSVar9;\n      this_00 = from;\n      if ((*(byte *)((long)&from->namepool_ + 0x2a) & 0x10) != 0) {\n        this_00 = (Layout *)resolve_forwards(this,(Symbol *)from);\n        *ppSVar9 = (Symbol *)this_00;\n        sym = from;\n      }\n      if (((((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000) == 0)\n          && (((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)\n              == 0)) &&\n         (bVar3 = Symbol::is_common_shndx\n                            ((uint)(this_00->namepool_).string_set_._M_h._M_bucket_count), bVar3))\n      break;\n      *ppSVar9 = (Symbol *)0x0;\n      ppSVar13 = ppSVar9 + 1;\n      bVar3 = bVar5;\n      if ((commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_finish == ppSVar9 + 1) goto LAB_0023b0b8;\n    }\n    pSVar8 = get_sized_symbol<64>((Symbol_table *)this_00,(Symbol *)sym);\n    if (pGVar10 < (Got_offset_list *)pSVar8->value_) {\n      pGVar10 = (Got_offset_list *)pSVar8->value_;\n    }\n    ppSVar13 = ppSVar9 + 1;\n    bVar5 = bVar3;\n  } while ((commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n           _M_finish != ppSVar9 + 1);\nLAB_0023b0b8:\n  __last_00._M_current = ppSVar9 + 1;\n  if (bVar3 == false) {\n    return;\n  }\n  __first._M_current =\n       (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_start\n  ;\n  if (__last_00._M_current == __first._M_current) {\nLAB_0023b19c:\n    if (commons_section_type != COMMONS_TLS) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar12 = "** tls common";\n    pcVar11 = ".tbss";\n    uVar6 = 0x403;\n  }\n  else {\n    uVar6 = (long)__last_00._M_current - (long)__first._M_current >> 3;\n    lVar2 = 0x3f;\n    if (uVar6 != 0) {\n      for (; uVar6 >> lVar2 == 0; lVar2 = lVar2 + -1) {\n      }\n    }\n    __comp_00._M_comp.sort_order_ = sort_order;\n    __comp_00._M_comp.symtab_ = this;\n    __comp_00._M_comp._12_4_ = 0;\n    std::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n              (__first,__last_00,(0x3f - (long)(int)((uint)lVar2 ^ 0x3f)) * 2,__comp_00);\n    if (0x80 < (long)__last_00._M_current - (long)__first._M_current) {\n      __last._M_current = __first._M_current + 0x10;\n      __comp_01._M_comp.sort_order_ = sort_order;\n      __comp_01._M_comp.symtab_ = this;\n      __comp_01._M_comp._12_4_ = 0;\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n                (__first,__last,__comp_01);\n      for (; __last_00._M_current != __last._M_current; __last._M_current = __last._M_current + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | (ulong)sort_order;\n        __comp._M_comp._8_8_ = uStack_48;\n        __comp._M_comp.symtab_ = this;\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_commons<64>_>_>\n                  (__last,__comp);\n      }\n      goto LAB_0023b19c;\n    }\n    __comp_02._M_comp.sort_order_ = sort_order;\n    __comp_02._M_comp.symtab_ = this;\n    __comp_02._M_comp._12_4_ = 0;\n    std::\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n              (__first,__last_00,__comp_02);\n    if (commons_section_type == COMMONS_TLS) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (commons_section_type == COMMONS_NORMAL) {\n      pcVar12 = "** common";\n      pcVar11 = &DAT_00310adc;\n      uVar6 = 3;\n    }\n    else {\n      if (commons_section_type == COMMONS_SMALL) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        lVar2 = *(long *)(parameters->target_ + 8);\n        if (*(short *)(lVar2 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar12 = "** small common";\n        pcVar11 = ".sbss";\n        uVar6 = *(ulong *)(lVar2 + 0x50) | 3;\n        uVar4 = Parameters::incremental_update(parameters);\n        goto joined_r0x0023b2a4;\n      }\n      if (commons_section_type != COMMONS_LARGE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_0023b4d0;\n      lVar2 = *(long *)(parameters->target_ + 8);\n      if (*(short *)(lVar2 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar12 = "** large common";\n      pcVar11 = ".lbss";\n      uVar6 = *(ulong *)(lVar2 + 0x58) | 3;\n    }\n  }\n  uVar4 = Parameters::incremental_update(parameters);\njoined_r0x0023b2a4:\n  if ((bool)uVar4) {\n    posd = (Output_section *)0x0;\n    local_78 = Layout::find_output_section(layout,pcVar11);\n  }\n  else {\n    posd = (Output_section *)operator_new(0x40);\n    puVar1 = &(posd->super_Output_data).field_0x20;\n    *puVar1 = *puVar1 & 0xe0;\n    (posd->super_Output_data).address_ = 0;\n    (posd->super_Output_data).data_size_ = 0;\n    (posd->super_Output_data).offset_ = -1;\n    *(Output_section **)&posd->name_ = (Output_section *)0x0;\n    posd->addralign_ = (uint64_t)pGVar10;\n    (posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_space_003b4a48;\n    posd->entsize_ = (uint64_t)pcVar12;\n    local_78 = Layout::add_output_section_data\n                         (layout,pcVar11,8,uVar6,(Output_section_data *)posd,ORDER_INVALID,false);\n  }\n  if (local_78 != (Output_section *)0x0) {\n    if (commons_section_type == COMMONS_SMALL) {\n      local_78->field_0xc9 = local_78->field_0xc9 | 0x40;\n    }\n    else if (commons_section_type == COMMONS_LARGE) {\n      local_78->field_0xc9 = local_78->field_0xc9 | 0x80;\n    }\n  }\n  ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish;\n  ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start;\n  if ((ppSVar13 == ppSVar9) || (this_01 = (Symbol_table *)*ppSVar13, this_01 == (Symbol_table *)0x0)\n     ) {\n    value = 0;\n    ppSVar7 = ppSVar9;\n  }\n  else {\n    value = 0;\n    do {\n      ppSVar13 = ppSVar13 + 1;\n      if ((((this_01->table_)._M_h._M_bucket_count & 0x70000) == 0) &&\n         (((this_01->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\n        bVar5 = Symbol::is_common_shndx(this_01->output_count_);\n        if (bVar5) {\n          pSVar8 = get_sized_symbol<64>(this_01,(Symbol *)pcVar11);\n          if (mapfile != (Mapfile *)0x0) {\n            Mapfile::report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);\n          }\n          addralign = pSVar8->value_;\n          if (posd != (Output_section *)0x0) {\n            if (addralign != 0) {\n              value = value + (addralign - 1) & -addralign;\n            }\n            pcVar11 = (char *)posd;\n            Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value);\n            value = value + pSVar8->symsize_;\n            ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish;\n            goto LAB_0023b370;\n          }\n          value = Output_section::allocate(local_78,pSVar8->symsize_,addralign);\n          if (value == 0xffffffffffffffff) {\n            pcVar11 = local_78->name_;\n            pcVar12 = (char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     );\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,pcVar11);\n          }\n          pcVar11 = (char *)local_78;\n          Sized_symbol<64>::allocate_common(pSVar8,&local_78->super_Output_data,value);\n        }\n        ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                  _M_impl._M_finish;\n      }\nLAB_0023b370:\n      ppSVar7 = ppSVar13;\n    } while ((ppSVar9 != ppSVar13) &&\n            (this_01 = (Symbol_table *)*ppSVar13, ppSVar7 = ppSVar9, this_01 != (Symbol_table *)0x0)\n            );\n  }\n  if (posd != (Output_section *)0x0) {\n    if (((posd->super_Output_data).field_0x20 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    (posd->super_Output_data).data_size_ = value;\n  }\n  ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start;\n  if (ppSVar13 != ppSVar7) {\n    (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish =\n         ppSVar13;\n  }\n  return;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (expression_statement "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>\n  __first;" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>\n  __first" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Symbol**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Symbol" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) > identifier) ;) (declaration "uint64_t addralign;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined1 uVar4;" type_identifier identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "Layout *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "pointer ppSVar7;" type_identifier identifier ;) (declaration "Output_section *posd;" type_identifier (pointer_declarator "*posd" * identifier) ;) (expression_statement "Sized_symbol<64> *pSVar8;" (binary_expression "Sized_symbol<64> *pSVar8" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*pSVar8" * identifier)) ;) (declaration "pointer ppSVar9;" type_identifier identifier ;) (expression_statement "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>\n  __last;" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>\n  __last" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Symbol**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Symbol" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) > identifier) ;) (declaration "Layout *from;" type_identifier (pointer_declarator "*from" * identifier) ;) (declaration "Layout *sym;" type_identifier (pointer_declarator "*sym" * identifier) ;) (declaration "Got_offset_list *pGVar10;" type_identifier (pointer_declarator "*pGVar10" * identifier) ;) (declaration "Symbol_table *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (expression_statement "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>\n  __last_00;" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_>\n  __last_00" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>_" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*,_std" (binary_expression "__normal_iterator<gold::Symbol**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Symbol**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Symbol" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) > identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "Value_type value;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "pointer ppSVar13;" type_identifier identifier ;) (expression_statement "_Val_comp_iter<gold::Sort_commons<64>_> __comp;" (binary_expression "_Val_comp_iter<gold::Sort_commons<64>_> __comp" (binary_expression "_Val_comp_iter<gold::Sort_commons<64>_" (binary_expression "_Val_comp_iter<gold::Sort_commons<64" (binary_expression "_Val_comp_iter<gold" identifier < identifier) (ERROR "::Sort_commons" : : identifier) < number_literal) > identifier) > identifier) ;) (expression_statement "_Iter_comp_iter<gold::Sort_commons<64>_> __comp_00;" (binary_expression "_Iter_comp_iter<gold::Sort_commons<64>_> __comp_00" (binary_expression "_Iter_comp_iter<gold::Sort_commons<64>_" (binary_expression "_Iter_comp_iter<gold::Sort_commons<64" (binary_expression "_Iter_comp_iter<gold" identifier < identifier) (ERROR "::Sort_commons" : : identifier) < number_literal) > identifier) > identifier) ;) (expression_statement "_Iter_comp_iter<gold::Sort_commons<64>_> __comp_01;" (binary_expression "_Iter_comp_iter<gold::Sort_commons<64>_> __comp_01" (binary_expression "_Iter_comp_iter<gold::Sort_commons<64>_" (binary_expression "_Iter_comp_iter<gold::Sort_commons<64" (binary_expression "_Iter_comp_iter<gold" identifier < identifier) (ERROR "::Sort_commons" : : identifier) < number_literal) > identifier) > identifier) ;) (expression_statement "_Iter_comp_iter<gold::Sort_commons<64>_> __comp_02;" (binary_expression "_Iter_comp_iter<gold::Sort_commons<64>_> __comp_02" (binary_expression "_Iter_comp_iter<gold::Sort_commons<64>_" (binary_expression "_Iter_comp_iter<gold::Sort_commons<64" (binary_expression "_Iter_comp_iter<gold" identifier < identifier) (ERROR "::Sort_commons" : : identifier) < number_literal) > identifier) > identifier) ;) (declaration "Output_section *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "ulong uStack_48;" type_identifier identifier ;) (expression_statement "ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start;" (assignment_expression "ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start" identifier = (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start" (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (ERROR "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::" (comma_expression "commons->super__Vector_base<gold::Symbol*,_std" (binary_expression "commons->super__Vector_base<gold::Symbol*" (binary_expression "commons->super__Vector_base<gold" (field_expression "commons->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Symbol*>_>" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (ppSVar13 ==\n      (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish\n     ) {\n    return;\n  }" if (parenthesized_expression "(ppSVar13 ==\n      (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish\n     )" ( (binary_expression "ppSVar13 ==\n      (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish" identifier == (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish" (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "commons->super__Vector_base<gold::Symbol*,_std" (binary_expression "commons->super__Vector_base<gold" (field_expression "commons->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pGVar10 = (Got_offset_list *)0x0;" (assignment_expression "pGVar10 = (Got_offset_list *)0x0" identifier = (cast_expression "(Got_offset_list *)0x0" ( (type_descriptor "Got_offset_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sym = layout;" (assignment_expression "sym = layout" identifier = identifier) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (do_statement "do {\n    while( true ) {\n      ppSVar9 = ppSVar13;\n      from = (Layout *)*ppSVar9;\n      this_00 = from;\n      if ((*(byte *)((long)&from->namepool_ + 0x2a) & 0x10) != 0) {\n        this_00 = (Layout *)resolve_forwards(this,(Symbol *)from);\n        *ppSVar9 = (Symbol *)this_00;\n        sym = from;\n      }\n      if (((((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000) == 0)\n          && (((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)\n              == 0)) &&\n         (bVar3 = Symbol::is_common_shndx\n                            ((uint)(this_00->namepool_).string_set_._M_h._M_bucket_count), bVar3))\n      break;\n      *ppSVar9 = (Symbol *)0x0;\n      ppSVar13 = ppSVar9 + 1;\n      bVar3 = bVar5;\n      if ((commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_finish == ppSVar9 + 1) goto LAB_0023b0b8;\n    }\n    pSVar8 = get_sized_symbol<64>((Symbol_table *)this_00,(Symbol *)sym);\n    if (pGVar10 < (Got_offset_list *)pSVar8->value_) {\n      pGVar10 = (Got_offset_list *)pSVar8->value_;\n    }\n    ppSVar13 = ppSVar9 + 1;\n    bVar5 = bVar3;\n  } while ((commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n           _M_finish != ppSVar9 + 1);" do (compound_statement "{\n    while( true ) {\n      ppSVar9 = ppSVar13;\n      from = (Layout *)*ppSVar9;\n      this_00 = from;\n      if ((*(byte *)((long)&from->namepool_ + 0x2a) & 0x10) != 0) {\n        this_00 = (Layout *)resolve_forwards(this,(Symbol *)from);\n        *ppSVar9 = (Symbol *)this_00;\n        sym = from;\n      }\n      if (((((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000) == 0)\n          && (((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)\n              == 0)) &&\n         (bVar3 = Symbol::is_common_shndx\n                            ((uint)(this_00->namepool_).string_set_._M_h._M_bucket_count), bVar3))\n      break;\n      *ppSVar9 = (Symbol *)0x0;\n      ppSVar13 = ppSVar9 + 1;\n      bVar3 = bVar5;\n      if ((commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_finish == ppSVar9 + 1) goto LAB_0023b0b8;\n    }\n    pSVar8 = get_sized_symbol<64>((Symbol_table *)this_00,(Symbol *)sym);\n    if (pGVar10 < (Got_offset_list *)pSVar8->value_) {\n      pGVar10 = (Got_offset_list *)pSVar8->value_;\n    }\n    ppSVar13 = ppSVar9 + 1;\n    bVar5 = bVar3;\n  }" { (while_statement "while( true ) {\n      ppSVar9 = ppSVar13;\n      from = (Layout *)*ppSVar9;\n      this_00 = from;\n      if ((*(byte *)((long)&from->namepool_ + 0x2a) & 0x10) != 0) {\n        this_00 = (Layout *)resolve_forwards(this,(Symbol *)from);\n        *ppSVar9 = (Symbol *)this_00;\n        sym = from;\n      }\n      if (((((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000) == 0)\n          && (((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)\n              == 0)) &&\n         (bVar3 = Symbol::is_common_shndx\n                            ((uint)(this_00->namepool_).string_set_._M_h._M_bucket_count), bVar3))\n      break;\n      *ppSVar9 = (Symbol *)0x0;\n      ppSVar13 = ppSVar9 + 1;\n      bVar3 = bVar5;\n      if ((commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_finish == ppSVar9 + 1) goto LAB_0023b0b8;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      ppSVar9 = ppSVar13;\n      from = (Layout *)*ppSVar9;\n      this_00 = from;\n      if ((*(byte *)((long)&from->namepool_ + 0x2a) & 0x10) != 0) {\n        this_00 = (Layout *)resolve_forwards(this,(Symbol *)from);\n        *ppSVar9 = (Symbol *)this_00;\n        sym = from;\n      }\n      if (((((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000) == 0)\n          && (((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)\n              == 0)) &&\n         (bVar3 = Symbol::is_common_shndx\n                            ((uint)(this_00->namepool_).string_set_._M_h._M_bucket_count), bVar3))\n      break;\n      *ppSVar9 = (Symbol *)0x0;\n      ppSVar13 = ppSVar9 + 1;\n      bVar3 = bVar5;\n      if ((commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_finish == ppSVar9 + 1) goto LAB_0023b0b8;\n    }" { (expression_statement "ppSVar9 = ppSVar13;" (assignment_expression "ppSVar9 = ppSVar13" identifier = identifier) ;) (expression_statement "from = (Layout *)*ppSVar9;" (assignment_expression "from = (Layout *)*ppSVar9" identifier = (cast_expression "(Layout *)*ppSVar9" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*ppSVar9" * identifier))) ;) (expression_statement "this_00 = from;" (assignment_expression "this_00 = from" identifier = identifier) ;) (if_statement "if ((*(byte *)((long)&from->namepool_ + 0x2a) & 0x10) != 0) {\n        this_00 = (Layout *)resolve_forwards(this,(Symbol *)from);\n        *ppSVar9 = (Symbol *)this_00;\n        sym = from;\n      }" if (parenthesized_expression "((*(byte *)((long)&from->namepool_ + 0x2a) & 0x10) != 0)" ( (binary_expression "(*(byte *)((long)&from->namepool_ + 0x2a) & 0x10) != 0" (parenthesized_expression "(*(byte *)((long)&from->namepool_ + 0x2a) & 0x10)" ( (binary_expression "*(byte *)((long)&from->namepool_ + 0x2a) & 0x10" (pointer_expression "*(byte *)((long)&from->namepool_ + 0x2a)" * (cast_expression "(byte *)((long)&from->namepool_ + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&from->namepool_ + 0x2a)" ( (binary_expression "(long)&from->namepool_ + 0x2a" (cast_expression "(long)&from->namepool_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&from->namepool_" & (field_expression "from->namepool_" identifier -> field_identifier))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        this_00 = (Layout *)resolve_forwards(this,(Symbol *)from);\n        *ppSVar9 = (Symbol *)this_00;\n        sym = from;\n      }" { (expression_statement "this_00 = (Layout *)resolve_forwards(this,(Symbol *)from);" (assignment_expression "this_00 = (Layout *)resolve_forwards(this,(Symbol *)from)" identifier = (cast_expression "(Layout *)resolve_forwards(this,(Symbol *)from)" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "resolve_forwards(this,(Symbol *)from)" identifier (argument_list "(this,(Symbol *)from)" ( identifier , (cast_expression "(Symbol *)from" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) (expression_statement "*ppSVar9 = (Symbol *)this_00;" (assignment_expression "*ppSVar9 = (Symbol *)this_00" (pointer_expression "*ppSVar9" * identifier) = (cast_expression "(Symbol *)this_00" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "sym = from;" (assignment_expression "sym = from" identifier = identifier) ;) })) (if_statement "if (((((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000) == 0)\n          && (((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)\n              == 0)) &&\n         (bVar3 = Symbol::is_common_shndx\n                            ((uint)(this_00->namepool_).string_set_._M_h._M_bucket_count), bVar3))\n      break;" if (parenthesized_expression "(((((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000) == 0)\n          && (((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)\n              == 0)) &&\n         (bVar3 = Symbol::is_common_shndx\n                            ((uint)(this_00->namepool_).string_set_._M_h._M_bucket_count), bVar3))" ( (binary_expression "((((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000) == 0)\n          && (((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)\n              == 0)) &&\n         (bVar3 = Symbol::is_common_shndx\n                            ((uint)(this_00->namepool_).string_set_._M_h._M_bucket_count), bVar3)" (parenthesized_expression "((((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000) == 0)\n          && (((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)\n              == 0))" ( (binary_expression "(((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000) == 0)\n          && (((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)\n              == 0)" (parenthesized_expression "(((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000) == 0)" ( (binary_expression "((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000) == 0" (parenthesized_expression "((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000)" ( (binary_expression "(this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000" (field_expression "(this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize" (field_expression "(this_00->namepool_).string_set_._M_h._M_rehash_policy" (field_expression "(this_00->namepool_).string_set_._M_h" (field_expression "(this_00->namepool_).string_set_" (parenthesized_expression "(this_00->namepool_)" ( (field_expression "this_00->namepool_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)\n              == 0)" ( (binary_expression "((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)\n              == 0" (parenthesized_expression "((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)" ( (binary_expression "(this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000" (field_expression "(this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize" (field_expression "(this_00->namepool_).string_set_._M_h._M_rehash_policy" (field_expression "(this_00->namepool_).string_set_._M_h" (field_expression "(this_00->namepool_).string_set_" (parenthesized_expression "(this_00->namepool_)" ( (field_expression "this_00->namepool_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(bVar3 = Symbol::is_common_shndx\n                            ((uint)(this_00->namepool_).string_set_._M_h._M_bucket_count), bVar3)" ( (ERROR "bVar3 = Symbol::" (assignment_expression "bVar3 = Symbol" identifier = identifier) : :) (comma_expression "is_common_shndx\n                            ((uint)(this_00->namepool_).string_set_._M_h._M_bucket_count), bVar3" (call_expression "is_common_shndx\n                            ((uint)(this_00->namepool_).string_set_._M_h._M_bucket_count)" identifier (argument_list "((uint)(this_00->namepool_).string_set_._M_h._M_bucket_count)" ( (field_expression "(uint)(this_00->namepool_).string_set_._M_h._M_bucket_count" (field_expression "(uint)(this_00->namepool_).string_set_._M_h" (field_expression "(uint)(this_00->namepool_).string_set_" (call_expression "(uint)(this_00->namepool_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(this_00->namepool_)" ( (field_expression "this_00->namepool_" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier) ))) , identifier) ))) )) (break_statement "break;" break ;)) (expression_statement "*ppSVar9 = (Symbol *)0x0;" (assignment_expression "*ppSVar9 = (Symbol *)0x0" (pointer_expression "*ppSVar9" * identifier) = (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppSVar13 = ppSVar9 + 1;" (assignment_expression "ppSVar13 = ppSVar9 + 1" identifier = (binary_expression "ppSVar9 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = bVar5;" (assignment_expression "bVar3 = bVar5" identifier = identifier) ;) (if_statement "if ((commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_finish == ppSVar9 + 1) goto LAB_0023b0b8;" if (parenthesized_expression "((commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_finish == ppSVar9 + 1)" ( (binary_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_finish == ppSVar9 + 1" (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_finish" (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "commons->super__Vector_base<gold::Symbol*,_std" (binary_expression "commons->super__Vector_base<gold" (field_expression "commons->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier) == (binary_expression "ppSVar9 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_0023b0b8;" goto statement_identifier ;)) })) (expression_statement "pSVar8 = get_sized_symbol<64>((Symbol_table *)this_00,(Symbol *)sym);" (assignment_expression "pSVar8 = get_sized_symbol<64>((Symbol_table *)this_00,(Symbol *)sym)" identifier = (binary_expression "get_sized_symbol<64>((Symbol_table *)this_00,(Symbol *)sym)" (binary_expression "get_sized_symbol<64" identifier < number_literal) > (parenthesized_expression "((Symbol_table *)this_00,(Symbol *)sym)" ( (comma_expression "(Symbol_table *)this_00,(Symbol *)sym" (cast_expression "(Symbol_table *)this_00" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Symbol *)sym" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (if_statement "if (pGVar10 < (Got_offset_list *)pSVar8->value_) {\n      pGVar10 = (Got_offset_list *)pSVar8->value_;\n    }" if (parenthesized_expression "(pGVar10 < (Got_offset_list *)pSVar8->value_)" ( (binary_expression "pGVar10 < (Got_offset_list *)pSVar8->value_" identifier < (cast_expression "(Got_offset_list *)pSVar8->value_" ( (type_descriptor "Got_offset_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pSVar8->value_" identifier -> field_identifier))) )) (compound_statement "{\n      pGVar10 = (Got_offset_list *)pSVar8->value_;\n    }" { (expression_statement "pGVar10 = (Got_offset_list *)pSVar8->value_;" (assignment_expression "pGVar10 = (Got_offset_list *)pSVar8->value_" identifier = (cast_expression "(Got_offset_list *)pSVar8->value_" ( (type_descriptor "Got_offset_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pSVar8->value_" identifier -> field_identifier))) ;) })) (expression_statement "ppSVar13 = ppSVar9 + 1;" (assignment_expression "ppSVar13 = ppSVar9 + 1" identifier = (binary_expression "ppSVar9 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = bVar3;" (assignment_expression "bVar5 = bVar3" identifier = identifier) ;) }) while (parenthesized_expression "((commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n           _M_finish != ppSVar9 + 1)" ( (binary_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n           _M_finish != ppSVar9 + 1" (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n           _M_finish" (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "commons->super__Vector_base<gold::Symbol*,_std" (binary_expression "commons->super__Vector_base<gold" (field_expression "commons->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier) != (binary_expression "ppSVar9 + 1" identifier + number_literal)) )) ;) (labeled_statement "LAB_0023b0b8:\n  __last_00._M_current = ppSVar9 + 1;" statement_identifier : (expression_statement "__last_00._M_current = ppSVar9 + 1;" (assignment_expression "__last_00._M_current = ppSVar9 + 1" (field_expression "__last_00._M_current" identifier . field_identifier) = (binary_expression "ppSVar9 + 1" identifier + number_literal)) ;)) (if_statement "if (bVar3 == false) {\n    return;\n  }" if (parenthesized_expression "(bVar3 == false)" ( (binary_expression "bVar3 == false" identifier == false) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "__first._M_current =\n       (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_start\n  ;" (assignment_expression "__first._M_current =\n       (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_start" (field_expression "__first._M_current" identifier . field_identifier) = (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_start" (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "commons->super__Vector_base<gold::Symbol*,_std" (binary_expression "commons->super__Vector_base<gold" (field_expression "commons->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (__last_00._M_current == __first._M_current) {\nLAB_0023b19c:\n    if (commons_section_type != COMMONS_TLS) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar12 = "** tls common";\n    pcVar11 = ".tbss";\n    uVar6 = 0x403;\n  }\n  else {\n    uVar6 = (long)__last_00._M_current - (long)__first._M_current >> 3;\n    lVar2 = 0x3f;\n    if (uVar6 != 0) {\n      for (; uVar6 >> lVar2 == 0; lVar2 = lVar2 + -1) {\n      }\n    }\n    __comp_00._M_comp.sort_order_ = sort_order;\n    __comp_00._M_comp.symtab_ = this;\n    __comp_00._M_comp._12_4_ = 0;\n    std::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n              (__first,__last_00,(0x3f - (long)(int)((uint)lVar2 ^ 0x3f)) * 2,__comp_00);\n    if (0x80 < (long)__last_00._M_current - (long)__first._M_current) {\n      __last._M_current = __first._M_current + 0x10;\n      __comp_01._M_comp.sort_order_ = sort_order;\n      __comp_01._M_comp.symtab_ = this;\n      __comp_01._M_comp._12_4_ = 0;\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n                (__first,__last,__comp_01);\n      for (; __last_00._M_current != __last._M_current; __last._M_current = __last._M_current + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | (ulong)sort_order;\n        __comp._M_comp._8_8_ = uStack_48;\n        __comp._M_comp.symtab_ = this;\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_commons<64>_>_>\n                  (__last,__comp);\n      }\n      goto LAB_0023b19c;\n    }\n    __comp_02._M_comp.sort_order_ = sort_order;\n    __comp_02._M_comp.symtab_ = this;\n    __comp_02._M_comp._12_4_ = 0;\n    std::\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n              (__first,__last_00,__comp_02);\n    if (commons_section_type == COMMONS_TLS) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (commons_section_type == COMMONS_NORMAL) {\n      pcVar12 = "** common";\n      pcVar11 = &DAT_00310adc;\n      uVar6 = 3;\n    }\n    else {\n      if (commons_section_type == COMMONS_SMALL) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        lVar2 = *(long *)(parameters->target_ + 8);\n        if (*(short *)(lVar2 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar12 = "** small common";\n        pcVar11 = ".sbss";\n        uVar6 = *(ulong *)(lVar2 + 0x50) | 3;\n        uVar4 = Parameters::incremental_update(parameters);\n        goto joined_r0x0023b2a4;\n      }\n      if (commons_section_type != COMMONS_LARGE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_0023b4d0;\n      lVar2 = *(long *)(parameters->target_ + 8);\n      if (*(short *)(lVar2 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar12 = "** large common";\n      pcVar11 = ".lbss";\n      uVar6 = *(ulong *)(lVar2 + 0x58) | 3;\n    }\n  }" if (parenthesized_expression "(__last_00._M_current == __first._M_current)" ( (binary_expression "__last_00._M_current == __first._M_current" (field_expression "__last_00._M_current" identifier . field_identifier) == (field_expression "__first._M_current" identifier . field_identifier)) )) (compound_statement "{\nLAB_0023b19c:\n    if (commons_section_type != COMMONS_TLS) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar12 = "** tls common";\n    pcVar11 = ".tbss";\n    uVar6 = 0x403;\n  }" { (labeled_statement "LAB_0023b19c:\n    if (commons_section_type != COMMONS_TLS) goto LAB_0023b1a9;" statement_identifier : (if_statement "if (commons_section_type != COMMONS_TLS) goto LAB_0023b1a9;" if (parenthesized_expression "(commons_section_type != COMMONS_TLS)" ( (binary_expression "commons_section_type != COMMONS_TLS" identifier != identifier) )) (goto_statement "goto LAB_0023b1a9;" goto statement_identifier ;))) (labeled_statement "LAB_0023b3d3:\n    pcVar12 = "** tls common";" statement_identifier : (expression_statement "pcVar12 = "** tls common";" (assignment_expression "pcVar12 = "** tls common"" identifier = (string_literal ""** tls common"" " string_content ")) ;)) (expression_statement "pcVar11 = ".tbss";" (assignment_expression "pcVar11 = ".tbss"" identifier = (string_literal "".tbss"" " string_content ")) ;) (expression_statement "uVar6 = 0x403;" (assignment_expression "uVar6 = 0x403" identifier = number_literal) ;) }) (else_clause "else {\n    uVar6 = (long)__last_00._M_current - (long)__first._M_current >> 3;\n    lVar2 = 0x3f;\n    if (uVar6 != 0) {\n      for (; uVar6 >> lVar2 == 0; lVar2 = lVar2 + -1) {\n      }\n    }\n    __comp_00._M_comp.sort_order_ = sort_order;\n    __comp_00._M_comp.symtab_ = this;\n    __comp_00._M_comp._12_4_ = 0;\n    std::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n              (__first,__last_00,(0x3f - (long)(int)((uint)lVar2 ^ 0x3f)) * 2,__comp_00);\n    if (0x80 < (long)__last_00._M_current - (long)__first._M_current) {\n      __last._M_current = __first._M_current + 0x10;\n      __comp_01._M_comp.sort_order_ = sort_order;\n      __comp_01._M_comp.symtab_ = this;\n      __comp_01._M_comp._12_4_ = 0;\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n                (__first,__last,__comp_01);\n      for (; __last_00._M_current != __last._M_current; __last._M_current = __last._M_current + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | (ulong)sort_order;\n        __comp._M_comp._8_8_ = uStack_48;\n        __comp._M_comp.symtab_ = this;\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_commons<64>_>_>\n                  (__last,__comp);\n      }\n      goto LAB_0023b19c;\n    }\n    __comp_02._M_comp.sort_order_ = sort_order;\n    __comp_02._M_comp.symtab_ = this;\n    __comp_02._M_comp._12_4_ = 0;\n    std::\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n              (__first,__last_00,__comp_02);\n    if (commons_section_type == COMMONS_TLS) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (commons_section_type == COMMONS_NORMAL) {\n      pcVar12 = "** common";\n      pcVar11 = &DAT_00310adc;\n      uVar6 = 3;\n    }\n    else {\n      if (commons_section_type == COMMONS_SMALL) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        lVar2 = *(long *)(parameters->target_ + 8);\n        if (*(short *)(lVar2 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar12 = "** small common";\n        pcVar11 = ".sbss";\n        uVar6 = *(ulong *)(lVar2 + 0x50) | 3;\n        uVar4 = Parameters::incremental_update(parameters);\n        goto joined_r0x0023b2a4;\n      }\n      if (commons_section_type != COMMONS_LARGE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_0023b4d0;\n      lVar2 = *(long *)(parameters->target_ + 8);\n      if (*(short *)(lVar2 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar12 = "** large common";\n      pcVar11 = ".lbss";\n      uVar6 = *(ulong *)(lVar2 + 0x58) | 3;\n    }\n  }" else (compound_statement "{\n    uVar6 = (long)__last_00._M_current - (long)__first._M_current >> 3;\n    lVar2 = 0x3f;\n    if (uVar6 != 0) {\n      for (; uVar6 >> lVar2 == 0; lVar2 = lVar2 + -1) {\n      }\n    }\n    __comp_00._M_comp.sort_order_ = sort_order;\n    __comp_00._M_comp.symtab_ = this;\n    __comp_00._M_comp._12_4_ = 0;\n    std::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n              (__first,__last_00,(0x3f - (long)(int)((uint)lVar2 ^ 0x3f)) * 2,__comp_00);\n    if (0x80 < (long)__last_00._M_current - (long)__first._M_current) {\n      __last._M_current = __first._M_current + 0x10;\n      __comp_01._M_comp.sort_order_ = sort_order;\n      __comp_01._M_comp.symtab_ = this;\n      __comp_01._M_comp._12_4_ = 0;\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n                (__first,__last,__comp_01);\n      for (; __last_00._M_current != __last._M_current; __last._M_current = __last._M_current + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | (ulong)sort_order;\n        __comp._M_comp._8_8_ = uStack_48;\n        __comp._M_comp.symtab_ = this;\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_commons<64>_>_>\n                  (__last,__comp);\n      }\n      goto LAB_0023b19c;\n    }\n    __comp_02._M_comp.sort_order_ = sort_order;\n    __comp_02._M_comp.symtab_ = this;\n    __comp_02._M_comp._12_4_ = 0;\n    std::\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n              (__first,__last_00,__comp_02);\n    if (commons_section_type == COMMONS_TLS) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (commons_section_type == COMMONS_NORMAL) {\n      pcVar12 = "** common";\n      pcVar11 = &DAT_00310adc;\n      uVar6 = 3;\n    }\n    else {\n      if (commons_section_type == COMMONS_SMALL) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        lVar2 = *(long *)(parameters->target_ + 8);\n        if (*(short *)(lVar2 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar12 = "** small common";\n        pcVar11 = ".sbss";\n        uVar6 = *(ulong *)(lVar2 + 0x50) | 3;\n        uVar4 = Parameters::incremental_update(parameters);\n        goto joined_r0x0023b2a4;\n      }\n      if (commons_section_type != COMMONS_LARGE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_0023b4d0;\n      lVar2 = *(long *)(parameters->target_ + 8);\n      if (*(short *)(lVar2 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar12 = "** large common";\n      pcVar11 = ".lbss";\n      uVar6 = *(ulong *)(lVar2 + 0x58) | 3;\n    }\n  }" { (expression_statement "uVar6 = (long)__last_00._M_current - (long)__first._M_current >> 3;" (assignment_expression "uVar6 = (long)__last_00._M_current - (long)__first._M_current >> 3" identifier = (binary_expression "(long)__last_00._M_current - (long)__first._M_current >> 3" (binary_expression "(long)__last_00._M_current - (long)__first._M_current" (cast_expression "(long)__last_00._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__last_00._M_current" identifier . field_identifier)) - (cast_expression "(long)__first._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__first._M_current" identifier . field_identifier))) >> number_literal)) ;) (expression_statement "lVar2 = 0x3f;" (assignment_expression "lVar2 = 0x3f" identifier = number_literal) ;) (if_statement "if (uVar6 != 0) {\n      for (; uVar6 >> lVar2 == 0; lVar2 = lVar2 + -1) {\n      }\n    }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      for (; uVar6 >> lVar2 == 0; lVar2 = lVar2 + -1) {\n      }\n    }" { (for_statement "for (; uVar6 >> lVar2 == 0; lVar2 = lVar2 + -1) {\n      }" for ( ; (binary_expression "uVar6 >> lVar2 == 0" (binary_expression "uVar6 >> lVar2" identifier >> identifier) == number_literal) ; (assignment_expression "lVar2 = lVar2 + -1" identifier = (binary_expression "lVar2 + -1" identifier + number_literal)) ) (compound_statement "{\n      }" { })) })) (expression_statement "__comp_00._M_comp.sort_order_ = sort_order;" (assignment_expression "__comp_00._M_comp.sort_order_ = sort_order" (field_expression "__comp_00._M_comp.sort_order_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "__comp_00._M_comp.symtab_ = this;" (assignment_expression "__comp_00._M_comp.symtab_ = this" (field_expression "__comp_00._M_comp.symtab_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "__comp_00._M_comp._12_4_ = 0;" (assignment_expression "__comp_00._M_comp._12_4_ = 0" (field_expression "__comp_00._M_comp._12_4_" (field_expression "__comp_00._M_comp" identifier . field_identifier) . field_identifier) = number_literal) ;) (ERROR "std::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,_long_int,___gnu_cxx::" (comma_expression "std::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Symbol**,_std" identifier (ERROR "::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Symbol**" : : (binary_expression "__introsort_loop<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : identifier * *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Symbol*>_>,_long_int,___gnu_cxx" (binary_expression "Symbol*>_>,_long_int" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) , identifier) : :) (labeled_statement "__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n              (__first,__last_00,(0x3f - (long)(int)((uint)lVar2 ^ 0x3f)) * 2,__comp_00);" statement_identifier (ERROR "::_Iter_comp_iter<gold:" : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) :) : (expression_statement "Sort_commons<64>_>_>\n              (__first,__last_00,(0x3f - (long)(int)((uint)lVar2 ^ 0x3f)) * 2,__comp_00);" (binary_expression "Sort_commons<64>_>_>\n              (__first,__last_00,(0x3f - (long)(int)((uint)lVar2 ^ 0x3f)) * 2,__comp_00)" (binary_expression "Sort_commons<64>_>_" (binary_expression "Sort_commons<64>_" (binary_expression "Sort_commons<64" identifier < number_literal) > identifier) > identifier) > (parenthesized_expression "(__first,__last_00,(0x3f - (long)(int)((uint)lVar2 ^ 0x3f)) * 2,__comp_00)" ( (comma_expression "__first,__last_00,(0x3f - (long)(int)((uint)lVar2 ^ 0x3f)) * 2,__comp_00" identifier , (comma_expression "__last_00,(0x3f - (long)(int)((uint)lVar2 ^ 0x3f)) * 2,__comp_00" identifier , (comma_expression "(0x3f - (long)(int)((uint)lVar2 ^ 0x3f)) * 2,__comp_00" (binary_expression "(0x3f - (long)(int)((uint)lVar2 ^ 0x3f)) * 2" (parenthesized_expression "(0x3f - (long)(int)((uint)lVar2 ^ 0x3f))" ( (binary_expression "0x3f - (long)(int)((uint)lVar2 ^ 0x3f)" number_literal - (cast_expression "(long)(int)((uint)lVar2 ^ 0x3f)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)((uint)lVar2 ^ 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)lVar2 ^ 0x3f)" ( (binary_expression "(uint)lVar2 ^ 0x3f" (cast_expression "(uint)lVar2" ( (type_descriptor "uint" type_identifier) ) identifier) ^ number_literal) ))))) )) * number_literal) , identifier))) ))) ;)) (if_statement "if (0x80 < (long)__last_00._M_current - (long)__first._M_current) {\n      __last._M_current = __first._M_current + 0x10;\n      __comp_01._M_comp.sort_order_ = sort_order;\n      __comp_01._M_comp.symtab_ = this;\n      __comp_01._M_comp._12_4_ = 0;\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n                (__first,__last,__comp_01);\n      for (; __last_00._M_current != __last._M_current; __last._M_current = __last._M_current + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | (ulong)sort_order;\n        __comp._M_comp._8_8_ = uStack_48;\n        __comp._M_comp.symtab_ = this;\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_commons<64>_>_>\n                  (__last,__comp);\n      }\n      goto LAB_0023b19c;\n    }" if (parenthesized_expression "(0x80 < (long)__last_00._M_current - (long)__first._M_current)" ( (binary_expression "0x80 < (long)__last_00._M_current - (long)__first._M_current" number_literal < (binary_expression "(long)__last_00._M_current - (long)__first._M_current" (cast_expression "(long)__last_00._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__last_00._M_current" identifier . field_identifier)) - (cast_expression "(long)__first._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__first._M_current" identifier . field_identifier)))) )) (compound_statement "{\n      __last._M_current = __first._M_current + 0x10;\n      __comp_01._M_comp.sort_order_ = sort_order;\n      __comp_01._M_comp.symtab_ = this;\n      __comp_01._M_comp._12_4_ = 0;\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n                (__first,__last,__comp_01);\n      for (; __last_00._M_current != __last._M_current; __last._M_current = __last._M_current + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | (ulong)sort_order;\n        __comp._M_comp._8_8_ = uStack_48;\n        __comp._M_comp.symtab_ = this;\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_commons<64>_>_>\n                  (__last,__comp);\n      }\n      goto LAB_0023b19c;\n    }" { (expression_statement "__last._M_current = __first._M_current + 0x10;" (assignment_expression "__last._M_current = __first._M_current + 0x10" (field_expression "__last._M_current" identifier . field_identifier) = (binary_expression "__first._M_current + 0x10" (field_expression "__first._M_current" identifier . field_identifier) + number_literal)) ;) (expression_statement "__comp_01._M_comp.sort_order_ = sort_order;" (assignment_expression "__comp_01._M_comp.sort_order_ = sort_order" (field_expression "__comp_01._M_comp.sort_order_" (field_expression "__comp_01._M_comp" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "__comp_01._M_comp.symtab_ = this;" (assignment_expression "__comp_01._M_comp.symtab_ = this" (field_expression "__comp_01._M_comp.symtab_" (field_expression "__comp_01._M_comp" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "__comp_01._M_comp._12_4_ = 0;" (assignment_expression "__comp_01._M_comp._12_4_ = 0" (field_expression "__comp_01._M_comp._12_4_" (field_expression "__comp_01._M_comp" identifier . field_identifier) . field_identifier) = number_literal) ;) (ERROR "std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::" (comma_expression "std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std" identifier (ERROR "::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**" : : (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : identifier * *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (binary_expression "Symbol*>_>,___gnu_cxx" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n                (__first,__last,__comp_01);" statement_identifier (ERROR "::_Iter_comp_iter<gold:" : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) :) : (expression_statement "Sort_commons<64>_>_>\n                (__first,__last,__comp_01);" (binary_expression "Sort_commons<64>_>_>\n                (__first,__last,__comp_01)" (binary_expression "Sort_commons<64>_>_" (binary_expression "Sort_commons<64>_" (binary_expression "Sort_commons<64" identifier < number_literal) > identifier) > identifier) > (parenthesized_expression "(__first,__last,__comp_01)" ( (comma_expression "__first,__last,__comp_01" identifier , (comma_expression "__last,__comp_01" identifier , identifier)) ))) ;)) (for_statement "for (; __last_00._M_current != __last._M_current; __last._M_current = __last._M_current + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | (ulong)sort_order;\n        __comp._M_comp._8_8_ = uStack_48;\n        __comp._M_comp.symtab_ = this;\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_commons<64>_>_>\n                  (__last,__comp);\n      }" for ( ; (binary_expression "__last_00._M_current != __last._M_current" (field_expression "__last_00._M_current" identifier . field_identifier) != (field_expression "__last._M_current" identifier . field_identifier)) ; (assignment_expression "__last._M_current = __last._M_current + 1" (field_expression "__last._M_current" identifier . field_identifier) = (binary_expression "__last._M_current + 1" (field_expression "__last._M_current" identifier . field_identifier) + number_literal)) ) (compound_statement "{\n        uStack_48 = uStack_48 & 0xffffffff00000000 | (ulong)sort_order;\n        __comp._M_comp._8_8_ = uStack_48;\n        __comp._M_comp.symtab_ = this;\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_commons<64>_>_>\n                  (__last,__comp);\n      }" { (expression_statement "uStack_48 = uStack_48 & 0xffffffff00000000 | (ulong)sort_order;" (assignment_expression "uStack_48 = uStack_48 & 0xffffffff00000000 | (ulong)sort_order" identifier = (binary_expression "uStack_48 & 0xffffffff00000000 | (ulong)sort_order" (binary_expression "uStack_48 & 0xffffffff00000000" identifier & number_literal) | (cast_expression "(ulong)sort_order" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "__comp._M_comp._8_8_ = uStack_48;" (assignment_expression "__comp._M_comp._8_8_ = uStack_48" (field_expression "__comp._M_comp._8_8_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "__comp._M_comp.symtab_ = this;" (assignment_expression "__comp._M_comp.symtab_ = this" (field_expression "__comp._M_comp.symtab_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier) = identifier) ;) (ERROR "std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::" (comma_expression "std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Symbol**,_std" identifier (ERROR "::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Symbol**" : : (binary_expression "__unguarded_linear_insert<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : identifier * *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (binary_expression "Symbol*>_>,___gnu_cxx" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__ops::_Val_comp_iter<gold::Sort_commons<64>_>_>\n                  (__last,__comp);" statement_identifier (ERROR "::_Val_comp_iter<gold:" : : (binary_expression "_Val_comp_iter<gold" identifier < identifier) :) : (expression_statement "Sort_commons<64>_>_>\n                  (__last,__comp);" (binary_expression "Sort_commons<64>_>_>\n                  (__last,__comp)" (binary_expression "Sort_commons<64>_>_" (binary_expression "Sort_commons<64>_" (binary_expression "Sort_commons<64" identifier < number_literal) > identifier) > identifier) > (parenthesized_expression "(__last,__comp)" ( (comma_expression "__last,__comp" identifier , identifier) ))) ;)) })) (goto_statement "goto LAB_0023b19c;" goto statement_identifier ;) })) (expression_statement "__comp_02._M_comp.sort_order_ = sort_order;" (assignment_expression "__comp_02._M_comp.sort_order_ = sort_order" (field_expression "__comp_02._M_comp.sort_order_" (field_expression "__comp_02._M_comp" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "__comp_02._M_comp.symtab_ = this;" (assignment_expression "__comp_02._M_comp.symtab_ = this" (field_expression "__comp_02._M_comp.symtab_" (field_expression "__comp_02._M_comp" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "__comp_02._M_comp._12_4_ = 0;" (assignment_expression "__comp_02._M_comp._12_4_ = 0" (field_expression "__comp_02._M_comp._12_4_" (field_expression "__comp_02._M_comp" identifier . field_identifier) . field_identifier) = number_literal) ;) (ERROR "std::\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std::vector<gold::Symbol*>_>,___gnu_cxx::" (comma_expression "std::\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**,_std" identifier (ERROR "::\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Symbol**" : : (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : identifier * *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (binary_expression "Symbol*>_>,___gnu_cxx" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__ops::_Iter_comp_iter<gold::Sort_commons<64>_>_>\n              (__first,__last_00,__comp_02);" statement_identifier (ERROR "::_Iter_comp_iter<gold:" : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) :) : (expression_statement "Sort_commons<64>_>_>\n              (__first,__last_00,__comp_02);" (binary_expression "Sort_commons<64>_>_>\n              (__first,__last_00,__comp_02)" (binary_expression "Sort_commons<64>_>_" (binary_expression "Sort_commons<64>_" (binary_expression "Sort_commons<64" identifier < number_literal) > identifier) > identifier) > (parenthesized_expression "(__first,__last_00,__comp_02)" ( (comma_expression "__first,__last_00,__comp_02" identifier , (comma_expression "__last_00,__comp_02" identifier , identifier)) ))) ;)) (if_statement "if (commons_section_type == COMMONS_TLS) goto LAB_0023b3d3;" if (parenthesized_expression "(commons_section_type == COMMONS_TLS)" ( (binary_expression "commons_section_type == COMMONS_TLS" identifier == identifier) )) (goto_statement "goto LAB_0023b3d3;" goto statement_identifier ;)) (labeled_statement "LAB_0023b1a9:\n    if (commons_section_type == COMMONS_NORMAL) {\n      pcVar12 = "** common";\n      pcVar11 = &DAT_00310adc;\n      uVar6 = 3;\n    }\n    else {\n      if (commons_section_type == COMMONS_SMALL) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        lVar2 = *(long *)(parameters->target_ + 8);\n        if (*(short *)(lVar2 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar12 = "** small common";\n        pcVar11 = ".sbss";\n        uVar6 = *(ulong *)(lVar2 + 0x50) | 3;\n        uVar4 = Parameters::incremental_update(parameters);\n        goto joined_r0x0023b2a4;\n      }\n      if (commons_section_type != COMMONS_LARGE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_0023b4d0;\n      lVar2 = *(long *)(parameters->target_ + 8);\n      if (*(short *)(lVar2 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar12 = "** large common";\n      pcVar11 = ".lbss";\n      uVar6 = *(ulong *)(lVar2 + 0x58) | 3;\n    }" statement_identifier : (if_statement "if (commons_section_type == COMMONS_NORMAL) {\n      pcVar12 = "** common";\n      pcVar11 = &DAT_00310adc;\n      uVar6 = 3;\n    }\n    else {\n      if (commons_section_type == COMMONS_SMALL) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        lVar2 = *(long *)(parameters->target_ + 8);\n        if (*(short *)(lVar2 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar12 = "** small common";\n        pcVar11 = ".sbss";\n        uVar6 = *(ulong *)(lVar2 + 0x50) | 3;\n        uVar4 = Parameters::incremental_update(parameters);\n        goto joined_r0x0023b2a4;\n      }\n      if (commons_section_type != COMMONS_LARGE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_0023b4d0;\n      lVar2 = *(long *)(parameters->target_ + 8);\n      if (*(short *)(lVar2 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar12 = "** large common";\n      pcVar11 = ".lbss";\n      uVar6 = *(ulong *)(lVar2 + 0x58) | 3;\n    }" if (parenthesized_expression "(commons_section_type == COMMONS_NORMAL)" ( (binary_expression "commons_section_type == COMMONS_NORMAL" identifier == identifier) )) (compound_statement "{\n      pcVar12 = "** common";\n      pcVar11 = &DAT_00310adc;\n      uVar6 = 3;\n    }" { (expression_statement "pcVar12 = "** common";" (assignment_expression "pcVar12 = "** common"" identifier = (string_literal ""** common"" " string_content ")) ;) (expression_statement "pcVar11 = &DAT_00310adc;" (assignment_expression "pcVar11 = &DAT_00310adc" identifier = (pointer_expression "&DAT_00310adc" & identifier)) ;) (expression_statement "uVar6 = 3;" (assignment_expression "uVar6 = 3" identifier = number_literal) ;) }) (else_clause "else {\n      if (commons_section_type == COMMONS_SMALL) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        lVar2 = *(long *)(parameters->target_ + 8);\n        if (*(short *)(lVar2 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar12 = "** small common";\n        pcVar11 = ".sbss";\n        uVar6 = *(ulong *)(lVar2 + 0x50) | 3;\n        uVar4 = Parameters::incremental_update(parameters);\n        goto joined_r0x0023b2a4;\n      }\n      if (commons_section_type != COMMONS_LARGE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_0023b4d0;\n      lVar2 = *(long *)(parameters->target_ + 8);\n      if (*(short *)(lVar2 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar12 = "** large common";\n      pcVar11 = ".lbss";\n      uVar6 = *(ulong *)(lVar2 + 0x58) | 3;\n    }" else (compound_statement "{\n      if (commons_section_type == COMMONS_SMALL) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        lVar2 = *(long *)(parameters->target_ + 8);\n        if (*(short *)(lVar2 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar12 = "** small common";\n        pcVar11 = ".sbss";\n        uVar6 = *(ulong *)(lVar2 + 0x50) | 3;\n        uVar4 = Parameters::incremental_update(parameters);\n        goto joined_r0x0023b2a4;\n      }\n      if (commons_section_type != COMMONS_LARGE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_0023b4d0;\n      lVar2 = *(long *)(parameters->target_ + 8);\n      if (*(short *)(lVar2 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar12 = "** large common";\n      pcVar11 = ".lbss";\n      uVar6 = *(ulong *)(lVar2 + 0x58) | 3;\n    }" { (if_statement "if (commons_section_type == COMMONS_SMALL) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        lVar2 = *(long *)(parameters->target_ + 8);\n        if (*(short *)(lVar2 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar12 = "** small common";\n        pcVar11 = ".sbss";\n        uVar6 = *(ulong *)(lVar2 + 0x50) | 3;\n        uVar4 = Parameters::incremental_update(parameters);\n        goto joined_r0x0023b2a4;\n      }" if (parenthesized_expression "(commons_section_type == COMMONS_SMALL)" ( (binary_expression "commons_section_type == COMMONS_SMALL" identifier == identifier) )) (compound_statement "{\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        lVar2 = *(long *)(parameters->target_ + 8);\n        if (*(short *)(lVar2 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar12 = "** small common";\n        pcVar11 = ".sbss";\n        uVar6 = *(ulong *)(lVar2 + 0x50) | 3;\n        uVar4 = Parameters::incremental_update(parameters);\n        goto joined_r0x0023b2a4;\n      }" { (if_statement "if (parameters->target_ == (Target *)0x0) {\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }" if (parenthesized_expression "(parameters->target_ == (Target *)0x0)" ( (binary_expression "parameters->target_ == (Target *)0x0" (field_expression "parameters->target_" identifier -> field_identifier) == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }" { (labeled_statement "LAB_0023b4d0:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x69,"target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;)) })) (expression_statement "lVar2 = *(long *)(parameters->target_ + 8);" (assignment_expression "lVar2 = *(long *)(parameters->target_ + 8)" identifier = (pointer_expression "*(long *)(parameters->target_ + 8)" * (cast_expression "(long *)(parameters->target_ + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(parameters->target_ + 8)" ( (binary_expression "parameters->target_ + 8" (field_expression "parameters->target_" identifier -> field_identifier) + number_literal) ))))) ;) (if_statement "if (*(short *)(lVar2 + 0x48) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags");\n        }" if (parenthesized_expression "(*(short *)(lVar2 + 0x48) == 0)" ( (binary_expression "*(short *)(lVar2 + 0x48) == 0" (pointer_expression "*(short *)(lVar2 + 0x48)" * (cast_expression "(short *)(lVar2 + 0x48)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x48)" ( (binary_expression "lVar2 + 0x48" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags");" (call_expression "do_gold_unreachable("../../gold/target.h",0xc5,"small_common_section_flags")" identifier (argument_list "("../../gold/target.h",0xc5,"small_common_section_flags")" ( (string_literal ""../../gold/target.h"" " string_content ") , number_literal , (string_literal ""small_common_section_flags"" " string_content ") ))) ;) })) (expression_statement "pcVar12 = "** small common";" (assignment_expression "pcVar12 = "** small common"" identifier = (string_literal ""** small common"" " string_content ")) ;) (expression_statement "pcVar11 = ".sbss";" (assignment_expression "pcVar11 = ".sbss"" identifier = (string_literal "".sbss"" " string_content ")) ;) (expression_statement "uVar6 = *(ulong *)(lVar2 + 0x50) | 3;" (assignment_expression "uVar6 = *(ulong *)(lVar2 + 0x50) | 3" identifier = (binary_expression "*(ulong *)(lVar2 + 0x50) | 3" (pointer_expression "*(ulong *)(lVar2 + 0x50)" * (cast_expression "(ulong *)(lVar2 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x50)" ( (binary_expression "lVar2 + 0x50" identifier + number_literal) )))) | number_literal)) ;) (ERROR "uVar4 = Parameters::" (assignment_expression "uVar4 = Parameters" identifier = identifier) : :) (expression_statement "incremental_update(parameters);" (call_expression "incremental_update(parameters)" identifier (argument_list "(parameters)" ( identifier ))) ;) (goto_statement "goto joined_r0x0023b2a4;" goto statement_identifier ;) })) (if_statement "if (commons_section_type != COMMONS_LARGE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }" if (parenthesized_expression "(commons_section_type != COMMONS_LARGE)" ( (binary_expression "commons_section_type != COMMONS_LARGE" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/common.cc",0x11b,"do_allocate_commons_list");" (call_expression "do_gold_unreachable("../../gold/common.cc",0x11b,"do_allocate_commons_list")" identifier (argument_list "("../../gold/common.cc",0x11b,"do_allocate_commons_list")" ( (string_literal ""../../gold/common.cc"" " string_content ") , number_literal , (string_literal ""do_allocate_commons_list"" " string_content ") ))) ;) })) (if_statement "if (parameters->target_ == (Target *)0x0) goto LAB_0023b4d0;" if (parenthesized_expression "(parameters->target_ == (Target *)0x0)" ( (binary_expression "parameters->target_ == (Target *)0x0" (field_expression "parameters->target_" identifier -> field_identifier) == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0023b4d0;" goto statement_identifier ;)) (expression_statement "lVar2 = *(long *)(parameters->target_ + 8);" (assignment_expression "lVar2 = *(long *)(parameters->target_ + 8)" identifier = (pointer_expression "*(long *)(parameters->target_ + 8)" * (cast_expression "(long *)(parameters->target_ + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(parameters->target_ + 8)" ( (binary_expression "parameters->target_ + 8" (field_expression "parameters->target_" identifier -> field_identifier) + number_literal) ))))) ;) (if_statement "if (*(short *)(lVar2 + 0x4a) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/target.h",0xd5,"large_common_section_flags");\n      }" if (parenthesized_expression "(*(short *)(lVar2 + 0x4a) == 0)" ( (binary_expression "*(short *)(lVar2 + 0x4a) == 0" (pointer_expression "*(short *)(lVar2 + 0x4a)" * (cast_expression "(short *)(lVar2 + 0x4a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x4a)" ( (binary_expression "lVar2 + 0x4a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/target.h",0xd5,"large_common_section_flags");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/target.h",0xd5,"large_common_section_flags");" (call_expression "do_gold_unreachable("../../gold/target.h",0xd5,"large_common_section_flags")" identifier (argument_list "("../../gold/target.h",0xd5,"large_common_section_flags")" ( (string_literal ""../../gold/target.h"" " string_content ") , number_literal , (string_literal ""large_common_section_flags"" " string_content ") ))) ;) })) (expression_statement "pcVar12 = "** large common";" (assignment_expression "pcVar12 = "** large common"" identifier = (string_literal ""** large common"" " string_content ")) ;) (expression_statement "pcVar11 = ".lbss";" (assignment_expression "pcVar11 = ".lbss"" identifier = (string_literal "".lbss"" " string_content ")) ;) (expression_statement "uVar6 = *(ulong *)(lVar2 + 0x58) | 3;" (assignment_expression "uVar6 = *(ulong *)(lVar2 + 0x58) | 3" identifier = (binary_expression "*(ulong *)(lVar2 + 0x58) | 3" (pointer_expression "*(ulong *)(lVar2 + 0x58)" * (cast_expression "(ulong *)(lVar2 + 0x58)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x58)" ( (binary_expression "lVar2 + 0x58" identifier + number_literal) )))) | number_literal)) ;) })))) }))) (ERROR "uVar4 = Parameters::" (assignment_expression "uVar4 = Parameters" identifier = identifier) : :) (expression_statement "incremental_update(parameters);" (call_expression "incremental_update(parameters)" identifier (argument_list "(parameters)" ( identifier ))) ;) (labeled_statement "joined_r0x0023b2a4:\n  if ((bool)uVar4) {\n    posd = (Output_section *)0x0;\n    local_78 = Layout::find_output_section(layout,pcVar11);\n  }\n  else {\n    posd = (Output_section *)operator_new(0x40);\n    puVar1 = &(posd->super_Output_data).field_0x20;\n    *puVar1 = *puVar1 & 0xe0;\n    (posd->super_Output_data).address_ = 0;\n    (posd->super_Output_data).data_size_ = 0;\n    (posd->super_Output_data).offset_ = -1;\n    *(Output_section **)&posd->name_ = (Output_section *)0x0;\n    posd->addralign_ = (uint64_t)pGVar10;\n    (posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_space_003b4a48;\n    posd->entsize_ = (uint64_t)pcVar12;\n    local_78 = Layout::add_output_section_data\n                         (layout,pcVar11,8,uVar6,(Output_section_data *)posd,ORDER_INVALID,false);\n  }" statement_identifier : (if_statement "if ((bool)uVar4) {\n    posd = (Output_section *)0x0;\n    local_78 = Layout::find_output_section(layout,pcVar11);\n  }\n  else {\n    posd = (Output_section *)operator_new(0x40);\n    puVar1 = &(posd->super_Output_data).field_0x20;\n    *puVar1 = *puVar1 & 0xe0;\n    (posd->super_Output_data).address_ = 0;\n    (posd->super_Output_data).data_size_ = 0;\n    (posd->super_Output_data).offset_ = -1;\n    *(Output_section **)&posd->name_ = (Output_section *)0x0;\n    posd->addralign_ = (uint64_t)pGVar10;\n    (posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_space_003b4a48;\n    posd->entsize_ = (uint64_t)pcVar12;\n    local_78 = Layout::add_output_section_data\n                         (layout,pcVar11,8,uVar6,(Output_section_data *)posd,ORDER_INVALID,false);\n  }" if (parenthesized_expression "((bool)uVar4)" ( (cast_expression "(bool)uVar4" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n    posd = (Output_section *)0x0;\n    local_78 = Layout::find_output_section(layout,pcVar11);\n  }" { (expression_statement "posd = (Output_section *)0x0;" (assignment_expression "posd = (Output_section *)0x0" identifier = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (ERROR "local_78 = Layout::" (assignment_expression "local_78 = Layout" identifier = identifier) : :) (expression_statement "find_output_section(layout,pcVar11);" (call_expression "find_output_section(layout,pcVar11)" identifier (argument_list "(layout,pcVar11)" ( identifier , identifier ))) ;) }) (else_clause "else {\n    posd = (Output_section *)operator_new(0x40);\n    puVar1 = &(posd->super_Output_data).field_0x20;\n    *puVar1 = *puVar1 & 0xe0;\n    (posd->super_Output_data).address_ = 0;\n    (posd->super_Output_data).data_size_ = 0;\n    (posd->super_Output_data).offset_ = -1;\n    *(Output_section **)&posd->name_ = (Output_section *)0x0;\n    posd->addralign_ = (uint64_t)pGVar10;\n    (posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_space_003b4a48;\n    posd->entsize_ = (uint64_t)pcVar12;\n    local_78 = Layout::add_output_section_data\n                         (layout,pcVar11,8,uVar6,(Output_section_data *)posd,ORDER_INVALID,false);\n  }" else (compound_statement "{\n    posd = (Output_section *)operator_new(0x40);\n    puVar1 = &(posd->super_Output_data).field_0x20;\n    *puVar1 = *puVar1 & 0xe0;\n    (posd->super_Output_data).address_ = 0;\n    (posd->super_Output_data).data_size_ = 0;\n    (posd->super_Output_data).offset_ = -1;\n    *(Output_section **)&posd->name_ = (Output_section *)0x0;\n    posd->addralign_ = (uint64_t)pGVar10;\n    (posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_space_003b4a48;\n    posd->entsize_ = (uint64_t)pcVar12;\n    local_78 = Layout::add_output_section_data\n                         (layout,pcVar11,8,uVar6,(Output_section_data *)posd,ORDER_INVALID,false);\n  }" { (expression_statement "posd = (Output_section *)operator_new(0x40);" (assignment_expression "posd = (Output_section *)operator_new(0x40)" identifier = (cast_expression "(Output_section *)operator_new(0x40)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "puVar1 = &(posd->super_Output_data).field_0x20;" (assignment_expression "puVar1 = &(posd->super_Output_data).field_0x20" identifier = (pointer_expression "&(posd->super_Output_data).field_0x20" & (field_expression "(posd->super_Output_data).field_0x20" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 & 0xe0;" (assignment_expression "*puVar1 = *puVar1 & 0xe0" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 & 0xe0" (pointer_expression "*puVar1" * identifier) & number_literal)) ;) (expression_statement "(posd->super_Output_data).address_ = 0;" (assignment_expression "(posd->super_Output_data).address_ = 0" (field_expression "(posd->super_Output_data).address_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(posd->super_Output_data).data_size_ = 0;" (assignment_expression "(posd->super_Output_data).data_size_ = 0" (field_expression "(posd->super_Output_data).data_size_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(posd->super_Output_data).offset_ = -1;" (assignment_expression "(posd->super_Output_data).offset_ = -1" (field_expression "(posd->super_Output_data).offset_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "*(Output_section **)&posd->name_ = (Output_section *)0x0;" (assignment_expression "*(Output_section **)&posd->name_ = (Output_section *)0x0" (pointer_expression "*(Output_section **)&posd->name_" * (cast_expression "(Output_section **)&posd->name_" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&posd->name_" & (field_expression "posd->name_" identifier -> field_identifier)))) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "posd->addralign_ = (uint64_t)pGVar10;" (assignment_expression "posd->addralign_ = (uint64_t)pGVar10" (field_expression "posd->addralign_" identifier -> field_identifier) = (cast_expression "(uint64_t)pGVar10" ( (type_descriptor "uint64_t" primitive_type) ) identifier)) ;) (expression_statement "(posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_space_003b4a48;" (assignment_expression "(posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_space_003b4a48" (field_expression "(posd->super_Output_data)._vptr_Output_data" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_space_003b4a48" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_space_003b4a48" & identifier))) ;) (expression_statement "posd->entsize_ = (uint64_t)pcVar12;" (assignment_expression "posd->entsize_ = (uint64_t)pcVar12" (field_expression "posd->entsize_" identifier -> field_identifier) = (cast_expression "(uint64_t)pcVar12" ( (type_descriptor "uint64_t" primitive_type) ) identifier)) ;) (ERROR "local_78 = Layout::" (assignment_expression "local_78 = Layout" identifier = identifier) : :) (expression_statement "add_output_section_data\n                         (layout,pcVar11,8,uVar6,(Output_section_data *)posd,ORDER_INVALID,false);" (call_expression "add_output_section_data\n                         (layout,pcVar11,8,uVar6,(Output_section_data *)posd,ORDER_INVALID,false)" identifier (argument_list "(layout,pcVar11,8,uVar6,(Output_section_data *)posd,ORDER_INVALID,false)" ( identifier , identifier , number_literal , identifier , (cast_expression "(Output_section_data *)posd" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , false ))) ;) })))) (if_statement "if (local_78 != (Output_section *)0x0) {\n    if (commons_section_type == COMMONS_SMALL) {\n      local_78->field_0xc9 = local_78->field_0xc9 | 0x40;\n    }\n    else if (commons_section_type == COMMONS_LARGE) {\n      local_78->field_0xc9 = local_78->field_0xc9 | 0x80;\n    }\n  }" if (parenthesized_expression "(local_78 != (Output_section *)0x0)" ( (binary_expression "local_78 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (commons_section_type == COMMONS_SMALL) {\n      local_78->field_0xc9 = local_78->field_0xc9 | 0x40;\n    }\n    else if (commons_section_type == COMMONS_LARGE) {\n      local_78->field_0xc9 = local_78->field_0xc9 | 0x80;\n    }\n  }" { (if_statement "if (commons_section_type == COMMONS_SMALL) {\n      local_78->field_0xc9 = local_78->field_0xc9 | 0x40;\n    }\n    else if (commons_section_type == COMMONS_LARGE) {\n      local_78->field_0xc9 = local_78->field_0xc9 | 0x80;\n    }" if (parenthesized_expression "(commons_section_type == COMMONS_SMALL)" ( (binary_expression "commons_section_type == COMMONS_SMALL" identifier == identifier) )) (compound_statement "{\n      local_78->field_0xc9 = local_78->field_0xc9 | 0x40;\n    }" { (expression_statement "local_78->field_0xc9 = local_78->field_0xc9 | 0x40;" (assignment_expression "local_78->field_0xc9 = local_78->field_0xc9 | 0x40" (field_expression "local_78->field_0xc9" identifier -> field_identifier) = (binary_expression "local_78->field_0xc9 | 0x40" (field_expression "local_78->field_0xc9" identifier -> field_identifier) | number_literal)) ;) }) (else_clause "else if (commons_section_type == COMMONS_LARGE) {\n      local_78->field_0xc9 = local_78->field_0xc9 | 0x80;\n    }" else (if_statement "if (commons_section_type == COMMONS_LARGE) {\n      local_78->field_0xc9 = local_78->field_0xc9 | 0x80;\n    }" if (parenthesized_expression "(commons_section_type == COMMONS_LARGE)" ( (binary_expression "commons_section_type == COMMONS_LARGE" identifier == identifier) )) (compound_statement "{\n      local_78->field_0xc9 = local_78->field_0xc9 | 0x80;\n    }" { (expression_statement "local_78->field_0xc9 = local_78->field_0xc9 | 0x80;" (assignment_expression "local_78->field_0xc9 = local_78->field_0xc9 | 0x80" (field_expression "local_78->field_0xc9" identifier -> field_identifier) = (binary_expression "local_78->field_0xc9 | 0x80" (field_expression "local_78->field_0xc9" identifier -> field_identifier) | number_literal)) ;) })))) })) (expression_statement "ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish;" (assignment_expression "ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish" identifier = (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish" (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (ERROR "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::" (comma_expression "commons->super__Vector_base<gold::Symbol*,_std" (binary_expression "commons->super__Vector_base<gold::Symbol*" (binary_expression "commons->super__Vector_base<gold" (field_expression "commons->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Symbol*>_>" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start;" (assignment_expression "ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start" identifier = (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start" (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (ERROR "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::" (comma_expression "commons->super__Vector_base<gold::Symbol*,_std" (binary_expression "commons->super__Vector_base<gold::Symbol*" (binary_expression "commons->super__Vector_base<gold" (field_expression "commons->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Symbol*>_>" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((ppSVar13 == ppSVar9) || (this_01 = (Symbol_table *)*ppSVar13, this_01 == (Symbol_table *)0x0)\n     ) {\n    value = 0;\n    ppSVar7 = ppSVar9;\n  }\n  else {\n    value = 0;\n    do {\n      ppSVar13 = ppSVar13 + 1;\n      if ((((this_01->table_)._M_h._M_bucket_count & 0x70000) == 0) &&\n         (((this_01->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\n        bVar5 = Symbol::is_common_shndx(this_01->output_count_);\n        if (bVar5) {\n          pSVar8 = get_sized_symbol<64>(this_01,(Symbol *)pcVar11);\n          if (mapfile != (Mapfile *)0x0) {\n            Mapfile::report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);\n          }\n          addralign = pSVar8->value_;\n          if (posd != (Output_section *)0x0) {\n            if (addralign != 0) {\n              value = value + (addralign - 1) & -addralign;\n            }\n            pcVar11 = (char *)posd;\n            Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value);\n            value = value + pSVar8->symsize_;\n            ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish;\n            goto LAB_0023b370;\n          }\n          value = Output_section::allocate(local_78,pSVar8->symsize_,addralign);\n          if (value == 0xffffffffffffffff) {\n            pcVar11 = local_78->name_;\n            pcVar12 = (char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     );\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,pcVar11);\n          }\n          pcVar11 = (char *)local_78;\n          Sized_symbol<64>::allocate_common(pSVar8,&local_78->super_Output_data,value);\n        }\n        ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                  _M_impl._M_finish;\n      }\nLAB_0023b370:\n      ppSVar7 = ppSVar13;\n    } while ((ppSVar9 != ppSVar13) &&\n            (this_01 = (Symbol_table *)*ppSVar13, ppSVar7 = ppSVar9, this_01 != (Symbol_table *)0x0)\n            );\n  }" if (parenthesized_expression "((ppSVar13 == ppSVar9) || (this_01 = (Symbol_table *)*ppSVar13, this_01 == (Symbol_table *)0x0)\n     )" ( (binary_expression "(ppSVar13 == ppSVar9) || (this_01 = (Symbol_table *)*ppSVar13, this_01 == (Symbol_table *)0x0)" (parenthesized_expression "(ppSVar13 == ppSVar9)" ( (binary_expression "ppSVar13 == ppSVar9" identifier == identifier) )) || (parenthesized_expression "(this_01 = (Symbol_table *)*ppSVar13, this_01 == (Symbol_table *)0x0)" ( (comma_expression "this_01 = (Symbol_table *)*ppSVar13, this_01 == (Symbol_table *)0x0" (assignment_expression "this_01 = (Symbol_table *)*ppSVar13" identifier = (cast_expression "(Symbol_table *)*ppSVar13" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*ppSVar13" * identifier))) , (binary_expression "this_01 == (Symbol_table *)0x0" identifier == (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    value = 0;\n    ppSVar7 = ppSVar9;\n  }" { (expression_statement "value = 0;" (assignment_expression "value = 0" identifier = number_literal) ;) (expression_statement "ppSVar7 = ppSVar9;" (assignment_expression "ppSVar7 = ppSVar9" identifier = identifier) ;) }) (else_clause "else {\n    value = 0;\n    do {\n      ppSVar13 = ppSVar13 + 1;\n      if ((((this_01->table_)._M_h._M_bucket_count & 0x70000) == 0) &&\n         (((this_01->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\n        bVar5 = Symbol::is_common_shndx(this_01->output_count_);\n        if (bVar5) {\n          pSVar8 = get_sized_symbol<64>(this_01,(Symbol *)pcVar11);\n          if (mapfile != (Mapfile *)0x0) {\n            Mapfile::report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);\n          }\n          addralign = pSVar8->value_;\n          if (posd != (Output_section *)0x0) {\n            if (addralign != 0) {\n              value = value + (addralign - 1) & -addralign;\n            }\n            pcVar11 = (char *)posd;\n            Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value);\n            value = value + pSVar8->symsize_;\n            ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish;\n            goto LAB_0023b370;\n          }\n          value = Output_section::allocate(local_78,pSVar8->symsize_,addralign);\n          if (value == 0xffffffffffffffff) {\n            pcVar11 = local_78->name_;\n            pcVar12 = (char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     );\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,pcVar11);\n          }\n          pcVar11 = (char *)local_78;\n          Sized_symbol<64>::allocate_common(pSVar8,&local_78->super_Output_data,value);\n        }\n        ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                  _M_impl._M_finish;\n      }\nLAB_0023b370:\n      ppSVar7 = ppSVar13;\n    } while ((ppSVar9 != ppSVar13) &&\n            (this_01 = (Symbol_table *)*ppSVar13, ppSVar7 = ppSVar9, this_01 != (Symbol_table *)0x0)\n            );\n  }" else (compound_statement "{\n    value = 0;\n    do {\n      ppSVar13 = ppSVar13 + 1;\n      if ((((this_01->table_)._M_h._M_bucket_count & 0x70000) == 0) &&\n         (((this_01->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\n        bVar5 = Symbol::is_common_shndx(this_01->output_count_);\n        if (bVar5) {\n          pSVar8 = get_sized_symbol<64>(this_01,(Symbol *)pcVar11);\n          if (mapfile != (Mapfile *)0x0) {\n            Mapfile::report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);\n          }\n          addralign = pSVar8->value_;\n          if (posd != (Output_section *)0x0) {\n            if (addralign != 0) {\n              value = value + (addralign - 1) & -addralign;\n            }\n            pcVar11 = (char *)posd;\n            Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value);\n            value = value + pSVar8->symsize_;\n            ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish;\n            goto LAB_0023b370;\n          }\n          value = Output_section::allocate(local_78,pSVar8->symsize_,addralign);\n          if (value == 0xffffffffffffffff) {\n            pcVar11 = local_78->name_;\n            pcVar12 = (char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     );\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,pcVar11);\n          }\n          pcVar11 = (char *)local_78;\n          Sized_symbol<64>::allocate_common(pSVar8,&local_78->super_Output_data,value);\n        }\n        ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                  _M_impl._M_finish;\n      }\nLAB_0023b370:\n      ppSVar7 = ppSVar13;\n    } while ((ppSVar9 != ppSVar13) &&\n            (this_01 = (Symbol_table *)*ppSVar13, ppSVar7 = ppSVar9, this_01 != (Symbol_table *)0x0)\n            );\n  }" { (expression_statement "value = 0;" (assignment_expression "value = 0" identifier = number_literal) ;) (do_statement "do {\n      ppSVar13 = ppSVar13 + 1;\n      if ((((this_01->table_)._M_h._M_bucket_count & 0x70000) == 0) &&\n         (((this_01->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\n        bVar5 = Symbol::is_common_shndx(this_01->output_count_);\n        if (bVar5) {\n          pSVar8 = get_sized_symbol<64>(this_01,(Symbol *)pcVar11);\n          if (mapfile != (Mapfile *)0x0) {\n            Mapfile::report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);\n          }\n          addralign = pSVar8->value_;\n          if (posd != (Output_section *)0x0) {\n            if (addralign != 0) {\n              value = value + (addralign - 1) & -addralign;\n            }\n            pcVar11 = (char *)posd;\n            Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value);\n            value = value + pSVar8->symsize_;\n            ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish;\n            goto LAB_0023b370;\n          }\n          value = Output_section::allocate(local_78,pSVar8->symsize_,addralign);\n          if (value == 0xffffffffffffffff) {\n            pcVar11 = local_78->name_;\n            pcVar12 = (char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     );\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,pcVar11);\n          }\n          pcVar11 = (char *)local_78;\n          Sized_symbol<64>::allocate_common(pSVar8,&local_78->super_Output_data,value);\n        }\n        ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                  _M_impl._M_finish;\n      }\nLAB_0023b370:\n      ppSVar7 = ppSVar13;\n    } while ((ppSVar9 != ppSVar13) &&\n            (this_01 = (Symbol_table *)*ppSVar13, ppSVar7 = ppSVar9, this_01 != (Symbol_table *)0x0)\n            );" do (compound_statement "{\n      ppSVar13 = ppSVar13 + 1;\n      if ((((this_01->table_)._M_h._M_bucket_count & 0x70000) == 0) &&\n         (((this_01->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\n        bVar5 = Symbol::is_common_shndx(this_01->output_count_);\n        if (bVar5) {\n          pSVar8 = get_sized_symbol<64>(this_01,(Symbol *)pcVar11);\n          if (mapfile != (Mapfile *)0x0) {\n            Mapfile::report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);\n          }\n          addralign = pSVar8->value_;\n          if (posd != (Output_section *)0x0) {\n            if (addralign != 0) {\n              value = value + (addralign - 1) & -addralign;\n            }\n            pcVar11 = (char *)posd;\n            Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value);\n            value = value + pSVar8->symsize_;\n            ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish;\n            goto LAB_0023b370;\n          }\n          value = Output_section::allocate(local_78,pSVar8->symsize_,addralign);\n          if (value == 0xffffffffffffffff) {\n            pcVar11 = local_78->name_;\n            pcVar12 = (char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     );\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,pcVar11);\n          }\n          pcVar11 = (char *)local_78;\n          Sized_symbol<64>::allocate_common(pSVar8,&local_78->super_Output_data,value);\n        }\n        ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                  _M_impl._M_finish;\n      }\nLAB_0023b370:\n      ppSVar7 = ppSVar13;\n    }" { (expression_statement "ppSVar13 = ppSVar13 + 1;" (assignment_expression "ppSVar13 = ppSVar13 + 1" identifier = (binary_expression "ppSVar13 + 1" identifier + number_literal)) ;) (if_statement "if ((((this_01->table_)._M_h._M_bucket_count & 0x70000) == 0) &&\n         (((this_01->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {\n        bVar5 = Symbol::is_common_shndx(this_01->output_count_);\n        if (bVar5) {\n          pSVar8 = get_sized_symbol<64>(this_01,(Symbol *)pcVar11);\n          if (mapfile != (Mapfile *)0x0) {\n            Mapfile::report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);\n          }\n          addralign = pSVar8->value_;\n          if (posd != (Output_section *)0x0) {\n            if (addralign != 0) {\n              value = value + (addralign - 1) & -addralign;\n            }\n            pcVar11 = (char *)posd;\n            Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value);\n            value = value + pSVar8->symsize_;\n            ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish;\n            goto LAB_0023b370;\n          }\n          value = Output_section::allocate(local_78,pSVar8->symsize_,addralign);\n          if (value == 0xffffffffffffffff) {\n            pcVar11 = local_78->name_;\n            pcVar12 = (char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     );\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,pcVar11);\n          }\n          pcVar11 = (char *)local_78;\n          Sized_symbol<64>::allocate_common(pSVar8,&local_78->super_Output_data,value);\n        }\n        ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                  _M_impl._M_finish;\n      }" if (parenthesized_expression "((((this_01->table_)._M_h._M_bucket_count & 0x70000) == 0) &&\n         (((this_01->table_)._M_h._M_bucket_count & 0x20000000) == 0))" ( (binary_expression "(((this_01->table_)._M_h._M_bucket_count & 0x70000) == 0) &&\n         (((this_01->table_)._M_h._M_bucket_count & 0x20000000) == 0)" (parenthesized_expression "(((this_01->table_)._M_h._M_bucket_count & 0x70000) == 0)" ( (binary_expression "((this_01->table_)._M_h._M_bucket_count & 0x70000) == 0" (parenthesized_expression "((this_01->table_)._M_h._M_bucket_count & 0x70000)" ( (binary_expression "(this_01->table_)._M_h._M_bucket_count & 0x70000" (field_expression "(this_01->table_)._M_h._M_bucket_count" (field_expression "(this_01->table_)._M_h" (parenthesized_expression "(this_01->table_)" ( (field_expression "this_01->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(((this_01->table_)._M_h._M_bucket_count & 0x20000000) == 0)" ( (binary_expression "((this_01->table_)._M_h._M_bucket_count & 0x20000000) == 0" (parenthesized_expression "((this_01->table_)._M_h._M_bucket_count & 0x20000000)" ( (binary_expression "(this_01->table_)._M_h._M_bucket_count & 0x20000000" (field_expression "(this_01->table_)._M_h._M_bucket_count" (field_expression "(this_01->table_)._M_h" (parenthesized_expression "(this_01->table_)" ( (field_expression "this_01->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        bVar5 = Symbol::is_common_shndx(this_01->output_count_);\n        if (bVar5) {\n          pSVar8 = get_sized_symbol<64>(this_01,(Symbol *)pcVar11);\n          if (mapfile != (Mapfile *)0x0) {\n            Mapfile::report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);\n          }\n          addralign = pSVar8->value_;\n          if (posd != (Output_section *)0x0) {\n            if (addralign != 0) {\n              value = value + (addralign - 1) & -addralign;\n            }\n            pcVar11 = (char *)posd;\n            Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value);\n            value = value + pSVar8->symsize_;\n            ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish;\n            goto LAB_0023b370;\n          }\n          value = Output_section::allocate(local_78,pSVar8->symsize_,addralign);\n          if (value == 0xffffffffffffffff) {\n            pcVar11 = local_78->name_;\n            pcVar12 = (char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     );\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,pcVar11);\n          }\n          pcVar11 = (char *)local_78;\n          Sized_symbol<64>::allocate_common(pSVar8,&local_78->super_Output_data,value);\n        }\n        ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                  _M_impl._M_finish;\n      }" { (ERROR "bVar5 = Symbol::" (assignment_expression "bVar5 = Symbol" identifier = identifier) : :) (expression_statement "is_common_shndx(this_01->output_count_);" (call_expression "is_common_shndx(this_01->output_count_)" identifier (argument_list "(this_01->output_count_)" ( (field_expression "this_01->output_count_" identifier -> field_identifier) ))) ;) (if_statement "if (bVar5) {\n          pSVar8 = get_sized_symbol<64>(this_01,(Symbol *)pcVar11);\n          if (mapfile != (Mapfile *)0x0) {\n            Mapfile::report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);\n          }\n          addralign = pSVar8->value_;\n          if (posd != (Output_section *)0x0) {\n            if (addralign != 0) {\n              value = value + (addralign - 1) & -addralign;\n            }\n            pcVar11 = (char *)posd;\n            Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value);\n            value = value + pSVar8->symsize_;\n            ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish;\n            goto LAB_0023b370;\n          }\n          value = Output_section::allocate(local_78,pSVar8->symsize_,addralign);\n          if (value == 0xffffffffffffffff) {\n            pcVar11 = local_78->name_;\n            pcVar12 = (char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     );\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,pcVar11);\n          }\n          pcVar11 = (char *)local_78;\n          Sized_symbol<64>::allocate_common(pSVar8,&local_78->super_Output_data,value);\n        }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n          pSVar8 = get_sized_symbol<64>(this_01,(Symbol *)pcVar11);\n          if (mapfile != (Mapfile *)0x0) {\n            Mapfile::report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);\n          }\n          addralign = pSVar8->value_;\n          if (posd != (Output_section *)0x0) {\n            if (addralign != 0) {\n              value = value + (addralign - 1) & -addralign;\n            }\n            pcVar11 = (char *)posd;\n            Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value);\n            value = value + pSVar8->symsize_;\n            ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish;\n            goto LAB_0023b370;\n          }\n          value = Output_section::allocate(local_78,pSVar8->symsize_,addralign);\n          if (value == 0xffffffffffffffff) {\n            pcVar11 = local_78->name_;\n            pcVar12 = (char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     );\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,pcVar11);\n          }\n          pcVar11 = (char *)local_78;\n          Sized_symbol<64>::allocate_common(pSVar8,&local_78->super_Output_data,value);\n        }" { (expression_statement "pSVar8 = get_sized_symbol<64>(this_01,(Symbol *)pcVar11);" (assignment_expression "pSVar8 = get_sized_symbol<64>(this_01,(Symbol *)pcVar11)" identifier = (binary_expression "get_sized_symbol<64>(this_01,(Symbol *)pcVar11)" (binary_expression "get_sized_symbol<64" identifier < number_literal) > (parenthesized_expression "(this_01,(Symbol *)pcVar11)" ( (comma_expression "this_01,(Symbol *)pcVar11" identifier , (cast_expression "(Symbol *)pcVar11" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (if_statement "if (mapfile != (Mapfile *)0x0) {\n            Mapfile::report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);\n          }" if (parenthesized_expression "(mapfile != (Mapfile *)0x0)" ( (binary_expression "mapfile != (Mapfile *)0x0" identifier != (cast_expression "(Mapfile *)0x0" ( (type_descriptor "Mapfile *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            Mapfile::report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);\n          }" { (labeled_statement "Mapfile::report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);" statement_identifier : (ERROR ":" :) (expression_statement "report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_);" (call_expression "report_allocate_common(mapfile,(Symbol *)this_01,pSVar8->symsize_)" identifier (argument_list "(mapfile,(Symbol *)this_01,pSVar8->symsize_)" ( identifier , (cast_expression "(Symbol *)this_01" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (field_expression "pSVar8->symsize_" identifier -> field_identifier) ))) ;)) })) (expression_statement "addralign = pSVar8->value_;" (assignment_expression "addralign = pSVar8->value_" identifier = (field_expression "pSVar8->value_" identifier -> field_identifier)) ;) (if_statement "if (posd != (Output_section *)0x0) {\n            if (addralign != 0) {\n              value = value + (addralign - 1) & -addralign;\n            }\n            pcVar11 = (char *)posd;\n            Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value);\n            value = value + pSVar8->symsize_;\n            ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish;\n            goto LAB_0023b370;\n          }" if (parenthesized_expression "(posd != (Output_section *)0x0)" ( (binary_expression "posd != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (addralign != 0) {\n              value = value + (addralign - 1) & -addralign;\n            }\n            pcVar11 = (char *)posd;\n            Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value);\n            value = value + pSVar8->symsize_;\n            ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish;\n            goto LAB_0023b370;\n          }" { (if_statement "if (addralign != 0) {\n              value = value + (addralign - 1) & -addralign;\n            }" if (parenthesized_expression "(addralign != 0)" ( (binary_expression "addralign != 0" identifier != number_literal) )) (compound_statement "{\n              value = value + (addralign - 1) & -addralign;\n            }" { (expression_statement "value = value + (addralign - 1) & -addralign;" (assignment_expression "value = value + (addralign - 1) & -addralign" identifier = (binary_expression "value + (addralign - 1) & -addralign" (binary_expression "value + (addralign - 1)" identifier + (parenthesized_expression "(addralign - 1)" ( (binary_expression "addralign - 1" identifier - number_literal) ))) & (unary_expression "-addralign" - identifier))) ;) })) (expression_statement "pcVar11 = (char *)posd;" (assignment_expression "pcVar11 = (char *)posd" identifier = (cast_expression "(char *)posd" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value);" (binary_expression "Sized_symbol<64>::allocate_common(pSVar8,&posd->super_Output_data,value)" (binary_expression "Sized_symbol<64" identifier < number_literal) > (ERROR "::" : :) (call_expression "allocate_common(pSVar8,&posd->super_Output_data,value)" identifier (argument_list "(pSVar8,&posd->super_Output_data,value)" ( identifier , (pointer_expression "&posd->super_Output_data" & (field_expression "posd->super_Output_data" identifier -> field_identifier)) , identifier )))) ;) (expression_statement "value = value + pSVar8->symsize_;" (assignment_expression "value = value + pSVar8->symsize_" identifier = (binary_expression "value + pSVar8->symsize_" identifier + (field_expression "pSVar8->symsize_" identifier -> field_identifier))) ;) (expression_statement "ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish;" (assignment_expression "ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish" identifier = (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl._M_finish" (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                      _M_impl" (parenthesized_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (ERROR "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::" (comma_expression "commons->super__Vector_base<gold::Symbol*,_std" (binary_expression "commons->super__Vector_base<gold::Symbol*" (binary_expression "commons->super__Vector_base<gold" (field_expression "commons->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Symbol*>_>" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (goto_statement "goto LAB_0023b370;" goto statement_identifier ;) })) (ERROR "value = Output_section::" (assignment_expression "value = Output_section" identifier = identifier) : :) (expression_statement "allocate(local_78,pSVar8->symsize_,addralign);" (call_expression "allocate(local_78,pSVar8->symsize_,addralign)" identifier (argument_list "(local_78,pSVar8->symsize_,addralign)" ( identifier , (field_expression "pSVar8->symsize_" identifier -> field_identifier) , identifier ))) ;) (if_statement "if (value == 0xffffffffffffffff) {\n            pcVar11 = local_78->name_;\n            pcVar12 = (char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     );\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,pcVar11);\n          }" if (parenthesized_expression "(value == 0xffffffffffffffff)" ( (binary_expression "value == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n            pcVar11 = local_78->name_;\n            pcVar12 = (char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     );\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,pcVar11);\n          }" { (expression_statement "pcVar11 = local_78->name_;" (assignment_expression "pcVar11 = local_78->name_" identifier = (field_expression "local_78->name_" identifier -> field_identifier)) ;) (expression_statement "pcVar12 = (char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     );" (assignment_expression "pcVar12 = (char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     )" identifier = (cast_expression "(char *)gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     )" identifier (argument_list "(\n                                     "out of patch space in section %s; relink with --incremental-full"\n                                     )" ( (string_literal ""out of patch space in section %s; relink with --incremental-full"" " string_content ") ))))) ;) comment (expression_statement "gold_fallback(pcVar12,pcVar11);" (call_expression "gold_fallback(pcVar12,pcVar11)" identifier (argument_list "(pcVar12,pcVar11)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar11 = (char *)local_78;" (assignment_expression "pcVar11 = (char *)local_78" identifier = (cast_expression "(char *)local_78" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "Sized_symbol<64>::allocate_common(pSVar8,&local_78->super_Output_data,value);" (binary_expression "Sized_symbol<64>::allocate_common(pSVar8,&local_78->super_Output_data,value)" (binary_expression "Sized_symbol<64" identifier < number_literal) > (ERROR "::" : :) (call_expression "allocate_common(pSVar8,&local_78->super_Output_data,value)" identifier (argument_list "(pSVar8,&local_78->super_Output_data,value)" ( identifier , (pointer_expression "&local_78->super_Output_data" & (field_expression "local_78->super_Output_data" identifier -> field_identifier)) , identifier )))) ;) })) (expression_statement "ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                  _M_impl._M_finish;" (assignment_expression "ppSVar9 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                  _M_impl._M_finish" identifier = (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                  _M_impl._M_finish" (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                  _M_impl" (parenthesized_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (ERROR "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::" (comma_expression "commons->super__Vector_base<gold::Symbol*,_std" (binary_expression "commons->super__Vector_base<gold::Symbol*" (binary_expression "commons->super__Vector_base<gold" (field_expression "commons->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Symbol*>_>" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) })) (labeled_statement "LAB_0023b370:\n      ppSVar7 = ppSVar13;" statement_identifier : (expression_statement "ppSVar7 = ppSVar13;" (assignment_expression "ppSVar7 = ppSVar13" identifier = identifier) ;)) }) while (parenthesized_expression "((ppSVar9 != ppSVar13) &&\n            (this_01 = (Symbol_table *)*ppSVar13, ppSVar7 = ppSVar9, this_01 != (Symbol_table *)0x0)\n            )" ( (binary_expression "(ppSVar9 != ppSVar13) &&\n            (this_01 = (Symbol_table *)*ppSVar13, ppSVar7 = ppSVar9, this_01 != (Symbol_table *)0x0)" (parenthesized_expression "(ppSVar9 != ppSVar13)" ( (binary_expression "ppSVar9 != ppSVar13" identifier != identifier) )) && (parenthesized_expression "(this_01 = (Symbol_table *)*ppSVar13, ppSVar7 = ppSVar9, this_01 != (Symbol_table *)0x0)" ( (comma_expression "this_01 = (Symbol_table *)*ppSVar13, ppSVar7 = ppSVar9, this_01 != (Symbol_table *)0x0" (assignment_expression "this_01 = (Symbol_table *)*ppSVar13" identifier = (cast_expression "(Symbol_table *)*ppSVar13" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*ppSVar13" * identifier))) , (comma_expression "ppSVar7 = ppSVar9, this_01 != (Symbol_table *)0x0" (assignment_expression "ppSVar7 = ppSVar9" identifier = identifier) , (binary_expression "this_01 != (Symbol_table *)0x0" identifier != (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) ;) }))) (if_statement "if (posd != (Output_section *)0x0) {\n    if (((posd->super_Output_data).field_0x20 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    (posd->super_Output_data).data_size_ = value;\n  }" if (parenthesized_expression "(posd != (Output_section *)0x0)" ( (binary_expression "posd != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (((posd->super_Output_data).field_0x20 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    (posd->super_Output_data).data_size_ = value;\n  }" { (if_statement "if (((posd->super_Output_data).field_0x20 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }" if (parenthesized_expression "(((posd->super_Output_data).field_0x20 & 2) != 0)" ( (binary_expression "((posd->super_Output_data).field_0x20 & 2) != 0" (parenthesized_expression "((posd->super_Output_data).field_0x20 & 2)" ( (binary_expression "(posd->super_Output_data).field_0x20 & 2" (field_expression "(posd->super_Output_data).field_0x20" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;) })) (expression_statement "(posd->super_Output_data).data_size_ = value;" (assignment_expression "(posd->super_Output_data).data_size_ = value" (field_expression "(posd->super_Output_data).data_size_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) (expression_statement "ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start;" (assignment_expression "ppSVar13 = (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start" identifier = (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start" (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (ERROR "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::" (comma_expression "commons->super__Vector_base<gold::Symbol*,_std" (binary_expression "commons->super__Vector_base<gold::Symbol*" (binary_expression "commons->super__Vector_base<gold" (field_expression "commons->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Symbol*>_>" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (ppSVar13 != ppSVar7) {\n    (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish =\n         ppSVar13;\n  }" if (parenthesized_expression "(ppSVar13 != ppSVar7)" ( (binary_expression "ppSVar13 != ppSVar7" identifier != identifier) )) (compound_statement "{\n    (commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish =\n         ppSVar13;\n  }" { (expression_statement "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish =\n         ppSVar13;" (assignment_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish =\n         ppSVar13" (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl._M_finish" (field_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "commons->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "commons->super__Vector_base<gold::Symbol*,_std" (binary_expression "commons->super__Vector_base<gold" (field_expression "commons->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0023b000(undefined8 param_1,undefined8 param_2,int param_3,long *param_4,long param_5,\n                 uint param_6)\n\n{\n  undefined8 uVar1;\n  char cVar2;\n  char cVar3;\n  long lVar4;\n  ulong uVar5;\n  ulong uVar6;\n  long *plVar7;\n  undefined8 *puVar8;\n  long lVar9;\n  undefined8 uVar10;\n  long *plVar11;\n  char *pcVar12;\n  ulong uVar13;\n  char *pcVar14;\n  long *plVar15;\n  long local_78;\n  ulong uStack_48;\n  \n  if ((long *)*param_4 == (long *)param_4[1]) {\n    return;\n  }\n  uVar13 = 0;\n  plVar15 = (long *)*param_4;\n  cVar3 = '\0';\n  do {\n    while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }\n    lVar4 = FUN_00239c90(lVar4);\n    if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }\n    plVar15 = plVar11 + 1;\n    cVar3 = cVar2;\n  } while ((long *)param_4[1] != plVar11 + 1);\nLAB_0023b0b8:\n  plVar11 = plVar11 + 1;\n  if (cVar2 == '\0') {\n    return;\n  }\n  uVar6 = (ulong)param_6;\n  plVar15 = (long *)*param_4;\n  if (plVar11 == plVar15) {\nLAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar14 = "** tls common";\n    pcVar12 = ".tbss";\n    uVar6 = 0x403;\n  }\n  else {\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }\n  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);\njoined_r0x0023b2a4:\n  if (cVar3 == '\0') {\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }\n  else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }\n  if (local_78 != 0) {\n    if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }\n  }\n  plVar11 = (long *)param_4[1];\n  plVar15 = (long *)*param_4;\n  if ((plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0)) {\n    uVar13 = 0;\n    plVar7 = plVar11;\n  }\n  else {\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }\n  if (puVar8 != (undefined8 *)0x0) {\n    if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    \n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    puVar8[2] = uVar13;\n  }\n  if ((long *)*param_4 != plVar7) {\n    param_4[1] = *param_4;\n  }\n  return;\n}\n\n" (function_definition "void FUN_0023b000(undefined8 param_1,undefined8 param_2,int param_3,long *param_4,long param_5,\n                 uint param_6)\n\n{\n  undefined8 uVar1;\n  char cVar2;\n  char cVar3;\n  long lVar4;\n  ulong uVar5;\n  ulong uVar6;\n  long *plVar7;\n  undefined8 *puVar8;\n  long lVar9;\n  undefined8 uVar10;\n  long *plVar11;\n  char *pcVar12;\n  ulong uVar13;\n  char *pcVar14;\n  long *plVar15;\n  long local_78;\n  ulong uStack_48;\n  \n  if ((long *)*param_4 == (long *)param_4[1]) {\n    return;\n  }\n  uVar13 = 0;\n  plVar15 = (long *)*param_4;\n  cVar3 = '\0';\n  do {\n    while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }\n    lVar4 = FUN_00239c90(lVar4);\n    if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }\n    plVar15 = plVar11 + 1;\n    cVar3 = cVar2;\n  } while ((long *)param_4[1] != plVar11 + 1);\nLAB_0023b0b8:\n  plVar11 = plVar11 + 1;\n  if (cVar2 == '\0') {\n    return;\n  }\n  uVar6 = (ulong)param_6;\n  plVar15 = (long *)*param_4;\n  if (plVar11 == plVar15) {\nLAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar14 = "** tls common";\n    pcVar12 = ".tbss";\n    uVar6 = 0x403;\n  }\n  else {\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }\n  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);\njoined_r0x0023b2a4:\n  if (cVar3 == '\0') {\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }\n  else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }\n  if (local_78 != 0) {\n    if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }\n  }\n  plVar11 = (long *)param_4[1];\n  plVar15 = (long *)*param_4;\n  if ((plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0)) {\n    uVar13 = 0;\n    plVar7 = plVar11;\n  }\n  else {\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }\n  if (puVar8 != (undefined8 *)0x0) {\n    if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    \n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    puVar8[2] = uVar13;\n  }\n  if ((long *)*param_4 != plVar7) {\n    param_4[1] = *param_4;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0023b000(undefined8 param_1,undefined8 param_2,int param_3,long *param_4,long param_5,\n                 uint param_6)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,int param_3,long *param_4,long param_5,\n                 uint param_6)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "long *param_4" (sized_type_specifier "long" long) (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint param_6" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  char cVar2;\n  char cVar3;\n  long lVar4;\n  ulong uVar5;\n  ulong uVar6;\n  long *plVar7;\n  undefined8 *puVar8;\n  long lVar9;\n  undefined8 uVar10;\n  long *plVar11;\n  char *pcVar12;\n  ulong uVar13;\n  char *pcVar14;\n  long *plVar15;\n  long local_78;\n  ulong uStack_48;\n  \n  if ((long *)*param_4 == (long *)param_4[1]) {\n    return;\n  }\n  uVar13 = 0;\n  plVar15 = (long *)*param_4;\n  cVar3 = '\0';\n  do {\n    while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }\n    lVar4 = FUN_00239c90(lVar4);\n    if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }\n    plVar15 = plVar11 + 1;\n    cVar3 = cVar2;\n  } while ((long *)param_4[1] != plVar11 + 1);\nLAB_0023b0b8:\n  plVar11 = plVar11 + 1;\n  if (cVar2 == '\0') {\n    return;\n  }\n  uVar6 = (ulong)param_6;\n  plVar15 = (long *)*param_4;\n  if (plVar11 == plVar15) {\nLAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar14 = "** tls common";\n    pcVar12 = ".tbss";\n    uVar6 = 0x403;\n  }\n  else {\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }\n  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);\njoined_r0x0023b2a4:\n  if (cVar3 == '\0') {\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }\n  else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }\n  if (local_78 != 0) {\n    if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }\n  }\n  plVar11 = (long *)param_4[1];\n  plVar15 = (long *)*param_4;\n  if ((plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0)) {\n    uVar13 = 0;\n    plVar7 = plVar11;\n  }\n  else {\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }\n  if (puVar8 != (undefined8 *)0x0) {\n    if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    \n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    puVar8[2] = uVar13;\n  }\n  if ((long *)*param_4 != plVar7) {\n    param_4[1] = *param_4;\n  }\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "long *plVar7;" (sized_type_specifier "long" long) (pointer_declarator "*plVar7" * identifier) ;) (declaration "undefined8 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "long *plVar11;" (sized_type_specifier "long" long) (pointer_declarator "*plVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "long *plVar15;" (sized_type_specifier "long" long) (pointer_declarator "*plVar15" * identifier) ;) (declaration "long local_78;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uStack_48;" type_identifier identifier ;) (if_statement "if ((long *)*param_4 == (long *)param_4[1]) {\n    return;\n  }" if (parenthesized_expression "((long *)*param_4 == (long *)param_4[1])" ( (binary_expression "(long *)*param_4 == (long *)param_4[1]" (cast_expression "(long *)*param_4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) == (cast_expression "(long *)param_4[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "plVar15 = (long *)*param_4;" (assignment_expression "plVar15 = (long *)*param_4" identifier = (cast_expression "(long *)*param_4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "cVar3 = '\0';" (assignment_expression "cVar3 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n    while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }\n    lVar4 = FUN_00239c90(lVar4);\n    if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }\n    plVar15 = plVar11 + 1;\n    cVar3 = cVar2;\n  } while ((long *)param_4[1] != plVar11 + 1);" do (compound_statement "{\n    while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }\n    lVar4 = FUN_00239c90(lVar4);\n    if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }\n    plVar15 = plVar11 + 1;\n    cVar3 = cVar2;\n  }" { (while_statement "while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }" { (expression_statement "plVar11 = plVar15;" (assignment_expression "plVar11 = plVar15" identifier = identifier) ;) (expression_statement "lVar4 = *plVar11;" (assignment_expression "lVar4 = *plVar11" identifier = (pointer_expression "*plVar11" * identifier)) ;) (if_statement "if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }" if (parenthesized_expression "((*(byte *)(lVar4 + 0x3a) & 0x10) != 0)" ( (binary_expression "(*(byte *)(lVar4 + 0x3a) & 0x10) != 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3a) & 0x10)" ( (binary_expression "*(byte *)(lVar4 + 0x3a) & 0x10" (pointer_expression "*(byte *)(lVar4 + 0x3a)" * (cast_expression "(byte *)(lVar4 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x3a)" ( (binary_expression "lVar4 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }" { (expression_statement "lVar4 = FUN_0021ec60(param_1,lVar4);" (assignment_expression "lVar4 = FUN_0021ec60(param_1,lVar4)" identifier = (call_expression "FUN_0021ec60(param_1,lVar4)" identifier (argument_list "(param_1,lVar4)" ( identifier , identifier )))) ;) (expression_statement "*plVar11 = lVar4;" (assignment_expression "*plVar11 = lVar4" (pointer_expression "*plVar11" * identifier) = identifier) ;) })) (if_statement "if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;" if (parenthesized_expression "((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0'))" ( (binary_expression "(((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')" (parenthesized_expression "(((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0))" ( (binary_expression "((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)" (parenthesized_expression "((*(byte *)(lVar4 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)(lVar4 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar4 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar4 + 0x3a)" * (cast_expression "(byte *)(lVar4 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x3a)" ( (binary_expression "lVar4 + 0x3a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)" ( (binary_expression "(*(byte *)(lVar4 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)(lVar4 + 0x3b) & 0x20" (pointer_expression "*(byte *)(lVar4 + 0x3b)" * (cast_expression "(byte *)(lVar4 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x3b)" ( (binary_expression "lVar4 + 0x3b" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')" ( (comma_expression "cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0'" (assignment_expression "cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18))" identifier = (call_expression "FUN_0021e870(*(undefined4 *)(lVar4 + 0x18))" identifier (argument_list "(*(undefined4 *)(lVar4 + 0x18))" ( (pointer_expression "*(undefined4 *)(lVar4 + 0x18)" * (cast_expression "(undefined4 *)(lVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x18)" ( (binary_expression "lVar4 + 0x18" identifier + number_literal) )))) )))) , (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (break_statement "break;" break ;)) (expression_statement "*plVar11 = 0;" (assignment_expression "*plVar11 = 0" (pointer_expression "*plVar11" * identifier) = number_literal) ;) (expression_statement "plVar15 = plVar11 + 1;" (assignment_expression "plVar15 = plVar11 + 1" identifier = (binary_expression "plVar11 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = cVar3;" (assignment_expression "cVar2 = cVar3" identifier = identifier) ;) (if_statement "if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;" if (parenthesized_expression "((long *)param_4[1] == plVar11 + 1)" ( (binary_expression "(long *)param_4[1] == plVar11 + 1" (cast_expression "(long *)param_4[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[1]" identifier [ number_literal ])) == (binary_expression "plVar11 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_0023b0b8;" goto statement_identifier ;)) })) (expression_statement "lVar4 = FUN_00239c90(lVar4);" (assignment_expression "lVar4 = FUN_00239c90(lVar4)" identifier = (call_expression "FUN_00239c90(lVar4)" identifier (argument_list "(lVar4)" ( identifier )))) ;) (if_statement "if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }" if (parenthesized_expression "(uVar13 < *(ulong *)(lVar4 + 0x40))" ( (binary_expression "uVar13 < *(ulong *)(lVar4 + 0x40)" identifier < (pointer_expression "*(ulong *)(lVar4 + 0x40)" * (cast_expression "(ulong *)(lVar4 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x40)" ( (binary_expression "lVar4 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }" { (expression_statement "uVar13 = *(ulong *)(lVar4 + 0x40);" (assignment_expression "uVar13 = *(ulong *)(lVar4 + 0x40)" identifier = (pointer_expression "*(ulong *)(lVar4 + 0x40)" * (cast_expression "(ulong *)(lVar4 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x40)" ( (binary_expression "lVar4 + 0x40" identifier + number_literal) ))))) ;) })) (expression_statement "plVar15 = plVar11 + 1;" (assignment_expression "plVar15 = plVar11 + 1" identifier = (binary_expression "plVar11 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = cVar2;" (assignment_expression "cVar3 = cVar2" identifier = identifier) ;) }) while (parenthesized_expression "((long *)param_4[1] != plVar11 + 1)" ( (binary_expression "(long *)param_4[1] != plVar11 + 1" (cast_expression "(long *)param_4[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[1]" identifier [ number_literal ])) != (binary_expression "plVar11 + 1" identifier + number_literal)) )) ;) (labeled_statement "LAB_0023b0b8:\n  plVar11 = plVar11 + 1;" statement_identifier : (expression_statement "plVar11 = plVar11 + 1;" (assignment_expression "plVar11 = plVar11 + 1" identifier = (binary_expression "plVar11 + 1" identifier + number_literal)) ;)) (if_statement "if (cVar2 == '\0') {\n    return;\n  }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar6 = (ulong)param_6;" (assignment_expression "uVar6 = (ulong)param_6" identifier = (cast_expression "(ulong)param_6" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "plVar15 = (long *)*param_4;" (assignment_expression "plVar15 = (long *)*param_4" identifier = (cast_expression "(long *)*param_4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (plVar11 == plVar15) {\nLAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar14 = "** tls common";\n    pcVar12 = ".tbss";\n    uVar6 = 0x403;\n  }\n  else {\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }" if (parenthesized_expression "(plVar11 == plVar15)" ( (binary_expression "plVar11 == plVar15" identifier == identifier) )) (compound_statement "{\nLAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar14 = "** tls common";\n    pcVar12 = ".tbss";\n    uVar6 = 0x403;\n  }" { (labeled_statement "LAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;" statement_identifier : (if_statement "if (param_3 != 1) goto LAB_0023b1a9;" if (parenthesized_expression "(param_3 != 1)" ( (binary_expression "param_3 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0023b1a9;" goto statement_identifier ;))) (labeled_statement "LAB_0023b3d3:\n    pcVar14 = "** tls common";" statement_identifier : (expression_statement "pcVar14 = "** tls common";" (assignment_expression "pcVar14 = "** tls common"" identifier = (string_literal ""** tls common"" " string_content ")) ;)) (expression_statement "pcVar12 = ".tbss";" (assignment_expression "pcVar12 = ".tbss"" identifier = (string_literal "".tbss"" " string_content ")) ;) (expression_statement "uVar6 = 0x403;" (assignment_expression "uVar6 = 0x403" identifier = number_literal) ;) }) (else_clause "else {\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }" else (compound_statement "{\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }" { (expression_statement "uVar5 = (long)plVar11 - (long)plVar15 >> 3;" (assignment_expression "uVar5 = (long)plVar11 - (long)plVar15 >> 3" identifier = (binary_expression "(long)plVar11 - (long)plVar15 >> 3" (binary_expression "(long)plVar11 - (long)plVar15" (cast_expression "(long)plVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)plVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal)) ;) (expression_statement "lVar4 = 0x3f;" (assignment_expression "lVar4 = 0x3f" identifier = number_literal) ;) (if_statement "if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }" { (for_statement "for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }" for ( ; (binary_expression "uVar5 >> lVar4 == 0" (binary_expression "uVar5 >> lVar4" identifier >> identifier) == number_literal) ; (assignment_expression "lVar4 = lVar4 + -1" identifier = (binary_expression "lVar4 + -1" identifier + number_literal)) ) (compound_statement "{\n      }" { })) })) (expression_statement "FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);" (call_expression "FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6)" identifier (argument_list "(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6)" ( identifier , identifier , (binary_expression "(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2" (parenthesized_expression "(0x3f - (long)(int)((uint)lVar4 ^ 0x3f))" ( (binary_expression "0x3f - (long)(int)((uint)lVar4 ^ 0x3f)" number_literal - (cast_expression "(long)(int)((uint)lVar4 ^ 0x3f)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)((uint)lVar4 ^ 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)lVar4 ^ 0x3f)" ( (binary_expression "(uint)lVar4 ^ 0x3f" (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier) ^ number_literal) ))))) )) * number_literal) , identifier , identifier ))) ;) (if_statement "if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }" if (parenthesized_expression "(0x80 < (long)plVar11 - (long)plVar15)" ( (binary_expression "0x80 < (long)plVar11 - (long)plVar15" number_literal < (binary_expression "(long)plVar11 - (long)plVar15" (cast_expression "(long)plVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)plVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) )) (compound_statement "{\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }" { (expression_statement "plVar7 = plVar15 + 0x10;" (assignment_expression "plVar7 = plVar15 + 0x10" identifier = (binary_expression "plVar15 + 0x10" identifier + number_literal)) ;) (expression_statement "FUN_0023a100(plVar15,plVar7,param_1,uVar6);" (call_expression "FUN_0023a100(plVar15,plVar7,param_1,uVar6)" identifier (argument_list "(plVar15,plVar7,param_1,uVar6)" ( identifier , identifier , identifier , identifier ))) ;) (for_statement "for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }" for ( ; (binary_expression "plVar11 != plVar7" identifier != identifier) ; (assignment_expression "plVar7 = plVar7 + 1" identifier = (binary_expression "plVar7 + 1" identifier + number_literal)) ) (compound_statement "{\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }" { (expression_statement "uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;" (assignment_expression "uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6" identifier = (binary_expression "uStack_48 & 0xffffffff00000000 | uVar6" (binary_expression "uStack_48 & 0xffffffff00000000" identifier & number_literal) | identifier)) ;) (expression_statement "FUN_0023a0b0(plVar7,param_1,uStack_48);" (call_expression "FUN_0023a0b0(plVar7,param_1,uStack_48)" identifier (argument_list "(plVar7,param_1,uStack_48)" ( identifier , identifier , identifier ))) ;) })) (goto_statement "goto LAB_0023b19c;" goto statement_identifier ;) })) (expression_statement "FUN_0023a100(plVar15,plVar11,param_1,uVar6);" (call_expression "FUN_0023a100(plVar15,plVar11,param_1,uVar6)" identifier (argument_list "(plVar15,plVar11,param_1,uVar6)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (param_3 == 1) goto LAB_0023b3d3;" if (parenthesized_expression "(param_3 == 1)" ( (binary_expression "param_3 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0023b3d3;" goto statement_identifier ;)) (labeled_statement "LAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }" statement_identifier : (if_statement "if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }" { (expression_statement "pcVar14 = "** common";" (assignment_expression "pcVar14 = "** common"" identifier = (string_literal ""** common"" " string_content ")) ;) (expression_statement "pcVar12 = ".bss";" (assignment_expression "pcVar12 = ".bss"" identifier = (string_literal "".bss"" " string_content ")) ;) (expression_statement "uVar6 = 3;" (assignment_expression "uVar6 = 3" identifier = number_literal) ;) }) (else_clause "else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }" else (compound_statement "{\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }" { (if_statement "if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }" if (parenthesized_expression "(param_3 == 2)" ( (binary_expression "param_3 == 2" identifier == number_literal) )) (compound_statement "{\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }" { (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }" if (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }" { (labeled_statement "LAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");" statement_identifier : (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0016cdf0("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;)) })) (expression_statement "lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);" (assignment_expression "lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" identifier = (pointer_expression "*(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" * (cast_expression "(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }" if (parenthesized_expression "(*(short *)(lVar4 + 0x48) == 0)" ( (binary_expression "*(short *)(lVar4 + 0x48) == 0" (pointer_expression "*(short *)(lVar4 + 0x48)" * (cast_expression "(short *)(lVar4 + 0x48)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x48)" ( (binary_expression "lVar4 + 0x48" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }" { (expression_statement "FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");" (call_expression "FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags")" identifier (argument_list "("../../gold/target.h",0xc5,"small_common_section_flags")" ( (string_literal ""../../gold/target.h"" " string_content ") , number_literal , (string_literal ""small_common_section_flags"" " string_content ") ))) ;) })) (expression_statement "pcVar14 = "** small common";" (assignment_expression "pcVar14 = "** small common"" identifier = (string_literal ""** small common"" " string_content ")) ;) (expression_statement "pcVar12 = ".sbss";" (assignment_expression "pcVar12 = ".sbss"" identifier = (string_literal "".sbss"" " string_content ")) ;) (expression_statement "uVar6 = *(ulong *)(lVar4 + 0x50) | 3;" (assignment_expression "uVar6 = *(ulong *)(lVar4 + 0x50) | 3" identifier = (binary_expression "*(ulong *)(lVar4 + 0x50) | 3" (pointer_expression "*(ulong *)(lVar4 + 0x50)" * (cast_expression "(ulong *)(lVar4 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x50)" ( (binary_expression "lVar4 + 0x50" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "cVar3 = FUN_001ee080();" (assignment_expression "cVar3 = FUN_001ee080()" identifier = (call_expression "FUN_001ee080()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto joined_r0x0023b2a4;" goto statement_identifier ;) })) (if_statement "if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }" if (parenthesized_expression "(param_3 != 3)" ( (binary_expression "param_3 != 3" identifier != number_literal) )) (compound_statement "{\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }" { (expression_statement "FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");" (call_expression "FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list")" identifier (argument_list "("../../gold/common.cc",0x11b,"do_allocate_commons_list")" ( (string_literal ""../../gold/common.cc"" " string_content ") , number_literal , (string_literal ""do_allocate_commons_list"" " string_content ") ))) ;) })) (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;" if (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0023b4d0;" goto statement_identifier ;)) (expression_statement "lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);" (assignment_expression "lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" identifier = (pointer_expression "*(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" * (cast_expression "(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }" if (parenthesized_expression "(*(short *)(lVar4 + 0x4a) == 0)" ( (binary_expression "*(short *)(lVar4 + 0x4a) == 0" (pointer_expression "*(short *)(lVar4 + 0x4a)" * (cast_expression "(short *)(lVar4 + 0x4a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x4a)" ( (binary_expression "lVar4 + 0x4a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }" { (expression_statement "FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");" (call_expression "FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags")" identifier (argument_list "("../../gold/target.h",0xd5,"large_common_section_flags")" ( (string_literal ""../../gold/target.h"" " string_content ") , number_literal , (string_literal ""large_common_section_flags"" " string_content ") ))) ;) })) (expression_statement "pcVar14 = "** large common";" (assignment_expression "pcVar14 = "** large common"" identifier = (string_literal ""** large common"" " string_content ")) ;) (expression_statement "pcVar12 = ".lbss";" (assignment_expression "pcVar12 = ".lbss"" identifier = (string_literal "".lbss"" " string_content ")) ;) (expression_statement "uVar6 = *(ulong *)(lVar4 + 0x58) | 3;" (assignment_expression "uVar6 = *(ulong *)(lVar4 + 0x58) | 3" identifier = (binary_expression "*(ulong *)(lVar4 + 0x58) | 3" (pointer_expression "*(ulong *)(lVar4 + 0x58)" * (cast_expression "(ulong *)(lVar4 + 0x58)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x58)" ( (binary_expression "lVar4 + 0x58" identifier + number_literal) )))) | number_literal)) ;) })))) }))) (expression_statement "cVar3 = FUN_001ee080(PTR_DAT_003be6b0);" (assignment_expression "cVar3 = FUN_001ee080(PTR_DAT_003be6b0)" identifier = (call_expression "FUN_001ee080(PTR_DAT_003be6b0)" identifier (argument_list "(PTR_DAT_003be6b0)" ( identifier )))) ;) (labeled_statement "joined_r0x0023b2a4:\n  if (cVar3 == '\0') {\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }\n  else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }" statement_identifier : (if_statement "if (cVar3 == '\0') {\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }\n  else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }" { (expression_statement "puVar8 = (undefined8 *)FUN_00275550(0x40);" (assignment_expression "puVar8 = (undefined8 *)FUN_00275550(0x40)" identifier = (cast_expression "(undefined8 *)FUN_00275550(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "*(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar8 + 4)" * (cast_expression "(byte *)(puVar8 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar8 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar8 + 4)" * (cast_expression "(byte *)(puVar8 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar8[1] = 0;" (assignment_expression "puVar8[1] = 0" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[2] = 0;" (assignment_expression "puVar8[2] = 0" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[3] = 0xffffffffffffffff;" (assignment_expression "puVar8[3] = 0xffffffffffffffff" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[5] = 0;" (assignment_expression "puVar8[5] = 0" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[6] = uVar13;" (assignment_expression "puVar8[6] = uVar13" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar8 = &PTR_FUN_003b4a48;" (assignment_expression "*puVar8 = &PTR_FUN_003b4a48" (pointer_expression "*puVar8" * identifier) = (pointer_expression "&PTR_FUN_003b4a48" & identifier)) ;) (expression_statement "puVar8[7] = pcVar14;" (assignment_expression "puVar8[7] = pcVar14" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);" (assignment_expression "local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0)" identifier = (call_expression "FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0)" identifier (argument_list "(param_2,pcVar12,8,uVar6,puVar8,0,0)" ( identifier , identifier , number_literal , identifier , identifier , number_literal , number_literal )))) ;) }) (else_clause "else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }" else (compound_statement "{\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }" { (expression_statement "puVar8 = (undefined8 *)0x0;" (assignment_expression "puVar8 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_78 = FUN_00186340(param_2,pcVar12);" (assignment_expression "local_78 = FUN_00186340(param_2,pcVar12)" identifier = (call_expression "FUN_00186340(param_2,pcVar12)" identifier (argument_list "(param_2,pcVar12)" ( identifier , identifier )))) ;) })))) (if_statement "if (local_78 != 0) {\n    if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }\n  }" if (parenthesized_expression "(local_78 != 0)" ( (binary_expression "local_78 != 0" identifier != number_literal) )) (compound_statement "{\n    if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }\n  }" { (if_statement "if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }" if (parenthesized_expression "(param_3 == 2)" ( (binary_expression "param_3 == 2" identifier == number_literal) )) (compound_statement "{\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }" { (expression_statement "*(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;" (assignment_expression "*(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40" (pointer_expression "*(byte *)(local_78 + 0xc9)" * (cast_expression "(byte *)(local_78 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_78 + 0xc9)" ( (binary_expression "local_78 + 0xc9" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_78 + 0xc9) | 0x40" (pointer_expression "*(byte *)(local_78 + 0xc9)" * (cast_expression "(byte *)(local_78 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_78 + 0xc9)" ( (binary_expression "local_78 + 0xc9" identifier + number_literal) )))) | number_literal)) ;) }) (else_clause "else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }" else (if_statement "if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }" if (parenthesized_expression "(param_3 == 3)" ( (binary_expression "param_3 == 3" identifier == number_literal) )) (compound_statement "{\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }" { (expression_statement "*(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;" (assignment_expression "*(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80" (pointer_expression "*(byte *)(local_78 + 0xc9)" * (cast_expression "(byte *)(local_78 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_78 + 0xc9)" ( (binary_expression "local_78 + 0xc9" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_78 + 0xc9) | 0x80" (pointer_expression "*(byte *)(local_78 + 0xc9)" * (cast_expression "(byte *)(local_78 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_78 + 0xc9)" ( (binary_expression "local_78 + 0xc9" identifier + number_literal) )))) | number_literal)) ;) })))) })) (expression_statement "plVar11 = (long *)param_4[1];" (assignment_expression "plVar11 = (long *)param_4[1]" identifier = (cast_expression "(long *)param_4[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[1]" identifier [ number_literal ]))) ;) (expression_statement "plVar15 = (long *)*param_4;" (assignment_expression "plVar15 = (long *)*param_4" identifier = (cast_expression "(long *)*param_4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if ((plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0)) {\n    uVar13 = 0;\n    plVar7 = plVar11;\n  }\n  else {\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }" if (parenthesized_expression "((plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0))" ( (binary_expression "(plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0)" (parenthesized_expression "(plVar15 == plVar11)" ( (binary_expression "plVar15 == plVar11" identifier == identifier) )) || (parenthesized_expression "(lVar4 = *plVar15, lVar4 == 0)" ( (comma_expression "lVar4 = *plVar15, lVar4 == 0" (assignment_expression "lVar4 = *plVar15" identifier = (pointer_expression "*plVar15" * identifier)) , (binary_expression "lVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    uVar13 = 0;\n    plVar7 = plVar11;\n  }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "plVar7 = plVar11;" (assignment_expression "plVar7 = plVar11" identifier = identifier) ;) }) (else_clause "else {\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }" else (compound_statement "{\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));" do (compound_statement "{\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    }" { (expression_statement "plVar15 = plVar15 + 1;" (assignment_expression "plVar15 = plVar15 + 1" identifier = (binary_expression "plVar15 + 1" identifier + number_literal)) ;) (if_statement "if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }" if (parenthesized_expression "(((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0))" ( (binary_expression "((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)" (parenthesized_expression "((*(byte *)(lVar4 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)(lVar4 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar4 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar4 + 0x3a)" * (cast_expression "(byte *)(lVar4 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x3a)" ( (binary_expression "lVar4 + 0x3a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)" ( (binary_expression "(*(byte *)(lVar4 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)(lVar4 + 0x3b) & 0x20" (pointer_expression "*(byte *)(lVar4 + 0x3b)" * (cast_expression "(byte *)(lVar4 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x3b)" ( (binary_expression "lVar4 + 0x3b" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }" { (expression_statement "cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));" (assignment_expression "cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18))" identifier = (call_expression "FUN_0021e870(*(undefined4 *)(lVar4 + 0x18))" identifier (argument_list "(*(undefined4 *)(lVar4 + 0x18))" ( (pointer_expression "*(undefined4 *)(lVar4 + 0x18)" * (cast_expression "(undefined4 *)(lVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x18)" ( (binary_expression "lVar4 + 0x18" identifier + number_literal) )))) )))) ;) (if_statement "if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }" { (expression_statement "lVar9 = FUN_00239c90(lVar4);" (assignment_expression "lVar9 = FUN_00239c90(lVar4)" identifier = (call_expression "FUN_00239c90(lVar4)" identifier (argument_list "(lVar4)" ( identifier )))) ;) (if_statement "if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }" { (expression_statement "FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));" (call_expression "FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48))" identifier (argument_list "(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48))" ( identifier , identifier , (pointer_expression "*(undefined8 *)(lVar9 + 0x48)" * (cast_expression "(undefined8 *)(lVar9 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x48)" ( (binary_expression "lVar9 + 0x48" identifier + number_literal) )))) ))) ;) })) (expression_statement "lVar4 = *(long *)(lVar9 + 0x40);" (assignment_expression "lVar4 = *(long *)(lVar9 + 0x40)" identifier = (pointer_expression "*(long *)(lVar9 + 0x40)" * (cast_expression "(long *)(lVar9 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x40)" ( (binary_expression "lVar9 + 0x40" identifier + number_literal) ))))) ;) (if_statement "if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }" if (parenthesized_expression "(puVar8 != (undefined8 *)0x0)" ( (binary_expression "puVar8 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }" { (if_statement "if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }" if (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }" { (expression_statement "uVar13 = (uVar13 - 1) + lVar4 & -lVar4;" (assignment_expression "uVar13 = (uVar13 - 1) + lVar4 & -lVar4" identifier = (binary_expression "(uVar13 - 1) + lVar4 & -lVar4" (binary_expression "(uVar13 - 1) + lVar4" (parenthesized_expression "(uVar13 - 1)" ( (binary_expression "uVar13 - 1" identifier - number_literal) )) + identifier) & (unary_expression "-lVar4" - identifier))) ;) })) (expression_statement "FUN_00221cb0(lVar9,puVar8,uVar13);" (call_expression "FUN_00221cb0(lVar9,puVar8,uVar13)" identifier (argument_list "(lVar9,puVar8,uVar13)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar13 = uVar13 + *(long *)(lVar9 + 0x48);" (assignment_expression "uVar13 = uVar13 + *(long *)(lVar9 + 0x48)" identifier = (binary_expression "uVar13 + *(long *)(lVar9 + 0x48)" identifier + (pointer_expression "*(long *)(lVar9 + 0x48)" * (cast_expression "(long *)(lVar9 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x48)" ( (binary_expression "lVar9 + 0x48" identifier + number_literal) )))))) ;) (expression_statement "plVar11 = (long *)param_4[1];" (assignment_expression "plVar11 = (long *)param_4[1]" identifier = (cast_expression "(long *)param_4[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[1]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0023b370;" goto statement_identifier ;) })) (expression_statement "uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));" (assignment_expression "uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48))" identifier = (call_expression "FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48))" identifier (argument_list "(local_78,*(undefined8 *)(lVar9 + 0x48))" ( identifier , (pointer_expression "*(undefined8 *)(lVar9 + 0x48)" * (cast_expression "(undefined8 *)(lVar9 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x48)" ( (binary_expression "lVar9 + 0x48" identifier + number_literal) )))) )))) ;) (if_statement "if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }" if (parenthesized_expression "(uVar13 == 0xffffffffffffffff)" ( (binary_expression "uVar13 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }" { (expression_statement "uVar1 = *(undefined8 *)(local_78 + 0x28);" (assignment_expression "uVar1 = *(undefined8 *)(local_78 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(local_78 + 0x28)" * (cast_expression "(undefined8 *)(local_78 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_78 + 0x28)" ( (binary_expression "local_78 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");" (assignment_expression "uVar10 = gettext("out of patch space in section %s; relink with --incremental-full")" identifier = (call_expression "gettext("out of patch space in section %s; relink with --incremental-full")" identifier (argument_list "("out of patch space in section %s; relink with --incremental-full")" ( (string_literal ""out of patch space in section %s; relink with --incremental-full"" " string_content ") )))) ;) (expression_statement "FUN_00169000(uVar10,uVar1);" (call_expression "FUN_00169000(uVar10,uVar1)" identifier (argument_list "(uVar10,uVar1)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0023b521;" goto statement_identifier ;) })) (expression_statement "FUN_00221cb0(lVar9,local_78,uVar13);" (call_expression "FUN_00221cb0(lVar9,local_78,uVar13)" identifier (argument_list "(lVar9,local_78,uVar13)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "plVar11 = (long *)param_4[1];" (assignment_expression "plVar11 = (long *)param_4[1]" identifier = (cast_expression "(long *)param_4[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[1]" identifier [ number_literal ]))) ;) })) (labeled_statement "LAB_0023b370:\n      plVar7 = plVar15;" statement_identifier : (expression_statement "plVar7 = plVar15;" (assignment_expression "plVar7 = plVar15" identifier = identifier) ;)) }) while (parenthesized_expression "((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0))" ( (binary_expression "(plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0)" (parenthesized_expression "(plVar11 != plVar15)" ( (binary_expression "plVar11 != plVar15" identifier != identifier) )) && (parenthesized_expression "(lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0)" ( (comma_expression "lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0" (assignment_expression "lVar4 = *plVar15" identifier = (pointer_expression "*plVar15" * identifier)) , (comma_expression "plVar7 = plVar11, lVar4 != 0" (assignment_expression "plVar7 = plVar11" identifier = identifier) , (binary_expression "lVar4 != 0" identifier != number_literal))) ))) )) ;) }))) (if_statement "if (puVar8 != (undefined8 *)0x0) {\n    if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    \n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    puVar8[2] = uVar13;\n  }" if (parenthesized_expression "(puVar8 != (undefined8 *)0x0)" ( (binary_expression "puVar8 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    \n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    puVar8[2] = uVar13;\n  }" { (if_statement "if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    \n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }" if (parenthesized_expression "((*(byte *)(puVar8 + 4) & 2) != 0)" ( (binary_expression "(*(byte *)(puVar8 + 4) & 2) != 0" (parenthesized_expression "(*(byte *)(puVar8 + 4) & 2)" ( (binary_expression "*(byte *)(puVar8 + 4) & 2" (pointer_expression "*(byte *)(puVar8 + 4)" * (cast_expression "(byte *)(puVar8 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0023b521:\n                    \n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }" { (labeled_statement "LAB_0023b521:\n                    \n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");" statement_identifier : (expression_statement "FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;)) })) (expression_statement "puVar8[2] = uVar13;" (assignment_expression "puVar8[2] = uVar13" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if ((long *)*param_4 != plVar7) {\n    param_4[1] = *param_4;\n  }" if (parenthesized_expression "((long *)*param_4 != plVar7)" ( (binary_expression "(long *)*param_4 != plVar7" (cast_expression "(long *)*param_4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) != identifier) )) (compound_statement "{\n    param_4[1] = *param_4;\n  }" { (expression_statement "param_4[1] = *param_4;" (assignment_expression "param_4[1] = *param_4" (subscript_expression "param_4[1]" identifier [ number_literal ]) = (pointer_expression "*param_4" * identifier)) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (if_statement if (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) , (binary_expression IDENT != (char_literal ' escape_sequence '))) ))) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (binary_expression IDENT + LIT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;)) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) >> LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (for_statement for ( ; (binary_expression (binary_expression IDENT >> IDENT) == LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) ^ LIT) ))))) )) * LIT) , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (for_statement for ( ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto 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 , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })))) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( 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 ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT , LIT , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , 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 (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 (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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) )))) | LIT)) ;) })))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 ( (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 = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , 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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + IDENT) & (unary_expression - IDENT))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0023b000(undefined8 param_1,undefined8 param_2,int param_3,long *param_4,long param_5,\n                 uint param_6)\n\n{\n  undefined8 uVar1;\n  char cVar2;\n  char cVar3;\n  long lVar4;\n  ulong uVar5;\n  ulong uVar6;\n  long *plVar7;\n  undefined8 *puVar8;\n  long lVar9;\n  undefined8 uVar10;\n  long *plVar11;\n  char *pcVar12;\n  ulong uVar13;\n  char *pcVar14;\n  long *plVar15;\n  long local_78;\n  ulong uStack_48;\n  \n  if ((long *)*param_4 == (long *)param_4[1]) {\n    return;\n  }\n  uVar13 = 0;\n  plVar15 = (long *)*param_4;\n  cVar3 = '\0';\n  do {\n    while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }\n    lVar4 = FUN_00239c90(lVar4);\n    if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }\n    plVar15 = plVar11 + 1;\n    cVar3 = cVar2;\n  } while ((long *)param_4[1] != plVar11 + 1);\nLAB_0023b0b8:\n  plVar11 = plVar11 + 1;\n  if (cVar2 == '\0') {\n    return;\n  }\n  uVar6 = (ulong)param_6;\n  plVar15 = (long *)*param_4;\n  if (plVar11 == plVar15) {\nLAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar14 = "** tls common";\n    pcVar12 = ".tbss";\n    uVar6 = 0x403;\n  }\n  else {\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }\n  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);\njoined_r0x0023b2a4:\n  if (cVar3 == '\0') {\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }\n  else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }\n  if (local_78 != 0) {\n    if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }\n  }\n  plVar11 = (long *)param_4[1];\n  plVar15 = (long *)*param_4;\n  if ((plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0)) {\n    uVar13 = 0;\n    plVar7 = plVar11;\n  }\n  else {\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }\n  if (puVar8 != (undefined8 *)0x0) {\n    if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    \n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    puVar8[2] = uVar13;\n  }\n  if ((long *)*param_4 != plVar7) {\n    param_4[1] = *param_4;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0023b000(undefined8 param_1,undefined8 param_2,int param_3,long *param_4,long param_5,\n                 uint param_6)" (identifier "FUN_0023b000") (parameter_list "(undefined8 param_1,undefined8 param_2,int param_3,long *param_4,long param_5,\n                 uint param_6)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "long *param_4" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "long param_5" (sized_type_specifier "long" (long "long")) (identifier "param_5")) (, ",") (parameter_declaration "uint param_6" (type_identifier "uint") (identifier "param_6")) () ")"))) (compound_statement "{\n  undefined8 uVar1;\n  char cVar2;\n  char cVar3;\n  long lVar4;\n  ulong uVar5;\n  ulong uVar6;\n  long *plVar7;\n  undefined8 *puVar8;\n  long lVar9;\n  undefined8 uVar10;\n  long *plVar11;\n  char *pcVar12;\n  ulong uVar13;\n  char *pcVar14;\n  long *plVar15;\n  long local_78;\n  ulong uStack_48;\n  \n  if ((long *)*param_4 == (long *)param_4[1]) {\n    return;\n  }\n  uVar13 = 0;\n  plVar15 = (long *)*param_4;\n  cVar3 = '\0';\n  do {\n    while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }\n    lVar4 = FUN_00239c90(lVar4);\n    if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }\n    plVar15 = plVar11 + 1;\n    cVar3 = cVar2;\n  } while ((long *)param_4[1] != plVar11 + 1);\nLAB_0023b0b8:\n  plVar11 = plVar11 + 1;\n  if (cVar2 == '\0') {\n    return;\n  }\n  uVar6 = (ulong)param_6;\n  plVar15 = (long *)*param_4;\n  if (plVar11 == plVar15) {\nLAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar14 = "** tls common";\n    pcVar12 = ".tbss";\n    uVar6 = 0x403;\n  }\n  else {\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }\n  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);\njoined_r0x0023b2a4:\n  if (cVar3 == '\0') {\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }\n  else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }\n  if (local_78 != 0) {\n    if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }\n  }\n  plVar11 = (long *)param_4[1];\n  plVar15 = (long *)*param_4;\n  if ((plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0)) {\n    uVar13 = 0;\n    plVar7 = plVar11;\n  }\n  else {\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }\n  if (puVar8 != (undefined8 *)0x0) {\n    if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    \n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    puVar8[2] = uVar13;\n  }\n  if ((long *)*param_4 != plVar7) {\n    param_4[1] = *param_4;\n  }\n  return;\n}" ({ "{") (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (declaration "ulong uVar6;" (type_identifier "ulong") (identifier "uVar6") (; ";")) (declaration "long *plVar7;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar7" (* "*") (identifier "plVar7")) (; ";")) (declaration "undefined8 *puVar8;" (type_identifier "undefined8") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "undefined8 uVar10;" (type_identifier "undefined8") (identifier "uVar10") (; ";")) (declaration "long *plVar11;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar11" (* "*") (identifier "plVar11")) (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "ulong uVar13;" (type_identifier "ulong") (identifier "uVar13") (; ";")) (declaration "char *pcVar14;" (primitive_type "char") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "long *plVar15;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar15" (* "*") (identifier "plVar15")) (; ";")) (declaration "long local_78;" (sized_type_specifier "long" (long "long")) (identifier "local_78") (; ";")) (declaration "ulong uStack_48;" (type_identifier "ulong") (identifier "uStack_48") (; ";")) (if_statement "if ((long *)*param_4 == (long *)param_4[1]) {\n    return;\n  }" (if "if") (parenthesized_expression "((long *)*param_4 == (long *)param_4[1])" (( "(") (binary_expression "(long *)*param_4 == (long *)param_4[1]" (cast_expression "(long *)*param_4" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (== "==") (cast_expression "(long *)param_4[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar15 = (long *)*param_4;" (assignment_expression "plVar15 = (long *)*param_4" (identifier "plVar15") (= "=") (cast_expression "(long *)*param_4" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "cVar3 = '\0';" (assignment_expression "cVar3 = '\0'" (identifier "cVar3") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (do_statement "do {\n    while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }\n    lVar4 = FUN_00239c90(lVar4);\n    if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }\n    plVar15 = plVar11 + 1;\n    cVar3 = cVar2;\n  } while ((long *)param_4[1] != plVar11 + 1);" (do "do") (compound_statement "{\n    while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }\n    lVar4 = FUN_00239c90(lVar4);\n    if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }\n    plVar15 = plVar11 + 1;\n    cVar3 = cVar2;\n  }" ({ "{") (while_statement "while( true ) {\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      plVar11 = plVar15;\n      lVar4 = *plVar11;\n      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }\n      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;\n      *plVar11 = 0;\n      plVar15 = plVar11 + 1;\n      cVar2 = cVar3;\n      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;\n    }" ({ "{") (expression_statement "plVar11 = plVar15;" (assignment_expression "plVar11 = plVar15" (identifier "plVar11") (= "=") (identifier "plVar15")) (; ";")) (expression_statement "lVar4 = *plVar11;" (assignment_expression "lVar4 = *plVar11" (identifier "lVar4") (= "=") (pointer_expression "*plVar11" (* "*") (identifier "plVar11"))) (; ";")) (if_statement "if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }" (if "if") (parenthesized_expression "((*(byte *)(lVar4 + 0x3a) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(lVar4 + 0x3a) & 0x10) != 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3a) & 0x10)" (( "(") (binary_expression "*(byte *)(lVar4 + 0x3a) & 0x10" (pointer_expression "*(byte *)(lVar4 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar4 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x3a)" (( "(") (binary_expression "lVar4 + 0x3a" (identifier "lVar4") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        lVar4 = FUN_0021ec60(param_1,lVar4);\n        *plVar11 = lVar4;\n      }" ({ "{") (expression_statement "lVar4 = FUN_0021ec60(param_1,lVar4);" (assignment_expression "lVar4 = FUN_0021ec60(param_1,lVar4)" (identifier "lVar4") (= "=") (call_expression "FUN_0021ec60(param_1,lVar4)" (identifier "FUN_0021ec60") (argument_list "(param_1,lVar4)" (( "(") (identifier "param_1") (, ",") (identifier "lVar4") () ")")))) (; ";")) (expression_statement "*plVar11 = lVar4;" (assignment_expression "*plVar11 = lVar4" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (= "=") (identifier "lVar4")) (; ";")) (} "}"))) (if_statement "if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;" (if "if") (parenthesized_expression "((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0'))" (( "(") (binary_expression "(((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&\n         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')" (parenthesized_expression "(((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0))" (( "(") (binary_expression "((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)" (parenthesized_expression "((*(byte *)(lVar4 + 0x3a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(lVar4 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(lVar4 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar4 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar4 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x3a)" (( "(") (binary_expression "lVar4 + 0x3a" (identifier "lVar4") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)(lVar4 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3b) & 0x20)" (( "(") (binary_expression "*(byte *)(lVar4 + 0x3b) & 0x20" (pointer_expression "*(byte *)(lVar4 + 0x3b)" (* "*") (cast_expression "(byte *)(lVar4 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x3b)" (( "(") (binary_expression "lVar4 + 0x3b" (identifier "lVar4") (+ "+") (number_literal "0x3b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')" (( "(") (comma_expression "cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0'" (assignment_expression "cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18))" (identifier "cVar2") (= "=") (call_expression "FUN_0021e870(*(undefined4 *)(lVar4 + 0x18))" (identifier "FUN_0021e870") (argument_list "(*(undefined4 *)(lVar4 + 0x18))" (( "(") (pointer_expression "*(undefined4 *)(lVar4 + 0x18)" (* "*") (cast_expression "(undefined4 *)(lVar4 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x18)" (( "(") (binary_expression "lVar4 + 0x18" (identifier "lVar4") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (, ",") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*plVar11 = 0;" (assignment_expression "*plVar11 = 0" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar15 = plVar11 + 1;" (assignment_expression "plVar15 = plVar11 + 1" (identifier "plVar15") (= "=") (binary_expression "plVar11 + 1" (identifier "plVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = cVar3;" (assignment_expression "cVar2 = cVar3" (identifier "cVar2") (= "=") (identifier "cVar3")) (; ";")) (if_statement "if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;" (if "if") (parenthesized_expression "((long *)param_4[1] == plVar11 + 1)" (( "(") (binary_expression "(long *)param_4[1] == plVar11 + 1" (cast_expression "(long *)param_4[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (== "==") (binary_expression "plVar11 + 1" (identifier "plVar11") (+ "+") (number_literal "1"))) () ")")) (goto_statement "goto LAB_0023b0b8;" (goto "goto") (statement_identifier "LAB_0023b0b8") (; ";"))) (} "}"))) (expression_statement "lVar4 = FUN_00239c90(lVar4);" (assignment_expression "lVar4 = FUN_00239c90(lVar4)" (identifier "lVar4") (= "=") (call_expression "FUN_00239c90(lVar4)" (identifier "FUN_00239c90") (argument_list "(lVar4)" (( "(") (identifier "lVar4") () ")")))) (; ";")) (if_statement "if (uVar13 < *(ulong *)(lVar4 + 0x40)) {\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }" (if "if") (parenthesized_expression "(uVar13 < *(ulong *)(lVar4 + 0x40))" (( "(") (binary_expression "uVar13 < *(ulong *)(lVar4 + 0x40)" (identifier "uVar13") (< "<") (pointer_expression "*(ulong *)(lVar4 + 0x40)" (* "*") (cast_expression "(ulong *)(lVar4 + 0x40)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x40)" (( "(") (binary_expression "lVar4 + 0x40" (identifier "lVar4") (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (compound_statement "{\n      uVar13 = *(ulong *)(lVar4 + 0x40);\n    }" ({ "{") (expression_statement "uVar13 = *(ulong *)(lVar4 + 0x40);" (assignment_expression "uVar13 = *(ulong *)(lVar4 + 0x40)" (identifier "uVar13") (= "=") (pointer_expression "*(ulong *)(lVar4 + 0x40)" (* "*") (cast_expression "(ulong *)(lVar4 + 0x40)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x40)" (( "(") (binary_expression "lVar4 + 0x40" (identifier "lVar4") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (} "}"))) (expression_statement "plVar15 = plVar11 + 1;" (assignment_expression "plVar15 = plVar11 + 1" (identifier "plVar15") (= "=") (binary_expression "plVar11 + 1" (identifier "plVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = cVar2;" (assignment_expression "cVar3 = cVar2" (identifier "cVar3") (= "=") (identifier "cVar2")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((long *)param_4[1] != plVar11 + 1)" (( "(") (binary_expression "(long *)param_4[1] != plVar11 + 1" (cast_expression "(long *)param_4[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (binary_expression "plVar11 + 1" (identifier "plVar11") (+ "+") (number_literal "1"))) () ")")) (; ";")) (labeled_statement "LAB_0023b0b8:\n  plVar11 = plVar11 + 1;" (statement_identifier "LAB_0023b0b8") (: ":") (expression_statement "plVar11 = plVar11 + 1;" (assignment_expression "plVar11 = plVar11 + 1" (identifier "plVar11") (= "=") (binary_expression "plVar11 + 1" (identifier "plVar11") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (cVar2 == '\0') {\n    return;\n  }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar6 = (ulong)param_6;" (assignment_expression "uVar6 = (ulong)param_6" (identifier "uVar6") (= "=") (cast_expression "(ulong)param_6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "param_6"))) (; ";")) (expression_statement "plVar15 = (long *)*param_4;" (assignment_expression "plVar15 = (long *)*param_4" (identifier "plVar15") (= "=") (cast_expression "(long *)*param_4" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (if_statement "if (plVar11 == plVar15) {\nLAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar14 = "** tls common";\n    pcVar12 = ".tbss";\n    uVar6 = 0x403;\n  }\n  else {\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }" (if "if") (parenthesized_expression "(plVar11 == plVar15)" (( "(") (binary_expression "plVar11 == plVar15" (identifier "plVar11") (== "==") (identifier "plVar15")) () ")")) (compound_statement "{\nLAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;\nLAB_0023b3d3:\n    pcVar14 = "** tls common";\n    pcVar12 = ".tbss";\n    uVar6 = 0x403;\n  }" ({ "{") (labeled_statement "LAB_0023b19c:\n    if (param_3 != 1) goto LAB_0023b1a9;" (statement_identifier "LAB_0023b19c") (: ":") (if_statement "if (param_3 != 1) goto LAB_0023b1a9;" (if "if") (parenthesized_expression "(param_3 != 1)" (( "(") (binary_expression "param_3 != 1" (identifier "param_3") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_0023b1a9;" (goto "goto") (statement_identifier "LAB_0023b1a9") (; ";")))) (labeled_statement "LAB_0023b3d3:\n    pcVar14 = "** tls common";" (statement_identifier "LAB_0023b3d3") (: ":") (expression_statement "pcVar14 = "** tls common";" (assignment_expression "pcVar14 = "** tls common"" (identifier "pcVar14") (= "=") (string_literal ""** tls common"" (" """) (string_content "** tls common") (" """))) (; ";"))) (expression_statement "pcVar12 = ".tbss";" (assignment_expression "pcVar12 = ".tbss"" (identifier "pcVar12") (= "=") (string_literal "".tbss"" (" """) (string_content ".tbss") (" """))) (; ";")) (expression_statement "uVar6 = 0x403;" (assignment_expression "uVar6 = 0x403" (identifier "uVar6") (= "=") (number_literal "0x403")) (; ";")) (} "}")) (else_clause "else {\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }" (else "else") (compound_statement "{\n    uVar5 = (long)plVar11 - (long)plVar15 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);\n    if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }\n    FUN_0023a100(plVar15,plVar11,param_1,uVar6);\n    if (param_3 == 1) goto LAB_0023b3d3;\nLAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }\n  }" ({ "{") (expression_statement "uVar5 = (long)plVar11 - (long)plVar15 >> 3;" (assignment_expression "uVar5 = (long)plVar11 - (long)plVar15 >> 3" (identifier "uVar5") (= "=") (binary_expression "(long)plVar11 - (long)plVar15 >> 3" (binary_expression "(long)plVar11 - (long)plVar15" (cast_expression "(long)plVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar11")) (- "-") (cast_expression "(long)plVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar15"))) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "lVar4 = 0x3f;" (assignment_expression "lVar4 = 0x3f" (identifier "lVar4") (= "=") (number_literal "0x3f")) (; ";")) (if_statement "if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }" ({ "{") (for_statement "for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }" (for "for") (( "(") (; ";") (binary_expression "uVar5 >> lVar4 == 0" (binary_expression "uVar5 >> lVar4" (identifier "uVar5") (>> ">>") (identifier "lVar4")) (== "==") (number_literal "0")) (; ";") (assignment_expression "lVar4 = lVar4 + -1" (identifier "lVar4") (= "=") (binary_expression "lVar4 + -1" (identifier "lVar4") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n      }" ({ "{") (} "}"))) (} "}"))) (expression_statement "FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);" (call_expression "FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6)" (identifier "FUN_0023ad40") (argument_list "(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6)" (( "(") (identifier "plVar15") (, ",") (identifier "plVar11") (, ",") (binary_expression "(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2" (parenthesized_expression "(0x3f - (long)(int)((uint)lVar4 ^ 0x3f))" (( "(") (binary_expression "0x3f - (long)(int)((uint)lVar4 ^ 0x3f)" (number_literal "0x3f") (- "-") (cast_expression "(long)(int)((uint)lVar4 ^ 0x3f)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)((uint)lVar4 ^ 0x3f)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((uint)lVar4 ^ 0x3f)" (( "(") (binary_expression "(uint)lVar4 ^ 0x3f" (cast_expression "(uint)lVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar4")) (^ "^") (number_literal "0x3f")) () ")"))))) () ")")) (* "*") (number_literal "2")) (, ",") (identifier "param_1") (, ",") (identifier "uVar6") () ")"))) (; ";")) (if_statement "if (0x80 < (long)plVar11 - (long)plVar15) {\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }" (if "if") (parenthesized_expression "(0x80 < (long)plVar11 - (long)plVar15)" (( "(") (binary_expression "0x80 < (long)plVar11 - (long)plVar15" (number_literal "0x80") (< "<") (binary_expression "(long)plVar11 - (long)plVar15" (cast_expression "(long)plVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar11")) (- "-") (cast_expression "(long)plVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar15")))) () ")")) (compound_statement "{\n      plVar7 = plVar15 + 0x10;\n      FUN_0023a100(plVar15,plVar7,param_1,uVar6);\n      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }\n      goto LAB_0023b19c;\n    }" ({ "{") (expression_statement "plVar7 = plVar15 + 0x10;" (assignment_expression "plVar7 = plVar15 + 0x10" (identifier "plVar7") (= "=") (binary_expression "plVar15 + 0x10" (identifier "plVar15") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "FUN_0023a100(plVar15,plVar7,param_1,uVar6);" (call_expression "FUN_0023a100(plVar15,plVar7,param_1,uVar6)" (identifier "FUN_0023a100") (argument_list "(plVar15,plVar7,param_1,uVar6)" (( "(") (identifier "plVar15") (, ",") (identifier "plVar7") (, ",") (identifier "param_1") (, ",") (identifier "uVar6") () ")"))) (; ";")) (for_statement "for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }" (for "for") (( "(") (; ";") (binary_expression "plVar11 != plVar7" (identifier "plVar11") (!= "!=") (identifier "plVar7")) (; ";") (assignment_expression "plVar7 = plVar7 + 1" (identifier "plVar7") (= "=") (binary_expression "plVar7 + 1" (identifier "plVar7") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;\n        FUN_0023a0b0(plVar7,param_1,uStack_48);\n      }" ({ "{") (expression_statement "uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;" (assignment_expression "uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6" (identifier "uStack_48") (= "=") (binary_expression "uStack_48 & 0xffffffff00000000 | uVar6" (binary_expression "uStack_48 & 0xffffffff00000000" (identifier "uStack_48") (& "&") (number_literal "0xffffffff00000000")) (| "|") (identifier "uVar6"))) (; ";")) (expression_statement "FUN_0023a0b0(plVar7,param_1,uStack_48);" (call_expression "FUN_0023a0b0(plVar7,param_1,uStack_48)" (identifier "FUN_0023a0b0") (argument_list "(plVar7,param_1,uStack_48)" (( "(") (identifier "plVar7") (, ",") (identifier "param_1") (, ",") (identifier "uStack_48") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0023b19c;" (goto "goto") (statement_identifier "LAB_0023b19c") (; ";")) (} "}"))) (expression_statement "FUN_0023a100(plVar15,plVar11,param_1,uVar6);" (call_expression "FUN_0023a100(plVar15,plVar11,param_1,uVar6)" (identifier "FUN_0023a100") (argument_list "(plVar15,plVar11,param_1,uVar6)" (( "(") (identifier "plVar15") (, ",") (identifier "plVar11") (, ",") (identifier "param_1") (, ",") (identifier "uVar6") () ")"))) (; ";")) (if_statement "if (param_3 == 1) goto LAB_0023b3d3;" (if "if") (parenthesized_expression "(param_3 == 1)" (( "(") (binary_expression "param_3 == 1" (identifier "param_3") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_0023b3d3;" (goto "goto") (statement_identifier "LAB_0023b3d3") (; ";"))) (labeled_statement "LAB_0023b1a9:\n    if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }" (statement_identifier "LAB_0023b1a9") (: ":") (if_statement "if (param_3 == 0) {\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }\n    else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar14 = "** common";\n      pcVar12 = ".bss";\n      uVar6 = 3;\n    }" ({ "{") (expression_statement "pcVar14 = "** common";" (assignment_expression "pcVar14 = "** common"" (identifier "pcVar14") (= "=") (string_literal ""** common"" (" """) (string_content "** common") (" """))) (; ";")) (expression_statement "pcVar12 = ".bss";" (assignment_expression "pcVar12 = ".bss"" (identifier "pcVar12") (= "=") (string_literal "".bss"" (" """) (string_content ".bss") (" """))) (; ";")) (expression_statement "uVar6 = 3;" (assignment_expression "uVar6 = 3" (identifier "uVar6") (= "=") (number_literal "3")) (; ";")) (} "}")) (else_clause "else {\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }" (else "else") (compound_statement "{\n      if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }\n      if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }\n      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;\n      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n      if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }\n      pcVar14 = "** large common";\n      pcVar12 = ".lbss";\n      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;\n    }" ({ "{") (if_statement "if (param_3 == 2) {\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }" (if "if") (parenthesized_expression "(param_3 == 2)" (( "(") (binary_expression "param_3 == 2" (identifier "param_3") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }\n        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n        if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }\n        pcVar14 = "** small common";\n        pcVar12 = ".sbss";\n        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;\n        cVar3 = FUN_001ee080();\n        goto joined_r0x0023b2a4;\n      }" ({ "{") (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" (* "*") (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_003be6b0 + 0x18" (identifier "PTR_DAT_003be6b0") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n        }" ({ "{") (labeled_statement "LAB_0023b4d0:\n                    \n          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");" (statement_identifier "LAB_0023b4d0") (: ":") (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0016cdf0("../../gold/parameters.h",0x69,"target")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/parameters.h",0x69,"target")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);" (assignment_expression "lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" (identifier "lVar4") (= "=") (pointer_expression "*(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" (* "*") (cast_expression "(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" (( "(") (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" (* "*") (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_003be6b0 + 0x18" (identifier "PTR_DAT_003be6b0") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(short *)(lVar4 + 0x48) == 0) {\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }" (if "if") (parenthesized_expression "(*(short *)(lVar4 + 0x48) == 0)" (( "(") (binary_expression "*(short *)(lVar4 + 0x48) == 0" (pointer_expression "*(short *)(lVar4 + 0x48)" (* "*") (cast_expression "(short *)(lVar4 + 0x48)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x48)" (( "(") (binary_expression "lVar4 + 0x48" (identifier "lVar4") (+ "+") (number_literal "0x48")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");\n        }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");" (call_expression "FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/target.h",0xc5,"small_common_section_flags")" (( "(") (string_literal ""../../gold/target.h"" (" """) (string_content "../../gold/target.h") (" """)) (, ",") (number_literal "0xc5") (, ",") (string_literal ""small_common_section_flags"" (" """) (string_content "small_common_section_flags") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar14 = "** small common";" (assignment_expression "pcVar14 = "** small common"" (identifier "pcVar14") (= "=") (string_literal ""** small common"" (" """) (string_content "** small common") (" """))) (; ";")) (expression_statement "pcVar12 = ".sbss";" (assignment_expression "pcVar12 = ".sbss"" (identifier "pcVar12") (= "=") (string_literal "".sbss"" (" """) (string_content ".sbss") (" """))) (; ";")) (expression_statement "uVar6 = *(ulong *)(lVar4 + 0x50) | 3;" (assignment_expression "uVar6 = *(ulong *)(lVar4 + 0x50) | 3" (identifier "uVar6") (= "=") (binary_expression "*(ulong *)(lVar4 + 0x50) | 3" (pointer_expression "*(ulong *)(lVar4 + 0x50)" (* "*") (cast_expression "(ulong *)(lVar4 + 0x50)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x50)" (( "(") (binary_expression "lVar4 + 0x50" (identifier "lVar4") (+ "+") (number_literal "0x50")) () ")")))) (| "|") (number_literal "3"))) (; ";")) (expression_statement "cVar3 = FUN_001ee080();" (assignment_expression "cVar3 = FUN_001ee080()" (identifier "cVar3") (= "=") (call_expression "FUN_001ee080()" (identifier "FUN_001ee080") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto joined_r0x0023b2a4;" (goto "goto") (statement_identifier "joined_r0x0023b2a4") (; ";")) (} "}"))) (if_statement "if (param_3 != 3) {\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }" (if "if") (parenthesized_expression "(param_3 != 3)" (( "(") (binary_expression "param_3 != 3" (identifier "param_3") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n                    \n        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");\n      }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");" (call_expression "FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/common.cc",0x11b,"do_allocate_commons_list")" (( "(") (string_literal ""../../gold/common.cc"" (" """) (string_content "../../gold/common.cc") (" """)) (, ",") (number_literal "0x11b") (, ",") (string_literal ""do_allocate_commons_list"" (" """) (string_content "do_allocate_commons_list") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" (* "*") (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_003be6b0 + 0x18" (identifier "PTR_DAT_003be6b0") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0023b4d0;" (goto "goto") (statement_identifier "LAB_0023b4d0") (; ";"))) (expression_statement "lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);" (assignment_expression "lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" (identifier "lVar4") (= "=") (pointer_expression "*(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" (* "*") (cast_expression "(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" (( "(") (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" (* "*") (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_003be6b0 + 0x18" (identifier "PTR_DAT_003be6b0") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(short *)(lVar4 + 0x4a) == 0) {\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }" (if "if") (parenthesized_expression "(*(short *)(lVar4 + 0x4a) == 0)" (( "(") (binary_expression "*(short *)(lVar4 + 0x4a) == 0" (pointer_expression "*(short *)(lVar4 + 0x4a)" (* "*") (cast_expression "(short *)(lVar4 + 0x4a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x4a)" (( "(") (binary_expression "lVar4 + 0x4a" (identifier "lVar4") (+ "+") (number_literal "0x4a")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");\n      }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");" (call_expression "FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/target.h",0xd5,"large_common_section_flags")" (( "(") (string_literal ""../../gold/target.h"" (" """) (string_content "../../gold/target.h") (" """)) (, ",") (number_literal "0xd5") (, ",") (string_literal ""large_common_section_flags"" (" """) (string_content "large_common_section_flags") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar14 = "** large common";" (assignment_expression "pcVar14 = "** large common"" (identifier "pcVar14") (= "=") (string_literal ""** large common"" (" """) (string_content "** large common") (" """))) (; ";")) (expression_statement "pcVar12 = ".lbss";" (assignment_expression "pcVar12 = ".lbss"" (identifier "pcVar12") (= "=") (string_literal "".lbss"" (" """) (string_content ".lbss") (" """))) (; ";")) (expression_statement "uVar6 = *(ulong *)(lVar4 + 0x58) | 3;" (assignment_expression "uVar6 = *(ulong *)(lVar4 + 0x58) | 3" (identifier "uVar6") (= "=") (binary_expression "*(ulong *)(lVar4 + 0x58) | 3" (pointer_expression "*(ulong *)(lVar4 + 0x58)" (* "*") (cast_expression "(ulong *)(lVar4 + 0x58)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x58)" (( "(") (binary_expression "lVar4 + 0x58" (identifier "lVar4") (+ "+") (number_literal "0x58")) () ")")))) (| "|") (number_literal "3"))) (; ";")) (} "}"))))) (} "}")))) (expression_statement "cVar3 = FUN_001ee080(PTR_DAT_003be6b0);" (assignment_expression "cVar3 = FUN_001ee080(PTR_DAT_003be6b0)" (identifier "cVar3") (= "=") (call_expression "FUN_001ee080(PTR_DAT_003be6b0)" (identifier "FUN_001ee080") (argument_list "(PTR_DAT_003be6b0)" (( "(") (identifier "PTR_DAT_003be6b0") () ")")))) (; ";")) (labeled_statement "joined_r0x0023b2a4:\n  if (cVar3 == '\0') {\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }\n  else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }" (statement_identifier "joined_r0x0023b2a4") (: ":") (if_statement "if (cVar3 == '\0') {\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }\n  else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    puVar8 = (undefined8 *)FUN_00275550(0x40);\n    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0xffffffffffffffff;\n    puVar8[5] = 0;\n    puVar8[6] = uVar13;\n    *puVar8 = &PTR_FUN_003b4a48;\n    puVar8[7] = pcVar14;\n    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);\n  }" ({ "{") (expression_statement "puVar8 = (undefined8 *)FUN_00275550(0x40);" (assignment_expression "puVar8 = (undefined8 *)FUN_00275550(0x40)" (identifier "puVar8") (= "=") (cast_expression "(undefined8 *)FUN_00275550(0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00275550(0x40)" (identifier "FUN_00275550") (argument_list "(0x40)" (( "(") (number_literal "0x40") () ")"))))) (; ";")) (expression_statement "*(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar8 + 4)" (* "*") (cast_expression "(byte *)(puVar8 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 4)" (( "(") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar8 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar8 + 4)" (* "*") (cast_expression "(byte *)(puVar8 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 4)" (( "(") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xe0"))) (; ";")) (expression_statement "puVar8[1] = 0;" (assignment_expression "puVar8[1] = 0" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[2] = 0;" (assignment_expression "puVar8[2] = 0" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[3] = 0xffffffffffffffff;" (assignment_expression "puVar8[3] = 0xffffffffffffffff" (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "puVar8[5] = 0;" (assignment_expression "puVar8[5] = 0" (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[6] = uVar13;" (assignment_expression "puVar8[6] = uVar13" (subscript_expression "puVar8[6]" (identifier "puVar8") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*puVar8 = &PTR_FUN_003b4a48;" (assignment_expression "*puVar8 = &PTR_FUN_003b4a48" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (pointer_expression "&PTR_FUN_003b4a48" (& "&") (identifier "PTR_FUN_003b4a48"))) (; ";")) (expression_statement "puVar8[7] = pcVar14;" (assignment_expression "puVar8[7] = pcVar14" (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "pcVar14")) (; ";")) (expression_statement "local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);" (assignment_expression "local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0)" (identifier "local_78") (= "=") (call_expression "FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0)" (identifier "FUN_0018ed20") (argument_list "(param_2,pcVar12,8,uVar6,puVar8,0,0)" (( "(") (identifier "param_2") (, ",") (identifier "pcVar12") (, ",") (number_literal "8") (, ",") (identifier "uVar6") (, ",") (identifier "puVar8") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }" (else "else") (compound_statement "{\n    puVar8 = (undefined8 *)0x0;\n    local_78 = FUN_00186340(param_2,pcVar12);\n  }" ({ "{") (expression_statement "puVar8 = (undefined8 *)0x0;" (assignment_expression "puVar8 = (undefined8 *)0x0" (identifier "puVar8") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_78 = FUN_00186340(param_2,pcVar12);" (assignment_expression "local_78 = FUN_00186340(param_2,pcVar12)" (identifier "local_78") (= "=") (call_expression "FUN_00186340(param_2,pcVar12)" (identifier "FUN_00186340") (argument_list "(param_2,pcVar12)" (( "(") (identifier "param_2") (, ",") (identifier "pcVar12") () ")")))) (; ";")) (} "}"))))) (if_statement "if (local_78 != 0) {\n    if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }\n  }" (if "if") (parenthesized_expression "(local_78 != 0)" (( "(") (binary_expression "local_78 != 0" (identifier "local_78") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }\n  }" ({ "{") (if_statement "if (param_3 == 2) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }\n    else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }" (if "if") (parenthesized_expression "(param_3 == 2)" (( "(") (binary_expression "param_3 == 2" (identifier "param_3") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;\n    }" ({ "{") (expression_statement "*(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;" (assignment_expression "*(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40" (pointer_expression "*(byte *)(local_78 + 0xc9)" (* "*") (cast_expression "(byte *)(local_78 + 0xc9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_78 + 0xc9)" (( "(") (binary_expression "local_78 + 0xc9" (identifier "local_78") (+ "+") (number_literal "0xc9")) () ")")))) (= "=") (binary_expression "*(byte *)(local_78 + 0xc9) | 0x40" (pointer_expression "*(byte *)(local_78 + 0xc9)" (* "*") (cast_expression "(byte *)(local_78 + 0xc9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_78 + 0xc9)" (( "(") (binary_expression "local_78 + 0xc9" (identifier "local_78") (+ "+") (number_literal "0xc9")) () ")")))) (| "|") (number_literal "0x40"))) (; ";")) (} "}")) (else_clause "else if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }" (else "else") (if_statement "if (param_3 == 3) {\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }" (if "if") (parenthesized_expression "(param_3 == 3)" (( "(") (binary_expression "param_3 == 3" (identifier "param_3") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;\n    }" ({ "{") (expression_statement "*(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;" (assignment_expression "*(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80" (pointer_expression "*(byte *)(local_78 + 0xc9)" (* "*") (cast_expression "(byte *)(local_78 + 0xc9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_78 + 0xc9)" (( "(") (binary_expression "local_78 + 0xc9" (identifier "local_78") (+ "+") (number_literal "0xc9")) () ")")))) (= "=") (binary_expression "*(byte *)(local_78 + 0xc9) | 0x80" (pointer_expression "*(byte *)(local_78 + 0xc9)" (* "*") (cast_expression "(byte *)(local_78 + 0xc9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_78 + 0xc9)" (( "(") (binary_expression "local_78 + 0xc9" (identifier "local_78") (+ "+") (number_literal "0xc9")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (} "}"))))) (} "}"))) (expression_statement "plVar11 = (long *)param_4[1];" (assignment_expression "plVar11 = (long *)param_4[1]" (identifier "plVar11") (= "=") (cast_expression "(long *)param_4[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "plVar15 = (long *)*param_4;" (assignment_expression "plVar15 = (long *)*param_4" (identifier "plVar15") (= "=") (cast_expression "(long *)*param_4" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (if_statement "if ((plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0)) {\n    uVar13 = 0;\n    plVar7 = plVar11;\n  }\n  else {\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }" (if "if") (parenthesized_expression "((plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0))" (( "(") (binary_expression "(plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0)" (parenthesized_expression "(plVar15 == plVar11)" (( "(") (binary_expression "plVar15 == plVar11" (identifier "plVar15") (== "==") (identifier "plVar11")) () ")")) (|| "||") (parenthesized_expression "(lVar4 = *plVar15, lVar4 == 0)" (( "(") (comma_expression "lVar4 = *plVar15, lVar4 == 0" (assignment_expression "lVar4 = *plVar15" (identifier "lVar4") (= "=") (pointer_expression "*plVar15" (* "*") (identifier "plVar15"))) (, ",") (binary_expression "lVar4 == 0" (identifier "lVar4") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    uVar13 = 0;\n    plVar7 = plVar11;\n  }" ({ "{") (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar7 = plVar11;" (assignment_expression "plVar7 = plVar11" (identifier "plVar7") (= "=") (identifier "plVar11")) (; ";")) (} "}")) (else_clause "else {\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }" (else "else") (compound_statement "{\n    uVar13 = 0;\n    do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));\n  }" ({ "{") (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));" (do "do") (compound_statement "{\n      plVar15 = plVar15 + 1;\n      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }\nLAB_0023b370:\n      plVar7 = plVar15;\n    }" ({ "{") (expression_statement "plVar15 = plVar15 + 1;" (assignment_expression "plVar15 = plVar15 + 1" (identifier "plVar15") (= "=") (binary_expression "plVar15 + 1" (identifier "plVar15") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }" (if "if") (parenthesized_expression "(((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0))" (( "(") (binary_expression "((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)" (parenthesized_expression "((*(byte *)(lVar4 + 0x3a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(lVar4 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(lVar4 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar4 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar4 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x3a)" (( "(") (binary_expression "lVar4 + 0x3a" (identifier "lVar4") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)(lVar4 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3b) & 0x20)" (( "(") (binary_expression "*(byte *)(lVar4 + 0x3b) & 0x20" (pointer_expression "*(byte *)(lVar4 + 0x3b)" (* "*") (cast_expression "(byte *)(lVar4 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x3b)" (( "(") (binary_expression "lVar4 + 0x3b" (identifier "lVar4") (+ "+") (number_literal "0x3b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));\n        if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }\n        plVar11 = (long *)param_4[1];\n      }" ({ "{") (expression_statement "cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));" (assignment_expression "cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18))" (identifier "cVar3") (= "=") (call_expression "FUN_0021e870(*(undefined4 *)(lVar4 + 0x18))" (identifier "FUN_0021e870") (argument_list "(*(undefined4 *)(lVar4 + 0x18))" (( "(") (pointer_expression "*(undefined4 *)(lVar4 + 0x18)" (* "*") (cast_expression "(undefined4 *)(lVar4 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x18)" (( "(") (binary_expression "lVar4 + 0x18" (identifier "lVar4") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (; ";")) (if_statement "if (cVar3 != '\0') {\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          lVar9 = FUN_00239c90(lVar4);\n          if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }\n          lVar4 = *(long *)(lVar9 + 0x40);\n          if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }\n          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));\n          if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }\n          FUN_00221cb0(lVar9,local_78,uVar13);\n        }" ({ "{") (expression_statement "lVar9 = FUN_00239c90(lVar4);" (assignment_expression "lVar9 = FUN_00239c90(lVar4)" (identifier "lVar9") (= "=") (call_expression "FUN_00239c90(lVar4)" (identifier "FUN_00239c90") (argument_list "(lVar4)" (( "(") (identifier "lVar4") () ")")))) (; ";")) (if_statement "if (param_5 != 0) {\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }" (if "if") (parenthesized_expression "(param_5 != 0)" (( "(") (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));\n          }" ({ "{") (expression_statement "FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));" (call_expression "FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48))" (identifier "FUN_001997d0") (argument_list "(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48))" (( "(") (identifier "param_5") (, ",") (identifier "lVar4") (, ",") (pointer_expression "*(undefined8 *)(lVar9 + 0x48)" (* "*") (cast_expression "(undefined8 *)(lVar9 + 0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x48)" (( "(") (binary_expression "lVar9 + 0x48" (identifier "lVar9") (+ "+") (number_literal "0x48")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar4 = *(long *)(lVar9 + 0x40);" (assignment_expression "lVar4 = *(long *)(lVar9 + 0x40)" (identifier "lVar4") (= "=") (pointer_expression "*(long *)(lVar9 + 0x40)" (* "*") (cast_expression "(long *)(lVar9 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x40)" (( "(") (binary_expression "lVar9 + 0x40" (identifier "lVar9") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (if_statement "if (puVar8 != (undefined8 *)0x0) {\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }" (if "if") (parenthesized_expression "(puVar8 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar8 != (undefined8 *)0x0" (identifier "puVar8") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }\n            FUN_00221cb0(lVar9,puVar8,uVar13);\n            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);\n            plVar11 = (long *)param_4[1];\n            goto LAB_0023b370;\n          }" ({ "{") (if_statement "if (lVar4 != 0) {\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }" (if "if") (parenthesized_expression "(lVar4 != 0)" (( "(") (binary_expression "lVar4 != 0" (identifier "lVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;\n            }" ({ "{") (expression_statement "uVar13 = (uVar13 - 1) + lVar4 & -lVar4;" (assignment_expression "uVar13 = (uVar13 - 1) + lVar4 & -lVar4" (identifier "uVar13") (= "=") (binary_expression "(uVar13 - 1) + lVar4 & -lVar4" (binary_expression "(uVar13 - 1) + lVar4" (parenthesized_expression "(uVar13 - 1)" (( "(") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1")) () ")")) (+ "+") (identifier "lVar4")) (& "&") (unary_expression "-lVar4" (- "-") (identifier "lVar4")))) (; ";")) (} "}"))) (expression_statement "FUN_00221cb0(lVar9,puVar8,uVar13);" (call_expression "FUN_00221cb0(lVar9,puVar8,uVar13)" (identifier "FUN_00221cb0") (argument_list "(lVar9,puVar8,uVar13)" (( "(") (identifier "lVar9") (, ",") (identifier "puVar8") (, ",") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "uVar13 = uVar13 + *(long *)(lVar9 + 0x48);" (assignment_expression "uVar13 = uVar13 + *(long *)(lVar9 + 0x48)" (identifier "uVar13") (= "=") (binary_expression "uVar13 + *(long *)(lVar9 + 0x48)" (identifier "uVar13") (+ "+") (pointer_expression "*(long *)(lVar9 + 0x48)" (* "*") (cast_expression "(long *)(lVar9 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x48)" (( "(") (binary_expression "lVar9 + 0x48" (identifier "lVar9") (+ "+") (number_literal "0x48")) () ")")))))) (; ";")) (expression_statement "plVar11 = (long *)param_4[1];" (assignment_expression "plVar11 = (long *)param_4[1]" (identifier "plVar11") (= "=") (cast_expression "(long *)param_4[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")))) (; ";")) (goto_statement "goto LAB_0023b370;" (goto "goto") (statement_identifier "LAB_0023b370") (; ";")) (} "}"))) (expression_statement "uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));" (assignment_expression "uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48))" (identifier "uVar13") (= "=") (call_expression "FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48))" (identifier "FUN_001c2320") (argument_list "(local_78,*(undefined8 *)(lVar9 + 0x48))" (( "(") (identifier "local_78") (, ",") (pointer_expression "*(undefined8 *)(lVar9 + 0x48)" (* "*") (cast_expression "(undefined8 *)(lVar9 + 0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x48)" (( "(") (binary_expression "lVar9 + 0x48" (identifier "lVar9") (+ "+") (number_literal "0x48")) () ")")))) () ")")))) (; ";")) (if_statement "if (uVar13 == 0xffffffffffffffff) {\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }" (if "if") (parenthesized_expression "(uVar13 == 0xffffffffffffffff)" (( "(") (binary_expression "uVar13 == 0xffffffffffffffff" (identifier "uVar13") (== "==") (number_literal "0xffffffffffffffff")) () ")")) (compound_statement "{\n            uVar1 = *(undefined8 *)(local_78 + 0x28);\n            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");\n            FUN_00169000(uVar10,uVar1);\n            goto LAB_0023b521;\n          }" ({ "{") (expression_statement "uVar1 = *(undefined8 *)(local_78 + 0x28);" (assignment_expression "uVar1 = *(undefined8 *)(local_78 + 0x28)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined8 *)(local_78 + 0x28)" (* "*") (cast_expression "(undefined8 *)(local_78 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_78 + 0x28)" (( "(") (binary_expression "local_78 + 0x28" (identifier "local_78") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");" (assignment_expression "uVar10 = gettext("out of patch space in section %s; relink with --incremental-full")" (identifier "uVar10") (= "=") (call_expression "gettext("out of patch space in section %s; relink with --incremental-full")" (identifier "gettext") (argument_list "("out of patch space in section %s; relink with --incremental-full")" (( "(") (string_literal ""out of patch space in section %s; relink with --incremental-full"" (" """) (string_content "out of patch space in section %s; relink with --incremental-full") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00169000(uVar10,uVar1);" (call_expression "FUN_00169000(uVar10,uVar1)" (identifier "FUN_00169000") (argument_list "(uVar10,uVar1)" (( "(") (identifier "uVar10") (, ",") (identifier "uVar1") () ")"))) (; ";")) (goto_statement "goto LAB_0023b521;" (goto "goto") (statement_identifier "LAB_0023b521") (; ";")) (} "}"))) (expression_statement "FUN_00221cb0(lVar9,local_78,uVar13);" (call_expression "FUN_00221cb0(lVar9,local_78,uVar13)" (identifier "FUN_00221cb0") (argument_list "(lVar9,local_78,uVar13)" (( "(") (identifier "lVar9") (, ",") (identifier "local_78") (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}"))) (expression_statement "plVar11 = (long *)param_4[1];" (assignment_expression "plVar11 = (long *)param_4[1]" (identifier "plVar11") (= "=") (cast_expression "(long *)param_4[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}"))) (labeled_statement "LAB_0023b370:\n      plVar7 = plVar15;" (statement_identifier "LAB_0023b370") (: ":") (expression_statement "plVar7 = plVar15;" (assignment_expression "plVar7 = plVar15" (identifier "plVar7") (= "=") (identifier "plVar15")) (; ";"))) (} "}")) (while "while") (parenthesized_expression "((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0))" (( "(") (binary_expression "(plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0)" (parenthesized_expression "(plVar11 != plVar15)" (( "(") (binary_expression "plVar11 != plVar15" (identifier "plVar11") (!= "!=") (identifier "plVar15")) () ")")) (&& "&&") (parenthesized_expression "(lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0)" (( "(") (comma_expression "lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0" (assignment_expression "lVar4 = *plVar15" (identifier "lVar4") (= "=") (pointer_expression "*plVar15" (* "*") (identifier "plVar15"))) (, ",") (comma_expression "plVar7 = plVar11, lVar4 != 0" (assignment_expression "plVar7 = plVar11" (identifier "plVar7") (= "=") (identifier "plVar11")) (, ",") (binary_expression "lVar4 != 0" (identifier "lVar4") (!= "!=") (number_literal "0")))) () ")"))) () ")")) (; ";")) (} "}")))) (if_statement "if (puVar8 != (undefined8 *)0x0) {\n    if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    \n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    puVar8[2] = uVar13;\n  }" (if "if") (parenthesized_expression "(puVar8 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar8 != (undefined8 *)0x0" (identifier "puVar8") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    \n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }\n    puVar8[2] = uVar13;\n  }" ({ "{") (if_statement "if ((*(byte *)(puVar8 + 4) & 2) != 0) {\nLAB_0023b521:\n                    \n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }" (if "if") (parenthesized_expression "((*(byte *)(puVar8 + 4) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(puVar8 + 4) & 2) != 0" (parenthesized_expression "(*(byte *)(puVar8 + 4) & 2)" (( "(") (binary_expression "*(byte *)(puVar8 + 4) & 2" (pointer_expression "*(byte *)(puVar8 + 4)" (* "*") (cast_expression "(byte *)(puVar8 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 4)" (( "(") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0023b521:\n                    \n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n    }" ({ "{") (labeled_statement "LAB_0023b521:\n                    \n      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");" (statement_identifier "LAB_0023b521") (: ":") (expression_statement "FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x231") (, ",") (string_literal ""set_current_data_size_for_child"" (" """) (string_content "set_current_data_size_for_child") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "puVar8[2] = uVar13;" (assignment_expression "puVar8[2] = uVar13" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (} "}"))) (if_statement "if ((long *)*param_4 != plVar7) {\n    param_4[1] = *param_4;\n  }" (if "if") (parenthesized_expression "((long *)*param_4 != plVar7)" (( "(") (binary_expression "(long *)*param_4 != plVar7" (cast_expression "(long *)*param_4" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (!= "!=") (identifier "plVar7")) () ")")) (compound_statement "{\n    param_4[1] = *param_4;\n  }" ({ "{") (expression_statement "param_4[1] = *param_4;" (assignment_expression "param_4[1] = *param_4" (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void do_allocate_commons_list<64>(Symbol_table * this, Layout * layout,
   Commons_section_type commons_section_type, Commons_type * commons, Mapfile * mapfile,
   Sort_commons_order sort_order) */

void __thiscall
var_2::type_1::function_1<64>
          (type_1 *this,type_2 *layout,type_3 var_24,
          type_4 *commons,type_5 *var_40,type_6 sort_order)

{
  type_7 *puVar1;
  var_1<var_2::var_15**,var_3::vector<var_2::var_15*,var_3::allocator<var_2::var_15*>var_4>var_4>
  var_5;
  uint64_t var_43;
  long var_27;
  bool var_23;
  type_7 uVar4;
  bool bVar5;
  type_2 *this_00;
  type_8 var_26;
  type_9 var_49;
  type_10 *var_42;
  var_6<64> *pSVar8;
  type_9 var_20;
  var_1<var_2::var_15**,var_3::vector<var_2::var_15*,var_3::allocator<var_2::var_15*>var_4>var_4>
  var_7;
  type_2 *from;
  type_2 *sym;
  type_11 *var_22;
  type_1 *var_39;
  var_1<var_2::var_15**,var_3::vector<var_2::var_15*,var_3::allocator<var_2::var_15*>var_4>var_4>
  var_8;
  char *pcVar11;
  type_12 var_44;
  char *pcVar12;
  type_9 var_17;
  var_9<var_2::var_28<64>var_4> var_10;
  var_11<var_2::var_28<64>var_4> var_12;
  var_11<var_2::var_28<64>var_4> var_13;
  var_11<var_2::var_28<64>var_4> var_14;
  type_10 *var_38;
  type_8 var_29;
  
  var_17 = (commons->super__Vector_base<var_2::var_15*var_16,var_3::allocator<var_2::var_15*>var_4>var_16)._M_impl.
             _M_start;
  if (var_17 ==
      (commons->super__Vector_base<var_2::var_15*,var_3::allocator<var_2::var_15*>var_4>var_16)._M_impl._M_finish
     ) {
    return;
  }
  var_22 = (type_11 *)0x0;
  sym = layout;
  bVar5 = false;
  do {
    while( true ) {
      var_20 = var_17;
      from = (type_2 *)*var_20;
      this_00 = from;
      if ((*(type_13 *)((long)&from->namepool_ + 0x2a) & 0x10) != 0) {
        this_00 = (type_2 *)var_18(this,(var_15 *)from);
        *var_20 = (var_15 *)this_00;
        sym = from;
      }
      if (((((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x70000) == 0)
          && (((this_00->namepool_).string_set_._M_h._M_rehash_policy._M_next_resize & 0x20000000)
              == 0)) &&
         (var_23 = var_15::var_19
                            ((type_14)(this_00->namepool_).string_set_._M_h._M_bucket_count), var_23))
      break;
      *var_20 = (var_15 *)0x0;
      var_17 = var_20 + 1;
      var_23 = bVar5;
      if ((commons->super__Vector_base<var_2::var_15*,var_3::allocator<var_2::var_15*>var_4>var_16)._M_impl.
          _M_finish == var_20 + 1) goto LAB_0023b0b8;
    }
    pSVar8 = var_21<64>((type_1 *)this_00,(var_15 *)sym);
    if (var_22 < (type_11 *)pSVar8->value_) {
      var_22 = (type_11 *)pSVar8->value_;
    }
    var_17 = var_20 + 1;
    bVar5 = var_23;
  } while ((commons->super__Vector_base<var_2::var_15*,var_3::allocator<var_2::var_15*>var_4>var_16)._M_impl.
           _M_finish != var_20 + 1);
LAB_0023b0b8:
  var_8._M_current = var_20 + 1;
  if (var_23 == false) {
    return;
  }
  var_5._M_current =
       (commons->super__Vector_base<var_2::var_15*,var_3::allocator<var_2::var_15*>var_4>var_16)._M_impl._M_start
  ;
  if (var_8._M_current == var_5._M_current) {
LAB_0023b19c:
    if (var_24 != var_25) goto LAB_0023b1a9;
LAB_0023b3d3:
    pcVar12 = "** tls common";
    pcVar11 = ".tbss";
    var_26 = 0x403;
  }
  else {
    var_26 = (long)var_8._M_current - (long)var_5._M_current >> 3;
    var_27 = 0x3f;
    if (var_26 != 0) {
      for (; var_26 >> var_27 == 0; var_27 = var_27 + -1) {
      }
    }
    var_12._M_comp.sort_order_ = sort_order;
    var_12._M_comp.symtab_ = this;
    var_12._M_comp._12_4_ = 0;
    std::
    __introsort_loop<__gnu_cxx::var_1<var_2::var_15**,var_3::vector<var_2::var_15*>var_4>,_long_int,___gnu_cxx::__ops::var_11<var_2::var_28<64>var_4>var_4>
              (var_5,var_8,(0x3f - (long)(int)((type_14)var_27 ^ 0x3f)) * 2,var_12);
    if (0x80 < (long)var_8._M_current - (long)var_5._M_current) {
      var_7._M_current = var_5._M_current + 0x10;
      var_13._M_comp.sort_order_ = sort_order;
      var_13._M_comp.symtab_ = this;
      var_13._M_comp._12_4_ = 0;
      std::
      __insertion_sort<__gnu_cxx::var_1<var_2::var_15**,var_3::vector<var_2::var_15*>var_4>,___gnu_cxx::__ops::var_11<var_2::var_28<64>var_4>var_4>
                (var_5,var_7,var_13);
      for (; var_8._M_current != var_7._M_current; var_7._M_current = var_7._M_current + 1) {
        var_29 = var_29 & 0xffffffff00000000 | (type_8)sort_order;
        var_10._M_comp._8_8_ = var_29;
        var_10._M_comp.symtab_ = this;
        std::
        __unguarded_linear_insert<__gnu_cxx::var_1<var_2::var_15**,var_3::vector<var_2::var_15*>var_4>,___gnu_cxx::__ops::var_9<var_2::var_28<64>var_4>var_4>
                  (var_7,var_10);
      }
      goto LAB_0023b19c;
    }
    var_14._M_comp.sort_order_ = sort_order;
    var_14._M_comp.symtab_ = this;
    var_14._M_comp._12_4_ = 0;
    std::
    __insertion_sort<__gnu_cxx::var_1<var_2::var_15**,var_3::vector<var_2::var_15*>var_4>,___gnu_cxx::__ops::var_11<var_2::var_28<64>var_4>var_4>
              (var_5,var_8,var_14);
    if (var_24 == var_25) goto LAB_0023b3d3;
LAB_0023b1a9:
    if (var_24 == var_30) {
      pcVar12 = "** common";
      pcVar11 = &DAT_00310adc;
      var_26 = 3;
    }
    else {
      if (var_24 == var_31) {
        if (parameters->target_ == (type_15 *)0x0) {
LAB_0023b4d0:
                    /* WARNING: Subroutine does not return */
          var_32("../../gold/parameters.h",0x69,"target");
        }
        var_27 = *(long *)(parameters->target_ + 8);
        if (*(short *)(var_27 + 0x48) == 0) {
                    /* WARNING: Subroutine does not return */
          var_32("../../gold/target.h",0xc5,"small_common_section_flags");
        }
        pcVar12 = "** small common";
        pcVar11 = ".sbss";
        var_26 = *(type_8 *)(var_27 + 0x50) | 3;
        uVar4 = Parameters::var_33(parameters);
        goto joined_r0x0023b2a4;
      }
      if (var_24 != var_34) {
                    /* WARNING: Subroutine does not return */
        var_32("../../gold/common.cc",0x11b,"do_allocate_commons_list");
      }
      if (parameters->target_ == (type_15 *)0x0) goto LAB_0023b4d0;
      var_27 = *(long *)(parameters->target_ + 8);
      if (*(short *)(var_27 + 0x4a) == 0) {
                    /* WARNING: Subroutine does not return */
        var_32("../../gold/target.h",0xd5,"large_common_section_flags");
      }
      pcVar12 = "** large common";
      pcVar11 = ".lbss";
      var_26 = *(type_8 *)(var_27 + 0x58) | 3;
    }
  }
  uVar4 = Parameters::var_33(parameters);
joined_r0x0023b2a4:
  if ((bool)uVar4) {
    var_42 = (type_10 *)0x0;
    var_38 = type_2::var_35(layout,pcVar11);
  }
  else {
    var_42 = (type_10 *)var_36(0x40);
    puVar1 = &(var_42->super_Output_data).field_0x20;
    *puVar1 = *puVar1 & 0xe0;
    (var_42->super_Output_data).address_ = 0;
    (var_42->super_Output_data).data_size_ = 0;
    (var_42->super_Output_data).offset_ = -1;
    *(type_10 **)&var_42->name_ = (type_10 *)0x0;
    var_42->addralign_ = (uint64_t)var_22;
    (var_42->super_Output_data)._vptr_Output_data =
         (type_16 **)&PTR__Output_data_space_003b4a48;
    var_42->entsize_ = (uint64_t)pcVar12;
    var_38 = type_2::var_37
                         (layout,pcVar11,8,var_26,(type_17 *)var_42,ORDER_INVALID,false);
  }
  if (var_38 != (type_10 *)0x0) {
    if (var_24 == var_31) {
      var_38->field_0xc9 = var_38->field_0xc9 | 0x40;
    }
    else if (var_24 == var_34) {
      var_38->field_0xc9 = var_38->field_0xc9 | 0x80;
    }
  }
  var_20 = (commons->super__Vector_base<var_2::var_15*var_16,var_3::allocator<var_2::var_15*>var_4>var_16)._M_impl.
            _M_finish;
  var_17 = (commons->super__Vector_base<var_2::var_15*var_16,var_3::allocator<var_2::var_15*>var_4>var_16)._M_impl.
             _M_start;
  if ((var_17 == var_20) || (var_39 = (type_1 *)*var_17, var_39 == (type_1 *)0x0)
     ) {
    var_44 = 0;
    var_49 = var_20;
  }
  else {
    var_44 = 0;
    do {
      var_17 = var_17 + 1;
      if ((((var_39->table_)._M_h._M_bucket_count & 0x70000) == 0) &&
         (((var_39->table_)._M_h._M_bucket_count & 0x20000000) == 0)) {
        bVar5 = var_15::var_19(var_39->output_count_);
        if (bVar5) {
          pSVar8 = var_21<64>(var_39,(var_15 *)pcVar11);
          if (var_40 != (type_5 *)0x0) {
            Mapfile::var_41(var_40,(var_15 *)var_39,pSVar8->symsize_);
          }
          var_43 = pSVar8->value_;
          if (var_42 != (type_10 *)0x0) {
            if (var_43 != 0) {
              var_44 = var_44 + (var_43 - 1) & -var_43;
            }
            pcVar11 = (char *)var_42;
            var_6<64>::var_45(pSVar8,&var_42->super_Output_data,var_44);
            var_44 = var_44 + pSVar8->symsize_;
            var_20 = (commons->super__Vector_base<var_2::var_15*var_16,var_3::allocator<var_2::var_15*>var_4>var_16).
                      _M_impl._M_finish;
            goto LAB_0023b370;
          }
          var_44 = type_10::var_46(var_38,pSVar8->symsize_,var_43);
          if (var_44 == 0xffffffffffffffff) {
            pcVar11 = var_38->name_;
            pcVar12 = (char *)var_47(
                                     "out of patch space in section %s; relink with --incremental-full"
                                     );
                    /* WARNING: Subroutine does not return */
            var_48(pcVar12,pcVar11);
          }
          pcVar11 = (char *)var_38;
          var_6<64>::var_45(pSVar8,&var_38->super_Output_data,var_44);
        }
        var_20 = (commons->super__Vector_base<var_2::var_15*var_16,var_3::allocator<var_2::var_15*>var_4>var_16).
                  _M_impl._M_finish;
      }
LAB_0023b370:
      var_49 = var_17;
    } while ((var_20 != var_17) &&
            (var_39 = (type_1 *)*var_17, var_49 = var_20, var_39 != (type_1 *)0x0)
            );
  }
  if (var_42 != (type_10 *)0x0) {
    if (((var_42->super_Output_data).field_0x20 & 2) != 0) {
                    /* WARNING: Subroutine does not return */
      var_32("../../gold/output.h",0x231,"set_current_data_size_for_child");
    }
    (var_42->super_Output_data).data_size_ = var_44;
  }
  var_17 = (commons->super__Vector_base<var_2::var_15*var_16,var_3::allocator<var_2::var_15*>var_4>var_16)._M_impl.
             _M_start;
  if (var_17 != var_49) {
    (commons->super__Vector_base<var_2::var_15*,var_3::allocator<var_2::var_15*>var_4>var_16)._M_impl._M_finish =
         var_17;
  }
  return;
}


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

void MASKED(undefined8 param_1,undefined8 param_2,int param_3,long *param_4,long param_5,
                 uint param_6)

{
  undefined8 uVar1;
  char cVar2;
  char cVar3;
  long lVar4;
  ulong uVar5;
  ulong uVar6;
  long *plVar7;
  undefined8 *puVar8;
  long lVar9;
  undefined8 uVar10;
  long *plVar11;
  char *pcVar12;
  ulong uVar13;
  char *pcVar14;
  long *plVar15;
  long local_78;
  ulong uStack_48;
  
  if ((long *)*param_4 == (long *)param_4[1]) {
    return;
  }
  uVar13 = 0;
  plVar15 = (long *)*param_4;
  cVar3 = '\0';
  do {
    while( true ) {
      plVar11 = plVar15;
      lVar4 = *plVar11;
      if ((*(byte *)(lVar4 + 0x3a) & 0x10) != 0) {
        lVar4 = FUN_0021ec60(param_1,lVar4);
        *plVar11 = lVar4;
      }
      if ((((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) &&
         (cVar2 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18)), cVar2 != '\0')) break;
      *plVar11 = 0;
      plVar15 = plVar11 + 1;
      cVar2 = cVar3;
      if ((long *)param_4[1] == plVar11 + 1) goto LAB_0023b0b8;
    }
    lVar4 = FUN_00239c90(lVar4);
    if (uVar13 < *(ulong *)(lVar4 + 0x40)) {
      uVar13 = *(ulong *)(lVar4 + 0x40);
    }
    plVar15 = plVar11 + 1;
    cVar3 = cVar2;
  } while ((long *)param_4[1] != plVar11 + 1);
LAB_0023b0b8:
  plVar11 = plVar11 + 1;
  if (cVar2 == '\0') {
    return;
  }
  uVar6 = (ulong)param_6;
  plVar15 = (long *)*param_4;
  if (plVar11 == plVar15) {
LAB_0023b19c:
    if (param_3 != 1) goto LAB_0023b1a9;
LAB_0023b3d3:
    pcVar14 = "** tls common";
    pcVar12 = ".tbss";
    uVar6 = 0x403;
  }
  else {
    uVar5 = (long)plVar11 - (long)plVar15 >> 3;
    lVar4 = 0x3f;
    if (uVar5 != 0) {
      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {
      }
    }
    FUN_0023ad40(plVar15,plVar11,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2,param_1,uVar6);
    if (0x80 < (long)plVar11 - (long)plVar15) {
      plVar7 = plVar15 + 0x10;
      FUN_0023a100(plVar15,plVar7,param_1,uVar6);
      for (; plVar11 != plVar7; plVar7 = plVar7 + 1) {
        uStack_48 = uStack_48 & 0xffffffff00000000 | uVar6;
        FUN_0023a0b0(plVar7,param_1,uStack_48);
      }
      goto LAB_0023b19c;
    }
    FUN_0023a100(plVar15,plVar11,param_1,uVar6);
    if (param_3 == 1) goto LAB_0023b3d3;
LAB_0023b1a9:
    if (param_3 == 0) {
      pcVar14 = "** common";
      pcVar12 = ".bss";
      uVar6 = 3;
    }
    else {
      if (param_3 == 2) {
        if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {
LAB_0023b4d0:
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/parameters.h",0x69,"target");
        }
        lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);
        if (*(short *)(lVar4 + 0x48) == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/target.h",0xc5,"small_common_section_flags");
        }
        pcVar14 = "** small common";
        pcVar12 = ".sbss";
        uVar6 = *(ulong *)(lVar4 + 0x50) | 3;
        cVar3 = FUN_001ee080();
        goto joined_r0x0023b2a4;
      }
      if (param_3 != 3) {
                    /* WARNING: Subroutine does not return */
        FUN_0016cdf0("../../gold/common.cc",0x11b,"do_allocate_commons_list");
      }
      if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) goto LAB_0023b4d0;
      lVar4 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);
      if (*(short *)(lVar4 + 0x4a) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0016cdf0("../../gold/target.h",0xd5,"large_common_section_flags");
      }
      pcVar14 = "** large common";
      pcVar12 = ".lbss";
      uVar6 = *(ulong *)(lVar4 + 0x58) | 3;
    }
  }
  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);
joined_r0x0023b2a4:
  if (cVar3 == '\0') {
    puVar8 = (undefined8 *)FUN_00275550(0x40);
    *(byte *)(puVar8 + 4) = *(byte *)(puVar8 + 4) & 0xe0;
    puVar8[1] = 0;
    puVar8[2] = 0;
    puVar8[3] = 0xffffffffffffffff;
    puVar8[5] = 0;
    puVar8[6] = uVar13;
    *puVar8 = &PTR_FUN_003b4a48;
    puVar8[7] = pcVar14;
    local_78 = FUN_0018ed20(param_2,pcVar12,8,uVar6,puVar8,0,0);
  }
  else {
    puVar8 = (undefined8 *)0x0;
    local_78 = FUN_00186340(param_2,pcVar12);
  }
  if (local_78 != 0) {
    if (param_3 == 2) {
      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x40;
    }
    else if (param_3 == 3) {
      *(byte *)(local_78 + 0xc9) = *(byte *)(local_78 + 0xc9) | 0x80;
    }
  }
  plVar11 = (long *)param_4[1];
  plVar15 = (long *)*param_4;
  if ((plVar15 == plVar11) || (lVar4 = *plVar15, lVar4 == 0)) {
    uVar13 = 0;
    plVar7 = plVar11;
  }
  else {
    uVar13 = 0;
    do {
      plVar15 = plVar15 + 1;
      if (((*(byte *)(lVar4 + 0x3a) & 7) == 0) && ((*(byte *)(lVar4 + 0x3b) & 0x20) == 0)) {
        cVar3 = FUN_0021e870(*(undefined4 *)(lVar4 + 0x18));
        if (cVar3 != '\0') {
          lVar9 = FUN_00239c90(lVar4);
          if (param_5 != 0) {
            FUN_001997d0(param_5,lVar4,*(undefined8 *)(lVar9 + 0x48));
          }
          lVar4 = *(long *)(lVar9 + 0x40);
          if (puVar8 != (undefined8 *)0x0) {
            if (lVar4 != 0) {
              uVar13 = (uVar13 - 1) + lVar4 & -lVar4;
            }
            FUN_00221cb0(lVar9,puVar8,uVar13);
            uVar13 = uVar13 + *(long *)(lVar9 + 0x48);
            plVar11 = (long *)param_4[1];
            goto LAB_0023b370;
          }
          uVar13 = FUN_001c2320(local_78,*(undefined8 *)(lVar9 + 0x48));
          if (uVar13 == 0xffffffffffffffff) {
            uVar1 = *(undefined8 *)(local_78 + 0x28);
            uVar10 = gettext("out of patch space in section %s; relink with --incremental-full");
            FUN_00169000(uVar10,uVar1);
            goto LAB_0023b521;
          }
          FUN_00221cb0(lVar9,local_78,uVar13);
        }
        plVar11 = (long *)param_4[1];
      }
LAB_0023b370:
      plVar7 = plVar15;
    } while ((plVar11 != plVar15) && (lVar4 = *plVar15, plVar7 = plVar11, lVar4 != 0));
  }
  if (puVar8 != (undefined8 *)0x0) {
    if ((*(byte *)(puVar8 + 4) & 2) != 0) {
LAB_0023b521:
                    /* WARNING: Subroutine does not return */
      FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");
    }
    puVar8[2] = uVar13;
  }
  if ((long *)*param_4 != plVar7) {
    param_4[1] = *param_4;
  }
  return;
}

